Расчет площади в opencv/javacv?

Пожалуйста, может кто-нибудь объяснить, как определить область, которая должна быть красного и синего цветов на следующем изображении? Я пытался использовать метод cvFindContours(), но он не дал ожидаемого результата.

Введите изображение

введите здесь описание изображения

Ожидаемый результат

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


person LkDev    schedule 02.09.2012    source источник
comment
Кажется, можно просто найти все контуры и оставить 2 самых больших, не так ли?   -  person Quentin Geissmann    schedule 02.09.2012
comment
попробуйте использовать библиотеку cvBlobslib... в ней есть функции, которые дают площадь капель... здесь вы можете рассматривать белые пятна как капли на черном фоне (... границы...)..opencv.willowgarage.com/wiki/cvBlobsLib   -  person rotating_image    schedule 03.09.2012


Ответы (1)


Функция FloodFill также может возвращать область в качестве возвращаемого значения. Итак, одна вещь, которую вы можете сделать, это растровое сканирование каждого пикселя: каждый раз, когда вы достигаете нетронутого пикселя, окрашивайте его в какой-либо цвет (черный) и сохраняйте площадь этой области вместе с координатами пикселя, продолжайте, пока все изображение не будет покрыто .

В итоге у вас будет набор областей с координатами по одному пикселю в каждой области.

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

person ivan_a    schedule 12.09.2012