2

<私は今バイナリイメージ(キャニー検出器の出力)を持っています。1を持つポイントのすべての座標をImp_Points(ベクトルPoint2fで定義)と呼ばれる別の変数に保存したいと思います。

画像でforループを使用して「1」を確認し、それらの座標を「Imp_Points」に割り当てようとしましたが、C++でこれを行う方法がわかりませんでした。

opencvを使用してC++でそれを行う方法に関する提案はありますか?前もって感謝します!>>

4

2 に答える 2

0

最初に cv::Mat を反復する方法を見てください: http://opencv.willowgarage.com/documentation/cpp/core_basic_structures.html#mat

Mat OpenCV を使用してピクセルにアクセスする

次に、ピクセル値が 255 のときにベクトルに座標を追加する必要があります。8 ビットの Canny 出力があると仮定します。

于 2012-11-12T10:29:12.830 に答える
0
Vector <Point2f>Imp_Points;
for(int i=0;i<bn_img.rows;i++) {
 for(int j=0;j<bn_img.cols;j++)`{
    Point p=new Point(j,i);
    int v=bn_img<uchar>.at(p);//check the datatype of Mat here
    if(v==1)
      Imp_Points.push_back(p);
}
于 2012-11-15T21:41:27.553 に答える