MATLAB Answers

How to get the size of a region in an image?

7 views (last 30 days)
Fat Man
Fat Man on 29 Jun 2019
Commented: Image Analyst on 30 Jun 2019
How can I get the size of the green region in the image??
By using funtion any() and sum() on my mask index
Or any other ways that the experts can come up with.
Thank you for your help.
img1 = imread(pic)
red1 = img1(:,:,1);
green1 = img1(:,:,2);
blue1 = img1(:,:,3);
get_green = red1 == 0 & green1 == 255 & blue1 == 0;
sup_mask = cat(3,get_green,get_green,get_green);


Sign in to comment.

Accepted Answer

KALYAN ACHARJYA on 29 Jun 2019
Edited: KALYAN ACHARJYA on 29 Jun 2019
I can counts the number of pixels of that region
%Please note that white portion also there in both side of fridge
% Crop it or you can discard specifically
[rows colm]=size(im)
threshold_vale=?? % sme value try with the image
% Segmnet the Green part
% Now you have binary image with white "1" pixels, on that green region
% You can replicate that number in cm also with co-relate with size of the original image
If you looking for length, in such case, if you know the complete size of fridge,
then you can comparitively find it from tot_pix and rows*colm of the fridge.
Hope it helps!


Image Analyst
Image Analyst on 29 Jun 2019
sum(binary_image) will give a row vector.

Sign in to comment.

More Answers (1)

Image Analyst
Image Analyst on 29 Jun 2019
To get the size in pixels of your green mask, do this:
greenAreaInPixels = nnz(get_green)


Fat Man
Fat Man on 30 Jun 2019
Thank you. How can I get the dimension (number of rows and columns) of the green image?
Image Analyst
Image Analyst on 30 Jun 2019
[rows, columns, numberOfColorChannels] = size(im)
The green channel has the same number of rows and columns as the original RGB image.

Sign in to comment.

Sign in to answer this question.