完成深度学习的图像处理任务后,尝试了save和imwrite两种保存方法,遇到了一些问题。
1. img.save(filename)
from PIL import Image
adv_sample = Image.fromarray(np.uint8(adv_sample))
adv_sample.save(filename+'.jpg',quality=95)
处理完的adv_sample是array格式,而save需要保存image,因此需要先格式转换再保存。
2. cv2.imwrite(filename,img)
import cv2
adv_sample = adv_sample[:, :, ::-1]
cv2.imwrite('advSamples_images/images/' + dirname + '/' + filename + '.jpg',adv_sample,[cv2.IMWRITE_JPEG_QUALITY,100])
imwrite写入的是array格式,但是对于彩色图像来说,其输入的三通道顺序为"BGR",因此需要先进行通道转换再保存。
以上两种方法进行对比,发现save保存的图片占用空间比imwrite小很多,有可能是fromarray函数对图片进行了 压缩。