如何检测乳房底部边界通过使用一个二阶多项式曲线拟合的算法分割/分离左和右乳房吗? ?

2视图(30天)
你好,
我想分开每个布雷斯特左和右。下侧象限应该把它完全不管乳房大小,因为不同的算法应该是乳房和乳房的大小。我的目的和愿望是分离和双边不对称rigt乳房自动分析。
步骤我的愿望:
  • 自乳房边界将抛物线形状,一个二阶多项式拟合的算法将用于检测乳房底部边界。抛物曲线第一次安装每个对象,然后用最大的两条曲线确定系数较低的候选人乳房边界。如果x坐标之间的区别最低的两条曲线的峰值小于20和坐标的差异大于250,都选为低乳房边界(x′< 20和等号左边′> 250)。否则,算法搜索其他曲线。
  • 下一步是决定乳房的顶端。该地区最高的身体左和右边缘的曲率将用于估计腋下的位置。通常,可怜的边缘检测表明凹度的主要点身体其它部位的边缘,和最大凹度的点在图像被发现比预计更低或更高。此外,选择安装的抛物线作为降低乳房边界可能导致作物的地区乳腺癌和引起信息丢失,因为穷人的降低乳房边缘在许多情况下。
你可以看到下面我所想要的图片。
检测4曲线 / /检测到4曲线的乳房
你能帮助我关于我的问题吗?我期待听到你。谢谢。
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);

答案(2)

图像分析
图像分析 2021年8月4日
他们看起来都像这样,明亮的区域下的乳房吗?如果是这样,我尝试的是首先找到明亮的区域,然后找到它的上限。然后把它分成两半,适合二次边界。然后找到列的二次方程式论交叉发现乳房之间的分离线。精明的也许会工作,我还没有尝试过,因为我的MATLAB r2021a本身就是忙着升级,更新# 4(检查贝尔图标右上角的MATLAB,看看你将更新)。

图像分析
图像分析 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);
3评论
图像分析
图像分析 2021年8月5日
编辑:图像分析 2021年8月5日
最初对的,但你没有为我们提供其他图片。所以你要去适应它。基本上我开始与你的精明的边缘图像,而这正是它似乎打破了这两个图片,你没有一个好的开始边缘图像。所以你需要工作,更多的部分图像就像你在第一个例子。
希望这会给你一个想法与图像处理一些事情你可以做,足以让你接受或投票给这个答案。不幸的是我不能为你做这些所有可能的图像。如果我让它为你工作 图片,然后另一个图像将会不工作,它需要适应。我不能与你共度时间旅行,但祝你好运。

登录置评。

下载188bet金宝搏


释放

R2021a

社区寻宝

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

开始狩猎!