dポイントプレゼントキャンペーン実施中!

カラー画像からある色の抽出を行うに当たって、ノイズ処理を行うことになり、ネットで検索をし処理方法を見つけてきました。
環境はVC++上でOpenCVというC言語のライブラリーを使用しています。

処理方法は、openCVの関数を使用し
cvPyrDown( imgA, imgB, 7 ); // 7 ピクセル縮小
cvPyrUp( imgB, imagA, 7 );// 7 ピクセル拡大
といった
前画像に対して、7ピクセル縮小処理を行い、結果画像に対して7ピクセル拡大することによって、ぼやけた感じの画像が完成し、色抽出がうまくできました。

しかし、何故この方法でうまく出来たのかの原理がいまいち分からずすっきりしていません。
よろしければ、誰か理由を教えていただけないでしょうか??

A 回答 (2件)

openCV というライブラリは知りませんが


画像を縮小しようとしたら対応する画素の数が減るわけですから、
どのようにするかを考えないといけません。
例えば
16*16の画像があるとして2*2の画像にすることを考えると、
8*8の領域4つがそれぞれ1つの画素に対応づけるような処理が必要になります。
それで、大抵の場合は、そうした対応する画素を平均するというような処理が行われると思います。
つまり、8*8の画素を混ぜて1つの画素にするわけです。
そのように平均化して縮小した画像を元のサイズに逆に拡大しようとすると、今度は1→8*8の対応になるわけですが、
この場合情報が1つしかありませんから、対応する全体に1つの画素を適用することになります。
とまあ、こんな感じで平均化が行われるということでしょうね。
(縮小拡大で平均する過程によって突出したノイズは、打ち消されるか、拡散する)
    • good
    • 0
この回答へのお礼

回答ありがとうございます
例まで書いて頂いたおかげできちんと理解することができました。お忙しい中わざわざありがとうございます^^

お礼日時:2006/10/16 12:36

どうも


普通ノイズは,平均が0ってことになっているので,
あるピクセルを中心にして,広い範囲で平均(加重平均)を取れば,
ノイズの影響はへります.

普通のやり方では,平滑化フィルターを画像にかけます.

VCの7ピクセル縮小関数は,何をやっているか知らないけど,
たぶん7ピクセルを平均して,1ピクセルにしているのでは,
    • good
    • 0
この回答へのお礼

丁寧な回答ありがとうございます
加重平均と平滑化フィルターについてもっと詳しく調べてみて、よりよいノイズの処理を検討してみたいと思います

お礼日時:2006/10/16 12:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!