下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验二 图像几何变换与插值一、实验目的巩固图像处理编程的步骤格式,理解数据插值及图像几何变换的原理,掌握图像几何变换的实现方法。二、实验内容1、 理解反向变换的实现思路2、 图像缩放及插值 Matlab取整命令:floor, ceil, round分别实验最近邻插值和双线性插值f=imread('lena.bmp');beishu=0.5;row,col=size(f);r1=round(row*beishu);c1=round(col*beishu);b=zeros(r1,c1); for i=1:r1 for j=1:c1 i1=round(i/beishu); j1=ro
2、und(j/beishu); if i1<1 i1=1; end if j1<1 j1=1; end b(i,j)=f(i1,j1); end endb=uint8(b);figure;imshow(f);figureimshow(b);3、 图像旋转及插值以图像中心为轴实现任意角度(逆时针为正)的图像旋转,分别实验两种插值算法f=imread('lena.bmp');B=imrotate(f,45,'nearest','crop');C=imrotate(f,45,'bilinear','crop')
3、;figure;subplot(121);imshow(f);title('原图像');subplot(122);imshow(B);title('最近邻插值');figure;subplot(121);imshow(f);title('原图像');subplot(122);imshow(C);title('双线性插值');%matlab练习程序(图像放大/缩小,最邻近插值)ccccl;w=0.6; %放大或缩小的宽度h=1.4; %放大或缩小的高度img=imread('Corner.png');imshow(i
4、mg);m n=size(img);imgn=zeros(h*m,w*n);rot=h 0 0;0 w 0;0 0 1; %变换矩阵x=h*u,y=w*vinv_rot=inv(rot);for x=1:h*m for y=1:w*n pix=x y 1*inv_rot; imgn(x,y)=img(round(pix(1),round(pix(2); endendfigure,imshow(uint8(imgn)%matlab练习程序(图像放大/缩小,双线性插值)cccm=1.8; %放大或缩小的高度n=2.3; %放大或缩小的宽度img=imread('lena.jpg')
5、;imshow(img);h w=size(img);imgn=zeros(h*m,w*n);rot=m 0 0;0 n 0;0 0 1; %变换矩阵for i=1:h*m for j=1:w*n pix=i j 1/rot; float_Y=pix(1)-floor(pix(1); float_X=pix(2)-floor(pix(2); if pix(1) < 1%边界处理 pix(1) = 1; end if pix(1) > h pix(1) = h; end if pix(2) < 1 pix(2) =1; end if pix(2) > w pix(2) =
6、w; end pix_up_left=floor(pix(1) floor(pix(2);%四个相邻的点 pix_up_right=floor(pix(1) ceil(pix(2); pix_down_left=ceil(pix(1) floor(pix(2); pix_down_right=ceil(pix(1) ceil(pix(2); value_up_left=(1-float_X)*(1-float_Y);%计算临近四个点的权重 value_up_right=float_X*(1-float_Y); value_down_left=(1-float_X)*float_Y; value
7、_down_right=float_X*float_Y;%按权重进行双线性插值 imgn(i,j)=value_up_left*img(pix_up_left(1),pix_up_left(2)+ . value_up_right*img(pix_up_right(1),pix_up_right(2)+ . value_down_left*img(pix_down_left(1),pix_down_left(2)+ . value_down_right*img(pix_down_right(1),pix_down_right(2); endendfigure,imshow(uint8(imgn
8、)%matlab练习程序(图像旋转,最邻近插值)ccccl;H=1; %索引pix中第一个元素,即高度W=2; %索引pix中第二个元素,即宽度jiaodu=45; %要旋转的角度,旋转方向为顺时针img=imread('Corner.png'); %这里v为原图像的高度,u为原图像的宽度imshow(img); %这里y为变换后图像的高度,x为变换后图像的宽度v u=size(img);theta=jiaodu/180*pi;rot=cos(theta) -sin(theta) 0;sin(theta) cos(theta) 0;0 0 1; inv_rot=inv(rot)
9、;pix1=1 1 1*rot; %变换后图像左上点的坐标pix2=1 u 1*rot; %变换后图像右上点的坐标pix3=v 1 1*rot; %变换后图像左下点的坐标pix4=v u 1*rot; %变换后图像右下点的坐标height=round(max(abs(pix1(H)-pix4(H)+0.5 abs(pix2(H)-pix3(H)+0.5); %变换后图像的高度width=round(max(abs(pix1(W)-pix4(W)+0.5 abs(pix2(W)-pix3(W)+0.5); %变换后图像的宽度imgn=zeros(height,width);delta_y=abs
10、(min(pix1(H) pix2(H) pix3(H) pix4(H); %取得y方向的负轴超出的偏移量delta_x=abs(min(pix1(W) pix2(W) pix3(W) pix4(W); %取得x方向的负轴超出的偏移量for y=1-delta_y:height-delta_y for x=1-delta_x:width-delta_x pix=y x 1*inv_rot; %用变换后图像的点的坐标去寻找原图像点的坐标, %否则有些变换后的图像的像素点无法完全填充 if pix(H)>=0.5 && pix(W)>=0.5 && pi
11、x(H)<=v && pix(W)<=u imgn(y+delta_y,x+delta_x)=img(round(pix(H),round(pix(W); end endendfigure,imshow(uint8(imgn)%matlab练习程序(图像旋转,双线性插值)cccjiaodu=45; %要旋转的角度,旋转方向为顺时针img=imread('lena.jpg'); %这里v为原图像的高度,u为原图像的宽度imshow(img); %这里y为变换后图像的高度,x为变换后图像的宽度h w=size(img);theta=jiaodu/180*
12、pi;rot=cos(theta) -sin(theta) 0;sin(theta) cos(theta) 0;0 0 1; pix1=1 1 1*rot; %变换后图像左上点的坐标pix2=1 w 1*rot; %变换后图像右上点的坐标pix3=h 1 1*rot; %变换后图像左下点的坐标pix4=h w 1*rot; %变换后图像右下点的坐标height=round(max(abs(pix1(1)-pix4(1)+0.5 abs(pix2(1)-pix3(1)+0.5); %变换后图像的高度width=round(max(abs(pix1(2)-pix4(2)+0.5 abs(pix2(
13、2)-pix3(2)+0.5); %变换后图像的宽度imgn=zeros(height,width);delta_y=abs(min(pix1(1) pix2(1) pix3(1) pix4(1); %取得y方向的负轴超出的偏移量delta_x=abs(min(pix1(2) pix2(2) pix3(2) pix4(2); %取得x方向的负轴超出的偏移量for i=1-delta_y:height-delta_y for j=1-delta_x:width-delta_x pix=i j 1/rot; %用变换后图像的点的坐标去寻找原图像点的坐标, %否则有些变换后的图像的像素点无法完全填充
14、 float_Y=pix(1)-floor(pix(1); float_X=pix(2)-floor(pix(2); if pix(1)>=1 && pix(2)>=1 && pix(1) <= h && pix(2) <= w pix_up_left=floor(pix(1) floor(pix(2); %四个相邻的点 pix_up_right=floor(pix(1) ceil(pix(2); pix_down_left=ceil(pix(1) floor(pix(2); pix_down_right=ceil(pix
15、(1) ceil(pix(2); value_up_left=(1-float_X)*(1-float_Y); %计算临近四个点的权重 value_up_right=float_X*(1-float_Y); value_down_left=(1-float_X)*float_Y; value_down_right=float_X*float_Y; imgn(i+delta_y,j+delta_x)=value_up_left*img(pix_up_left(1),pix_up_left(2)+ . value_up_right*img(pix_up_right(1),pix_up_right(
16、2)+ . value_down_left*img(pix_down_left(1),pix_down_left(2)+ . value_down_right*img(pix_down_right(1),pix_down_right(2); end endendfigure,imshow(uint8(imgn)%实验一 Matlab图像基本操作一、实验目的熟悉利用Matlab进行图像处理的基本操作,了解图像数据的存储形式及进行图像处理编程的步骤方法。二、实验内容1、 图像读写与显示重点函数:imread, imwrite, imshow2、 彩色图像灰度化计算公式:Gray = R*0.299 + G*0.587 + B*0.1143、 图像马赛克局部平均,改变窗口大小比较处理结果,如取2×2、4×4或更大尺寸的窗口4、 图像平移分别完成图像水平方向、竖直方向和两个方向的平移三、实验要求1、编写代码,完
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 辽阳职业技术学院《化工CAD制图》2023-2024学年第一学期期末试卷
- 五年级数学下册应用题-分数应用题
- 廊坊燕京职业技术学院《信息系统审计》2023-2024学年第一学期期末试卷
- 江西师范高等专科学校《新媒体网络营销划写作》2023-2024学年第一学期期末试卷
- 嘉应学院《奥尔夫音乐教学法》2023-2024学年第一学期期末试卷
- 湖州学院《传感器技术与应用》2023-2024学年第一学期期末试卷
- 湖南国防工业职业技术学院《电子学二》2023-2024学年第一学期期末试卷
- 红河卫生职业学院《传播学原理与技能》2023-2024学年第一学期期末试卷
- 淄博师范高等专科学校《现代数值仿真技术》2023-2024学年第一学期期末试卷
- 周口理工职业学院《热工材料基础》2023-2024学年第一学期期末试卷
- 2025年中国华能集团有限公司招聘笔试参考题库含答案解析
- 光伏安装施工合同范本
- 2025中考数学考点题型归纳(几何证明大题)
- 2024-2025学年度第一学期二年级数学寒假作业有答案(共20天)
- 2024年质量管理考核办法及实施细则(3篇)
- 广东省佛山市2023-2024学年高一上学期期末考试物理试题(含答案)
- 人教版九年级上册数学期末考试试卷及答案解析
- 公司转让协议书的模板8篇
- 2024年城市建设和环境提升重点工程项目计划表
- 医共体的数字化转型:某县域医共体整体规划建设方案
- 中国诗词线索题
评论
0/150
提交评论