Code
opencv
import cv2
import numpy as np
img = cv2.imread("input.jpg", cv2.IMREAD_GRAYSCALE)
# Canny edge detector
edges = cv2.Canny(img, threshold1=100, threshold2=200,
apertureSize=3, L2gradient=True)
# Sobel gradients
gx = cv2.Sobel(img, cv2.CV_64F, 1, 0, ksize=3)
gy = cv2.Sobel(img, cv2.CV_64F, 0, 1, ksize=3)
magnitude = cv2.magnitude(gx, gy)
sobel = np.uint8(np.clip(magnitude, 0, 255))
# Laplacian
lap = cv2.Laplacian(img, cv2.CV_64F, ksize=3)
lap_abs = cv2.convertScaleAbs(lap)
# Auto Canny via median
sigma = 0.33
v = np.median(img)
lower = int(max(0, (1 - sigma) * v))
upper = int(min(255, (1 + sigma) * v))
auto = cv2.Canny(img, lower, upper)