欢迎来到天天文库
浏览记录
ID:33835127
大小:134.00 KB
页数:3页
时间:2019-03-01
《用matlab对图片进行旋转(最近邻域法)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、%======================用matlab对图片进行旋转(最近邻域法)clear;%此题是用最近邻域法实现图像旋转im1=imread('b.jpg');%读取打开文件b.jpg[m,n,p]=size(im1);%将图像旋转30度a=0.5;%a=sin30=0.5b=0.866; %b=cos30=0.866row=n*a+m*b;col=n*b+m*a;fori=1:row %先把图象填充成全黑 forj=1
2、:col im2(i,j,:)=uint8(0); endendfori=1:m %把原图象像素点旋转后变为新图象点 forj=1:n xx=round(abs((i-m/2)*b-(j-n/2)*a+row/2)); yy=round(abs((i-m/2)*a+(j-n/2)*b+col/2)); fork=1:3 im2(xx,yy,k
3、)=im1(i,j,k); end endendtemp1=uint8(0);temp2=uint8(0);temp3=uint8(0);fori=1:row %把画面上的空点按照最近邻插值法填充 temp1=uint8(0); temp2=uint8(0); temp3=uint8(0); forj=1:col %找到最
4、右的图象边界点 if(im2(i,j,:)==uint8(0)) else kk=j; end end forj=1:kk if(im2(i,j,:)==uint8(0)) im2(i,j,1)=temp1; im2(i,j,2)=temp2; im2(i,j,3)=temp3; else temp1=im2(i,j,1);
5、 temp2=im2(i,j,2); temp3=im2(i,j,3); end endend imshow(im1);figure;imwrite(im1,'5.jpg');%保存原图像imshow(im2);imwrite(im2,'6.jpg');%保存旋转后图像原图:旋转30度后:备注:m和n代表在一个图像窗口中显示m行n列个图像,后面的p代表现在选定第p个图像区域,即在第p个区域作图。
此文档下载收益归作者所有