opencv學習(十九):Canny邊緣檢測
阿新 • • 發佈:2018-12-08
參考學習連結: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()
執行效果: