我有一个4d阵列的形状 (7496, 32, 32, 1)
7496个numpy阵列以32x32的灰度图像排列。
我想循环这个数组,并将它们全部保存为图像,jpg或bmp。任何方法都可以,无论是使用pil、opencv还是任何其他api或库,提前谢谢大家!
我已经设法做了一个单一的形象的做法,我只需要知道如何在一次去做它的规模。
for t in range(0, 1):
plt.imshow(normal_imgs[t], cmap = 'gray')
plt.show()
cv2.imwrite(CWD + '/image_before.bmp', normal_imgs[t])
img_b3 = cv2.imread('image_before.bmp', 0)
equ3 = cv2.equalizeHist(img_b3)
# res = np.hstack((img_b,equ))
img_a3 = cv2.imwrite('image_after.bmp', equ3)
img_a_out3 = cv2.imread('image_after.bmp', 0)
文件名可以很简单,比如 normal_train_1, normal_train_2
等
2条答案
按热度按时间toe950271#
你差点就到了。
e3bfsja22#
您还可以使用pil保存图像:这将把图像保存为img1.jpg img2.jpg等。您应该更改path变量以获取保存位置和保存文件名。请注意,“l”模式只接受8位uint数组作为输入,因此使用
astype(np.uint8)
```from PIL import Image
import numpy as np
imgs = np.random.randint(low=0, high=255,size=(20, 32, 32, 1))
imgs = imgs.reshape((20, 32, 32)).astype(np.uint8)
path = "./imgs/img{:d}.jpg"
for i, img in enumerate(imgs):
print(img.shape)
Image.fromarray(img, mode="L").save(path.format(i))