あなたの問題は高レベルのカーネルと畳み込みに関連していると私は信じています。
いくつかの配列があるとします。あなたがconv(arr,kernel)
をすれば、あなたが戻ってARRを取得する必要がありますので
arr = np.ones((5,5))
は、そして、あなたはこの場合にも、いくつかの2D畳み込みカーネル
kernel = [[0,0,0],
[0,1,0],
[0,0,0]]
を持って、それは、アイデンティティカーネルです。
カーネルを1Dボックスブラーカーネルに変更した場合はどうなりますか?古い値は1で、コンボリューション後にそれが1*arr[3,2] + 1*arr[3,3] + 1*arr[3,4] = 3
になります -
kernel = [[0,1,0],
[0,1,0],
[0,1,0]]
あなたはarr
バックのぼやけたバージョン、1の要素(3,3)
を考えてみましょうピーク、すなわち配列を取得するために期待するべきではありません。代わりに、kernel
は、その中央の列に沿って0.33を持っていた場合、あなたは各要素の1/3になるだろう、と値が1
これは、畳み込みカーネルのいくつかの分類を区別残る - 非正規化なものがありますし、それらの値は、ユニットピークであり、1の最大値を有するもの、及び(値の全ての合計)1.
全エネルギーの和を有する単位エネルギーあるもの非拘束でありますあなたのイメージは、正規化されていない、または単位ピークカーネルで変化します。単位エネルギーカーネルと畳み込むと、画像内の全エネルギーは前と後とで同じになります。あなたのコメントに対処するには
:
は、各画素がピクセル強度に畳み込ま相対的であるように、「最大(ガウス)」と言うによるガウスの各画素を分割する方法はありますか?
あなたが望む行動が暗いもの(バックグラウンド)以上にぼやけする明るいもの(星)のためであれば、それは自然に起こります。または、より具体的には、の高コントラストコントラストの低いものよりも物事がぼやけています。カメラを想像してみてください。それはDSLRやあなたの電話機なんか他のものかもしれません。青くて曇りのない空が見えない場合は、教えてください。星に焦点が外れている場合は、教えてください。
畳み込みのピクセルの値に何らかの重み付けをしたい場合は、データを複製し、各ピクセルを適切な重みでスケールし、変更したデータをカーネルで畳み込む必要があります。
畳み込み後に結果をスライスで分割してもほとんど同じ効果が得られませんか? – Evert
本当にわかりません。私がここで起こっていることは、各要素(またはピクセル)に対して、隣接する要素にまたがって広がる結果の畳み込みガウスが正規化されることです。このため、上位値の要素は、下位値のピクセルとは異なる影響を受けます。しかし、私が必要とするのは、要素が元の値を保持することですが、次にガウスの形で他の要素にぼかしを広げます。畳み込み後のスライスでの分割は、各要素を1に設定するだけでしょうか? – user8188120
投稿したソリューションは、ピーク正規化ガウス分布とどのように畳み込むかを示しています。デフォルトでは、積分正規化ガウス関数と畳込みが行われます。ほかに何が欲しいですか?キューブ内の各チャンネルを平滑化する一般的な使用例については、http://spectral-cube.readthedocs.io/en/latest/smoothing.html#spatial- smoothingを使用することができます。 – keflavich