ocr 时,怎么才能让终端不输出 libpng warning: iCCP: profile 'ICC Profile': 'RGB ': RGB color space not permitted on grayscale PNG

2022-06-11 02:05:46 +08:00
 youthfire
各位 v 友,我所了解到,默认的截图保存格式都是 PNG 为主,为了提高 ocr 的识别精度,又会作灰度处理

但无论是 paddleocr 还是 easyocr ,识别过程中都会在终端输出这句: libpng warning: iCCP: profile ‘ICC Profile’: ‘RGB ‘: RGB color space not permitted on grayscale PNG

通过搜索,了解到这是 libpng1.6 以后开始的提示,似乎对 grayscale PNG 都有这个提示,实际 ocr 不影响。但一番搜索找不到没有任何参数开关可以 ignore 这部分输出。

暂时查到的解决方案

1.是通过 ImageMagick remove ICCP chunk 。mogrify *.png
2. 放弃 png ,采用 jpg

这两种操作,似乎都会额外增加开销,(比如处理时间,比如额外的空间)实际上我需要的只是希望在 mac 的 terminal 输出我的 ocr 结果同时,不要看到这句提示,保持干净。有正确方法吗?先谢谢大家
1599 次点击
所在节点    Python
3 条回复
Tink
2022-06-11 08:29:27 +08:00
如果实在 ignore 不了,外面再套一个脚本,过滤一下
ysc3839
2022-06-11 09:27:36 +08:00
可以用 png_set_error_fn 把输出 warning 的函数换掉,但是要能拿到 png_ptr
youthfire
2022-06-11 19:44:25 +08:00
@Tink @ysc3839 感谢两位朋友热心解答,能力有限,提供的建议不会操作,暂时我把截图操作的格式默认为 jpg 了,大小也差不多,肉眼看上去清晰度也区别不明显,避免 png 的这个问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/858831

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX