1. 程式人生 > >opencv學習(十九):Canny邊緣檢測

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()

執行效果: