1 2 1 1 2 1
2 4 2 (A) (1/16) * 2 4 2 (B)
1 2 1 1 2 1
両方の行列は、行列Bにその要素の合計が乗算されることを除いて、同じです。画像を畳み込むと、ほぼ同じぼやけた画像になります。
それらの正確な違いは何ですか?いつ使用する必要がありますか?
1 2 1 1 2 1
2 4 2 (A) (1/16) * 2 4 2 (B)
1 2 1 1 2 1
両方の行列は、行列Bにその要素の合計が乗算されることを除いて、同じです。画像を畳み込むと、ほぼ同じぼやけた画像になります。
それらの正確な違いは何ですか?いつ使用する必要がありますか?
回答:
右端のもの(合計で割るところ)は、フィルターの出力が入力と同じダイナミックレンジを持つことを保証します。
実際には、ピクセル値が異なるため、出力されるぼやけた画像は同じではありません。ソフトウェア(Matlabと思います)はピクセルの輝度値を通常のディスプレイで許容される範囲(つまり、0〜255の8ビット値)に再マッピングするので、それらは似ていると感じます。 「金属に近い」ソフトウェアまたはライブラリの場合、この操作は自分で行う必要があります。
データダイナミックレンジ
画像のダイナミックレンジは、画像に存在する最小強度値と最大強度値、または強度値の格納に使用されるデジタル形式で表すことができる最小強度と最大強度のいずれかによって与えられます。(コンテキストから、通常、どの定義が使用されているかは明らかです。)
一般的な範囲は、8ビットの量子化に対応する(整数間隔)と、浮動小数点値(単精度または倍精度)のです。同じ規則がコンピュータグラフィックス、OpenGLなどで使用されます。
どこでも値1の一定の画像を取得する場合:
この単純な例から、1つのフィルターが画像のエネリーを保持し、2番目のフィルターがそれを増加させていることがわかります。
この場合は無害ですが、実際には多くの問題が発生する可能性があります。たとえば、反復アルゴリズムが発散する可能性があります(数値のオーバーフローが原因で)、コンピューターがビットを使い果たしてデータを表す可能性があります。または、精度が失われる可能性があります(単精度および倍精度の浮動小数点値は、可能な値)。