OpenCV Canny边缘检测

边缘检测是识别图像中对象边界的术语。我们将学习使用Canny边缘检测技术的边缘检测。坎尼边缘检测的语法为:

edges = cv2.Canny('/path/to/img', minVal, maxVal, apertureSize, L2gradient)

参数-
  • / path / to / img:图片的文件路径(必填)
  • minVal:最小强度梯度(必需)
  • maxVal:最大强度梯度(必需)
  • 孔径:这是可选参数。
  • L2gradient:其默认值是false, 如果值是true, 则Canny()使用计算量更大的等式来检测边缘, 从而以资源为代价提供更高的准确性。
范例:1
import cv2img = cv2.imread(r'C:\Users\DEVANSH SHARMA\cat_16x9.jpg')edges = cv2.Canny(img, 100, 200)cv2.imshow("Edge Detected Image", edges)cv2.imshow("Original Image", img)cv2.waitKey(0)# waits until a key is pressedcv2.destroyAllWindows()# destroys the window showing image

输出
OpenCV Canny边缘检测

文章图片
示例:实时边缘检测
# import libraries of python OpenCVimport cv2# import Numpy by alias name npimport numpy as np# capture frames from a camera cap = cv2.VideoCapture(0)# loop runs if capturing has been initialized while (1):# reads frames from a camera ret, frame = cap.read()# converting BGR to HSV hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)# define range of red color in HSV lower_red = np.array([30, 150, 50])upper_red = np.array([255, 255, 180])# create a red HSV colour boundary and# threshold HSV image mask = cv2.inRange(hsv, lower_red, upper_red)# Bitwise-AND mask and original image res = cv2.bitwise_and(frame, frame, mask=mask)# Display an original image cv2.imshow('Original', frame)# discovers edges in the input image image and # marks them in the output map edges edges = cv2.Canny(frame, 100, 200)# Display edges in a frame cv2.imshow('Edges', edges)# Wait for Esc key to stop k = cv2.waitKey(5) & 0xFFif k == 27:break# Close the window cap.release()# De-allocate any associated memory usage cv2.destroyAllWindows()

【OpenCV Canny边缘检测】输出
OpenCV Canny边缘检测

文章图片

    推荐阅读