मैंने ओपनसीवी के साथ एक डेल्यून त्रिकोण बनाया है इस कोड के लिए धन्यवाद: example code (partiluclar draw_subdiv में)। हालांकि, जब मैं त्रिभुज प्रदर्शित करना चाहता हूं, तो मुझे जाल और रेखाएं मिलती हैं जो त्रिभुज से संबंधित नहीं हैं। ये रेखाएं इस तथ्य के कारण हैं कि त्रिभुज एल्गोरिदम "अनंत" पर पोस्ट किए गए त्रिकोणों पर विचार करते हुए अपना काम शुरू करता है।Delaunay त्रिकोण ओपनसीवी सी ++
क्या आप मुझे बता सकते हैं कि कैसे केवल उत्तल उत्तल में जाल को आकर्षित करने के लिए (इस लाइन के बिना)?
प्रदर्शन समारोह:
void draw_subdiv(Mat &img, Subdiv2D& subdiv, Scalar delaunay_color)
{
vector<Vec6f> triangleList;
subdiv.getTriangleList(triangleList);
vector<Point> pt(3);
for(size_t i = 0; i < triangleList.size(); ++i)
{
Vec6f t = triangleList[i];
pt[0] = Point(cvRound(t[0]), cvRound(t[1]));
pt[1] = Point(cvRound(t[2]), cvRound(t[3]));
pt[2] = Point(cvRound(t[4]), cvRound(t[5]));
line(img, pt[0], pt[1], delaunay_color, 1);
line(img, pt[1], pt[2], delaunay_color, 1);
line(img, pt[2], pt[0], delaunay_color, 1);
}
}
मुख्य कार्य:
Mat image = imread(argv[1], 1);
..... ....
//creat delaunay
Scalar delaunay_color(255, 255, 255), point_color(0,0,255);
Rect rect(0,0,image.cols, image.rows);
Subdiv2D subdiv(rect);
for(int i = 0; i < point.getDim(); ++i)
{
Point2f fp(point.getCoord()[i].real(), point.getCoord()[i].imag());
subdiv.insert(fp);
}
draw_subdiv(image, subdiv, delaunay_color);
imwrite("data/delaunay.jpg", image);
परिणाम:
पोस्ट अपने प्रदर्शन समारोह, कृपया। – Solkar