用于图像分割的随机游走算法

时间:2016-04-13 12:31:27

标签: image-segmentation random-walk

任何人都可以建议使用matlab代码实现随机游走算法,用于图像分割,特别是CT图像。

1 个答案:

答案 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中的评论。