0
我已图像定义为:添加零空间到图像的阵列
imagen = scipy.misc.imread("C:\\Users\\Reymi\\Downloads\\imagen.png")
它的大小为(1929,1280) 我需要用零添加2列和行的每个侧的数组,所以我可以使用内核而不用担心它会超出数组范围。
怎么样?谢谢
我已图像定义为:添加零空间到图像的阵列
imagen = scipy.misc.imread("C:\\Users\\Reymi\\Downloads\\imagen.png")
它的大小为(1929,1280) 我需要用零添加2列和行的每个侧的数组,所以我可以使用内核而不用担心它会超出数组范围。
怎么样?谢谢
使用pad
功能:
im_new = scipy.pad(array=imagen, pad_width=[2, 2], mode='constant', constant_values=0)
上述功能使得在各个方向上的大阵2。如果你想取代外两个像素用0不会使画面更大,我不认为有一个内置的功能,但我会做这样的事情:
pad = 2
im_new = scipy.zeros_like(imagen)
im_new[pad:-pad, pad:-pad] = imagen[pad:-pad, pad:-pad]
这将创建一个0的图像,然后填写中间部分imagen
。
选项 - 1 - 使用的OpenCV
imagenBorder = cv2.copyMakeBorder(imagen,2,2,2,2,cv2.BORDER_REFLECT)
选项 - 2 - 手动填充到numpy的阵列
import numpy as np
borderWidth = 2
i = 0
while i < borderWidth:
imagen = np.insert(imagen, 0, 0, axis=1)
imagen = np.insert(imagen, imagen.shape[1], 0, axis=1)
imagen = np.insert(imagen, 0, 0, axis=0)
imagen = np.insert(imagen, imagen.shape[0], 0, axis=0)
i = i+1
或者,如果使用numpy的,'np.pad(imagen画质,((0,0 ,(2,2),'constant')' –
它要求一个“模式”的参数。什么是sp?scipy? – angelustt