收藏 分享(赏)

matlab图像双线性插值,最近邻插值与几何变换.doc

上传人:buyk185 文档编号:4386963 上传时间:2018-12-26 格式:DOC 页数:6 大小:1.33MB
下载 相关 举报
matlab图像双线性插值,最近邻插值与几何变换.doc_第1页
第1页 / 共6页
matlab图像双线性插值,最近邻插值与几何变换.doc_第2页
第2页 / 共6页
matlab图像双线性插值,最近邻插值与几何变换.doc_第3页
第3页 / 共6页
matlab图像双线性插值,最近邻插值与几何变换.doc_第4页
第4页 / 共6页
matlab图像双线性插值,最近邻插值与几何变换.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

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:r1for j=1:c1i1=round(i/beishu);j1=round(j/beishu)

2、;if i1 hpix(1) = h;endif pix(2) wpix(2) =w;endpix_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

3、_down_left=(1-float_X)*float_Y;value_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)

4、; endendfigure,imshow(uint8(imgn)%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) co

5、s(theta) 0;0 0 1; inv_rot=inv(rot);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); %变换后图像的宽度im

6、gn=zeros(height,width);delta_y=abs(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_yfor x=1-delta_x:width-delta_xpix=y x 1*inv_rot; %用变换后图像的点的坐标去寻找原图像点的坐标, %否则有些变换后的图像的像素点无法完全填充if pix(H)=0.5 %四个相邻的点p

7、ix_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_down_right=float_X*float_Y;imgn(i+delta_y,j+delta_x)=valu

8、e_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);end endendfigure,imshow(uint8(imgn)%实验一 Matlab 图像基本操作一、实验目的熟悉利用 Matlab 进行图像处理的基本操作,了解图像数

9、据的存储形式及进行图像处理编程的步骤方法。二、实验内容1、 图像读写与显示重点函数:imread, imwrite, imshow2、 彩色图像灰度化计算公式:Gray = R*0.299 + G*0.587 + B*0.1143、 图像马赛克局部平均,改变窗口大小比较处理结果,如取 22、44 或更大尺寸的窗口4、 图像平移分别完成图像水平方向、竖直方向和两个方向的平移三、实验要求1、编写代码,完成各项实验内容2、总结实验中遇到问题及解决方案,书写实验报告实验二 图像几何变换与插值一、实验目的巩固图像处理编程的步骤格式,理解数据插值及图像几何变换的原理,掌握图像几何变换的实现方法。二、实验内容4、 理解反向变换的实现思路5、 图像缩放及插值Matlab 取整命令:floor, ceil, round分别实验最近邻插值和双线性插值6、 图像旋转及插值以图像中心为轴实现任意角度(逆时针为正)的图像旋转,分别实验两种插值算法三、实验要求1、编写代码,完成各项实验内容2、总结实验中遇到问题及解决方案,书写实验报告

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 中等教育 > 职业教育

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报