キャプチャ(ウェブカメラ)から取得した画像を変換し、OpenCVで処理しようとしていますが、苦労しています。
画像をグレースケールに変換しようとすると、プログラムがクラッシュします。(Python.exeは動作を停止しました)
これが私のコードのメインスニペットです:
newFrameImageGS = cv.CreateImage ((320, 240), cv.IPL_DEPTH_8U, 1)
for i in range(0,5):
newFrameImage = cv.QueryFrame(ps3eye)
cv.CvtColor(newFrameImage,newFrameImageGS,cv.CV_BGR2GRAY)
golfSwing.append(newFrameImageGS)
cvConvertScaleを使用しようとすると、アサーションエラーが発生します。
src.size() == dst.size() && src.channels() == dst.channels()
これは理にかなっていますが、Webカメラの入力画像をcvUpdateMotionHistory()やcvCalcOpticalFlowLK()などの関数で使用できる画像に変換する方法についてはかなり混乱しています。
何か案は?ありがとう。
アップデート:
これを使用して、画像を手動でグレースケールに変換しました。
for row in range(0,newFrameImage.height):
for col in range(0,newFrameImage.width):
newFrameImageGS[row,col] = (newFrameImage8U[row,col][0] * 0.114 + # B
newFrameImage8U[row,col][1] * 0.587 + # G
newFrameImage8U[row,col][2] * 0.299) # R
しかし、これにはかなりの時間がかかります。それでも、cvCvtColorがプログラムのクラッシュを引き起こしている理由を理解できません。