计算机

图像插值

对图像进行升采样时,新图像的像素点并不是与原图一一对应的,因此我们需要用插值的方法确定每个像素点的亮度。

最近邻插值

特点:不改变值域,值域间没有加减计算。

通常用于二值化后的图像,或者用于图像修补、语义分割等任务的 Mask 图像。这类图像的像素值是分类数据,加减、线性插值没有意义。

在 Python opencv 中,使用 cv2.resize(img, size, interpolation=cv2.INTER_NEAREST) 可以进行双三次插值。

双线性插值

原理如下:

双三次插值

通常简写为 bicubic,使用最广泛的插值算法。

在 Python opencv 中,使用 cv2.resize(img, size, interpolation=cv2.INTER_CUBIC) 可以进行双三次插值。该方法不要求 img 是整数矩阵,也就是可以对浮点数进行插值。

在 Python pillow 库(PIL)中,使用 img.resize((h, w), resample=Image.BICUBIC) 方法,对 img 进行双三次插值。

在 pytorch 中,使用 torch.nn.functionals.interpolate() 进行双三次插值,输入的图像格式与 CNN 相同,须为四维张量 B \times C \times H \times W,B 为通道数。

BEYOND THE ARTICLE

读完了,有什么想法?

阅读已保存的问答示例,并循着引用回到原文。

查看公开问答示例
— 本文完 — 返回文章列表