我試圖轉換從捕獲(網絡攝像機)拍攝的圖像拍攝的圖像,並做一些處理上他們OpenCV的,但我有困難的時候..的Python/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()
這是有道理的,但我很困惑如何去把我的網絡攝像頭的輸入圖像轉換成可以被像cvUpdateMotionHistory()和cvCalcOpticalFlowLK()這樣的函數使用的圖像
有什麼想法?謝謝。
UPDATE:
我轉換到這個手動灰度圖像:
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是造成程序崩潰。
謝謝Domenic(哈哈同名)。在遇到這個錯誤並花費數小時試圖解決它之後,我偶然發現了這個問題。 – 2010-05-29 03:33:32
因爲你正在寫一個矩陣更大(1 float = 4字節,即32F = 4 * 8U)而崩潰了, – fabrizioM 2011-04-01 08:50:01