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