openCVでwebcamを使用しようとすると"Corrupt JPEG data: 1 extraneous bytes before marker 0xd0"という警告が連続で出る

はじめに

Ubuntuwebカメラを使ったプログラムを動かす際、実行は出来るのですがコンソールに"Corrupt JPEG data: 1 extraneous bytes before marker 0xd0"という警告が連続で表示され、非常に邪魔だったので解決法を探してみました。

環境

ubuntu 18.04

openCV 3.3

webcam1 Logicool webcam C310n HD 720p

参考

corrupt JPEG data: # extraneous bytes before marker 0x## · Issue #9477 · opencv/opencv · GitHub

解決策

どうやらopencvのlibjpegのバグが原因らしいです。

正直ビルドとかよくわからない(c++ほぼ初心者)ので、とりあえずこの解決策は置いといて別の原因を探してみました。

別のwebcamをいくつか試したところ、ほかのカメラでは警告なく実行することができました。どうやらwebcamのなんらかの形式とcvの設定でずれがあり、数byteの損失が起きているっぽい?

別にwebcamにこだわりはなかったので、別のものに変えてその場しのぎの解決。

あとがき

当ブログ、あいさつ以外の初投稿でした。初がこんなんでいいのかなぁ、、、