1

畳み込み行列について学んでおり、それらがどのように機能するかは理解していますが、行列の出力がどのようになるかを事前に知る方法がわかりません。たとえば、画像にぼかしを追加したいとします。正しいものを取得する前に、10,000 以上の異なる数字の組み合わせを推測できます。

この式がぼかし効果をもたらすことは知っていますが、その理由はわかりません。

float[] sharpen = new float[] {
     1/9f, 1/9f, 1/9f,
     1/9f, 1/9f, 1/9f,
     1/9f, 1/9f, 1/9f
};

誰かがこれがどのように機能するかを説明するか、これを説明する記事を教えてもらえますか? 推測せずに、行列の可能な出力がどうなるかを事前に知りたいです。

基本的に、なぜその番号をフィールドに入れ、他の番号を入れないのか知りたいのですが?

4

3 に答える 3

4

畳み込み行列が簡単な例でどのように機能するかを説明するこのリンク。

質問にあるマトリックスが画像をぼかす理由は、各ピクセルが周囲のすべてのピクセルの平均になるためです。つまり、アクション エリアの中心にあるピクセルの新しい値は、次の式と等しくなります。

new_value = (1/9)(top-left-neighbor)    + (1/9)(top-neighbor)    + (1/9)(top-right-neighbor) +
            (1/9)(left-neighbor)        + (1/9)(self)            + (1/9)(right-neighbor)     +
            (1/9)(bottom-left-neighbor) + (1/9)(bottom-neighbor) + (1/9)(bottom-right-neighbor)

新しい値は、9 ピクセル (元のピクセル値を含む) の 1/9 であり、これは、マトリックスによって操作される 3x3 正方形の「平均」値であることがわかります。この「平均的な」効果により、マトリックスを適用した後に見えるぼかしが作成されます。

畳み込み行列の値の選択は、達成したい効果によって異なります。マトリックスが元の画像に適用され、新しいピクセル値がコピー先の画像にコピーされることに注意してください。これは、新しい値が隣接ピクセルへのマトリックスの適用に考慮されないことを意味します...マトリックスに供給されるのは元の値のみです。

于 2012-11-28T17:02:34.000 に答える
1

コンボリューション マトリックスのチュートリアルを Java コードで確認する

于 2013-09-05T11:05:41.390 に答える
0

畳み込み操作は基本的にフィルターです。画像をスキャンしてローカルで実行するツールのようなものだと考えてください。

この記事を読むことから始めることができます。より深く掘り下げたい場合は、ウィキペディアで畳み込みを検索してください。実際の分析と信号処理理論の知識は大歓迎ですが、興味がある場合はそれを思い付くことができます。

于 2012-11-28T17:01:59.103 に答える