【问题标题】:Segment image into windows in matlab在matlab中将图像分割成窗口
【发布时间】:2014-04-17 01:53:56
【问题描述】:

我正在使用以下决策树来检测图像中的 ROI:http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3097782/figure/F7/。第一部分使用 32x32 窗口使用下面显示的代码扫描整个图像。谁能告诉我如何计算这个窗口内像素的平均强度?谢谢

N = 32;
info = repmat(struct, ceil(size(M, 1) / N), ceil(size(M, 2) / N));
for row = 1:N:size(M, 1)%loop through each pixel in the image matrix
    for col = 1:N:size(M, 2)
        r = (row - 1) / N + 1;
        c = (col - 1) / N + 1;

        imgWindow = M(row:min(end,row+N-1), col:min(end,col+N-1));
        largest = max(imgWindow(:));
        [rLarg, cLarg] = find(imgWindow == largest, 1, 'first');

        window(r, c).largest = largest;
        window(r, c).row = rLarg + row - 1;
        window(r, c).col = cLarg + col - 1;
    end
end

【问题讨论】:

    标签: matlab image-processing


    【解决方案1】:

    mean 函数计算平均值

    average = mean(imgWindow(:));
    

    然后,您可以以与您已经为窗口最大值所做的类似的方式保存每个窗口平均值:

    window(r, c).average = average;
    

    【讨论】:

    • 谢谢。这不应该为每个窗口返回多个平均值吗?我只得到一个平均值。
    • 平均数是什么意思?此处编写的代码确实会返回窗口中所有像素的平均值,类似于max(imgWindow(:)) 返回窗口中所有像素的单个最大值的方式。
    • 好的,你能告诉我如何得到每个窗口的平均值吗?
    • 谢谢。虽然当我显示它时它仍然只返回一个平均值
    • 你在显示什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-11
    • 2012-11-13
    • 2023-03-06
    • 2017-04-20
    • 2017-11-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多