呼叫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<CvPoint2D32f> 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;
}
問題是:我想找到構成每個三角形的點,比如說第一個三角形是哪三個點構成的,直到最后一個三角形。
好像可以通過CvSubdiv去找到這種關系,但是我在查看原始碼時完全找不到\看不懂,希望這方面的高手指點一下,謝謝了!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/100264.html
