とある変人のお道具箱

技術系のことにについて幅広く触れていくブログです

OpenCVで「libpng warning: iCCP: known incorrect sRGB profile」というエラーの対処法

今回の状況

python3で次のようなプログラムを書いた。

import cv2
img = cv2.imread("placard-0-dangerous.png")

見ての通り2行だけのシンプルなプログラムで、OpenCVで画像を読み込んで、imgという変数に代入するだけの内容である。
ちなみに読み込もうとした画像はこれである。

f:id:toaru_henjin:20190516115810p:plain
読み込もうとした画像
このプログラムを実行すると

libpng warning: iCCP: known incorrect sRGB profile

というエラーが出てきてしまった。
   

解決方法

調べてみるとこのエラーはlibpngの問題らしい

libpngとは、画像データ形式PNGエンコード・デコードを行うライブラリである。

Libpng | 情報科学 | IT用語辞典 | 日立ソリューションズ
   

ImageMagickのconvertコマンドを使って

convert "placard-0-dangerous.png" -strip "placard-0-dangerous.png"

と実行して、pngファイルのプロファイルやその他メタデータを消去してやるとエラーは出なくなりました。
   

参考にしたサイト

tex.stackexchange.com