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

OpenCV

今回の状況

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

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

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

読み込もうとした画像

このプログラムを実行すると

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ファイルのプロファイルやその他メタデータを消去してやるとエラーは出なくなりました。

参考にしたサイト