matlab图形分块并求方差 并找出方差最大的块

 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});%输出最大的块

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值