Я пытался найти контур одной фигуры на очень простом фоне, используя OpenCV findContour
(я хотел бы использовать синтаксис C ++)Тем не менее, он продолжает делать свой контур контуром, а не самой формой.Я думаю, это из-за белого края, полученного от Кэнни, который не делает форму закрытой.
Случай A: Форма по краю изображения (Это нефактическое входное изображение, но более простое входное изображение для иллюстрации этой проблемы.)
Случай B: фон окружает форму
Существуют основные функции, которые я использовал:
findContours( grayImage, contours, hierarchy, RETR_LIST,CHAIN_APPROX_SIMPLE);
approxPolyDP(Mat(contours.at(largestContourIndex)),poly,3,true);
drawContours(output, contours, largestContourIndex, RGB(250,0,100), -1, 8, hierarchy, 0, Point() );
РЕДАКТИРОВАТЬ: Обнаружение пропускающего края дает нужный мне контур, но мне нужно иметь наилучший приблизительный контур, который я могу получить.
Заранее спасибо.