假设I是图像矩阵(二维的,黑白图像)
I(i-7:i,j-7:j)即为以I(i-7,j-7)为第一个元素的8*8矩阵。
再利用for循环就可以把i分成8*8的像素块。
<hr>接触matlab不到一年,代码有很多不完善的地方,不要盲信。
相关代码如下:
I=imread('test.bmp');%先把图像补成行数和列数均为8的倍数的矩阵[m,n]=size(I);%求出图像矩阵的大小m2=m;n2=n;size_pic=[m2 n2];m1=8-mod(m,8);n1=8-mod(n,8);I_m=(zeros(m1,n));I=[I;I_m];%将行数补成8的整数倍I_n=zeros(m+m1,n1);I=[I I_n];%将列数补成8的整数倍%将矩阵分成8*8的子矩阵,并存入subim里[m,n]=size(I);%求出补全后图像矩阵的大小num=1;for i=8:8:m for j=8:8:n subim(:,:,num)=int16(I(i-7:i,j-7:j)); num=num+1; endend
|