欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > libpng warning iCCP cHRM chunk does not match sRGB警告解决指南

libpng warning iCCP cHRM chunk does not match sRGB警告解决指南

2025/2/24 14:43:49 来源:https://blog.csdn.net/qq_46396470/article/details/140146815  浏览:    关键词:libpng warning iCCP cHRM chunk does not match sRGB警告解决指南

libpng warning: iCCP: cHRM chunk does not match sRGB警告解决指南

一、问题溯源

当使用 OpenCV 读取 PNG 图片时,出现了以下警告:

libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: cHRM chunk does not match sRGB

这些警告是由于 PNG 文件中包含的 sRGB 配置文件与标准不匹配所引起的:libpng 版本 1.6 及以后的版本对 ICC 配置文件的检查更加严格,因此会显示这些警告。

二、解决方法

2.1 忽略警告:
  • 这些警告并不影响图片的读取和处理,因此可以选择忽略它们。
2.2 使用 ImageMagick 移除有问题的配置文件:
  • ImageMagick安装
  • 单个文件处理

    直接从图片所在目录打开Windows 控制台,运行如下命令,完成转换,转换完就不会有读取时的那种警告了

    magick input.png -strip output.png
    
  • 批量文件处理

    如果有大量 PNG 文件,可以编写Windows的批处理(.bat)脚本批量处理,具体的说,代码框架如下:

    @echo off:: 设置输入和输出目录
    set INPUT_DIR=E:\Datasets\ExDark\images
    set OUTPUT_DIR=E:\Datasets\ExDark\ProcessedImages:: 检查输出目录是否存在,如果不存在则创建
    if not exist "%OUTPUT_DIR%" (mkdir "%OUTPUT_DIR%"
    ):: 切换到输入目录,
    cd /d "%INPUT_DIR%":: 遍历所有 PNG 文件,并处理它们
    for %%i in (*.png) do (magick "%%i" -strip "%OUTPUT_DIR%\%%i"echo Processed "%%i"
    )echo Finished
    
    • 其中/dcd命令的一个参数,用于更改驱动器,并切换到指定的目录。如果不使用/dcd命令就只能在一个硬盘分区中进行目录切换。

    读者如果想用的话只需要3步:

    • 将上述代码拷贝,粘贴到一个.bat文件(用记事本VS Code打开皆可)里

    • 修改INPUT_DIR,其为你原来有问题分的png图片所在的文件夹路径

    • 修改OUTPUT_DIR,这是处理完的图片要存放的目录

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词