图像缩放

1、概念
图像缩放就是将源图像中的像素点经过算法映射到目标图像的像素点的过程,即找出目标图像中的像素点Pd(Xd,Yd)对应的源图像的像素点Ps(Xs,Ys),然后将源图像像素点填充到对应到目标图像的像素点,最终形成目标图像。
图像缩放包含:
1)图像缩小;
2)图像放大。
如下图所示,假设,源图像的分辨率为SrcWidthSrcHeight,目标图像的分辨率为DstWidthDstHeight,则:
源图像与目标图像宽的比例为:H_Factor = SrcWidth/DstWidth;
源图像与目标图像高的比例为:V_Factor = SrcHeight/DstHeight;
在这里插入图片描述
任意分辨率的缩放,导致图像宽高的比例(H_Factor,V_Factor)有可能是小数,则由目标图像像素点坐标计算出的源图像像素点坐标不是整数。
图像缩放的算法多种多样,下面主要介绍便于硬件实现的几个算法原理。

2、最邻近点插值法
假设,目标图像的像素点Pd(Xd,Yd),反向映射到源图像到像素点为Ps(Xs,Ys),则计算公式如下:
Xs = H_Factor * Xd (0 ≤ Xd < DstWidth的整数)
Ys = V_Factor * Yd (0 ≤ Yd < DstHeight的整数)
如下图所示,假设Ps(Xs,Ys)位于下图中的红点位置,P(X0,Y0)、P(X1,Y1)、P(X2,Y2)、P(X3,Y3)为源图像坐标Ps(Xs,Ys)周围的四个像素点,如果:
在这里插入图片描述
则最临近点为P(X2,Y2),则将源图像像素点P(X2,Y2)的值插入到目标图像像素点Pd(Xd,Yd),作为该目标图像像素点的像素值。实际上最邻近点插值法采用四舍五入点方法来寻找最佳像素点。
在这里插入图片描述
优点:计算简单,硬件实现所需资源少;
缺点:图像质量低,特别是放大低图像可能产生明显锯齿。

最临近点插值算法C语言(浮点型):
https://blog.csdn.net/xaydwy/article/details/107369917

3、双线性插值法
在最邻近点插值法点基础上,引入双线性插值法。
如下图所示,由图像的特点可知:
在这里插入图片描述
由反向算法,目标图像坐标Pd(Xd,Yd)得出的源图像坐标为Ps(Xs,Ys),如下图所示,则:
在这里插入图片描述
将公式1带入到公式2,得出公式3:
在这里插入图片描述
由双线性插值算法,得出目标图像像素点Pd(Xd,Yd)的值为:
Pd(Xd,Yd)= P(X0,Y0)d0d1 + P(X1,Y1)d2d1 + P(X2,Y2)d0d3 + P(X3,Y3)d2d3
在这里插入图片描述
优点:缩放后图像质量高,图像连续性好。计算量比最邻近点插值法稍复杂,但计算量不大,适合硬件实现;
缺点:双线性插值具有低通滤波器的性质,高频分量受损,导致细节损失严重,缩放后图像可能在一定程度上变模糊。

双线性插值算法C语言(浮点型):
https://blog.csdn.net/xaydwy/article/details/107369785

4、BiCubic卷积插值法
双三次卷积插值法的理念类似于双线性插值法,只是双三次插值法采用周围16个像素点进行加权,且加权因子采用BiCubic函数构造。
双三次卷积插值又称为立方卷积插值,该算法采用采样点周围16个采样点加权得到目标像素点。双三次卷积插值不仅考虑周围16个点数据值点影响,还考虑到各相邻点数据值变化的影响。该算法可以得到高分辨率图像更清晰的放大效果,但也导致运算量的增加。这种算法需选取插值基函数来拟合数据,本文采用的插值基函数(BiCubic)。
BiCubic函数的形状如下图所示:
在这里插入图片描述
BiCubic函数的公式如下:
在这里插入图片描述
至于BiCubic函数为什么是这个样子,系数a=-0.5,请参看以下帖子:
https://blog.csdn.net/zhaoguanghe/article/details/106567714
https://blog.csdn.net/shiyimin1/article/details/80141333
由最邻近点插值法,可知,根据目标图像的像素点坐标,计算出对应源图像的像素坐标,如下图所示,假设红点P(X,Y)为对应的源图像坐标点,坐标点X,Y可能有小数部分,假设:
在这里插入图片描述
则P(x’,y’)即为P(X1,Y1)坐标点。则采用X1-1、X1、X1+1和X1+2水平坐标点,Y1-1、Y1、Y1+1和Y1+2垂直坐标点,找出周围点16个采样点。如下图所示。对于超出源图像边界的像素点,采用图像相近的像素点代替。
在这里插入图片描述
由BiCubic函数可知,P(X0,Y0)的水平方向和垂直方向加权因子为:
在这里插入图片描述
同理,其他像素的水平方向和垂直方向加权因子为:
在这里插入图片描述
与双线性插值类似,则目标像素点Pd(Xd,Yd)的值为:
在这里插入图片描述
优点:图像质量高;
缺点:计算量大。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值