< 我现在有一个二进制图像(Canny 检测器的输出)。我想将具有 1 的点的所有坐标保存到另一个名为 Imp_Points 的变量中(由向量 Point2f 定义)。
我尝试在图像中使用 for 循环来检查“1”并将这些坐标分配给“Imp_Points”,但我不确定如何在 C++ 中执行此操作。
关于如何使用 opencv 在 c++ 中做到这一点的任何建议?提前致谢!>
首先看看如何遍历 cv::Mat: http: //opencv.willowgarage.com/documentation/cpp/core_basic_structures.html#mat
然后,当像素值为 255 时,您需要将坐标添加到向量。假设您有 8 位 Canny 输出。
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);
}