6

デジタル カメラで取得したカラーチェッカーの画像があります。これを使用して、opencv を使用して画像を調整するにはどうすればよいですか?

カラーチェッカー画像の下に従ってください:

ここに画像の説明を入力

4

1 に答える 1

2

カラーキャリブレーションを行う方法、またはOpenCVで行う方法を尋ねていますか?

カラー キャリブレーションを行うには、キャリブレーション ボードの最後の行 (灰色のトーン) を使用します。ここでは、段階的にカラー キャリブレーションを行う必要があります。

  1. イメージをキャプチャし、灰色の領域内の小さな領域を取ります。中央の 10x10 ピクセルは問題ありません。このステップの後、6 つの 10x10 リージョンが作成されます。
  2. 各グレー領域の 10x10 領域の平均値を取得します。このステップの後、灰色の領域ごとに 1 つずつ、合計 6 つの平均値が得られます。また、各色の下に示されている値のように、各値は RGB 値であることを忘れないでください。
  3. 平均値を確認し、値を特定の値と一致させます。最初の試行では、おそらく平均値は指定された値とは異なります。実際に合わせるのがキャリブレーション作業です。それらを一致させるには、カメラのゲインを変更する必要があります。各チャネルのゲインを変更し、平均値を特定の値と一致させます。
  4. 各チャネルのカメラ ゲインを変更したら、収束してカメラがキャリブレーションされるまでこれらを繰り返します。

別の色から小さな領域を取得し、その平均値を指定された値で確認することで、キャリブレーションが正しく行われたかどうかを確認できます。それらが一致するか、ほとんど同じであれば、カメラのカラー キャリブレーションは成功しています。

カメラ ゲインを設定できるようになるだけで、あとは画像をキャプチャして値を一致させ、正しいカメラ ゲインを見つけるだけです。

プロセスを理解していれば、OpenCV を使用してこれを行うのは簡単なことです。

[編集]

ゲインの計算方法がわかりません。しかし、最も簡単な方法は力ずくです。このようなことができます。

ゲイン値が 0.0 から 3.0 の間で変動すると仮定し、0.1 などのステップ値を指定して、すべての値を試します。次のような for ループが必要です。

for (double redGain=0.0; redGain <= 3.0; redGain += 0.1)
   for (double greenGain=0.0; greenGain <= 3.0; greenGain += 0.1)
      for (double blueGain=0.0; blueGain<= 3.0; blueGain+= 0.1)
         setCameraGain(redGain, greenGain, bluegain);
         // do the rest of the stuff
      end
   end
end
于 2013-09-19T15:45:07.417 に答える