A = imread('cameraman.tif');
>> [m,n]=size(A);%m为横向像素数(宽度),n为纵向像素数(高度)
>> max_r = 16;%横向分成16份
>> max_c = 16;%纵向分成16份
>> w = m/max_r;%每一份的宽度
>> h = n/max_c;%每一份的高度
>> B = cell(max_c,max_r);%定义一个max_c行、max_r列的cell类型数组
>> for row = 1:max_r
for col = 1:max_c
B(col,row)={A((row-1)*h+1:row*h,(col-1)*w+1:col*w)};
end
end%循环赋值for i=1:max_r*max_c
subplot(16,16,i);imshow(B{i});
end%输出for i=1:max_r*max_c
B{i}=double(B{i});
end%数据类型转换
>> C = cell(max_r,max_c);
>> for i=i:max_r*max_c
C{i}=var(B{i}(:));
end%求B各块方差 放入C中对应位置
>> sum = 0;
>> for i=1:max_r*max_c
sum = sum+C{i};
end%求方差和
>> ave = sum/(max_r*max_c);%求方差均值
>> max = C{1};
>> for i=1:max_r*max_c
if(C{i}>max) max = C{i};
end
end%找出最大的
>> for i=1:max_r*max_c
if C{i}==max p=i;
end
end
>> figure;imshow(B{p});%输出最大的块