ホームページ > バックエンド開発 > Python チュートリアル > Pythonを使用したCanny Edge Detector

Pythonを使用したCanny Edge Detector

William Shakespeare
リリース: 2025-02-28 09:49:10
オリジナル
879 人が閲覧しました

エッジ検出は、概要に基づいたオブジェクト認識のための重要な画像分析手法であり、画像情報の回復に不可欠です。 高度なコンピュータービジョンや画像処理アルゴリズムでよく使用されるラインや曲線などの主要な機能を抽出します。 堅牢なエッジ検出アルゴリズムは、ノイズ誘発誤ったエッジを抑制しながら、主要なエッジを正確に識別します。

エッジは、通常、領域の境界で発生する画像強度(ピクセル値)の局所的な変化を表します。このチュートリアルでは、Canny Edge検出アルゴリズムとそのPython実装について説明します。

Canny Edge Detector

発明者であるジョン・F・キャニー(1986)にちなんで名付けられたキャニー検出器は、グレースケールの画像を入力として採用し、強度の不連続性(エッジ)を強調する画像を出力します。

プロセスには:

ノイズリダクション:
    ガウスの畳み込みは、入力画像を滑らかにし、ノイズを減らします。
  1. 勾配計算:最初の導関数演算子は、高い空間導関数を持つ領域を強調しています。 勾配の大きさと方向は、xおよびy誘導体を使用して決定されます。これは、エッジ方向の識別に重要です。
  2. 非最大抑制:このステップはエッジを鳴らします。 アルゴリズムはグラデーションリッジに沿ってトレースし、尾根以外のピクセルをゼロに設定し、薄いエッジラインになります。 これには、グラデーションを隣人と比較することが含まれます。最大勾配のみが保持されます。
  3. ヒステリシスのしきい値:2つのしきい値、(上)および
  4. (下)、
  5. を使用して、エッジ追跡を制御します。 追跡は上のポイントから始まり、勾配が下に落ちるまで続きます。 t1上のポイントは常にエッジです。以下のポイントt2ただし、上記の上のポイントが上のポイントに接続されている場合にのみエッジがあります。 t1 > t2 t1ガウスカーネルの幅とt2/t1しきい値は、キャニー検出器の出力に影響を与えるパラメーターです。 t1t2python実装t1
2つの方法が示されています:

およびt1t2の使用

を使用しています

インストールscikit-image(例えば、OpenCVubuntuで)。 (

モジュール内)

関数は、Canny Detectorを適用します。 サンプル画像「boat.png」を使用する(以下に示す):scikit-image

scikit-imageコード:sudo apt-get install python-skimage canny() feature出力(エッジ検出された画像):

Canny Edge Detector Using Python パラメーターの調整により、さまざまなエッジ検出結果が得られます。

from skimage import io, feature

im = io.imread('boat.png')
edges = feature.canny(im)
io.imshow(edges)
io.show()
ログイン後にコピー
ログイン後にコピー

を使用しています

opencvをインストールします(オペレーティングシステムの関連するインストールガイドを参照)。 opencvのCanny()関数はエッジ検出を実行します。

コード:

from skimage import io, feature

im = io.imread('boat.png')
edges = feature.canny(im)
io.imshow(edges)
io.show()
ログイン後にコピー
ログイン後にコピー

引数:im(画像)、下のしきい値(25)、上部しきい値(255)、L2gradient=False(L1-Normを使用)。 matplotlib結果が表示されます。

出力(エッジ検出された画像):

Canny Edge Detector Using Python

結論

このチュートリアルは、

scikit-imageを使用したCanny Edge Detectorとその単純な実装について、エッジ検出におけるその有効性を実証しました。

以上がPythonを使用したCanny Edge Detectorの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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