If ROI is already outlined how to mask ROI without using imfreehand function output parameters?

1 Ansicht (letzte 30 Tage)
I have detected the region of interest in an image without using imfreehand function. Now I want to mask inside the ROI which I have outlined in red line as shown in below image. http://img534.imageshack.us/img534/4272/output3l.jpg
I am stuck up with following part of code.
hFH = imfreehand();
binaryImage = hFH.createMask();
xy = hFH.getPosition;
I dont want to use imfreehand as I have already detected ROI. So in above code what should I assign to hFH?
Can somebody please help me with this? Thanks in advance for your help!
  3 Kommentare
Amith Kamath
Amith Kamath am 7 Jan. 2013
hFH would be an object inherited from the imroi class, and the methods available for it are
methods imfreehand
As far as I understand your question, you are trying to compare pixel values from your ROI with a freehand ROI using imfreehand? Would that not be possible by just an and between the ROI and your image?
Prashant Kashid
Prashant Kashid am 7 Jan. 2013
Yes you are partially right. My intention here is to mask the ROI which I have already detected using Random Walker algorithm (& obviously without using imfreehand). If I could able to mask the ROI it would be helpful to proceed further for calculations such as Area, Centroid, Perimeter etc. It would be a great help if somebody could help me to mask the ROI as discussed above.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Image Analyst
Image Analyst am 7 Jan. 2013
I'm not sure what you're asking. What is "the ROI" - the area you drew with imfreehand(), or the white binary blob inside that, or the whole image?
And what does " the similar values from the "Region of Interest"" mean? Do you mean the gray levels in that ROI?
I don't understand what you're going to "apply the mask" to? What is the mask anyway? Is it the same as the ROI, or is it something else?
  9 Kommentare
Image Analyst
Image Analyst am 9 Jan. 2013
If somebody masked the image like that, and saved it as an RGB image, then you need to find the red:
% Extract the individual red, green, and blue color channels.
redChannel = rgbImage(:, :, 1);
greenChannel = rgbImage(:, :, 2);
blueChannel = rgbImage(:, :, 3);
% Find the outline by itself.
redOutline = (redChannel == 255) & ...
(greenChannel == 0) & ...
(blueChannel == 0);
% Fill it in
filledRedMaskImage = imfill(redOutline, 'holes');
% Count pixels
areaInPixels = sum(filledRedMaskImage (:));

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by