参考学习链接:https://www.cnblogs.com/mightycode/p/6394810.html
代码如下:
#导入cv模块
import cv2 as cv
import numpy as np
#Canny边缘提取
def edge_demo(image):
blurred=cv.GaussianBlur(image,(3,3),0)#进行高斯降噪,效果更好
gray=cv.cvtColor(blurred,cv.COLOR_BGR2GRAY)
# x Gredient
# xgrad=cv.Sobel(gray,cv.CV_16SC1,1,0)#x梯度
# # y Gredient
# ygrad = cv.Sobel(gray, cv.CV_16SC1, 1, 1)#y梯度
# #edge
# edge_output=cv.Canny(xgrad,ygrad,50,150)
edge_output=cv.Canny(gray,50,150) #这和上面效果一样
cv.imshow("Canny Edge",edge_output)
dst=cv.bitwise_and(image,image,mask=edge_output)
cv.imshow("Color Edge",dst)
print("------------Hi,Python!-------------")
# 读取图像,支持 bmp、jpg、png、tiff 等常用格式
src = cv.imread("F:/Projects/images/topstar.png")
#创建窗口并显示图像
cv.namedWindow("input image",cv.WINDOW_AUTOSIZE)
cv.imshow("input image",src) #显示原图
edge_demo(src)
cv.waitKey(0)
#释放窗口
cv.destroyAllWindows()
运行效果: