Files
cDNA-image-processing/参考资料/NewGridAndCV/choice.m
T
Serendipity b8a8ff2bc6 feat: cDNA微阵列图像处理作业 - Python实现
实现内容:
- 网格划分:投影分析 + 自相关估周期 + 白顶帽去背景 + 质心提取
- 三种阈值分割:人工阈值、Otsu自动阈值、迭代阈值
- TV去噪(Chambolle投影算法)
- 后处理:去小连通域 + 保留最大连通域
- 完整可视化:网格叠加、阈值对比、收敛曲线、分割结果

参考MATLAB代码:NewGridAndCV/demo_GriddingAndCV.m
2026-05-06 19:41:26 +08:00

52 lines
930 B
Matlab

function U1=choice(u0,Daxiao)
L = bwlabel(u0,8);
%%提取物体属性
STATS = regionprops(L,'Area');
%%提取面积数组
area=[STATS.Area];
% [m_area,n_area]=size(area);
% num_big=0;
% for i=1:n_area
% if area(1,i)>100
% num_big=num_big+1;
% end
% end
%选取面积大的目标
area_num=area(area>Daxiao);
%计算大目标数量
Length_area_num=numel(area_num) ;
%设定数组,用来存储对于目标的标号
array=zeros(1,Length_area_num);
%将对于目标的编号存储在数字array中
% for k=1:Length_area_num
% % array(1,k)=find(area==area_num(1,k));
%
% end
num_big=1;
[m_area,n_area]=size(area);
for i=1:n_area
if area(1,i)>100
array(1,num_big)=i;
num_big=num_big+1;
end
end
L_new=L;
[m_L_new,n_L_new]=size(L_new);
for i=1:m_L_new
for j=1:n_L_new
for k1=1:Length_area_num
if (L_new(i,j)==array(1,k1))
L_new(i,j)=0;
end
end
end
end
U1=L_new;