how to select certain shape from different images?
2 views (last 30 days)
Show older comments
i have an image of star
and
I want to select a this shape from other different images that content star and other shapes
how to do that
7 Comments
Walter Roberson
on 29 May 2012
Your sample image is filled. Should only the (small) filled stars be selected, or should the large non-filled stars also be selected?
Some of the hollow stars are different aspect ratios (stretched more vertically); should those be found or only the ones with the same aspect ratio?
Is the task to be able to find portions of the image that match the given input image, or is the task to be able to match stars specifically?
Answers (3)
Stephen
on 29 May 2012
haha, Walter :)
You can use the rucklidge algorithm. It relies on the haussdorf distance of a set of points, say the 10 points of your pentagram, and looks for a similar set of distances in all points of the target image. It takes a while sometimes, but it's pretty good.
You can also decompose the image with wavelets and look for similar signatures that way I've heard, but I can't help you build something like that. There may be something in the file exchange, like train a face recognizer to look for pentagrams or satanic faces.
Image Analyst
on 29 May 2012
I agree that it is a poorly phrased question that is so ambigous and open-ended as to make answering it have a high likelihood of wasting time. About all I can say, unless the poster posts an image or gives other additional information, is that this is a case of pattern recognition and there are thousands of ways to do that. You can go here http://iris.usc.edu/Vision-Notes/bibliography/contentspattern.html#Pattern%20Recognition,%20Clustering,%20Statistics,%20Grammars,%20Learning,%20Neural%20Nets,%20Genetic%20Algorithms for a list of them. The CBIR (content based image retrieval) community is involved heavily in this research right now, so you might look up CBIR methods. You might get your star by using nromxcorr2(), SURF, MSER, looking at the perimeter square to area ratio, or dozens of other ways depending on what your images look like. Sorry I can't explain all or any of them here - it would waste my time unless I know what kind of images you're dealing with.
0 Comments
Image Analyst
on 29 May 2012
For the images you have now provided, I'd recommend that you look at my image segmentation demo. http://www.mathworks.com/matlabcentral/fileexchange/?term=authorid%3A31862 Modify it to take the "solidity" - I think that will be enough to pick out just the stars. Basically it comes down to this process:
- extract the red channel: redChannel = rgbImage(:,:,1)
- threshold: binaryImage = redChannel > 128;
- call imfill: binaryImage = imfill(binaryImage , 'holes');
- call bwlabel and regionprops asking for solidity: regionprops(binaryImage, 'Solidity')
- filter out, using ismember, those blobs not having the require solidity values. See my demo.
My demo has everything you need. Give that a shot and let me know if you can't figure it out.
5 Comments
Walter Roberson
on 30 May 2012
http://www.mathworks.com/matlabcentral/answers/7924-where-can-i-upload-images-and-files-for-use-on-matlab-answers
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!