Dark Mode
Image

Canny Edge Detection

Edge detection is term where identify the boundary of object in image. We will learn about the edge detection using the canny edge detection technique. The syntax is canny edge detection function is given as:

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

Parameters-

  • /path/to/img: file path of the image (required)
  • minVal: Minimum intensity gradient (required)
  • maxVal: Maximum intensity gradient (required)
  • aperture: It is optional argument.
  • L2gradient: Its default value is false, if value is true, Canny () uses a more computationally expensive equation to detect edges, which provides more accuracy at the cost of resources.

Example: 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  

Output:

OpenCV Canny Edge detection

Example: Real Time Edge detection

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

Output:

OpenCV Canny Edge detection

Comment / Reply From