Can anyone help me to solve this error in regionprops().

2 Ansichten (letzte 30 Tage)
MINO GEORGE
MINO GEORGE am 24 Mai 2021
Beantwortet: Walter Roberson am 25 Mai 2021
This is the code.The stats is a table, in that MajorAxisLength() and MinorAxisLength() is showing as 0*0 (double)
gray = imread('CYST RENAL-37.jpg');
grayImage = rgb2gray(gray);
level = graythresh(gray);
BW = imbinarize(gray,level);
stats = regionprops('table',BW,'Centroid',...
'MajorAxisLength','MinorAxisLength');
centers = stats.Centroid;
diameters = mean([stats.MajorAxisLength stats.MinorAxisLength],2);
radii = diameters/2;
Pls help me to solve this error. Any help is appreciated
  3 Kommentare
Walter Roberson
Walter Roberson am 24 Mai 2021
Also I wonder if using "equivalent diameter" property would happen to be appropriate for your case.
MINO GEORGE
MINO GEORGE am 25 Mai 2021
Thank you for responding.
I need to segment the cyst region (black hole) from the kidney ultrasound image. The image is attached here. When i execute this code, i am getting these many errors.
Error using sum
Invalid data type. First argument must be numeric or logical.
Error in mean (line 127)
y = sum(x, dim, flag) ./ mysize(x,dim);
Error in subtract (line 13)
diameters = mean([stats.MajorAxisLength stats.MinorAxisLength],2);
Thanks for the help

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Walter Roberson
Walter Roberson am 25 Mai 2021
gray = imread('CYST RENAL-37.jpg');
grayImage = rgb2gray(gray);
BW = imbinarize(grayImage);
stats = regionprops('table',BW,'Centroid',...
'MajorAxisLength','MinorAxisLength');
centers = stats.Centroid;
diameters = mean([stats.MajorAxisLength stats.MinorAxisLength],2);
radii = diameters/2;
You were trying to imbinarize() the RGB image, not the gray image.
Also, imbinarize() automatically determines the threshold by calling graythresh if you do not pass in a level.

Produkte


Version

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by