边缘检测是一种识别图像中物体边界的技术。我们将学习使用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  

输出:

9-1.png

示例: 实时边缘检测

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

输出:

9-2.png

标签: OpenCV, OpenCV教程, OpenCV图像识别, OpenCV安装教程, OpenCV下载, OpenCV入门, OpenCV基础, OpenCV库, OpenCV学习, OpenCV指南, OpenCV教程中文版, OpenCV快速入门, OpenCV基础教程