问题是:我想找到构成每个三角形的点,比如说第一个三角形是哪三个点构成的,直到最后一个三角形。
好像可以通过CvSubdiv去找到这种关系,但是我在查看源码时完全找不到\看不懂,希望这方面的高手指点一下,谢谢了!
现在遇到的代码如下
初始化:
static CvSubdiv2D* init_delaunay(CvMemStorage* storage,//初始化三角剖分结构,为其分配单元
CvRect rect)
{
CvSubdiv2D* subdiv;//三角剖分的数据单元
subdiv = cvCreateSubdiv2D(CV_SEQ_KIND_SUBDIV2D, sizeof(*subdiv),
sizeof(CvSubdiv2DPoint),
sizeof(CvQuadEdge2D),
storage);
cvInitSubdivDelaunay2D(subdiv, rect);
return subdiv;
}
插入函数:
vector
for (i = 0; i < 5; i++)
{
CvPoint2D32f fp = cvPoint2D32f((float)(rand() % (rect.width - 10)),//使点约束在距离边框10像素之内。
(float)(rand() % (rect.height - 10)));
points.push_back(fp);
//locate_point(subdiv, fp, img, active_facet_color);//定位点的位置,并画出点所在voronoi面的边。
cvShowImage(win, img);//刷新显示
if (cvWaitKey(100) >= 0)
break;
cvSubdivDelaunay2DInsert(subdiv, fp);//向三角剖分中插入该点,即对该点进行三角剖分
//cvCalcSubdivVoronoi2D(subdiv);//计算Voronoi细分,有时候我们不需要
cvSet(img, bkgnd_color, 0);//设置图像的背景颜色为白色
draw_subdiv(img, subdiv, delaunay_color, voronoi_color);
cvShowImage(win, img);
//cvWaitKey();
if (cvWaitKey(100) >= 0)
break;
}