2

そこで、AR ドローンを使用して色検出アプリケーションを作成しています。ドローンは私の python/opencv ソケット サーバーにカメラからの画像を YUV420p 形式で送信します。

opencv IPLImage として画像にアクセスするために私が行うことは次のとおりです (はい、これは非効率的ですが、自分で新しい変換ツールを作成する必要はありませんでした/したくありませんでした):

  1. yuv イメージをファイル (some_image.yuv) に保存します。
  2. subprocess.call(ここに ffmpeg 呼び出しを挿入)
  3. cv.LoadImage を使用して、結果のファイル (bmp、png、関係ありません) を読み込みます。

現在の私の問題は、非常に目立つ色の変化です。これらの写真では、赤いフェルト シートを振っています。最初のものは、濃い黄色の色合いを示しています。2番目はそれほど悪くはありませんが、非常にまれです。ほとんどの場合、赤いシートを持っていると、色が濃くなります.

私はこれらの両方のことを疑問に思っています:

  1. これを行うためのより良い方法があれば
  2. 色味の問題が解決できる場合

私のffmpeg変換行は次のようになります

ffmpeg -s 640x480 -vcodec rawvideo -f rawvideo -pix_fmt yuv420p -i image.yuv -vcodec bmp -f image2 output.bmp

私も試しました:

ffmpeg -f rawvideo -s 640x480 -pix_fmt yuv420p -vf colormatrix=bt709:bt601 -i image.yuv -f image -vcodec png output.png

残念ながら、カラーシフトは常に存在します。

後で画像をHSVに変換し、しきい値を使用して自分に合った色の範囲を選択するため、色の変化は今の私の大きな問題です.

4

1 に答える 1