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);
    }
}

デバッグモードでは正常に動作しますが、リリースのある時点 (i=479、j=448) でクラッシュします (ああ、例外をキャッチできません... もちろん...)

しかし

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

私の画像(バッファ)が640 * 480であっても、eleaseで動作します。

私は何かが欠けていると思います。この意味を理解していただければ幸いです。

4

1 に答える 1

3

Vec3b3 チャネルの画像で使用されることになっているイテレータを使用しています。に置き換える必要があるそのような画像を反復するために、単一のチャネル画像を使用していVec3bますuchar

于 2012-04-08T16:14:07.173 に答える