cv基础组队学习
发布日期:2021-06-29 02:31:39 浏览次数:3 分类:技术文章

本文共 1265 字,大约阅读时间需要 4 分钟。

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

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**

转载地址:https://blog.csdn.net/YYYYYJY/article/details/105663194 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:cv基础组队学习
下一篇:学习语言模型

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月29日 16时08分59秒