序文
私はこれまでにいくつかの古典的な演算子を学習しました:
06Laplican
05Priwitt
04Sobel
03Roberts
今日私が学んだのは Canny 演算子です。
1. Canny オペレーターとは何ですか?
Canny オペレーターは、高精度で誤検出率が低い最適なエッジ検出オペレーターであり、コンピューター ビジョンや画像処理の分野でよく使用されます。Canny オペレーターは主に次のステップで構成されます。
1 ガウス フィルター: ガウス フィルターは、画像を滑らかにしてノイズを除去するために画像で使用されます。
2 画像の勾配を計算します。平滑化された画像の各ピクセルの勾配値と方向を計算します。
3 非最大値抑制: 勾配の方向において、極大値のピクセルのみが保持され、最終エッジが取得されます。
4 二重閾値検出: 高閾値と低閾値に従って、画像内のピクセルが強いエッジと弱いエッジに分割されます。
5. エッジ接続: 強いエッジと弱いエッジの位置と位相関係に従って、弱いエッジは強いエッジに接続されているエッジに接続されます。
上記の手順は、Canny オペレーターの主なプロセスです。他のエッジ検出アルゴリズムと比較して、Canny オペレーターによって生成されるエッジはより繊細で正確であるため、ノイズや高い誤検出率の問題を効果的に回避できます。
2. プログラムの検証
1. サードパーティのライブラリを使用する
コードは次のとおりです(例)。
import cv2
import numpy as np
def canny_edge_detection(image):
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
blurred_image = cv2.GaussianBlur(gray_image, (3, 3), 0)
edges = cv2.Canny(blurred_image, 30, 100)
return edges
要約する
この記事では、サードパーティのライブラリを呼び出してキャニー エッジ抽出を完了します。キャニー エッジ抽出には多くのナレッジ ポイントが含まれているため、現在のコード レベルではすべての機能をゆっくりとしか実現できません。この部分は後の記事で更新されます。