永发信息网

OPENCV 中的 cvsubdiv的数据结构是怎么回事?

答案:2  悬赏:40  手机版
解决时间 2021-03-07 13:04
  • 提问者网友:战魂
  • 2021-03-06 15:28
调用OPENCV 中的delaunay函数

问题是:我想找到构成每个三角形的点,比如说第一个三角形是哪三个点构成的,直到最后一个三角形。
好像可以通过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 points;
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;
}
最佳答案
  • 五星知识达人网友:零点过十分
  • 2021-03-06 16:54
类型名应跟在struct之后,像这样:
typedef struct VertexType { int no; 酣揣丰废莶肚奉莎斧极 //顶点编号 InfoType info; //顶点其他信息}; //顶点类型
全部回答
  • 1楼网友:醉吻情书
  • 2021-03-06 18:02
不明白啊 = =!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯