cv基础组队学习

计算机视觉基础:图像处理(上)

task1 图像插值算法-图像缩放

最近邻插值算法

最近邻插值,是指将目标图像中的点,对应到源图像中后,找到最相邻的整数点,作为插值后的输出。

举个简单例子:

3 × 3的一张灰度图 (像素取值代表亮度,范围是0-255,越高越亮,即255白色,0黑色)

假定像素矩阵如下:
0 22 55

33 99 65

156 240 3

将这张图片放大到4×4个像素:

? ? ? ?

? ? ? ?

? ? ? ?

? ? ? ?

相应位置上的像素根据给出的公式计算:

srcX=dstX* (srcWidth/dstWidth) , srcY = dstY * (srcHeight/dstHeight)

目标图像(0,0)处灰度取值(0×3/4,0×3/4)=(0,0)即取源图像(0,0)处灰度

dst(0,1)=src(0,0.75)
计算机图像中像素已经是最小单位了,没有小数点,离哪近取哪。
放大效果:在这里插入图片描述
相比原图有一种模糊感,有马赛克的感觉。
缩小效果:
在这里插入图片描述
有失真的感觉,不清晰,总之不好使。

双线性插值算法

先看看效果
放大图:在这里插入图片描述
相比最邻近插值算法的放大图,没有了块状的感觉。
缩小图:
在这里插入图片描述
总觉得有一种雾蒙蒙的感觉。

双线性插值就是线性插值在二维时的推广,在两个方向上做三次线性插值,具体操作如下图所示:在这里插入图片描述

首先在x方向上进行两次线性插值:
在这里插入图片描述
化简后:
在这里插入图片描述
然后在y方向上进行一次线性插值:
在这里插入图片描述
化简并带入:在这里插入图片描述

通过一篇博客了解到计算目标图像坐标对应源图像坐标时应这样计算:

SrcX=(dstX+0.5)* (srcWidth/dstWidth) -0.5
SrcY=(dstY+0.5) * (srcHeight/dstHeight)-0.5

计算过程:
f(i+u,j+v) = (1-u)(1-v)f(i,j) + (1-u)vf(i,j+1) + u(1-v)f(i+1,j) + uvf(i+1,j+1) 。

记录下函数原型

cv2.resize(src, dsize[, dst[, fx[, fy[, interpolation]]]])
参数:

| 参数 | 描述 | |–|--| | src | 【必需】原图像 | | dsize | 【必需】输出图像所需大小 | | fx | 【可选】沿水平轴的比例因子 | | fy | 【可选】沿垂直轴的比例因子 | | interpolation | 【可选】插值方式 |

插值方式: | | | |–|--| | cv.INTER_NEAREST | 最近邻插值 | | cv.INTER_LINEAR | 双线性插值 | | cv.INTER_CUBIC | 基于4x4像素邻域的3次插值法 | | cv.INTER_AREA | 基于局部像素的重采样 |

通常,缩小使用cv.INTER_AREA,放缩使用cv.INTER_CUBIC(较慢)和cv.INTER_LINEAR(较快效果也不错)。默认情况下,所有的放缩都使用cv.INTER_LINEAR**

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值