Grass blades, bad contours recognition, separation, detectobjects

asked 2014-02-07 07:53:37 -0500

nosi01 gravatar image

updated 2017-11-12 06:39:01 -0500

Grass blades, bad contours recognition, separation

Is there a way to separate two contours, like if two grass blades are touching each other or lay over each other? Maybe somehow approximate a contour with a single curve? findcontours() only give one big contour back. I also want to recognize bad contours like the ones circled red. My program this far is, blur(), canny(),dilate, erode, findcontours(), recognize two same contours from frame to frame, arcLenght() to nearly calculate the lengths of a hey blade. That is not perfect at all but for now on ok.

I want to measure each grass blade that lies on a moving treadmill with a camera. The separation of the grass blades is not perfect, so often they lie on top of each other or touch each other.

Normal recognition(no problem): image description

Worst case:
image description

Programm recognition: image description

Thanks for your help.

edit retag flag offensive close merge delete

Comments

I don't know if it will do you any good. But I think what you are looking for is related to the Gestalt principle of Good Continuation. See http://en.wikipedia.org/wiki/Principles_of_grouping#Good_Continuation

Goosebumps gravatar imageGoosebumps ( 2014-02-07 08:36:03 -0500 )edit