MATLAB を使用してビデオで特徴検出を実行しています。ビデオのさまざまな部分で照明条件が異なるため、RGB イメージをバイナリ イメージに変換する際に一部の部分が無視されます。
ビデオの特定の部分の照明条件も、ビデオの途中で変化します。
フレームとビデオ全体の照明のバランスをとるための MATLAB での最良の方法を提案できますか?
MATLAB を使用してビデオで特徴検出を実行しています。ビデオのさまざまな部分で照明条件が異なるため、RGB イメージをバイナリ イメージに変換する際に一部の部分が無視されます。
ビデオの特定の部分の照明条件も、ビデオの途中で変化します。
フレームとビデオ全体の照明のバランスをとるための MATLAB での最良の方法を提案できますか?
検出したい特徴とビデオで何をしたいかによって、2 つのオプションがあります。
1) 非常に簡単です: HSV (V チャンネルを無視) Lab (L を無視) YUV (Y を無視) のような別のチャンネルでイルミネーションを分離する色空間に画像を変換し、2 つの特徴検出を実行します。残りのチャンネル。これらのうち、HSV が最高です (コメントで Yves Daoust が指摘したように) YUV と Lab は、UV/ab チャネルにいくつかの照明情報を残します。私の経験では、状況によっては最後の 2 つも機能しますが、HSV が最適です。
2) 難しい。まず、画像を HSV に変換します。次に、V チャネルのみで修復を行います。
どちらの方法を選択する場合でも、やりたいこと (つまり、特徴の検出) に集中し、必要に応じてこのような中間ステップを選択することをお勧めします。すぐに何かを試して、これが特徴の検出にどのように役立つかを確認してください。
それは簡単な作業ではありませんが、それを克服するための多くの方法があります。retinexアルゴリズムの実装から始めるか、他の実装を使用することをお勧めします:http : //www.cs.sfu.ca/~colour/publications/IST-2000/。
基本的な考え方は、輝度(観測された画像の強度)=照明(入射光)x反射率(反射率):
L(x,y) = I(x,y) x R(x,y)
そして、あなたはRの部分に興味があります。
各フレームのカラー画像を処理するには、最初にhsv色空間に移動し、v(値)部分でレチネックスを操作します。
それが理にかなっていることを願っています。
Retinex またはハイパス フィルタリングによって対処される個々の画像間の照明のむらとは別に、ビデオ全体の自動ゲイン補正を考えることができます。
アイデアは、結合された 3 つのチャネルすべての平均と標準偏差が事前定義された値 (平均 -> 128、標準偏差 -> 64) になるように、色成分に線形変換を適用することによって画像強度を正規化することです。
ヒストグラムの均等化には、強度レベルを「標準化」するという同様の効果があります。
残念ながら、大規模なシーンの変更はこのプロセスに影響を与え、背景の強度が期待どおりに一定に保たれないようにします。