数字图像插值算法分析与实现.doc_第1页
数字图像插值算法分析与实现.doc_第2页
数字图像插值算法分析与实现.doc_第3页
数字图像插值算法分析与实现.doc_第4页
数字图像插值算法分析与实现.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一问题的叙述插值是一种最基本、最常用的几何运算。尤其随着多媒体技术的发展以及大屏幕的图像显示,以及生物医学领域的发展,图像放大的重要性也越来越明显。它不仅应用广泛, 而且插值的精度直接影响最终的图像处理结果,在图像处理软件中对图像进行缩放时,插值算法的好坏直接关系到图像的失真程序, 插值函数的设计是插值算法的核心问题。常采用三种插值算法: 最近邻点插值、双线性插值和双三次插值, 其中双三次插值的效果最好, 而且这一结论也得到了普遍的公认。本文对该三种算法进行了分析并通过matlab编程实现了算法。二二维图像插值技术 21 最邻近插值法最邻近插值又称为像素重复放大法。它是一种最简单也是最原始的图像插值放大,它的基本原理是用原始像素直接对插值点像素用原始像素填充。最近邻点插值又称零阶插值, 它输出的像素值等于距离它映射到的位置最近的输入像素值。对于二维图像, 该法是取待采样点周围4 个相邻像素点中距离最近的1 个邻点的灰度值作为该点的灰度值。插值公式: (1)其中i、j均为非负整数, u、v 为0,1)区间的浮点数,一般可取0.5, f(i,j)表示源图像(i,j)处的的像素值。2.2双线性插值法二元函数的线性插值方法是一元函数线性插值方法的直接推广,将一维空间中的线段推广为二维空间中的矩形,由此产生二维线性插值。已知平面上一矩形域内四个定点P1,P2,P3,P4处的函数值为:, , 令 , 由此构造基函数: , , 所以有差值函数为 (2)2.3 双三次差值法对于灰度变化复杂的图像,不能简单的采用线性插值。可以采用多项式插值技术对数据点做多项式插值,不仅考虑到四个直接邻点灰度值的影响, 还考虑到各邻点间灰度值变化率的影响, 利用了待采样点周围更大邻域内像素的灰度值作三次插值。多项式插值如下:。需用n+1个数据点来建立方程组,求出系数的值。用公式表达为: (4)定义 f(i+u,j+v) = A * B * C 三算法实现:3.1 最邻近插值法:clc;clear;%function y=resize(a,K)%I:输入图像%K:缩放倍数%type:1表示最邻近法,2表示双极性插值法%画出缩放后图像并返回其灰度值%I=imread(girl.bmp);%读入图像I=rgb2gray(I);K=3;m,n=size(I);m1=m*K;n1=n*K;% for i=1:m1for j=1:n1tic %计算插值所用的时间u=round(i/K); %取最邻近值 v=round(j/K);%if u=0 %避免取近似值时超过图像的边界 u=1;endif v=m1 u=m1;endif v=n1 v=n1;end%b(i,j)=I(u,v); %为新的图像赋值endendtocimshow(b);title(缩放后图像);3.2 双线性插值关键部分程序:%双线性插值function M=s1(x,y,nrows,ncols,K,I)% K表示放大倍数width = K * nrows; height = K * ncols;widthScale = nrows/width;heightScale = ncols/height;% xx ,yy 表示当前像素点在源图像中的坐标,x,y表示在插值图像中的坐标xx = x * widthScale; yy = y * heightScale;if (xx=double(uint16(xx) & (yy=double(uint16(yy) %如果xx,yy为整数,则将像素点在原图中的值I(x,y)直接赋给J(x,y) M = I(int16(xx),int16(yy);else % 如果a,b不是整数,则进行双线性插值 a = double(uint16(xx); % xx,yy取最邻近的整数 b = double(uint16(yy); if a=0 % 避免取整后超过图像大小 a=1; end if b=nrows a=nrows-1; end if b=ncols b=ncols-1; end x11 = double(I(a,b); % x11 - I(a,b) x12 = double(I(a,b+1); % x12 - I(a,b+1) x21 = double(I(a+1,b); % x21 - I(a+1,b) x22 = double(I(a+1,b+1); % x22 - I(a+1,b+1) M = uint8( (b+1-yy) * (xx-a)*x21 + (a+1-xx)*x11) + (yy-b) * (xx-a)*x22 +(a+1-xx) * x12) ); %利用插值公式计算J(x,y)的值End3.3 双三次插值关键部分程序:由于图像的边界点不能进行双三次差值,因此,需要对图像进行分步插值,当插值点对应图像边缘点时则进行双线性插值,否则进行双三次差值。关键部分程序如下:%双三次插值function T=s2(x,y,nrows,ncols,K,I)% K表示放大倍数width = K * nrows; height = K * ncols;widthScale = nrows/width;heightScale = ncols/height;% xx ,yy 表示当前像素点在源图像中的坐标,x,y表示在插值图像中的坐标xx = x * widthScale; yy = y * heightScale; a = double(uint16(xx); % 取xx,yy点的最邻近值 b = double(uint16(yy); x11 = double(I(a-1,b-1); % x11 - I(a-1,b-1) % 取最近的16个点的值 x12 = double(I(a-1,b); % x12 - I(a-1,b) x13 = double(I(a-1,b+1); % x21 - I(a-1,b+1) x14 = double(I(a-1,b+2); % x22 - I(a-1,b+2) x21 = double(I(a,b-1); % x11 - I(a,b-1) x22 = double(I(a,b); % x12 - I(a,b) x23 = double(I(a,b+1); % x21 - I(a,b+1) x24 = double(I(a,b+2); % x22 - I(a,b+2) x31 = double(I(a+1,b-1); % x11 - I(a+1,b-1) x32 = double(I(a+1,b); % x12 - I(a+1,b) x33 = double(I(a+1,b+1); % x21 - I(a+1,b+1) x34 = double(I(a+1,b+2); % x22 - I(a+1,b+2) x41 = double(I(a+2,b-1); % x11 - I(a+2,b-1) x42 = double(I(a+2,b); % x12 - I(a+2,b) x43 = double(I(a+2,b+1); % x21 - I(a+2,b+1) x44 = double(I(a+2,b+2); % x22 - I(a+2,b+2) A=(b-1)3,(b-1)2,b-1,1;b3,b2,b,1;(b+1)3,(b+1)2,b+1,1;(b+2)3,(b+2)2,b+2,1; %利用插值公式计算 D1=x11;x12;x13;x14; P=AD1; F1=P(1)*yy3+P(2)*yy2+P(3)*yy+P(4); D2=x21;x22;x23;x24; P=AD2; F2=P(1)*yy3+P(2)*yy2+P(3)*yy+P(4); D3=x31;x32;x33;x34; P=AD3; F3=P(1)*yy3+P(2)*yy2+P(3)*yy+P(4); D4=x41;x42;x43;x44; P=AD4; F4=P(1)*yy3+P(2)*yy2+P(3)*yy+P(4); A=(a-1)3,(a-1)2,a-1,1;a3,a2,a,1;(a+1)3,(a+1)2,a+1,1;(a+2)3,(a+2)2,a+2,1; D=F1;F2;F3;F4; P=AD; T = P(1)*xx3+P(2)*xx2+P(3)*xx+P(4); %计算出J(x,y)的值,这里用T表示。 end四实验结果:本程序可以实现从0.2到5倍的放大,为了便于观察和比较不同的插值算法对图像插值的效果,本文将原图于放大三倍的图像进行对比:图(1) 原图图(2)最邻近插值法图(3)双线性插值法图(4)双三次差值五结论 最近邻点插值的优点是算法简单,运算速度快。但由于仅用对该采样点影响最大的(即最近的)像素的灰度值作为该点的值,而没有考虑其他相邻像素的影响(相关性), 其缺点是重新采样后的图像灰度值有明显的不连续性,插值质量差,会在图像中产生人为加工的痕迹, 图像易产生马赛克和边缘锯齿等。与最近邻点插值相比, 双线性插值由于考虑了待采样点周围四个直接邻点对待采样点的影响, 因此基本克服了前者灰度不连续的缺点, 但其代价是计算量有所增大。但进一步看, 由于此方法仅考虑四个直接邻点灰度值的影响,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论