b8a8ff2bc6
实现内容: - 网格划分:投影分析 + 自相关估周期 + 白顶帽去背景 + 质心提取 - 三种阈值分割:人工阈值、Otsu自动阈值、迭代阈值 - TV去噪(Chambolle投影算法) - 后处理:去小连通域 + 保留最大连通域 - 完整可视化:网格叠加、阈值对比、收敛曲线、分割结果 参考MATLAB代码:NewGridAndCV/demo_GriddingAndCV.m
33 lines
640 B
Matlab
33 lines
640 B
Matlab
function Lnew=choosemaxobj(L_old,night)
|
|
%%从二值图像里面利用4,8邻域提取出面积最大的物体,标记为二值图
|
|
|
|
%%标注
|
|
L = bwlabel(L_old,night);
|
|
|
|
%%提取物体属性
|
|
STATS = regionprops(L,'Area');
|
|
|
|
%%提取面积数组
|
|
area=[STATS.Area];
|
|
area_max=max(area);
|
|
|
|
if area_max>20 %设定20为最小的值,面积小于20的点,去掉
|
|
%%确定面积最大物体的编号
|
|
area_num=find(area==area_max);
|
|
|
|
%%逻辑判断,面积最大的物体保留
|
|
if(length(area_num)>1)
|
|
Lnew=(L==area_num(1,1));
|
|
else
|
|
Lnew=(L==area_num);
|
|
end
|
|
|
|
else
|
|
Lnew=0;
|
|
end
|
|
|
|
% LL = bwlabel(Lnew,8);
|
|
% %%提取物体属性
|
|
% STATSLnew = regionprops(LL,'Area');
|
|
% %%提取面积数组
|
|
% areanew=[STATSLnew.Area] |