将大小为MxN的图像分段为大小为kxk的重叠块

时间:2017-06-20 17:49:18

标签: algorithm matlab image-processing image-segmentation

我想将大小为M×N的图像分割成大小为k×k的重叠块,以生成(M-k + 1)×(N-k + 1)个块。我必须找到所有提取/分段块的均值和方差。

它不仅是分段,它还包括循环内块的操作(均值和方差),我主要关心的是提高计算效率。

我在MATLAB中完成了以下编码:

A=imread('lena.jpg');
[M N]=size(A)
N=N/3
n=16;
m=16;
bl_mean=[];
bl_variance=[];
for i=1:M-m
    for j=1:N-n
        %[ii,jj]=ndgrid(n,m);
        bl=A(i:(i+m-1),j:(j+n-1));
        [bl_mean]=[bl_mean mean(mean(bl))];
        [bl_variance]=[bl_variance var(var(double(bl)))];
        B=sort(bl_mean);
        B1=sort(bl_variance);
    end
end

它适用于较小的图像,但对于较大的图像,它会长时间处理。

以快捷方式查找块的任何替代或正确方法?

0 个答案:

没有答案