OpenCVノート仕上げ【キャニーエッジ検出】

キャニー エッジ検出は、[多段階] エッジ検出アルゴリズムを使用してエッジを検出する方法です。

主に以下のステップに分かれています。

1. ノイズ除去:

ノイズをフィルタリングし、フィルタリングを使用して、テクスチャが弱いエッジ以外の領域を滑らかにします。

2. 勾配を計算します。

勾配の大きさと角度を計算します (PS: 2↑ は、大きさが 2 で角度が 90° であることを意味します)。エッジと勾配は常に垂直であることに注意してください。
ここに画像の説明を挿入

3. 非最大抑制:

ピクセルを順番にトラバースして、現在のピクセルが周囲のグラデーション方向の最大値であるかどうかを判断します。最大値の場合は保持され、それ以外の場合は抑制 (ゼロ) されます。
ここに画像の説明を挿入

4. 二重しきい値処理を使用してエッジを識別します。

仮想エッジを排除し、実際のエッジを決定します。
ここに画像の説明を挿入

前の手順の後、いくつかのエッジが取得されましたが、実際のエッジに加えて、これらのエッジの間にノイズ エッジがいくつかあるため、それらをさらに削除する必要があります。主に 3 つの状況があります。

maxVal 以上の強いエッジ:
minVal より大きく maxVal より小さい仮想エッジを保持: 強いエッジに接続されている場合は保持、そうでない場合は抑制。
minVal より小さいエッジ: 抑制

上記のコード:

キャニー(img,minVal,maxVal)

import cv2

o=cv2.imread("lena.bmp",cv2.IMREAD_GRAYSCALE)
r1=cv2.Canny(o,128,200)
r2=cv2.Canny(o,32,128)
cv2.imshow("original",o)
cv2.imshow("result1",r1)
cv2.imshow("result2",r2)

cv2.waitKey()
cv2.destroyAllWindows()

結果:
ここに画像の説明を挿入
バイバイ。. . .

おすすめ

転載: blog.csdn.net/qq_34699535/article/details/120456934
おすすめ