我正在使用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函数是可以工作的,而其他一些则有不同程度的失败。
编辑。我通过安装发布的opencv 2.4来解决了这个问题。
import cv2
)? - cwallenpoole