Python的OpenCV cv2.imread总是返回None,cvFeatDetector崩溃python



我在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总是None。我导入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函数可以工作,而另一些则在不同程度上不起作用。


编辑。我通过安装openv的2.4版本修复了这个问题。

正如在编辑后的问题中所述,这是一个bug,已在较新的OpenCV v2.4版本中修复。

相关内容

  • 没有找到相关文章