计算机视觉 (七) -- Canny

Canny 的目标是找到一个最优的 边缘检测算法,最优边缘检测的含义是:
好的检测- 算法能够尽可能多地标识出图像中的实际边缘。
好的定位- 标识出的边缘要尽可能与实际图像中的实际边缘尽可能接近。
最小响应- 图像中的边缘只能标识一次,并且可能存在的图像噪声不应标识为边缘。
为了满足这些要求 Canny 使用了 变分法,这是一种寻找满足特定功能的函数的方法。最优检测使用四个 指数函数项的和表示,但是它非常近似于 高斯函数的一阶 导数
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import cv2
import numpy as np

image = cv2.imread( "./imgs/2.jpg" )

gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)

wide = cv2.Canny(gray, 30 , 100 )
tight = cv2.Canny(gray, 180 , 240 )

f,(a1,a2) = plt.subplots( 1 , 2 , figsize = ( 200 , 200 ))
a1.set_title( "wide" )
a1.imshow(wide, cmap = 'gray' )
a2.set_title( "tight" )
a2.imshow(tight, cmap = 'gray' )
plt.show()

猜你喜欢

转载自blog.csdn.net/u010676526/article/details/80110695