
とあるプログラムをしている者です。
Canny法を用いてエッジ抽出を試みているのですが、
ヒステリシス閾値で用いる高い閾値と低い閾値の適切な決定法がわかりません。
最終的には抽出の対象となる画像ごとに適切な閾値を設定し
処理をかけたいと考えています。
しかし、対象とする画像の背景と抽出したいオブジェクトの色の濃度が
画像によって大きく変化するため、従来の決定法では対応しきれていない現状です。
そこで、Canny法に用いる適切な閾値の決定法がありましたら
ぜひご教授頂きたいと思います
よろしくお願いします
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
解析というのは解析者の目的ありきです。
何かしらのフィルタをかける場合に何が「適切な決定法になる」かは
機械ではなく、人間がどう決めるか(どういう結果をよしとするか)次第なので
例えば、PhotoShopのような画像処理系統のソフトを作りたい場合は
閾値等の決定は
PhotoShopが実際にそうであるように
その都度結果画像をプレビューしながらトラックバーや数値をアップダウンさせられるコントロールなどでユーザーが任意に行える
という方法にするとよいでしょうし、かなり現実的だと思います。
(「中でもこういう感じの画像を処理するのが得意としたい目的のアプリ」という大よその方向性があれば、デフォルト値とかは実際にやってみて決めればいいのではないでしょうか)
決まった画像を読み込み独自のシェーダを使う、ゲームなどの場合であれば
それはもう自分の満足のいくように実験で決めるということになるかと。(画像ごとに変えるなら閾値の情報も保存しておくようにするなど)
もし、そういうことをかなりのレベルでほとんど自動化したいのであれば、自分の目的に合った「学習アルゴリズム」や「学習データ」(過去にどういう画像はどう処理されたかの履歴から、任意の統計学的手法で計算するプログラム)などを作成する必要が出てきそうです。度合い次第では、結構大変かもしれません。
実際のフローでは
もしご自身で細かいとこまで書かれている場合は
Canny法の流れは
ガウシアン → Sobel → 細線化 → 2値化
ということで
仮にヒステリシス閾値
での2つのパラメーターだけいじればいいなら
細線化までの情報を一端持っておいて
パラメータ変更時にそれにフィルタかけるだけにすれば、ほとんど無駄がないと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Vba Replace関数について教えて...
-
DLLファイルの逆コンパイラにつ...
-
逆コンパイルと逆アセンブルの...
-
CSSが全く分かりません、お助け...
-
プログラマー達は何故、プログ...
-
Windows Formアプリからコンソ...
-
次の日本語の意味を教えて下さい
-
プログラム言語について c言語...
-
バッチファイルで以下のような...
-
Cのプログラムからアクセスでき...
-
C#でTreeViewのCheckBoxのサイ...
-
c#のTLS1.2での通信について
-
今ってプログラミング言語は何...
-
gccを行ってもexeファイルが生...
-
最初に聞かれたこと
-
プログラミング言語についてc++...
-
PIC12F1822でLED調光器を作りたい
-
C言語について(初心者)
-
プログラミングc++を全く分か...
-
C# で 数式文字列処理を処理す...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
画像のアセンブリコードは何を...
-
C言語 極座標変換
-
直線と線分の交差判定について...
-
色混ぜのアルゴリズム
-
画像の2値化について
-
VBを使った自作の逆FFT
-
生年月日(yyyy/MM/dd) → 年齢...
-
点字認識システムを作成したい...
-
Canny法に用いる閾値の決定法に...
-
[緊急] 添付画像にある,黒枠内...
-
画像の透明化
-
姿勢センサでプロジェクタの台...
-
VB BitmapをExcelに貼り付け 大...
-
解像度と誤差について
-
OpenCVで寸法測定
-
2枚の画像間の色ヒストグラム距...
-
ノイズ処理の原理
-
C言語によるディジタル信号処理...
-
HBITMAPを初期化するとは?
-
平滑化フィルタなどフィルタリ...
おすすめ情報