feat: cDNA微阵列图像处理作业 - Python实现

实现内容:
- 网格划分:投影分析 + 自相关估周期 + 白顶帽去背景 + 质心提取
- 三种阈值分割:人工阈值、Otsu自动阈值、迭代阈值
- TV去噪(Chambolle投影算法)
- 后处理:去小连通域 + 保留最大连通域
- 完整可视化:网格叠加、阈值对比、收敛曲线、分割结果

参考MATLAB代码:NewGridAndCV/demo_GriddingAndCV.m
This commit is contained in:
2026-05-06 19:41:26 +08:00
commit b8a8ff2bc6
63 changed files with 3380 additions and 0 deletions
+51
View File
@@ -0,0 +1,51 @@
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;