双线性插值的图像缩放算法的研究与实现

双线性插值的图像缩放算法的研究与实现

ID:18301182

大小:81.00 KB

页数:5页

时间:2018-09-16

双线性插值的图像缩放算法的研究与实现_第1页
双线性插值的图像缩放算法的研究与实现_第2页
双线性插值的图像缩放算法的研究与实现_第3页
双线性插值的图像缩放算法的研究与实现_第4页
双线性插值的图像缩放算法的研究与实现_第5页
资源描述:

《双线性插值的图像缩放算法的研究与实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、双线性插值的图像缩放算法的研究与实现分类:VC2010-08-2219:56832人阅读评论(2)收藏举报算法float图像处理mfc.net一、引言数字图像处理的对象因其涉及到社会的各个领域,倍受到越来越多的关注,而图像缩放作为数字图像处理中的基本操作尤为重要,在社会的很多领域都需要对图像进行放大和缩小。利用VC++的MFC类库中的StretchBlt函数可以很容易的实现图像放大和缩小,但是当放大或缩小的比率比较大时就容易出现失真现象,因此必须进行改进。本文提出了一种双线性插值算法,用以改进图像的缩放质量。二、空间变换  

2、 图像的空间变换,也称几何变换或几何运算,包括图像的平移、旋转、镜像变换、转置、缩放等。几何运算可改变图像中各物体之间的空间关系,这种运算可以被看成是将各物体在图像内移动。  空间变换可如下表示:设(u,v)为源图像上的点,(x,y)为目标图像上的点,则空间变换就是将源图像上(u,v)处的颜色值与目标图像上(x,y)处的颜色对应起来。(u,v)ß----------------à(x,y)并具有以下关系:x=X(u,v),y=Y(u,v)  (即由(u,v)计算对应点(x,y) )   (1.1)或u=U(x,y),v=V(

3、x,y) (即由(x,y)反求对应点(u,v) )(1.2)其中X(u,v)、Y(u,v)、U(x,y)、V(x,y)均为变换。由(1.1)对应的变换称作向前映射法也叫像素移交法,而由(1.2)对应的变换称作向后映射法也叫像素填充法,向后映射法是向前映射法的逆。对于向前映射法来说,由于许多输入像素可能映射到输出图像的边界之外,所以,向前映射法有些浪费,而且每个输出像素的灰度值可能要由许多输入像素的灰度值来决定,因此要涉及多次运算。如果空间变换中包括缩小处理,则会有四个以上的输入像素来决定输出像素的灰度值;如果含有放大处理,则

4、一些输出像素可能被漏掉。而向后映射算法是逐像素、逐行地产生输出图像。每个像素的灰度级由最多四个像素参与的插值所惟一确定,虽然向后映射法比向前映射法要复杂,但是向后映射法对于一般的应用却具有更为现实的意义。本文就是采取了向后映射法来实现图像缩放的。三.双线性插值  最简单的插值算法是最邻近插值,也称为零阶插值。它输出的像素灰度值就等于距离它映射到的位置最近的输入像素的灰度值,最邻近插值算法简单,在许多情况下都能得到令人满意的结果,但是当图像中包含像素之间灰度级有变化的细微结构时,最邻近算法会在图像中产生人为加工的痕迹。双线性插

5、值算法计算量比零阶插值大,但缩放后图像质量高,不会出现像素值不连续的情况,这样就可以获得一个令人满意的结果。  双线性插值是利用了需要处理的原始图像像素点周围的四个像素点的相关性,通过双线性算法计算得出的。对于一个目的坐标,通过向后映射法得到其在原始图像的对应的浮点坐标(i+u,j+v),其中i,j均为非负整数,u,v为[0,1]区间的浮点数,则这个像素的值f(i+u,j+v)可由原图像中坐标为(i,j)、(i+1,j)、(i,j+1)、(i+1,j+1)所对应的周围四个像素的值决定,即:f(i+u,j+v)=(1-u)×(

6、1-v)×f(i,j)+(1-u)×v×f(i,j+1)+u×(1-v)×f(i+1,j)+u×v×f(i+1,j+1),其中f(i,j)表示源图像(i,j)处的像素值,以此类推,这就是双线性内插值法。如图1所示,已知(0,0)、(0,1)、(1,0)、(1,1)四点的灰度,可以由相邻像素的灰度值f(0,0)和f(1,0)在X方向上线性插值求出(x,0)的灰度f(x,0),由另外两个相邻像素f(0,1)和f(1,1)在X方向上线性插值可求出(x,1)的灰度f(x,1),最后由f(x,0)、f(x,1)在Y方向上进行线性插值就

7、可以得到(x,y)的灰度f(x,y)。四.算法 1.算法 假设原始图像大小为size=m×n,其中m与n分别是原始图像的行数与列<数。若图像的缩放因子是t(t>0),则目标图像的大小size=t×m×t×n。对于目标图像的某个像素点P(x,y)通过P*1/t可得到对应的原始图像坐标P’(x1,y1),其中x1=x/t,y1=y/t,由于x1,y1都不是整数所以并不存在这样的点,这样可以找出与它相邻的四个点的灰度f1、f2、f3、f4,使用双线性插值算法就可以得到这个像素点P’(x1,y1)的灰度,也就是像素点P(x,y)的灰

8、度。一个完整的双线性插值算法可描述如下:(1)      通过原始图像和比例因子得到新图像的大小,并创建新图像。(2)      由新图像的某个像素(x,y)映射到原始图像(x’,y’)处。(3)      对x’,y’取整得到(xx,yy)并得到(xx,yy)、(xx+1,yy)、(xx

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。