SciTech-BigDataAIML-CV+CG-Digital Image Processing-OpenCV图片格式: cv.imwrite()的参数 + jpg格式注意事项

SciTech-BigDataAIML-CV+CG-Digital Image Processing


OpenCV图片格式: cv.imwrite()的参数 + jpg格式注意事项

cv.imwrite() 参数和用法

   pdf_file = name_prefix = sys.argv[1]
   jpg_quality=100
    if len(sys.argv)> 2 and sys.argv[2].isdigit():
        jpg_quality = int(sys.argv[2])
    # vertical concat all images in imgs_processed
    m_img, i_img = pdf_to_image(pdf_file, noise_threshold=10, min_pixels=3, line_height=0)
    cv.imwrite(pdf_file + "_marked.jpg", m_img, (cv.IMWRITE_JPEG_QUALITY, jpg_quality))
    cv.imwrite(pdf_file + ".jpg", i_img, (cv.IMWRITE_JPEG_QUALITY, jpg_quality))

参数说明:

  • filename:要保存的文件的路径和名称,包括文件扩展名
  • img:要保存的 OpenCV 图像,nparray 多维数组
  • paras:不同编码格式的参数,常用的可选项:
    • cv.IMWRITE_JPEG_QUALITY
      设置 .jpeg/.jpg 格式的图片质量,取值为 0-100(默认值 95),
      数值越大则图片质量越高;

    • cv.IMWRITE_PNG_COMPRESSION
      For PNG, it can be the compression level from 0 to 9.
      A higher value means a smaller size and longer compression time.
      If specified, strategy is changed to IMWRITE_PNG_STRATEGY_DEFAULT (Z_DEFAULT_STRATEGY).
      Default value is 1 (best speed setting).

    • cv.IMWRITE_JPEG_QUALITY
      For JPEG, it can be a quality from 0 to 100 (the higher is the better). Default value is 95.

    • cv.IMWRITE_JPEG_PROGRESSIVE
      Enable JPEG features, 0 or 1, default is False.

    • cv.IMWRITE_JPEG_OPTIMIZE
      Enable JPEG features, 0 or 1, default is False.

    • cv.IMWRITE_JPEG_RST_INTERVAL
      JPEG restart interval, 0 - 65535, default is 0 - no restart.

    • cv.IMWRITE_JPEG_LUMA_QUALITY
      Separate luma quality level, 0 - 100, default is -1 - don't use. If JPEG_LIB_VERSION < 70, Not supported.

    • cv.IMWRITE_JPEG_CHROMA_QUALITY
      Separate chroma quality level, 0 - 100, default is -1 - don't use. If JPEG_LIB_VERSION < 70, Not supported.

    • cv.IMWRITE_JPEG_SAMPLING_FACTOR
      For JPEG, set sampling factor. See cv::ImwriteJPEGSamplingFactorParams.

    • cv.IMWRITE_PNG_COMPRESSION
      For PNG, it can be the compression level from 0 to 9.
      A higher value means a smaller size and longer compression time.
      If specified, strategy is changed to IMWRITE_PNG_STRATEGY_DEFAULT (Z_DEFAULT_STRATEGY).
      Default value is 1 (best speed setting).

    • cv.IMWRITE_PNG_STRATEGY
      For PNG, One of cv::ImwritePNGFlags, default is IMWRITE_PNG_STRATEGY_RLE.

    • cv.IMWRITE_PNG_BILEVEL
      For PNG, Binary level PNG, 0 or 1, default is 0. For APNG, it is not supported.

    • cv.IMWRITE_PNG_FILTER
      For PNG, One of cv::ImwritePNGFilterFlags, default is IMWRITE_PNG_FILTER_SUB.
      For APNG, it is not supported.

    • cv.IMWRITE_PNG_ZLIBBUFFER_SIZE
      For PNG with libpng, sets the size of the internal zlib compression buffer in bytes,
      from 6 to 1048576(1024 KiB). Default is 8192(8 KiB).
      For normal use, 131072(128 KiB) or 262144(256 KiB) may be sufficient.
      If WITH_SPNG=ON, it is not supported. For APNG, it is not supported.

  • retval:返回值,保存成功返回 True,否则返回 False。



jpg格式注意事项

  • JPEG-LS无损压缩算法.
    jpeg新版国际标准,是有"Lossless(无损压缩)"的。
  • jpg旧格式保存图片是不能百分百保存原图像的!
    当我们不断读入图片,又不断存储图片为jpg格式,图片的质量就会不断降低!
    即使我们把图片质量写成100,图片质量跟原图还是右一定压缩的,
    比如原图233M,读入再保存为jpg格式容量就变为229M。
  • 所以有以下总结:
    1. opencv的存储图片函数imwrite是可以通过第三个函数参数来调整保存图片的压缩比的,
      比如保存图片为jpg格式。
    2. jpg格式的图片读进内存,如果再保存为jpg格式后,容量会被压缩的,
      这是jpg格式的特性,怎么调整压缩比都避免不了失真(损失图片质量)。
    3. 调整PNG图像格式的保存质量。
      如果操作的而是png格式的图像,我们同样可以调整其保存的质量。



常用图片格式

如何不损失图片质量地保存图片?得将图片保存为其他格式的图片。
现在,就简单介绍一下最常用的图片格式以及他们的特点:

  • BMP格式(无压缩)
    位图(外语简称:BMP、外语全称:BitMaP)
    • BMP是一种与硬件设备无关的图像文件格式,使用非常广。
    • 它采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩。
      因此,BMP文件用的空间很大。
  • JPEG格式(有损压缩)
    JPEG(Joint Photographic Expert Group), 是最常见的一种图像格式。文件后辍名为".jpg"或".jpeg"。
    • 是一种有损压缩格式,能够将图像压缩在很小的储存空间。用最少的磁盘空间得到较好的图像品质。
      图像的重复或不重要的资料会被丢失,因此容易造成图像数据的质量损失。
    • 如果追求高品质图像,不宜采用过高压缩比例。
      特别在使用过高压缩比例时,将使最终解压缩后恢复的图像质量明显降低,
    • JPEG压缩技术十分先进,它用有损压缩方式去除冗余的图像数据,
      在获得极高的压缩率的同时能展现十分丰富生动的图像,
    • JPEG是一种很灵活的格式,有调节图像质量的功能,允许用不同的压缩比例。
      对文件进行压缩,支持多种压缩级别;
      压缩比率通常在10:1到40:1之间,压缩比越大,品质就越低;
      类似地,压缩比越小,品质就越好。
  • PNG格式(无损压缩)
    PNG(Portable Network Graphics), 是网上接受的最新图像文件格式。
    • PNG能够提供长度比GIF小30%的无损压缩图像文件。
    • 它同时提供24位和48位真彩色图像支持以及其他诸多技术性支持。
    • 由于PNG非常新,所以并不是所有的程序都可以用它来存储图像文件。
      但Photoshop可以处理PNG图像文件,也可以用PNG图像文件格式存储。
posted @ 2025-09-14 00:25  abaelhe  阅读(37)  评论(0)    收藏  举报