問題タブ [convolution]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
697 参照

algorithm - 超解像とラプラシアン項

私は超解像アルゴリズムを実行できるようにするプログラムを書いています。この本では、復元の途中で、離散ラプラシアン演算子を使用しています。どういうわけか、行列(私の画像)にこのラプラシアン演算子を掛ける必要があります。したがって、この演算子を行列として表す必要がありますが、どのように想像することはできませんか?

本からのテキスト:

ラプラシアンは二階導関数ですが、離散データの場合、形式のマスクを使用した単一の畳み込みで近似できます。

ここに画像の説明を入力してください

演算子は、この畳み込みを行列の乗算として実行します。以下のような形式です(空白はゼロを表します)。

ここに画像の説明を入力してください

PS私の英語でごめんなさい!:)

0 投票する
1 に答える
1508 参照

python - Python での matlab の deconv の効率的なバージョン

Pythonでのmatlabのdeconvの効率的な実装はありますか?

(驚いたことに、これをグーグルで検索しても興味深い結果は得られません)

0 投票する
2 に答える
854 参照

image-processing - RGB画像にアンシャープマスクを適用しますか?

アンシャープマスクアルゴリズムは、RGB画像とグレースケールで同じですか?すべてのチャンネルに適用するだけですか?

または、RGB-> HSLに変換して適用し、RGBに戻すこともできますか?

ありがとう

0 投票する
3 に答える
4100 参照

image-processing - 画像畳み込みに FFTW を使用する場合、カーネルをどこに配置しますか?

画像の畳み込みにFFTWを使用しようとしています。

まず、システムが正常に動作しているかどうかをテストするために、fft を実行し、次に逆 fft を実行したところ、まったく同じ画像が返されました。

次に、少し前進して、ID カーネルを使用しました (つまり、kernel[0][0] = 1 に対して、他のすべてのコンポーネントは 0 に等しい)。画像とカーネル (両方とも周波数領域) の間の成分ごとの積を取り、逆 fft を実行しました。理論的には、同じ画像を取り戻すことができるはずです。しかし、私が得た結果は、元の画像に近いものではありません。これは、周波数領域に fft する前にカーネルを中央に配置したことに関係していると思われます (カーネル [0] [0] に「1」を配置したため、基本的には正の部分を上部の中央に配置したことを意味します)。左)。ここで何がうまくいかないのか、誰か教えてもらえますか?

0 投票する
2 に答える
3810 参照

matlab - マトリックスとサブマトリックス間のデコンボリューション

私はマトリックスa=[[1 2 3]; [4 5 6]; [7 8 9]]とサブマトリックスを持っていb=[[5 6];[8 9]]ます。

デコンボリューションのためのmatlabの方法はあり(a,b)ますか?

巨大行列の可能性がある部分行列の存在を認識する方法を探しています。一種のデコンボリューションによって1、部分行列が存在する場所とその周囲にゼロがある行列のようなものを取得することを期待しています。

上記の例で1は、右下隅に a があります。

0 投票する
1 に答える
736 参照

c++ - CUDA による巡回畳み込み

FFT2Dの論文で

http://developer.download.nvidia.com/compute/cuda/2_2/sdk/website/projects/convolutionFFT2D/doc/convolutionFFT2D.pdf

図 1 と 2 では、次のように述べられています。

画像が畳み込みカーネルよりも大きいと仮定すると、通常は実際にそうですが、畳み込みカーネルを画像サイズに拡張し、図 1 に従ってパディングする必要があります。図 2 と 3 (以下を参照) でわかるように、拡張カーネルを使用した巡回畳み込みは、初期畳み込みカーネルを使用した巡回畳み込みと同等です。

要素のカーネルと画像の間で畳み込みを実行し、同じ要素の展開されたカーネルと画像の間で畳み込みを実行しようとすると、異なる結果が得られます。

「循環畳み込み」は古典的な「畳み込み」と同じだとどこかで読みましたが、これは正しいですか? そうでなければ、これをどのように解釈すればよいでしょうか?

0 投票する
1 に答える
1443 参照

cuda - CUDA-畳み込みの前にカーネルをパディングする方法は?

周波数乗算=離散信号(ベクトル)の時間空間での巡回畳み込みを知っています。

また、「畳み込み定理は、x(n)とh(n)がDFTの前にゼロで埋められ、それぞれの長さがNx + Nh-1になる場合にのみ、目的の線形畳み込み結果を生成します。基本的に、すべての円形がゼロになります。アーティファクト。」

そして、すべてがベクトルで機能します。しかし、私の目標は、この論文のように行列を使った巡回畳み込みです。

http://developer.download.nvidia.com/compute/cuda/2_2/sdk/website/projects/convolutionFFT2D/doc/convolutionFFT2D.pdf

最初の2つの図(図1と2)を見ると、カーネルがこれまでに見たことのない奇妙な方法で埋め込まれていることがわかります。これは何ですか?

0 投票する
2 に答える
606 参照

image-processing - レプトニカにおけるバイアスを伴う畳み込み

畳み込みカーネルで pix をフィルタリングしたいのですが、バイアスがあり、Leptonica API を使用してバイアスを「エミュレート」する方法がわかりません。

これまでのところ、私は持っています:

古典的な「バイアス」をエミュレートする方法はありますか?pixConvolve の前後に画像の各ピクセルにその値を追加しようとしましたが、結果はほとんどの画像処理ソフトウェアで観察されるものではありません。

0 投票する
1 に答える
729 参照

c++ - 3D fft ベースの畳み込みのライブラリを検索しています

大きな 3D 行列と小さな 3D 行列があり、3D fft ベースの畳み込みを使用して、大きな行列で小さな 3D 行列に最適な一致を見つけたいと考えています。それを実行できる C++ のコードはありますか?

0 投票する
1 に答える
496 参照

matlab - 次元全体の変換 matlab

3D ボリュームがあり、最初の次元にガウス フィルター (conv を使用) を適用したいと考えています。つまり、各列をフィルターで個別に畳み込みたいということです。次のようなものが必要です:

私が試したのは、キューブの列を(フィルター幅のサイズまで)ゼロでパディングしてから使用することです:

しかし、これはメモリ/時間がかかりすぎます!

ありがとうマトラビット