Czy istnieje funkcja łączenia dwóch (lub więcej) kont znajdujących się w pobliżu? Spójrz na moją wejść/wyjść, a zobaczysz co mam na myśli ...OpenCV C++/Obj-C: Łączenie konturów w pobliżu
Mój kod:
[... 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]);
}
Mógłbyś rozszerzać obraz, aby połączyć krzywe, jeśli są wystarczająco blisko. – Adrian
Jak to zrobiłeś z iOS? –
Działa na iOS. Po prostu weź kopię tego OpenCV dla wersji iOS tutaj: https://github.com/aptogo/OpenCVForiPhone i otul się wokół niego ... – dom