图片、numpy放大的插值方法

当新numpy/图像比原numpy/图像更大时,插值方法:
0?原数组值?线性插值?

1.numpy

形式一:
a.resize(new_shape)

#输入
import numpy as np 
# Making a random array 
gfg = np.array([1, 2, 3, 4, 5, 6]) 
# Required values 12, existing values 6 
gfg.resize(3, 4) 
  
print(gfg)

#输出:
[[1 2 3 4]
 [5 6 0 0]
 [0 0 0 0]]

形式二:
a = np.array([1,2,3,4,5,6])
numpy.resize(a, new_shape)

>>> import numpy as np
>>> ggg = np.array([1,2,3,4,5,6])
>>> fff = np.resize(ggg,(3,4))
>>> print(fff)
[[1 2 3 4]
 [5 6 1 2]
 [3 4 5 6]]

也就是,如果新数组大于原始数组,则新数组将填充a的重复副本,与a.resize(new_shape)不同,后者用零而不是重复的a填充

形式三:
a = np.array([1,2,3,4,5,6])
numpy.reshape(a,new_shape)
new_shape不能大于a.shape

2 图片

Python-OpenCV中的resize()函数

cv2.resize(src, dsize[, dst[, fx[, fy[, interpolation]]]])
其中interpolation可以接入多种插值方法,如
cv.INTER_NEAREST 最近邻插值
cv.INTER_LINEAR 双线性插值
cv.INTER_CUBIC 双线性插值
cv.INTER_AREA 使用像素区域关系重新采样。它可能是图像抽取的首选方法,因为它可以提供无莫尔条纹的结果。但是当图像被缩放时,它类似于INTER_NEAREST方法。
(通常的,缩小使用cv.INTER_AREA,放缩使用cv.INTER_CUBIC(较慢)和cv.INTER_LINEAR(较快效果也不错)。默认情况下,所有的放缩都使用cv.INTER_LINEAR。)

3. scipy.ndimage.zoom

某些场景如医学图像tiff格式,转为图像的话会有相应的耗损,介绍一种在numpy.array上的放缩操作。
scipy.ndimage.zoom(input, zoom, output=None, order=3, mode=‘constant’, cval=0.0, prefilter=True)

input,

#array—输入多维矩阵

zoom,

#float/sequence—沿轴的缩放系数,如果是浮点型,表示每个轴的缩放是相同的,如果是序列,zoom应包含每个轴的缩放值;

output=None,

#adrray or dtyoe—放置输出的数组,或返回数组的dtype,默认情况下,将创建与输入相同的dtype数据

order=3,

#int—样条插值的阶数,默认为3,顺序必须在0-5范围内;

mode=‘constant’,

#{‘reflect’, ‘constant’, ‘nearest’, ‘mirror’, ‘wrap’}—mode参数确定输入数组如何扩展到其边界之外。 默认为“constant”;

cval=0.0,

#scalar—如果模式为“constant”,则填充输入的过去边缘的值, 默认值为0.0。

perfilter=True)

#bool—确定在插值之前是否使用spline_filter对输入数组进行预过滤。 默认值为True,如果order> 1,将创建一个过滤值的临时float64数组。如果将此值设置为False,如果order> 1,输出将略微模糊,除非输入是预 过滤的,即它是调用的结果 原始输入上的spline_filter。
举例:

# input 尺寸 (512, 96, 96, 3)
# 将其转为 (512, 224, 224, 3)
# 对不同的轴进行缩放如下
import scipy

input_new = scipy.ndimage.zoom(input, (1, 224/96, 224/96, 1), output=None, order=3, mode='nearest')
input_new = zoom(cat_cubic_arr, (1, 190/250, 190/250, 1))

更详细的插值结果展示可参考:
https://blog.csdn.net/u013066730/article/details/101073505

你可能感兴趣的:(opencv,python,深度学习,图像处理)