2012-04-08 42 views
1

遍歷使用墊::圖像我是新來的C++接口和運行的有關此代碼的想法:崩潰論

//buffer : VideoCapture >> cvtColor >> Canny 

for(int i=0;i<buffer.rows;i++) //search for edges 
{ 
    for (int j=0 ;j<buffer.cols;j++) 
    { 
     Vec3b pixel=buffer.at<Vec3b>(i,j); 
    } 
} 

運行正常在調試模式下崩潰,但在某些時候(我= 479,在釋放J = 448)。(哦,不能捕捉任何異常......當然......)

Vec3b pixel=buffer.at<Vec3b>(1,1000); 

作品中聞稿即使我的圖像(緩衝)是640 * 480。

我想我錯過了一些東西。如果你能從中得到某種意義,我會對你們表示感謝。

回答

3

您使用的Vec3b迭代器,其是應該在3倍信道的圖像使用。您正在使用單通道圖像來迭代您必須替換Vec3buchar的圖像。

+0

哦好吧多麼愚蠢!所述 「C++:空隙cvtColor(InputArray SRC,OutputArray DST,INT代碼,INT dstCn = 0)¶ [...] DST - 相同的尺寸和深度作爲SRC的目的地圖像」 困擾我但非常感謝你bamboon! – SonOfSparda 2012-04-08 17:01:02