a 旋转前 b 旋转后 图10 图像旋转前、后的显示效果比较
五、实验报告要求:
1、 说明利用MATLAB图像处理工具箱进行图像的加、减、乘、除处理的方法; 2、 (作业)不调用函数,自行编写代码实现二维图像的放大与旋转并记录结果图像。 提交:
① 放大(基于像素放大原理)
A=imread('C:\\Documents and Settings\\Administrator\\桌面\\matlab\\logo.tif') B=zeros(320,320) x=1.2
>> for i=1:1:round(x*107); for j=1:1:round(x*122);
B(i,j)=A(round(i/x),round(j/x)); end end
>> imshow(B)
② 旋转
A=imread('C:\\Documents and Settings\\Administrator\\桌面\\matlab\\logo.tif') y=pi/6%角度
a=zeros(107,122)%矩阵i for i=1:1:107; for j=1:1:122; a(i,j)=i;
end end
aa=zeros(107,122)%i` for i=1:1:107; for j=1:1:122;
aa(i,j)=round(i*cos(y)-j*sin(y)); end end
aa=aa+61%调整
b=zeros(107,122)%矩阵j for i=1:1:107; for j=1:1:122; b(i,j)=j; end end
bb=zeros(107,122)%j` for i=1:1:107; for j=1:1:122;
bb(i,j)=round(i*sin(y)+j*cos(y)); end end
G=zeros(153,159)%扩展画布 for i=1:1:107; for j=1:1:122; m=aa(i,j); n=bb(i,j);
G(m,n)=A(i,j); end end
%去空穴
>> for m=2:1:152; for n=2:1:158; if(G(m,n)==0)
G(m,n)=(G(m-1,n)+G(m+1,n)+G(m,n-1)+G(m,n+1))/4; end
end end
>> figure,imshow(G)
%写入:
>> imwrite(G,'C:\\Documents and Settings\\Administrator\\桌面\\matlab\\g','tif') imshow('C:\\Documents and Settings\\Administrator\\桌面\\matlab\\g.tif')