欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    图像的几何失真校正.docx

    • 资源ID:16994569       资源大小:900.16KB        全文页数:13页
    • 资源格式: DOCX        下载积分:6金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要6金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    图像的几何失真校正.docx

    1、图像的几何失真校正 数字图像处理实验八:图像的几何失真校正一、实验目的1. 熟练掌握MATLAB图像处理工具箱中的imresize函数与imrotate函数。2. 根据自己编写的程序,选定图像进行放大或缩小,进一步理解图像缩小、放大与旋转操作的原理。二、实验主要仪器设备1. 微型计算机:Intel Pentium及更高。2. MATLAB软件(含图像处理工具箱)。三、实验原理1. imresize函数imrersize函数使用由参数method指定的插值运算来改变图像的大小。method的几种可选值: nearest(默认值)最近邻插值 bilinear双线性插值 bicubic双三次插值B

    2、= imresize(A,m)表示把图像A放大m倍B = imresize(.,method,h)中的h可以是任意一个FIR滤波器(h通常由函数ftrans2、fwind1、fwind2、或fsamp2等生成的二维FIR滤波器)。2. imrotate函数函数功能:对进行旋转操作。在matlab命令窗口中键入help imrotate 或 doc imrotate或lookfor imrotate可以获得该函数帮助信息。 调用格式: B = imrotate(A,angle) 将图像A(图像的数据矩阵)绕图像的中心点旋转angle度, 正数表示逆时针旋转, 负数表示顺时针旋转。返回旋转后的图像

    3、矩阵。 以这种格式调用该函数, 该函数默认采用最近邻线性插值(Nearest-neighbor interpolation)。旋转后的图像超出的部分填充0(黑色)。 B = imrotate(A,angle,method) 使用method参数可以改变插值算法,method参数可以为下面这三个值: nearest:最邻近线性插值(Nearest-neighbor interpolation) bilinear: 双线性插值(Bilinear interpolation) bicubic: (或叫做双立方插值)(Bicubic interpolation) B = imrotate(A,angl

    4、e,method,bbox) bbox参数用于指定输出图像属性: crop: 通过对旋转后的图像B进行裁剪, 保持旋转后输出图像B的尺寸和输入图像A的尺寸一样。 loose: 使输出图像足够大, 以保证旋转后超出范围的像素值没有丢失。 一般上这种格式产生的图像的尺寸都要大于源图像的尺寸。3. 最近邻插值算法最简单的插值法是最近邻插值法,也叫零阶插值法。即选择离它所映射到的位置最近的输入像素的灰度值为插值结果。对二维图像,是取待测样点周围4 个相邻像素点中距离最近1 个相邻点的灰度值作为待测样点的像素值。若几何变换后输出图像上坐标为(x,y)的对应位置为(m,n)。4. 双线性插值算法双线性插值

    5、又叫一阶插值法,它要经过三次插值才能获得最终结果,是对最近邻插值法的一种改进,先对两水平方向进行一阶线性插值,然后再在垂直方向上进行一阶线性插值。插值算法所应用的领域较多,对图像进行缩放处理是比较典型的应用,由于图像像素的灰度值是离散的, 因此一般的处理方法是对原来在整数点坐标上的像素值进行插值生成连续的曲面, 然后在插值曲面上重新采样以获得缩放图像像素的灰度值。缩放处理从输出图像出发,采用逆向映射方法,即在输出图像中找到与之对应的输入图像中的某个或某几个像素,采用这种方法能够保证输出图像中的每个像素都有一个确定值,否则,如果从输入图像出发来推算输出图像,输出图像的像素点可能出现无灰度值的情况

    6、。因为,对图像进行缩放处理时输出图像像素和输入图像之间可能不再存在着一一对应关系。四、实验内容1. 自选图像练习使用MATLAB图像处理工具箱中的imresize函数与imrotate函数。2. 自选图片,按隔行(列)采样的方法,编写缩小1/4的程序。 3. 编写放大长宽各1.5倍的程序,分别采用最小近邻插值法与双线性插值法。五、实验结果与分析1. imresize函数与imrotate函数的使用选定图片football_iverse.jpg,调用函数imresize与imrotate(详见程序附录一),得到如下结果(如下图1所示):图 1 调用函数imresize与imrotate运行结果截

    7、图2. 自选图片,按隔行(列)采样的方法,编写缩小1/4的程序。本次选定图片cameraman.tif(256*256),先隔行抽样,图像大小变为128*256(缩小为原来的1/2),再隔列取样,图像大小由128*256再变为128*128(缩小为原来的1/4)。根据上述思路,我们编写相应的MATLAB程序(具体见附录二),运行后结果如下(见下图2所示)。图 2 图像采样结果3. 编写放大长宽各1.5倍的程序,分别采用最小近邻插值法与双线性插值法。(1)最小近邻插值法根据前面提到的最小近邻插值法的原理,我们将扩大的图像的像素值反映射回原来的图像,找出对应的像素点(可能为分数点),将对应分数点上

    8、的像素值填充到扩大的图像中。确定分数点的灰度值:从分数点四周的四个整数点中,选择距离分数点最近的整数点的值作为分数点的灰度值。由上编写相应的MATLAB程序(详见附录三),运行后所得结果如下(如下图3所示):图 3 最小近邻插值结果(放大后图像出现了模糊的“马赛克”现象)(2)双线性插值法依据前面所述的双线性插值法的原理,我们将扩大的图像的像素值反映射回原来的图像,找出对应的像素点(可能为分数点),将对应分数点上的像素值填充到扩大的图像中。确定分数点的灰度值:用分数点周围4个邻点的灰度值加权内插作为灰度校正值。根据上述思路,编写相应的MATLAB程序(详见附录四),运行后所得结果如下(如下图4

    9、所示):图 4 双线性插值法处理后的结果4. 结果分析做完上述实验,我们通过分析对比,得到如下结论:1)MATLAB图像处理工具箱中的imresize函数和imrotate函数可以较为方便地对图像进行放大、缩小、旋转等多种处理操作。2)图像经过几何位置校正后,在校正空间中各像素点的灰度值等于被校正图像对应点的灰度值,而某些像素点可能分布不均匀,不会恰好落在坐标点上。最近邻点法和双线性插值法可以很好的解决非整数点灰度值的校正。3)与最近邻点法相比,双线性插值法几何校正灰度是连续的(与imresize函数结果比较接近),但计算量较大,并且图像轮廓也会较为模糊,会出现比最小近邻插值法更强的“马赛克”

    10、效应。附录:附录一:%调用MATLAB图像处理工具箱中的imresize函数和imrotate函数对图像进行缩小、放大、%旋转变换clc,clear allI=imread(football_iverse.jpg);figure,imshow(I);title(原始图像);J=imresize(I,0.5);P=imresize(I,1.5);figure,imshow(J);title(将原图像缩小0.5倍);figure,imshow(P);title(将原图像放大1.5倍);xlabel(观察发现:图像出现了马赛克现象);Q=imrotate(I,45);figure,imshow(Q)

    11、;title(逆时针旋转45度后的图像);附录二:%对图像进行隔行隔列采样,把原图像缩小为原图像的1/4clc,clear allI=imread(cameraman.tif);s=size(I);J=zeros(s(1)/2,s(2);%隔行采样for i=1:s(1)/2 for j=1:s(2) if mod(i,2)=0 J(i,j)=I(2*(i-1)+1,j); else J(i,j)=I(2*i-1,j); end endend%隔列采样T=zeros(s(1)/2,s(2)/2);for i=1:s(1)/2 for j=1:s(2)/2 if mod(j,2)=0 T(i,j

    12、)=J(i,2*(j-1)+1); else T(i,j)=J(i,2*j-1); end endendfigure,imshow(uint8(I);title(原始图像);figure,imshow(uint8(J);title(隔行采样后的结果);figure,imshow(uint8(T);title(再隔列采样后的结果);附录三:%最小近邻插值法clc,clear allI=imread(tire.tif);s=size(I);m=1.5*s(1);n=1.5*s(2);J=zeros(m,n);for i=1:m for j=1:n J(i,j)=I(round(i/1.5),rou

    13、nd(j/1.5); endendfigure,imshow(I);title(原始图像);figure,imshow(uint8(J);title(最小近邻插值后的图像);xlabel(长和宽各放大为原来的1.5倍);附录四:%双线性插值法clc,clear allI=imread(cameraman.tif);s=size(I);m=1.5*s(1);n=1.5*s(2);J=zeros(m,n);for i=1:m-1 for j=1:n-1 p=abs(i/1.5-round(i/1.5); q=abs(j/1.5-round(j/1.5); J(i,j)=(1-p)*(1-q)*I(round(i/1.5),round(j/1.5)+. p*(1-q)*I(round(i/1.5),round(j/1.5)+. (1-p)*q*I(round(i/1.5),round(j/1.5)+1)+. p*q*I(round(i/1.5),round(j/1.5)+1); endendfigure,imshow(I);title(原始图像);figure,imshow(uint8(J);title(双线性插值法扩大后的图像);xlabel(图像中出现了模糊的马赛克现象);


    注意事项

    本文(图像的几何失真校正.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开