キャニーエッジ検出

Mary-Kate Olsen
リリース: 2024-11-24 19:01:20
オリジナル
163 人が閲覧しました

エッジ検出は、画像内のオブジェクトの輪郭を識別するコンピューター ビジョンの画像処理技術です。

Canny Edge Detection

Canny エッジ検出は、エッジ検出に最適な手法の 1 つです。ノイズを低減し、誤ったエッジを回避しながら、クリーンで明確なエッジを検出するように設計されています。画像内のエッジを検出するために、高しきい値と低しきい値の二重しきい値方式が使用されます。

img = cv2.Canny('photo.jpg')
img_edges = cv2.Canny(img, 100, 200)
// 100 is the low threshold
// 200 is the high threshold
ログイン後にコピー

閾値は、何がエッジになり、何がエッジにならないかを決定します。この決定を行うために、勾配値を使用します。

  • グラデーション値が上限しきい値を超える場合、それは強いエッジとみなされ、エッジ マップに追加されます。 (強いエッジ)
  • 下限しきい値を下回る場合は無視されます。 (エッジなし)
  • 高しきい値と低しきい値の間にある場合、強いエッジに接続されている場合にのみ保持されます。 (潜在的なエッジ)

勾配値とは何ですか?

グラデーション値は生の画像値ではありません。これらは、画像内のピクセル強度がどの程度変化するかをチェックすることによって、生の画像から導出される計算された数値です。生の画像値ではエッジがどこにあるかを直接教えてくれないため、グラデーション値を使用します。

ピクセル強度の変化を示す簡単な例: 2 つの隣接するピクセルの値が大きく異なる場合 (例: 50 と 200、グラデーション値が 150)、大きな変化があり、それはエッジである可能性があります。しかし、隣接する 2 つのピクセルの値が似ている場合 (例: 50 と 52、勾配値が 2)、変化はほとんどなく、エッジである可能性はほとんどありません。

勾配値が計算された後、それらはしきい値と比較され、何が強いエッジ、潜在的なエッジ、または非エッジとして認定されるかを決定します。

しきい値間の値が強いエッジに関係していることをどのようにして知ることができるでしょうか?

ヒステリシスによるエッジトラッキングと呼ばれる手法を使用し、接続されているエッジと破棄すべきエッジを決定します。このアルゴリズムは、潜在的なエッジ ピクセルごとに 8 つの隣接ピクセル (直接隣接するピクセル、上、下、左、右、対角線) を調べることによって機能します。強いエッジに直接的または間接的に接続されているピクセルはすべて、最終結果に含まれます。

エッジトラッキングの仕組み:

   50   80  110   90
   70  250  190  120
   60  180  150   70
   40   60   80   50
ログイン後にコピー

上のこのグラデーション マップを想像してください:

しきい値 (低 = 100、高 = 200) を適用した後、強いエッジ ピクセル (> 200) は直ちにエッジとして保持されます。ここでは、ピクセル 250 のみが強いエッジとしてマークされています。

潜在的なエッジ ピクセル (100 ~ 200) は 110、190、120、180、150 です。潜在的なエッジのプールができたので、エッジ トラッキングを実行して、何が残り、何が破棄されるかを決定します。アルゴリズムは、潜在的なエッジのいずれかが強いエッジ (250) に直接的または間接的に接続されているかどうかをチェックします。

例:

  • 190 は 250 の隣であり、強いエッジに直接接続されているため保持されます。
  • 150 は 190 の隣であり、間接的に強いエッジに接続されているため、これも保持されます。

80、90 などの弱いエッジ ピクセル (

以上がキャニーエッジ検出の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート