opencv学习(十九):Canny边缘检测

参考学习链接: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()

运行效果:

猜你喜欢

转载自blog.csdn.net/weixin_39036700/article/details/84883828