def EdgeDetection(img):
# img = cv2.medianBlur(img,5)
img = cv2.fastNlMeansDenoising(img,None,3,7,21)
_,img = cv2.threshold(img,30,255,cv2.THRESH_TOZERO)
denoise_img = img
# print(img)
# cv2.imwrite("Denoise.jpg",img)
# cv2.waitKey(0)
# cv2.destroyAllWindows()
# convolute with proper kernels
laplacian = cv2.Laplacian(img,cv2.CV_64F)
sobelx = cv2.Sobel(img,cv2.CV_64F,1,0,ksize=5) # x
sobely = cv2.Sobel(img,cv2.CV_64F,0,1,ksize=3) # y
# sobel2y = cv2.Sobel(sobely,cv2.CV_64F,0,1,ksize=3)
# sobelxy = cv2.Sobel(img,cv2.CV_64F,1,1,ksize=5) # y
canny = cv2.Canny(img,100,200)
contour_image, contours, hierarchy = cv2.findContours(img, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
# print(canny)
# cv2.imwrite('laplacian.jpg',laplacian)
# cv2.imwrite('sobelx.jpg',sobelx)
# cv2.imwrite('sobely.jpg',sobely)
# cv2.imwrite('sobelxy.jpg',sobelxy)
# cv2.imwrite('canny.jpg',canny)
# plt.subplot(3,2,1),plt.imshow(img,cmap = 'gray')
# plt.title('Original'), plt.xticks([]), plt.yticks([])
# plt.subplot(3,2,2),plt.imshow(laplacian,cmap = 'gray')
# plt.title('Laplacian'), plt.xticks([]), plt.yticks([])
# plt.subplot(3,2,3),plt.imshow(sobelx,cmap = 'gray')
# plt.title('Sobel X'), plt.xticks([]), plt.yticks([])
# plt.subplot(3,2,4),plt.imshow(sobely,cmap = 'gray')
# plt.title('Sobel Y'), plt.xticks([]), plt.yticks([])
# plt.subplot(3,2,4),plt.imshow(sobelxy,cmap = 'gray')
# plt.title('Sobel XY'), plt.xticks([]), plt.yticks([])
# plt.subplot(3,2,5),plt.imshow(canny,cmap = 'gray')
# plt.title('Canny'), plt.xticks([]), plt.yticks([])
# plt.show()
# return {"denoise":img}
return {"denoise":denoise_img,"laplacian":laplacian,"canny":canny,"sobely":sobely,"sobelx":sobelx,"contour":contour_image}
EdgeDetection.py 文件源码
python
阅读 18
收藏 0
点赞 0
评论 0
评论列表
文章目录