任何人都可以建议使用matlab代码实现随机游走算法,用于图像分割,特别是CT图像。
答案 0 :(得分:0)
我建议您查看Leo Grady的图形分析工具箱以及使用随机游走的相应插件进行图像分割,请参阅here。下载Graph Analysis Toolbox和Random Walker代码,并按如下方式保存文件:
praphAnalysisToolbox/
README.txt
random_walker_example.m
random_walker.bmp
axial_CT_slice.bmp
在您的路径中添加graphAnalysisToolbox
以便能够调用演示,即ranomd_walker_example.m
。演示应该分割提供的图像。在您的情况下,您可能需要根据应用程序和图像设置不同的种子。
例如,种子可以像超像素一样放置:
% Read image into the variable image ...
img = im2double(image);
[height, width, channels] = size(img);
seeds = [];
seed_labels = [];
label = 1;
i = floor(region_height/2);
while i < height
j = floor(region_width/2);
while j < width
seeds = [seeds, sub2ind([height, width], i, j)];
seed_labels = [seed_labels, label];
label = label + 1;
j = j + region_width;
end;
i = i + region_height;
end;
%Apply the random walker algorithms
[labels, ~] = random_walker(img, seeds, seed_labels, beta);
有关详细信息,请参阅random_walker.m
中的评论。