feat: cDNA微阵列图像处理作业 - Python实现
实现内容: - 网格划分:投影分析 + 自相关估周期 + 白顶帽去背景 + 质心提取 - 三种阈值分割:人工阈值、Otsu自动阈值、迭代阈值 - TV去噪(Chambolle投影算法) - 后处理:去小连通域 + 保留最大连通域 - 完整可视化:网格叠加、阈值对比、收敛曲线、分割结果 参考MATLAB代码:NewGridAndCV/demo_GriddingAndCV.m
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
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]
|
||||
Reference in New Issue
Block a user