【发布时间】:2013-03-11 16:17:15
【问题描述】:
我正在使用 python 中的 opencv 弄湿我的脚,我认为加载图像是一个很好的起点。
我已经在我的系统上构建了 opencv,并且在与我的项目相关的目录 tpl/opencv 中有 python 绑定和 opencv dll。
下面是一些演示问题的代码:
from tpl.opencv import cv2
from tpl.opencv.cv2 import cv
from PIL import Image
pil_img = Image.open('C:/test_file.jpg') #Read a temp file, the input is actually a computed image chip
tmpname = 'C:/tmp.png'
pil_img.save(tmpname,'PNG') # Write the image chip to disk
im = cv.LoadImage(tmpname) # This seems to work
im2 = cv2.imread(tmpname) # This always returns None
没有错误信息,im2 总是无。我在导入 opencv 的方式上是否搞砸了?有简单的解决方法吗?
当我创建时
cvFeatDetector = cv2.FeatureDetector_create("MSER")
我明白了,所以 cv2 的一部分似乎可以工作
作为一种解决方法,我只是用 numpy 加载了图像
im2 = numpy.imread(inname)
im = cv2.cvtColor(im2, cv2.COLOR_BGR2GRAY) # This works. I was able to imshow it too
cvFeatDetector = cv2.FeatureDetector_create("MSER") # Seems to produce a valid object
cvFeatExtractor = cv2.DescriptorExtractor_create("SIFT") # Seems to produce a valid object
kpts = cvFeatDetector.detect(im) # Crashes python
我觉得这很奇怪,因为 cv2.cvtColor 成功地将图像转换为灰度。所以一些 cv2 函数确实有效,而另一些则不同程度地失败。
编辑。我通过安装已发布的 2.4 版本的 opencv 解决了这个问题。
【问题讨论】:
-
您能否在code.opencv.org 上提交一个错误,并附上您的png 图像和
cv2.getBuildInformation()的输出? -
您是否尝试过直接导入 cv2(如,使您可以
import cv2?)