【数字图像处理】二维(2D)线性插值的应用

应用情况

在使用matlab对图像进行各种操作的时候经常要使用插值进行计算。

例如:图像缩放、图像旋转、仿射变换等等。


线性插值

先介绍线性插值的概念。

已知两个点(x1, y1)、(x2, y2),求它们中间横坐标为x的点的y值。

则可以利用如下公式进行插值计算。其中a和(1-a)为x距离x1和x2的距离占(x2-x1)的比例。

y = a*y1 + (1-a)*y2


线性插值的在二维图像上的计算

现在假设im(m, n)为原图像中第m行第n列的像素,其周围的几个像素为im(m+1, n)、im(m, n+1)、im(m+1, n+1)。

若把这几个像素的中心连线可以得到这样一个正方形。

在图像变换的过程中,变换后的图片中的像素点的值可能需要原图的像素进行插值求出像素的值,如果变化后的图象所需的值对应在原图中四个像素围成的正方形中间,则如下图所示,P点为需要求出值的像素点,则通过四个已知的像素值可以插值求出P点的像素值。

其中,a、(1-a)、b、(1-b)为P点距离边缘的距离。

总的思路就是分两次做插值计算,先用插值算出P1和P2点的像素值在用这两点求出P点的像素值。

求出P1和P2的公式如下

P1 = b*im(m, n) + (1-b)*im(m+1, n)

P2 = b*im(m, n+1) + (1-b)*im(m+1, n+1)

求出P的公式如下

P = a*P1 + (1-a)*P2

   = a*[b*im(m, n) + (1-b)*im(m+1, n)] + (1-a)*[b*im(m, n+1) + (1-b)*im(m+1, n+1)]

   = a*b*im(m, n) + a*(1-b)*im(m+1,n) + (1-a)*b*im(m, n+1) + (1-a)*(1-b)*im(m+1, n+1)


总结

学习不息,继续加油

  • 12
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值