computer vision - Detecting blobs of uniform colour with openCV -


i working on program detect split fields remote sensing (ie. more 1 colour/field type within each image, image corresponds land owned 1 farmer) , have been trying find solution reading in images , posterizing them clustering algorithm, analysing colours , shapes present try , 'score' each image , decide if more 1 type of field present. program works reasonably although there still quite few obvious splits fails detect.

up until have been doing using standard libraries in c++, think should using opencv or , wondering techniques start with. see there image segmentation , blob detection algorithms, i'm not sure applicable because boundary between fields tends blurred or low in contrast. following sample images expect program detect 'split':

(true colour landsat)

http://imgur.com/m9qwbcq

enter image description here

http://imgur.com/owqvuvs

enter image description here

are there thoughts on how go solving problem in different way? thanks!

1) convert hsv , take h or take gray-scaled form. apply median filter smooth fields :p if images high-resolution.

2) extract histogram , find peaks. these peaks indicate different colored fields.

3) (a) can use simple thresholding around these peaks-value , find canny edges trapezium or similar shapes.

--or--

(b) find canny-edges around peak value ie peak maxima value x, find edge range of (x - dx) (x + dx) dx small value find experimentally.

4) can extract count of contours @ different levels/peaks.

i haven't added code because language not specified , these constructs readily available in opencv. fun learn. feel free ask further. happy coding.


Comments

Popular posts from this blog

javascript - Jquery show_hide, what to add in order to make the page scroll to the bottom of the hidden field once button is clicked -

javascript - Highcharts multi-color line -

javascript - Enter key does not work in search box -