Có chức năng nào để kết nối hai (hoặc nhiều) đường bao lân cận không? Hãy nhìn vào trong- tôi/ra và bạn sẽ thấy những gì tôi có nghĩa là ...OpenCV C++/Obj-C: Kết nối các đường bao lân cận
Mã của tôi:
[... some processing ...]
// getting contours
std::vector<std::vector<cv::Point> > contours;
findContours(input, contours, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_SIMPLE);
// approximate contours
std::vector<std::vector<cv::Point> > contours_poly(contours.size());
for(int i = 0; i < contours.size(); i++) {
approxPolyDP(cv::Mat(contours[i]), contours_poly[i], 5, true);
}
// debugging
cv::Scalar colors[3];
colors[0] = cv::Scalar(255, 0, 0);
colors[1] = cv::Scalar(0, 255, 0);
colors[2] = cv::Scalar(0, 0, 255);
for (int idx = 0; idx < contours_poly.size(); idx++) {
cv::drawContours(output, contours_poly, idx, colors[idx % 3]);
}
Bạn có thể làm giãn hình ảnh để làm cho các đường cong được kết nối nếu chúng đủ gần. – Adrian
Bạn đã thực hiện nó với iOS như thế nào? –
Nó hoạt động trên iOS. Chỉ cần lấy một bản sao của phiên bản OpenCV for iOS này tại đây: https://github.com/aptogo/OpenCVForiPhone và quấn đầu của bạn xung quanh nó… – dom