如何检测乳房底部边界通过使用一个二阶多项式曲线拟合的算法分割/分离左和右乳房吗? ?
2视图(30天)
显示旧的评论
你好,
我想分开每个布雷斯特左和右。下侧象限应该把它完全不管乳房大小,因为不同的算法应该是乳房和乳房的大小。我的目的和愿望是分离和双边不对称rigt乳房自动分析。
步骤我的愿望:
- 自乳房边界将抛物线形状,一个二阶多项式拟合的算法将用于检测乳房底部边界。抛物曲线第一次安装每个对象,然后用最大的两条曲线确定系数较低的候选人乳房边界。如果x坐标之间的区别最低的两条曲线的峰值小于20和坐标的差异大于250,都选为低乳房边界(x′< 20和等号左边′> 250)。否则,算法搜索其他曲线。
- 下一步是决定乳房的顶端。该地区最高的身体左和右边缘的曲率将用于估计腋下的位置。通常,可怜的边缘检测表明凹度的主要点身体其它部位的边缘,和最大凹度的点在图像被发现比预计更低或更高。此外,选择安装的抛物线作为降低乳房边界可能导致作物的地区乳腺癌和引起信息丢失,因为穷人的降低乳房边缘在许多情况下。
你可以看到下面我所想要的图片。
你能帮助我关于我的问题吗?我期待听到你。谢谢。
clc;清晰;关闭所有;
一个= rgb2gray (imread (“DINAMIC-FRONTAL.jpg”));
en = imsharpen (,“半径”2,“数量”1);
1.4 B = imgaussfilt (en);
ed =边缘(B,“精明”,0.3,0.5);
图();imshow (ed)、标题(“精明的边缘”);
bw1 = bwareaopen (ed, 10);
se = strel (“磁盘”4);
bw = imdilate (bw1, se);
图();imshow (bw);
[x] y =找到(bw);
正确的=找到(min (a));
= findpeaks (y);
xr = x(右);
年= y(右);
xl = x ();
yl = y ();
公关= polyfit(年xr 2);% / /适合2rd度聚
pl = polyfit (yl、xl、2);
yy = linspace(1、大小(bw, 1), 50);
图;imshow (,“边界”,“紧”);
持有所有
情节(polyval(公关、yy) yy,“。”,“线宽”1);
yy情节(polyval (pl), yy,“。”,“线宽”1);
0评论
答案(2)
图像分析
2021年8月4日
试试这个:
%演示图像分析。
clc;%清除命令窗口。
流(运行% s的开始。m…\ n”,mfilename);
关闭所有;%关闭所有数据(除了imtool。)
clearvars;
工作空间;%确定工作区面板显示。
格式长g;
格式紧凑的;
字形大小= 20;
grayImage = rgb2gray (imread (“DINAMIC-FRONTAL.jpeg”));
en = imsharpen (grayImage,“半径”2,“数量”1);
1.4 B = imgaussfilt (en);
ed =边缘(B,“精明”,0.3,0.5);
次要情节(2 2 1);
imshow (ed);
标题(“初始精明的边缘”,“字形大小”、字形大小);
bw1 = bwareaopen (ed, 10);
se = strel (“磁盘”4);
bw = imdilate (bw1, se);
次要情节(2,2,2);
imshow (bw);
标题(“下一个面具”,“字形大小”、字形大小);
% 2最大团。
bw = bwareafilt (bw, 2);
%擦掉上半部分
(行、列)= (bw)大小;
bw(1:圆(行/ 2):)= false;
%写成梗概
bw = bwskel (bw);
%找到分歧点。
[bpRows, bpColumns] =找到(bwmorph (bw,的分歧点))
%擦掉分歧点。
持有在;
为k = 1:长度(bpRows)
bw (bpRows (k), bpColumns (k)) = false;
情节(bpColumns (k), bpRows (k),“r”。,“MarkerSize”,50);
结束
%擦掉任何斑点重心低于400。
道具= regionprops (bw,“重心”);
xy = vertcat (props.Centroid)
%不保持最高的两个重心。
indexesToKeep =找到(xy (:, 2) < 400);
%提取所有但最低的两个。
labeledImage = bwlabel (bw);
bw = ismember (labeledImage indexesToKeep);
次要情节(2、2、3);
imshow (bw);
轴(“上”,“图像”);
标题(“最后的面具”,“字形大小”、字形大小);
%的分歧点在每个乳房只是一个曲线。
为k = 1:长度(bpRows)
bw (bpRows (k), bpColumns (k)) = true;
结束
labeledImage = bwlabel (bw);
%发现左乳房曲线
年,xr] =找到(labeledImage = = 1);
%找到合适的胸部曲线
(yl、xl) =找到(labeledImage = = 2);
次要情节(2、2、4);
imshow (grayImage“边界”,“紧”);
持有所有
情节(xr,年,“r”。,“MarkerSize”14);
情节(xl,黄,“y”。,“MarkerSize”14);
%的中线
xMiddle =意味着([马克斯(xl)、min (xr)]);
参照线(xMiddle“颜色”,“米”,“线宽”4);
标题(的乳房轮廓叠加在原始图像的,“字形大小”、字形大小);
g = gcf;
g。WindowState =“最大化”;
% %坏配件常规。待办事项:修复它。
%公关= polyfit (xr年2);% / /适合2rd度聚
% pl = polyfit (xl yl 2);
% yy = linspace(1、大小(bw, 1), 50);
% xFitRight = linspace (min (xr), max (xr), 50);
% xFitLeft = linspace (min (xl), max (xl), 50);
% yFitRight = polyval(公关、xFitRight);
% yFitLeft = polyval(公关、xFitLeft);
%的阴谋(xFitRight yFitRight’。”、“线宽”,1);
%的阴谋(xFitLeft yFitLeft’。”、“线宽”,1);
流(“做运行% s.m \ n”,mfilename);