最近我不得不在Python中做很多与视觉相关的工作,并且我面临着在不同格式之间切换的许多困难。当我使用Mahotas阅读图片时,我似乎无法将其转到cv2,尽管它们都在使用numpy.ndarray。SimpleCV可以很容易地获取OpenCV图像,但为遗留简历或mahotas获取SimpleCV图像似乎是一项相当艰巨的任务。
一些格式转换语法将会非常受欢迎。例如,如果我使用mahotas打开一个灰度图像,默认情况下,它被视为浮点颜色空间。即使我将类型指定为numpy.uint8,cv2似乎也无法将其识别为数组。我不知道如何解决这个问题。我在彩色图像上也没有太多的运气。我在Ubuntu Oneiric Ocelot上使用的是Python 2.7 32位。
提前感谢!
发布于 2012-07-10 19:59:31
我从来没有用过mahotas。但我目前正在开发SimpleCV。我刚刚发送了一个拉取请求,让SimpleCV numpy数组与cv2兼容。
所以,基本上,
用于cv2的
Image.getNumpy() -> numpy.ndarray
Image.getBitmap() -> cv2.cv.iplimage
Image.getMatrix() -> cv2.cv.cvmat
要将cv2 numpy数组转换为SimpleCV图像对象,
镜像(Cv2_image) -> SimpleCV.ImageClass.Image
发布于 2017-01-27 05:40:09
只有cv2和SimpleCV方面的经验,要从SimpleCV转换到cv2:
cv2_image = simplecv_image.getNumpyCv2()要从cv2转换为SimpleCV,请执行以下操作:
simplecv_image = Image(cv2_image.transpose(1, 0, 2)[:, :, ::-1])https://stackoverflow.com/questions/9220720
复制相似问题