我想将大小为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
它适用于较小的图像,但对于较大的图像,它会长时间处理。
以快捷方式查找块的任何替代或正确方法?