Calculate Area % of either freehand or ellipse ROI

4 次查看(过去 30 天)
Hello - I'm trying to figure out the Area % of a thresholded ROI. Currently, I have my code set so that the image is thresholded, and then the user manual draws a freehand ROI (still debating if freehand or ellipse ROI is better). I want the code to give me the percent of area that is 'white' in the threshold over the total area in that ROI, but currently when I draw in the ROI, it is filled with 1's. How can I do this so that it is not filled and I can find the % Area? Below is my code. Thank you!
I=imread('Image.tif'); figure,imshow(I); BW = imbinarize(I,0.300); figure,imshow(BW); % Ask user to draw ROI. message = sprintf('Draw ROI on the wanted image.\nDouble click to finish drawing.'); uiwait(msgbox(message)); h=imfreehand;
  1 个评论
Victoria
Victoria 2018-7-30
Update: I have found a way to find area percent with the following code:
percentageBlack=(1-nnz(BW)/numel(BW))*100;
AreaPercent=(100-percentageBlack)
Now I just need a way for this to ONLY calculate in a nonfilled manually selected ROI. Thanks!

请先登录,再进行评论。

采纳的回答

Image Analyst
Image Analyst 2018-7-30
Use h to create a mask.
mask = h.createMask;
See attached demo for more details.
  4 个评论
Victoria
Victoria 2018-8-1
T1=table(meanGL, sdGL, percentageBlack, AreaPercent);
head(T1,3)
C = table2cell(T1);
%File Location
path= 'C:\Users\Vicki\Documents\Loyola\MATLAB';
%File Name
xlswrite(fullfile(path,'\try.xlsx'), C, int2str(k));
Image Analyst
Image Analyst 2018-8-1
You can use writetable() to write an Excel workbook without doing the convertion to a cell array.

请先登录,再进行评论。

更多回答(0 个)

Community Treasure Hunt

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

Start Hunting!

Translated by