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)
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
Post a Comment