用matlab对图片进行旋转(最近邻域法)

用matlab对图片进行旋转(最近邻域法)

ID:14150841

大小:134.00 KB

页数:3页

时间:2018-07-26

用matlab对图片进行旋转(最近邻域法)_第1页
用matlab对图片进行旋转(最近邻域法)_第2页
用matlab对图片进行旋转(最近邻域法)_第3页
资源描述:

《用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:col       im2(i,j,:)=uint8(0);   

2、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)=im1(i,j,k);       end   endendtemp1=uint8(0);temp2=uint8(0);temp3=

3、uint8(0);fori=1:row                                       %把画面上的空点按照最近邻插值法填充   temp1=uint8(0);   temp2=uint8(0);   temp3=uint8(0);   forj=1:col                                   %找到最右的图象边界点       if(im2(i,j,:)==uint8(0))       else           kk=j;       end   end   forj=1:kk       if

4、(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);           temp2=im2(i,j,2);           temp3=im2(i,j,3);       end   endend       imshow(im1);figure;imwrite(im1,'5.jpg');%保存原图像imshow(im2)

5、;imwrite(im2,'6.jpg');%保存旋转后图像原图:旋转30度后:备注:m和n代表在一个图像窗口中显示m行n列个图像,后面的p代表现在选定第p个图像区域,即在第p个区域作图。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。