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