私は Logitech Pro 9000 ウェブカメラを持っていて、今 OpenCV を学ぼうとしています。OpenCV 2.4.5 と Python 2.7 を併用しています。高解像度での CvtColor 関数に問題があります。次のスクリプトは 640x480 で動作しますが、それ以上の解像度 (800x600 以上) では動作しません。
import cv
cv.NamedWindow("Video", cv.CV_WINDOW_AUTOSIZE)
camera_index = 1
capture = cv.CaptureFromCAM(camera_index)
cv.SetCaptureProperty(capture,cv.CV_CAP_PROP_FRAME_WIDTH,1200)
cv.SetCaptureProperty(capture,cv.CV_CAP_PROP_FRAME_HEIGHT,800)
grey_frame = cv.CreateImage((1200,800),8,1)
while True:
input_frame = cv.QueryFrame(capture)
cv.CvtColor(input_frame,grey_frame,cv.CV_BGR2GRAY)
cv.WaitKey(5)
cv.ShowImage("Video", grey_frame)
次のエラーが表示されます
cv2.error: dst.data == dst0.data
編集:解決済み キャプチャしたinput_frameを保存した後。保存した画像の解像度が設定値と一致していないことに気付きました。キャプチャ プロパティとして 1200x800 を設定し、1280x800 の画像を取得しました。この解決策を使用した後、すべてが正常に機能しました。