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