我正在进行医学图像分割,我想将模糊连通性算法与图形切割相结合,其思路是将图像与模糊连通性分割为背景,前景将用作图形切割的接收器和源算法,这是我的代码,用于获取图形切割分割的种子坐标
FC=afc(S,K); %// Absolute FC
u=FC>thresh;
v=FC<thresh;
s=regionprops(u, 'PixelIdxList'); %// listes de pixels de l´objet
t=regionprops(v, 'PixelIdxList'); %// listes de pixels de l´arrière plan
[a,b]=size(s);
[w,c,z]= size(t)
for i=1:a
for j=1:b
[y,x] = ind2sub(size(u), s(i,j).PixelIdxList);
end
end
for k=1:w
for d=1:c
[y1,x1] = ind2sub(size(v), t(k,d).PixelIdxList);
end
end
对于图形切割,我使用了File Exchange
中的算法例如,我可以定义
Cs=-log([y x])
Ct=-log([y1 x1])
但问题是如何组合成本函数中的信息,如代码源的这一部分
u = double((Cs-Ct) >= 0);
ps = min(Cs, Ct);
pt = ps
它将超过矩阵大小
答案 0 :(得分:6)
我不熟悉您链接到的FEX的图表切割实现,
但是我将使用GCMex
matlab wrapper显示一个示例(正确披露:我实现了这个包装器)。
假设您的图片大小为size(S)
,其中n
像素为K
稀疏矩阵,大小为n
- by - {{ 1}} n
代表K(ii,jj)
和ii
像素的连接效果(相邻的jj
和ii
)。
此外,您有前景像素的掩码jj
和背景像素的掩码u
,可视为硬约束。
首先,使用v
和u
构建数据术语:
v
正如您可以看到数据术语Dc = 1000*[u(:), v(:)]; %// assign very large cost for picking FG pixel to label zero and vice versa
,是Dc
- by-2数组,其成本是将标签n
(0或1)分配给像素{{1存储在l
中。因此,对于前景中的像素(ii
为1),分配标签Dc(ii,l+1)
(即背景),您支付的费用为1000.背景中的像素也是如此(u(ii)
为1 )将它们分配给前台(即l=0
= 1)是成本1000.因此,数据项v(ii)
给种子像素(前景或背景)获得错误标签的成本非常高。
构建图形切割对象
l
请注意,在使用GCMex
的rder中,您需要按照安装说明进行编译并对其进行编译才能正常工作。