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()