我最近不得不在Python中做很多与视觉相关的工作,而且我在格式之间切换时遇到很多困难.当我使用Mahotas读取图像时,我似乎无法将其转换为cv2,尽管它们都使用numpy.ndarray. SimpleCV可以轻松获取OpenCV图像,但是为简单的cv或mahotas获取SimpleCV图像似乎是一项非常重要的任务.
一些格式转换语法将非常受欢迎.例如,如果我使用mahotas打开灰度图像,默认情况下会将其视为浮点颜色空间.即使我将类型指定为numpy.uint8,cv2似乎也无法将其识别为数组.我不知道如何解决这个问题.我对彩色图像也没有多少运气.我在Ubuntu Oneiric Ocelot上使用Python 2.7 32bit.
提前致谢!
最佳答案
我从未使用过mahotas.但我目前正在研究SimpleCV.我刚刚发送了一个pull请求,使SimpleCV numpy数组与cv2兼容.
基本上,
Image.getNumpy() -> numpy.ndarray for cv2
Image.getBitmap() -> cv2.cv.iplimage
Image.getMatrix() -> cv2.cv.cvmat
要将cv2 numpy数组转换为SimpleCV Image对象,
Image(cv2_image) -> SimpleCV.ImageClass.Image