保存图片的坑:cv2.imread和Image.open,还有image.save和cv2.imwrite对图像处理的格式不一样

调了个小程序调了三天,也是怪自己基础知识不牢,写篇文章记录下。
cv2.imread(img)读进来的图用cv2.imwrite(path)保存。
但cv2.imread(img)读进来的图不能直接转化为RGBA格式,只能通过Image.open传入的图才可以直接转化为RGBA。Image.open读进来的图只能用image.save保存。
第一个原因是cv2函数和pil库的读入和保存函数不能混合使用,cv2.imread读入的是图片,而Image.open读进来的是数组。

还有如果你要保存没坐标刻度图片用plt.savefig,那这三句话就得全写上。
plt.imshow(img,cmap=plt.cm.gray)#这句不写保存的就是空图,cmap=plt.cm.gray我忘了什么作用了,好像对保存没用。
plt.axis(‘off’)#这句不写保存的就是有刻度的
plt.savefig(output_dir + ‘/’ + img_paths.split(‘/’)[-1] + “.tiff”)#保存的路径+格式
还有一种情况就是将plt.show()写在保存方法plt.savefig(“matrix.png”)的后面,保存的就不是空图了。

plt.savefig("matrix.png")
        plt.show()

还有一个image.imsave()目前还没细研究。

你可能感兴趣的:(python,opencv)