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

上传人:汽*** 文档编号:533028334 上传时间:2023-09-13 格式:DOC 页数:3 大小:134KB
返回 下载 相关 举报
用matlab对图片进行旋转(最近邻域法).doc_第1页
第1页 / 共3页
用matlab对图片进行旋转(最近邻域法).doc_第2页
第2页 / 共3页
用matlab对图片进行旋转(最近邻域法).doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《用matlab对图片进行旋转(最近邻域法).doc》由会员分享,可在线阅读,更多相关《用matlab对图片进行旋转(最近邻域法).doc(3页珍藏版)》请在金锄头文库上搜索。

1、%=用matlab对图片进行旋转(最近邻域法)clear; %此题是用最近邻域法实现图像旋转im1=imread(b.jpg); %读取打开文件b.jpgm,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;for i=1:row %先把图象填充成全黑 for j=1:col im2(i,j,:)=uint8(0); endend for i=1:m %把原图象像素点旋转后变为新图象点 for j=1:n xx=round(abs(i-m/2)*b-(j-n/2)

2、*a+row/2); yy=round(abs(i-m/2)*a+(j-n/2)*b+col/2); for k=1:3 im2(xx,yy,k)=im1(i,j,k); end endendtemp1=uint8(0);temp2=uint8(0);temp3=uint8(0);for i=1:row %把画面上的空点按照最近邻插值法填充 temp1=uint8(0); temp2=uint8(0); temp3=uint8(0); for j=1:col %找到最右的图象边界点 if (im2(i,j,:)=uint8(0) else kk=j; end end for j=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); 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个区域作图。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号