我正在尝试收集两个像素之间的一组像素:骨架图像的起点和终点。 所以我的想法是:我开始在图像中的位置。我把那个位置放在一个列表中。然后在一个循环中
我已经开发了一段代码,但是在到达终点之前,循环在添加四个或五个像素后结束。
vector<Point> traceLine(Mat img , Point peak)
{
vector<Point> vect1;
vector<Point> vect2;
vect1.push_back(peak);
while(vect1.size() != 0)
{
Point p=vect1[0];
img.at<uchar>(p.x,p.y)=0;
vect1.erase(vect1.begin());
vect2.push_back(p);
vector<Point> vectN;
vectN=search8Neighbor(img,p);
vector<Point>::iterator it;
it = vect1.begin();
cout<<vectN.size()<<endl;
if(vectN.size()!=0)
{
for(int i=0;i<vectN.size();i++)
vect1.insert(it,vectN[i]);
}
}
return vect2;
}