Canny edge detection not working on Gaussian blurred images I am trying to detect edges on this lane image. First blurred the image using Gaussian filter and applied Canny edge detection but it gives only blank image without detecting edges.


I have done like this:
#imports
import matplotlib.pyplot as plt
import numpy as np
import cv2
import matplotlib.image as mpimg
image= mpimg.imread(&quot;Screenshot from Lane Detection Test Video 01.mp4.png&quot;)
image = image[:,:,:3]
image_g = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY)

image_blurred = cv2.GaussianBlur(image_g, (3, 3), 0) 
threshold_low = 50
threshold_high = 100
image_blurred = image_blurred.astype(np.uint8)
image_canny = cv2.Canny(image_blurred, threshold_low, threshold_high)
plt.imshow(image_canny,cmap='gray')
You don't have to blur your image before passing it to Canny.
OpenCv's implementation already includes a blurring step. So by passing a blurred image, you're effectively blurring the image twice.  That will suppresses edges.
Read about openCv's implementation here.