私は、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 関数は機能し、他の機能はさまざまな程度で失敗します。
編集。リリースされた2.4のopencvをインストールすることでこれを修正しました。