how to select certain shape from different images?
5 次查看(过去 30 天)
显示 更早的评论
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 个评论
Walter Roberson
2012-5-29
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?
回答(3 个)
Stephen
2012-5-29
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
2012-5-29
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 个评论
Image Analyst
2012-5-29
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 个评论
Walter Roberson
2012-5-30
http://www.mathworks.com/matlabcentral/answers/7924-where-can-i-upload-images-and-files-for-use-on-matlab-answers
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Image Processing and Computer Vision 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!