Python技术迷

OpenCV教程-OpenCV Canny边缘检测

整理:python技术迷

边缘检测是一种识别图像中物体边界的技术。我们将学习使用Canny边缘检测技术进行边缘检测。Canny边缘检测函数的语法如下:
edges = cv2.Canny('/path/to/img', minVal, maxVal, apertureSize, L2gradient)

参数-

  • /path/to/img: 图像文件路径(必填)

  • minVal: 最小强度梯度(必填)

  • maxVal: 最大强度梯度(必填)

  • aperture: 这是可选参数。

  • L2gradient: 默认值为false,如果值为true,则Canny()使用更消耗计算资源的方程来检测边缘,以提供更高的准确性。

示例: 1

import cv2  img = 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 pressed  cv2.destroyAllWindows()  # destroys the window showing image

输出:

Image

专属福利 

👉点击领取:最全Python资料合集

示例: 实时边缘检测

# import libraries of python OpenCV    import cv2  # import Numpy by alias name np  import 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) & 0xFF      if k == 27:          break  # Close the window   cap.release()  # De-allocate any associated memory usage   cv2.destroyAllWindows()  

输出:

Image

Image
 1

Image

热门推荐
Image