feat: cDNA微阵列图像处理作业 - Python实现
实现内容: - 网格划分:投影分析 + 自相关估周期 + 白顶帽去背景 + 质心提取 - 三种阈值分割:人工阈值、Otsu自动阈值、迭代阈值 - TV去噪(Chambolle投影算法) - 后处理:去小连通域 + 保留最大连通域 - 完整可视化:网格叠加、阈值对比、收敛曲线、分割结果 参考MATLAB代码:NewGridAndCV/demo_GriddingAndCV.m
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
function indicator = checkstop(old,new,dt)
|
||||
% indicate whether we should performance further iteraions or stop
|
||||
|
||||
% Copyright (c) 2009,
|
||||
% Yue Wu @ ECE Department, Tufts University
|
||||
% All Rights Reserved
|
||||
|
||||
layer = size(new,3);
|
||||
|
||||
for i = 1:layer
|
||||
old_{i} = old(:,:,i);
|
||||
new_{i} = new(:,:,i);
|
||||
end
|
||||
|
||||
if layer
|
||||
ind = find(abs(new)<=.5);
|
||||
M = length(ind);
|
||||
Q = sum(abs(new(ind)-old(ind)))./M;
|
||||
if Q<=dt*.18^2
|
||||
indicator = 1;
|
||||
else
|
||||
indicator = 0;
|
||||
end
|
||||
else
|
||||
ind1 = find(abs(old_{1})<1);
|
||||
ind2 = find(abs(old_{2})<1);
|
||||
M1 = length(ind1);
|
||||
M2 = length(ind2);
|
||||
Q1 = sum(abs(new_{1}(ind1)-old_{1}(ind1)))./M1;
|
||||
Q2 = sum(abs(new_{2}(ind2)-old_{2}(ind2)))./M2;
|
||||
if Q1<=dt*.18^2 && Q2<=dt*.18^2
|
||||
indicator = 1;
|
||||
else
|
||||
indicator = 0;
|
||||
end
|
||||
end
|
||||
return
|
||||
Reference in New Issue
Block a user