11

私は、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をインストールすることでこれを修正しました。

4

1 に答える 1

1

編集された質問で述べたように、これは OpenCV の v2.4 の新しいリリースで修正されたバグです。バグ修正に関して、これ以上の情報は現在入手できないようです。

于 2018-06-01T23:48:39.573 に答える