求一程序Matlab对图像划分为4*4的子块,然后求取平均灰度值,再利用平均灰度值进行分类。

求一程序Matlab对图像划分为4*4的子块,然后求取平均灰度值,再利用平均灰度值进行分类。,第1张

I=imread('D:\matlab71\toolbox\images\imdemos\cameramantif');

[M,N]=size(I);

for ii=1:2

for jj=1:2

ima{ii,jj}=I((ii-1)N/2+1:iiN/2,(jj-1)N/2+1:jjN/2);%%对图像进行分块,图像大小256256

end

end

m1=[mean2(ima{1,1}) mean2(ima{1,2}) mean2(ima{2,1}) mean2(ima{2,2})];%%计算各个子块的均值

ima{1,1}=ima{1,1};ima{1,2}=ima{1,2};ima{1,3}=ima{2,1};ima{1,4}=ima{2,2};

for k=1:4

a=ima{1,k};

[m,n]=size(a);

I1_1=zeros(N/2,N/2);I1_2=zeros(N/2,N/2);

I2_1=zeros(N/2,N/2);I2_2=zeros(N/2,N/2);

for i=1:m

for j=1:n

if a(i,j)>m1(k)

I1_1(i,j)=a(i,j);%%子块大于均值的值

else

I1_2(i,j)=a(i,j);%%子块小于均值的值

end

end

end

I1_11=I1_1(I1_1~=0);I1_22=I1_2(I1_2~=0);%%去掉其中的零元素

m11=mean(I1_11);m12=mean(I1_22);%%计算2类元素的均值

for i=1:m

for j=1:n

if I1_1(i,j)>m11

I2_1(i,j)=I1_1(i,j);

end

if I1_2(i,j)>m12

I2_2(i,j)=I1_2(i,j);%%提取各个子块中大于均值的像素值

end

end

end

ima_1{1,k}=I2_1+I2_2;%%将子块中大于各个均值的像素值合并

end

I1=[ima_1{1,1} ima_1{1,2};

ima_1{1,3} ima_1{1,4}];

figure,imshow(uint8(I1));

matlab用两个百分号分块后没有显示分块效果是因为网络连接出现了问题导致网络数据和matlab之间的当前页面没有实时进行更新,所以出现了matlab用两个百分号分块后没有显示分块效果的情况。

matlab中分块对角矩阵表示矩阵的位置方法:

1、输入矩阵时要以中括号为其标识符号,矩阵的所有元素必须都在括号内。

2、矩阵同行元素之间由空格(个数不限)或逗号分隔,行与行之间用分号或回车键分隔。

3、选择角矩阵,右键点击中分块,即可表示出矩阵的位置。

以上就是关于求一程序Matlab对图像划分为4*4的子块,然后求取平均灰度值,再利用平均灰度值进行分类。全部的内容,包括:求一程序Matlab对图像划分为4*4的子块,然后求取平均灰度值,再利用平均灰度值进行分类。、matlab用两个百分号分块后没有显示分块效果、matlab中分块对角矩阵如何表示矩阵的位置等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9330849.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存