2016-01-01 12 views
2

У меня есть этот образЗаполнение формы в изображении с определенным цветом OpenCV

enter image description here

Я хочу, чтобы заполнить многоугольники с белым цветом. Я попробовал fillpoly, но не смог заставить его работать. Есть идеи? Я использую opencv 3.0 в C++.

+0

Пожалуйста показать код, который вы пробовали – Miki

ответ

1

Пробуйте нижнюю часть кода, чтобы заполнить закрытые объекты цветом 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); 
0

Это интересный вопрос, я думал, что я хотел бы попробовать его с ImageMagick в командной строке, но вы можете адаптировать технику OpenCV достаточно легко. Я подозреваю, что это может быть похоже на то, что делает код Арджуна, но я не могу это легко прочитать ...

Я сделаю это в три этапа, каждый из которых будет построен на последнем, но на самом деле вам нужно только окончательная, однострочная команда в конце.

Во-первых, наводнения заполнить изображение с желтым, начиная с верхнего левого угла:

convert shapes.png -fill yellow -draw 'color 0,0 floodfill' result.png 

enter image description here

Теперь установить заполняющей белый цвет и преувеличивать все черные области с белой заливкой -Цвет:

convert shapes.png -fill yellow -draw 'color 0,0 floodfill' -fill white -opaque black result.png 

enter image description here

Теперь установите заполняющий черный цвет, и преувеличивать желтые участки с черным заполняющей цвет:

convert shapes.png -fill yellow -draw 'color 0,0 floodfill' -fill white -opaque black -fill black -opaque yellow result.png 

enter image description here

Смежные вопросы