营销型网站建设式球磨机,公司制作网站跟企业文化的关系,市场营销,成都搜索优化整站优化本文是OpenCV图像视觉入门之路的第13篇文章#xff0c;本文详细的介绍了Canny边缘检测算子的各种操作#xff0c;例如#xff1a;Canny算子进行边缘检测等操作。 Canny函数是OpenCV中用于执行边缘检测的函数之一#xff0c;其参数包括#xff1a;
threshold1#xff1a;… 本文是OpenCV图像视觉入门之路的第13篇文章本文详细的介绍了Canny边缘检测算子的各种操作例如Canny算子进行边缘检测等操作。 Canny函数是OpenCV中用于执行边缘检测的函数之一其参数包括
threshold1第一个阈值用于在检测到的边缘上消除弱的像素点。通常设置为较小的值例如50或100。threshold2第二个阈值用于确定哪些像素点是强边缘哪些是弱边缘。通常设置为较大的值例如150或200。apertureSizeSobel算子的核大小。通常设置为3表示使用一个3x3的核但也可以设置为5、7或其他值。L2gradient一个布尔值指示是否使用L2范数来计算梯度幅值。如果设置为False则使用L1范数。
Canny算法的基本原理如下 去噪由于图像可能存在噪声需要对图像进行高斯平滑来去除噪声。 计算梯度幅值和方向使用Sobel算子对平滑后的图像进行梯度计算并计算每个像素点的梯度幅值和方向。 非极大值抑制对每个像素点的梯度幅值进行非极大值抑制以保留边缘的细节。 双阈值检测使用两个阈值来确定哪些边缘是强边缘哪些是弱边缘。通常梯度幅值大于第二个阈值的像素点被认为是强边缘梯度幅值小于第一个阈值的像素点被认为不是边缘而位于两个阈值之间的像素点被认为是弱边缘。 滞后阈值处理对于位于两个阈值之间的像素点如果其与某个强边缘相连则将其视为强边缘否则将其视为非边缘。这个过程叫做滞后阈值处理可以进一步增强边缘的连通性。
Canny算法的目标是从图像中提取出尽可能准确的边缘信息并尽量避免将噪声或者其他不重要的信息误判为边缘。
import cv2
import numpy as np
from numpy import unicodeif __name__ __main__:img cv2.imread(D:/Jupyter_Notebooks/0.jpg, cv2.IMREAD_GRAYSCALE)# v1 cv2.Canny(img, 80, 150)# v2 cv2.Canny(img, 50, 100)v1 cv2.Canny(img, 120, 250)v2 cv2.Canny(img, 50, 100)#res np.hstack((v1, v2))cv2.imshow(v1, v1)cv2.imshow(v2, v2)cv2.waitKey(0)cv2.destroyAllWindows()