Python 图像保存质量设置

本文最后更新于:2022年8月5日 晚上

Jpeg 和 PNG 是两种常用的图像压缩格式,不同场景需要不同质量的图像,本文记录python保存压缩图像控制图像质量的方法。

常用图像格式

BMP(无压缩)

位图(外语简称:BMP、外语全称:BitMaP)BMP是一种与硬件设备无关的图像文件格式,使用非常广。它采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此,BMP文件所占用的空间很大。

JPEG(有损压缩)

联合照片专家组(外语简称JPEG外语全称:Joint Photographic Expert Group)JPEG也是最常见的一种图像格式,它是由联合照片专家组(外语全称:Joint Photographic Experts Group),文件后辍名为".jpg"或".jpeg",是最常用的图像文件格式,由一个软件开发联合会组织制定,是一种有损压缩格式,能够将图像压缩在很小的储存空间,图像中重复或不重要的资料会被丢失,因此容易造成图像数据的损伤。尤其是使用过高的压缩比例,将使最终解压缩后恢复的图像质量明显降低,如果追求高品质图像,不宜采用过高压缩比例。但是JPEG压缩技术十分先进,它用有损压缩方式去除冗余的图像数据,在获得极高的压缩率的同时能展现十分丰富生动的图像,换句话说,就是可以用最少的磁盘空间得到较好的图像品质。而且JPEG是一种很灵活的格式,具有调节图像质量的功能,允许用不同的压缩比例对文件进行压缩,支持多种压缩级别,压缩比率通常在10:1到40:1之间,压缩比越大,品质就越低;相反地,压缩比越小,品质就越好。

PNG(无损压缩)

便携式网络图形(外语简称PNG、外语全称:Portable Network Graphics),是网上接受的最新图像文件格式。PNG能够提供长度比GIF小30%的无损压缩图像文件。它同时提供24位和48位真彩色图像支持以及其他诸多技术性支持。由于PNG非常新,所以并不是所有的程序都可以用它来存储图像文件,但Photoshop可以处理PNG图像文件,也可以用PNG图像文件格式存储。

图像保存

  • 本文以 opencv 库为例记录图像质量控制方法

  • python opencv 保存图像方法:

1
cv2.imwrite(file,img,num)
  • 参数列表:
    • file: 文件名
    • img: 图像矩阵
    • num: 压缩参数
  • 压缩参数仅针对特定的格式:
    • 对于JPEG,其表示的是图像的质量,用0 - 100的整数表示,默认95
    • 对于png ,第三个参数表示的是压缩级别。默认为3
  • 压缩参数设置:
    • cv2.IMWRITE_JPEG_QUALITY类型为 long , 质量越大图像质量越高,文件越大
    • cv2.IMWRITE_PNG_COMPRESSION, 从0到9 压缩级别越高图像越小
  • 示例代码:
1
2
cv2.imwrite('1.png',img, [cv2.IMWRITE_JPEG_QUALITY, 50])
cv2.imwrite('1.png',img, [cv2.IMWRITE_PNG_COMPRESSION, 9])

参考资料


Python 图像保存质量设置
https://www.zywvvd.com/notes/coding/python/python-image-quality-control/python-image-quality-control/
作者
Yiwei Zhang
发布于
2021年9月15日
许可协议