問題タブ [laplacian]

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 投票する
0 に答える
420 参照

python - Python でラプラシアン ソルバーのグリーン関数を適切に実装するためのアドバイスはありますか?

特に画像のラプラス/ポアソン問題を高速に解決する方法を詳述しているこの論文を見つけました。著者は、他のより複雑なアルゴリズムよりも桁違いに速くこれらの問題を解決できる、非常に単純でありながら強力なアルゴリズムについて説明しています。この論文の重要な洞察は、簡単に計算できる離散グリーン関数の定式化です。

アルゴリズムの疑似コードが論文に明示的に記載されているにもかかわらず ( 8 ページ)、このグリーン関数の計算に問題があります。以下に問題の例を再現しました。

この論文では、畳み込み関係 A * B = Finv( F(A) ⊙ F(B)) を使用してカーネルを見つけます。ここで、⊙ はアダマール積です。この関係を適用し、ラプラシアン カーネル K_L とグリーンの関数 V_mono の畳み込みがディラックのデルタに等しいことに注意すると、グリーンの関数 V_mono は他の 2 つの既知の量から計算できます。

しかし、グリーン関数を導出する際にエラーが発生し続けます。たとえば、次のコードでは、ディラックのデルタのフーリエ変換にゼロ エントリはありません。しかし、ラプラシアン カーネルのフーリエ変換にはゼロ エントリが 1 つあります。これにより、これらの量のアダマール除算が行われ、未定義のグリーン関数が検出されます。ただし、ラプラシアンを既知の画像に適用し、それを使用して逆のプロセスでグリーン関数を見つけると、結果はほぼ同等になります。(唯一の機能上の違いは、問題のある [0,0] エントリには逆計算されたエントリに 10^18 エントリがあるのに対し、分析的に計算されたエントリには無限の値があることです。)

これがこの論文の核心であるため、再構成アルゴリズムを適用することはできません。アルゴリズムを修正するにはどうすればよいですか?

PS 引用の目的で、この論文は、Beaini et al. による「グリーン関数畳み込みを使用した勾配領域画像編集のための高速かつ最適なラプラシアン ソルバー」と名付けられています。

0 投票する
0 に答える
88 参照

java - 最初の反復で発散する FitzHugh-Nagumo 拡散モデルの実装

私は、この論文で説明されているモデルを実装しようとしています。このモデルは、動物の皮膚パターンを形成するためのモデルとして、アラン チューリングによって提案された FitzHugh-Nagumo モデルの方程式を 2D でシミュレートします。それらがどのように相互作用し、どのようなパターンが生じるか。これは論文の結果です:

                                            ここに画像の説明を入力

私はそれ(少なくとも私の解釈)をProcessing/Javaに実装しましたが、本来のように機能していません(最初の反復で値が大きく異なっています)。投稿の最後に)。


これらは、実装に関する論文の 3 つの関連部分です。

1. U&V

u と v の 2 つの物質があります (それぞれ活性化剤と阻害剤と考えることができます)。 ここに画像の説明を入力

2. 有限差分方程式

uvの各値 (ピクセル) に対して、かなり単純なピクセル畳み込みが定義されます。次世代の特定のピクセルの値は、そのピクセルとその隣接ピクセルの現在の反復値の両方を使用して計算されます。

与えられたピクセル (i,j) の n+1 反復 におけるuの値は、次のように定義されます。ここに画像の説明を入力

与えられたピクセル (i,j) の n+1 反復 におけるvの値は、次のように定義されます。ここに画像の説明を入力

3. 彼らが使用した定数

ここに画像の説明を入力


したがって、私が得ている問題は、uvの値がすぐに無限大/NaN に発散することです (論文では明示的に言及されていませんが、0...1 の範囲内にとどまる必要があります)。ここに見られるように、 vは最初に発散するように見え、uを一緒に取ります (一定のインデックスの場合):

コード