問題タブ [laplacianofgaussian]
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.
android - Renderscript Intrinsicsを使用してガウス畳み込みのラプラシアンを実行しようとすると、何が間違っていますか?
私は一度にいくつかの新しいことに取り組んでいるので、どこが間違っているのかを見つけるのが難しくなっています. 私は Android、Kotlin (および Java)、Renderscript、カーネル畳み込み、およびラプラシアンを初めて使用します。
しかし、OpenCV と JavaScript を使用して Python で LoG を手動で動作させることができ、Android で他の Renderscript 組み込み関数を管理しました。しかし、5x5 畳み込み組み込み関数を使用して Log を機能させることができません。ここにいくつかのコードがあります:
私がいくつかのことについて確信が持てないことがわかります。しかし、LoG は通常、符号付き浮動小数点で出力を生成するという事実に帰着する可能性があると思います。表示したい場合は、後で unsigned 8 ビット int に正規化する必要があります。
で、create
以外の要素タイプを使用してみましたU8_4
。奇妙な結果が得られることもあれば、クラッシュすることもあります。Renderscript では、入力と出力に同じ要素タイプしか使用できないのでしょうか? たぶん、組み込み関数のみですか?私はそれが文書化されているのを見つけることができませんでした。多分私はそれを逃した。できるかもしれませんが、正しく設定していません。
通常の署名付き整数畳み込みカーネルを LoG に使用してみました。問題が、カーネルの負の中心要素によって負が高い正にラップされる場合、または乗算がオーバーフローまたは 255 に飽和する場合、カーネルを「事前正規化」して、出力が常に範囲は 0 ~ 255 です。
私が何をしようとしているかにもよりますが、ほとんどの場合、元のビットマップのかすかな印象を持つほとんど白いビットマップが得られます. バリエーションによってはフラット グレーになりますが、乗算して LoG を増幅すると、グレー レベルが変化するだけです。出力が入力と同じように見える場合があります。
最も奇妙なことは、最初は出力ビットマップが入力の複製であり、内部的に同じストレージになったことです。これを行ったとき、結果は実際に私のテスト画像の約半分で完璧でした! 残りの半分は破損していました。
これは 5x5 組み込み関数ではおそらく不可能ですが、プレーンな Renderscript で手動で実行できますか? または、U8 入力から浮動小数点出力に移行する方法はありますか? または、ビットマップと互換性のない要素タイプを使用しているだけですか? または、事前正規化によって修正する方法はありますが、私の試みは間違っていますか?
python - 画像のガウスのラプラシアンでゼロクロッシングを見つける方法
私の方法とmatplotlib OpenCVとNumPyのみを使用してLogファイラーを構築する必要があります(ただし、計算を支援するためだけにフィルターを実行する組み込み関数は使用しません)
手順:
- ガウス フィルターを使用して画像をぼかす
- 派生ラプラシアン カーネル Ix,Iy を使用
- 画像の2D配列ですべての「ゼロクロッシング」を見つけて、それらを1と残りのゼロとしてマークする必要があります
私の主な問題はゼロクロッシングです。それを行う方法が見つかりません。
しきい値なしですべての交差をチェックする必要があります -> { (-+),(+-),(-0+),(+0-)}
、およびすべての交差を 1 として作成し、残りはゼロのままにします。
(畳み込みは、関数 conv2D によっても実装されています)
image-processing - 楕円ブロブにガウスのラプラシアンを使用するには?
現在、Scikit 画像パッケージは、ガウスのラプラシアン (LoG) を実装して、球形のブロブを見つけます。パッケージはこちら。これらのガウスのラプラシアンを楕円ガウス カーネルに変換するにはどうすればよいでしょうか? これは、画像内の非球状ブロブを取得するために必要です。
python - ラプラシアン ピラミッドを作成するときに一貫したアップサンプリング/ダウンサンプリングを行うにはどうすればよいですか?
画像再構成のためにラプラシアン ピラミッドを作成しようとしていますが、問題があります。
ダウンサンプリングするときは、偶数の行/列を取得して残りを破棄します。アップサンプリングするときは、各行/列を複製します。
しかし、これにより、画像のサイズが同じではない状況が発生し、減算によって LogG を作成できなくなります。奇数サイズの img をダウンサンプリングしてアップサンプリングすると偶数になります。
元の画像を完全に再構築できるように、これを正しく行うにはどうすればよいですか?