問題タブ [sobel]
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.
java - カラード キャニー エッジ検出の計算の問題
グラフィッククラスの学校プロジェクトに取り組んでいます。私の仕事は、色付きの画像のエッジを検出することです。Canny エッジ検出アルゴリズムを使用するよう提案を受けました。
プログラム全体を Java で自分で書くことにしました。Java Swing でウィンドウを作成しました。入力画像を sRGB 画像として読み込み、CIEL a b* に変換しています (これはタスクの一部であるため)。偏導関数を決定するソーベル カーネル (Cx,Cy) を適用することができました。しかし、私は方向式にこだわっていて、それをコーディングしています。
私の最初の問題は、すべての個別のカラー チャネルで方向を計算する必要があるのか、それともまとめて計算する必要があるのか わからないことです。
ここに計算式があります(最初は方向です、私は立ち往生しています、そして正しいサイズには方向-シータを必要とする大きさがあります)
方向を計算するためのソース コードは次のとおりです。
LabImg
イメージのサイズ、ピクセル値の 2D 配列、およびバッファリングされたイメージを含むデータ型です。
matlab - 画像を正規化するときの寸法の誤り
このコードセクションでエラーが発生しています
私が得るエラー:
また、./
提案どおりに使用すると、新しいエラーが発生します。
正規化のステップで何か間違ったことをしています。
この問題を解決するにはどうすればよいですか?
c++ - SFML C++ キャニー エッジ検出ダブル エッジ
そこで、画像処理で難しいトピックに取り組む前に、演習として単純な Canny エッジ検出器を作成することにしました。
私はキャニーの典型的な道をたどろうとしました: 1. 画像をグレースケール化する 2. ノイズをぼかすためのガウス フィルター 3. エッジ検出 - 私は Sobel と Scharr の両方を使用します 4. エッジ細線化 - 勾配に応じて方向に非最大抑制を使用しました方向 - 垂直、水平、45 対角または 135 対角 5. ヒステリシス
私はどういうわけかScharrの検出でそれを機能させることができましたが、特にSobelでは、二重または複数のエッジで問題が繰り返し発生しています。それを機能させる一連のパラメーターを実際に見つけることができません。
ソーベルの私のアルゴリズム:
Scharr のコードが異なるのは、ピクセル値の乗算だけです。
間引きコード:
ヒステリシス コード:
結果は Sobel にとって非常に満足のいくものではありません。
Scharr を使用すると、結果が大幅に向上します。
パラメータのセット:
ご覧のとおり、ダブル エッジを生成する Sobel に問題があります。Scharr も多少のノイズを発生しますが、許容できると思います。もちろん、誰かがアドバイスをくれれば、いつでも良くなる可能性があります:)
この動作の原因は何ですか? それは私の間違いやアルゴリズムの貧弱さによるものですか、それとも単にパラメータの問題でしょうか?
編集: main() の投稿
2 番目の編集 - 抑制の修復: