In this OpenCV Tutorial, you’ll learn how to implement edge detection in OpenCV Python. I highly recommend you get the “Computer Vision: Models, Learning, and Inference Book” to learn computer vision. These two following edge-detection algorithms are available in OpenCV. We will implement both algorithms on the following image and see their results.
- Canny Edge Detection
- Sobel Edge Detection
Canny Edge Detection
You need to just change the name and location of the image.
# Import the OpenCV library import cv2 # Read the original image from the location img = cv2.imread('C:\\AiHints\\car.jpg') # Convert the image into graycsale gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # Blur the gray scale image for better edge detection blur = cv2.GaussianBlur(gray, (5,5), 0) # Canny Edge Detection canny_edges = cv2.Canny(image=blur, threshold1=100, threshold2=200) # Display Canny Edge Detection Image cv2.imshow('Canny Edge Detection', canny_edges) cv2.waitKey(0) cv2.destroyAllWindows() # Save the Canny Edge Detection Image cv2.imwrite('C:\\AiHints\\canny.jpg', canny_edges)
Output:
Sobel Edge Detection
# Import the OpenCV library import cv2 # Read the image from the location img = cv2.imread('C:\\AiHints\\car.jpg') # Convert the image into graycsale gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # Blur the gray scale image for better edge detection blur = cv2.GaussianBlur(gray, (5,5), 0) # Sobel Edge Detection on x-axis sobelx = cv2.Sobel(src=blur, ddepth=cv2.CV_64F, dx=1, dy=0, ksize=5) # Sobel Edge Detection on y-axis sobely = cv2.Sobel(src=blur, ddepth=cv2.CV_64F, dx=0, dy=1, ksize=5) # Sobel Edge Detection on both axis sobelxy = cv2.Sobel(src=blur, ddepth=cv2.CV_64F, dx=1, dy=1, ksize=5) # Display Sobel Edge Detection Images cv2.imshow('Sobel X Edge Detection', sobelx) cv2.imshow('Sobel Y Edge Detection', sobely) cv2.imshow('Sobel X and Y Edge Detection', sobelxy) cv2.waitKey(0) cv2.destroyAllWindows() # Save the Sobel Edge Detection Images cv2.imwrite('C:\\AiHints\\sobelx.jpg', sobelx) cv2.imwrite('C:\\AiHints\\sobely.jpg', sobely) cv2.imwrite('C:\\AiHints\\sobelxy.jpg', sobelxy)
Output: