5

最近我不得不在 Python 中做很多与视觉相关的工作,并且在格式之间切换时遇到了很多困难。当我使用 Mahotas 读取图像时,我似乎无法将其传输到 cv2,尽管它们都使用 numpy.ndarray。SimpleCV 可以轻松获取 OpenCV 图像,但为遗留 cv 或 mahotas 获取 SimpleCV 图像似乎是一项艰巨的任务。

一些格式转换语法将不胜感激。例如,如果我使用 mahotas 打开灰度图像,默认情况下它被视为浮点颜色空间,正如我所收集的那样。即使我将类型指定为 numpy.uint8,cv2 似乎也无法将其识别为数组。我不知道如何解决这个问题。我对彩色图像也没有太多运气。我在 Ubuntu Oneiric Ocelot 上使用 Python 2.7 32 位。

提前致谢!

4

2 回答 2

2

我从来没有用过mahotas。但我目前正在研究 SimpleCV。我刚刚发送了一个拉取请求,要求使 SimpleCV numpy 数组与 cv2 兼容。

所以,基本上,

Image.getNumpy() -> cv2 的 numpy.ndarray

Image.getBitmap() -> cv2.cv.iplimage

Image.getMatrix() -> cv2.cv.cvmat

要将 cv2 numpy 数组转换为 SimpleCV Image 对象,

图像(cv2_image)-> SimpleCV.ImageClass.Image

于 2012-07-10T11:59:30.763 回答
2

只有在 cv2 和 SimpleCV 方面的经验,才能从 SimpleCV 转换为 cv2:

cv2_image = simplecv_image.getNumpyCv2()

要将 cv2 转换为 SimpleCV:

simplecv_image = Image(cv2_image.transpose(1, 0, 2)[:, :, ::-1])
于 2017-01-26T21:40:09.357 回答