Я хочу найти контуры двоичного изображения сегментированных горных пород. Есть некоторые проблемы с функцией findContours из opencv.
Размер контура составляет около 1000, в то время как контуры из двоичного изображения могут быть около 30-50.
Когда я рисую ВСЕ контуры, они кажутся достойным представлением черных границ двоичного изображения. Но когда я рисую только один контур некоторого случайного индекса, он показывает небольшой контур.
Изображения представлены ниже:
- Двоичное изображение
- Контуры всего индекса
- Контур случайного контурного указателя. Маленький зеленый контур
Я хотел бы иметь ровно столько контуров, сколько на двоичном изображении.
Код:
std::vector<std::vector<cv::Point>> contours;
std::vector<cv::Vec4i> hierarchy;
cv::findContours(input_image, contours,hierarchy, CV_RETR_CCOMP, CV_CHAIN_APPROX_NONE);
for( int i = 0; i < (int)contours.size(); i++)
{
cv::drawContours(input_rgb_image, contours, 512 , cv::Scalar(0,255,0), 1, 8, hierarchy,1);
}