特征提取的乳腺病变

5视图(30天)
你好,
我试图从分段提取特征乳房病变。但是我得到一个错误当我尝试使用regionprops函数。请找到下面的代码:
clc;明确;接近所有
%指定文件所在的文件夹。
myFolder =“C: \ \用户名\ \电脑\ Udemy课程深度学习a - z \ P16-Convolutional-Neural-Networks (1) \ Convolutional_Neural_Networks \ Images_Malignant \ training_set \良性\图片”;
%确保文件夹确实存在。用户如果没有警告。
如果~ isfolder (myFolder)
errorMessage = sprintf (错误:以下文件夹不存在:\ n % s \ nPlease指定一个新文件夹。,myFolder);
uiwait (warndlg (errorMessage));
myFolder = uigetdir ();%要求一个新的。
如果myFolder = = 0
%的用户点击取消
返回;
结束
结束
%获得文件夹中所有文件的列表和所需的文件名称模式。
filePattern = fullfile (myFolder,‘* . jpg”);你需要什么模式变化百分比。
theFiles = dir (filePattern);
k = 1:长度(theFiles)
baseFileName = theFiles (k) . name;
fullFileName = fullfile (theFiles (k)。文件夹,baseFileName);
流(1,“现在阅读% s \ n”,fullFileName);
%现在做任何你想做的这个文件的名字,
%,如阅读它作为图像数组与imread ()
r = im2double (imread (fullFileName)));
试一试
r = rgb2gray (r);
结束
J = imnoise (r,的盐和胡椒,0.02);
c = medfilt2 (J);
b = adapthisteq (c);
% b = medfilt2 (r1);
hy = fspecial (“索贝尔”);
hx = hy”;
Iy = imfilter(双(b),衔接,“复制”);
第九= imfilter (hx双(b),“复制”);
第九gradmag =√。^ 2 + Iy。^ 2);
L =分水岭(gradmag);
Lrgb = label2rgb (L);
se = strel (“磁盘”,20);
b Io = imopen (se);
Ie = imerode (b, se);
Iobr = imreconstruct (b);
国际奥委会= imclose (Io, se);
Iobrd = imdilate (Iobr, se);
Iobrcbr = imreconstruct (imcomplement (Iobrd) imcomplement (Iobr));
Iobrcbr = imcomplement (Iobrcbr);
女性生殖器切割= imregionalmax (Iobrcbr);
%图
Y = imclearborder(女性生殖器切割);
stats1 = regionprops (Y,“区域”,“循环”,“稳健”,“偏心”,“EquivDiameter”,“EulerNumber”,“MajorAxisLength”,“MinorAxisLength”,“周长”);
面积= stats1.Area;
圆= stats1.Circularity;
可靠性= stats1.Solidity;
离心率= stats1.Eccentricity;
equivdiameter = stats1.EquivDiameter;
eulernumber = stats1.EulerNumber;
主要= stats1.MajorAxisLength;
小= stats1.MinorAxisLength;
周长= stats1.Perimeter;
p (k,:) =(面积、循环、坚固、偏心、equivdiameter eulernumber,主要,次要,周长);
我得到以下错误消息:
不足数量的输出从右手边的等号来满足作业。
错误gf(84行)
面积= stats1.Area;

接受的答案

沃尔特·罗伯森
沃尔特·罗伯森 2020年8月20日
面积= vertcat (stats1.Area);
圆= vertcat (stats1.Circularity);
可靠性= vertcat (stats1.Solidity);
离心率= vertcat (stats1.Eccentricity);
equivdiameter = vertcat (stats1.EquivDiameter);
eulernumber = vertcat (stats1.EulerNumber);
主要= vertcat (stats1.MajorAxisLength);
小= vertcat (stats1.MinorAxisLength);
周长= vertcat (stats1.Perimeter);
然而,你的线
p (k,:) =(面积、循环、坚固、偏心、equivdiameter eulernumber,主要,次要,周长);
会有问题。你将需要把p细胞数组。
你有困难是你假设Y只有单一区域。现在,它可能是,您想要使用bwareafilt()只挑出最大的地区,但除非你做这样的事,你将会得到多个区域。
6个评论
沃尔特·罗伯森
沃尔特·罗伯森 2020年8月21日
不。
regionprops会发现任何存在的地区,甚至只是单一的像素。如果它返回空的信息传递给它的数据是空的 你通过连接组件,它是空的 你标签信息传递给它是空的。

登录置评。

更多的答案(0)

标签

s manbetx 845


释放

R2019a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!