2

< 我现在有一个二进制图像(Canny 检测器的输出)。我想将具有 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 回答