简体   繁体   中英

Matlab: Find pattern in an image given a skeletonized template

I am stuck at a current project: I have an input picture showing the ground with some shapes on it. I have to find a specific shape with a given template.

I have to use distance transformation into skeletonization. My question now is: How can I compare two skeletons? As far as I noticed and have been told, the most methods from the Image Processing Toolbox to match templates don't work, since they are not scale-invariant and rotation invariant. Also some skeletons are really showing the shapes, others are just one or two short lines, with which I couldn't identify the shapes, if I didn't know what they should be.

I've used edge detection, and region growing on the input so there are only interessting shapes left. On the template I used distance transformation and skeletonization.

Really looking forward to some tips. Greetings :)

You could look into convolutions?

Basically move your template over your image and see if there is a match, and where. The max value of your array [x,y] is the location of your object in the image.

Matlab has a built-in 2D convolution function for this

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM