Selecting a region in an image
조회 수: 4 (최근 30일)
이전 댓글 표시
Hi all,
I want to be able to select a part of an image and store it in MATLAB. Can anyone tell me how I can do that.
I want to be able to load it and select the circle and store its circumference. Can I do this in MATLAB?
Thanks.
NS
댓글 수: 0
답변 (2개)
Image Analyst
2011년 7월 9일
It's pretty easy. Look at my color segmentation demos for how to pick out colors, and BlobsDemo for how to find perimeter and area. Basically it's this 1) separate the color channels into red, green, and blue. 3 lines.
redChannel = rgbImage(:, :, 1);
greenChannel = rgbImage(:, :, 2);
blueChannel = rgbImage(:, :, 3);
2) do logical operations on them to get just the red circle. 1 line.
3) call bwlabel or bwconncomp. 1 line.
[labeledImage numberOfBlobs] = bwlabel(binaryImage, 8);
4) call regionprops. 1 line.
blobMeasurements = regionprops(labeledImage, originalImage, 'Perimeter');
So in 6 lines you should have it. Write back if you still can't get it.
댓글 수: 2
Image Analyst
2011년 7월 9일
Those kind of images are always tough. You could try thresholding and then using imclose to close the gaps. Then bwlabel and regionprops to find circular shapes. Or you could try hough() to try to find the circles directly. Unless you have thousands of images your best bet might be to manually locate them with imellipse.
Sean de Wolski
2011년 7월 8일
There is a demo for this in the documentation for the Image Processing Toolbox.
댓글 수: 7
Nathan Greco
2011년 7월 8일
Hm. That is pretty hard to discern "automatically" through code. Perhaps just manually selecting the image (using ginput with curve fitting, perhaps?) would suffice.
참고 항목
카테고리
Help Center 및 File Exchange에서 Image Segmentation and Analysis에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!