У меня есть этот образЗаполнение формы в изображении с определенным цветом OpenCV
Я хочу, чтобы заполнить многоугольники с белым цветом. Я попробовал fillpoly, но не смог заставить его работать. Есть идеи? Я использую opencv 3.0 в C++.
У меня есть этот образЗаполнение формы в изображении с определенным цветом OpenCV
Я хочу, чтобы заполнить многоугольники с белым цветом. Я попробовал fillpoly, но не смог заставить его работать. Есть идеи? Я использую opencv 3.0 в C++.
Пробуйте нижнюю часть кода, чтобы заполнить закрытые объекты цветом whit.
cv::Mat edgesIn;
cv::Mat edgesNeg =temp.clone();
// imshow("edgesNeg", edgesNeg);
cv::floodFill(edgesNeg, cv::Point(0,0), CV_RGB(255,255,255));
imshow("edgesNeg", edgesNeg);
bitwise_not(edgesNeg, edgesNeg);
filledEdgesOut = (edgesNeg | temp);
imshow("Filled region",filledEdgesOut);
Это интересный вопрос, я думал, что я хотел бы попробовать его с ImageMagick в командной строке, но вы можете адаптировать технику OpenCV достаточно легко. Я подозреваю, что это может быть похоже на то, что делает код Арджуна, но я не могу это легко прочитать ...
Я сделаю это в три этапа, каждый из которых будет построен на последнем, но на самом деле вам нужно только окончательная, однострочная команда в конце.
Во-первых, наводнения заполнить изображение с желтым, начиная с верхнего левого угла:
convert shapes.png -fill yellow -draw 'color 0,0 floodfill' result.png
Теперь установить заполняющей белый цвет и преувеличивать все черные области с белой заливкой -Цвет:
convert shapes.png -fill yellow -draw 'color 0,0 floodfill' -fill white -opaque black result.png
Теперь установите заполняющий черный цвет, и преувеличивать желтые участки с черным заполняющей цвет:
convert shapes.png -fill yellow -draw 'color 0,0 floodfill' -fill white -opaque black -fill black -opaque yellow result.png
Пожалуйста показать код, который вы пробовали – Miki