import cv2 as cv
from matplotlib import pyplot as plt
 
image = cv.imread("Your Image Here!!!",cv.IMREAD_COLOR)
edges = cv.Canny(image,75,100,L2gradient=True,apertureSize=3)
BLedges = cv.Canny(image,75,100,cv.IMREAD_GRAYSCALE)
contours, hierarchy = cv.findContours(edges,cv.RETR_EXTERNAL, cv.CHAIN_APPROX_NONE)

plt.figure(figsize=(16,9))
plt.subplot(221),plt.imshow(image)
plt.title('Original Image'), plt.xticks([]), plt.yticks([])
plt.subplot(222),plt.imshow(edges)
plt.title('Edge Image'), plt.xticks([]), plt.yticks([])
plt.subplot(223),plt.imshow(edges,cmap='gray')
plt.title('B&L Edge Image'), plt.xticks([]), plt.yticks([])

cv.drawContours(image, contours, -1, (50, 205, 50), 2)

plt.subplot(224),plt.imshow(image)
plt.title('Countour Image'), plt.xticks([]), plt.yticks([])

plt.show()

print("Number of Contours found = " + str(len(contours)))

plt.imsave('Contour_result.png', image, cmap="gray", format='png')
plt.imsave('Edge_result.png', edges, cmap="gray", format='png')