import cv2 as cv
import numpy as np
#canny是边缘检测算法,是一个很好的边缘检测器
# 1.高斯模糊去掉噪声(canny对噪声敏感,需要进行降噪)
# 2.灰度转化,多通道转换为单通道
# 3.计算梯度
# 4.非最大信号抑制
# 5.高低阈值连接输出二值图像,两个阈值t1<t2,凡是高于t2的都保留,凡是小于T1的都舍弃,
# 从高于T2的像素出发,凡是大于T1而且相互连接的都保留,最终输出一个二值图像
# 推荐T2:T1=3:1-2:1
def dege_demo(image):
blurred = cv.GaussianBlur(image,(3,3),0)
gray = cv.cvtColor(blurred,cv.COLOR_BGR2GRAY)
xgrad=cv.Sobel(gray,cv.CV_16SC1,1,0)
ygrad=cv.Sobel(gray,cv.CV_16SC1,0,1)
dege_output=cv.Canny(xgrad,ygrad,60,150)#3:1~2:1
#dege_output=cv.Canny(gray,60,150)#也可以直接使用gray
cv.imshow("dege_demo",dege_output)
dst=cv.bitwise_and(image,image,mask=dege_output)#变换为彩色
cv.imshow("dege_demo_color",dst)
src=cv.imread("D:\Py_Test\Open_Cv\Image\ms.jpg")
cv.namedWindow("Test",cv.WINDOW_AUTOSIZE)
cv.imshow("Test",src)#在上面创建的“Test”窗口中显示图像sr
dege_demo(src)
cv.waitKey(0)#(0)参数表示无限等待 等又任意按键按下关闭图片窗口
cv.destroyAllWindows()
Open_Cv Canny边缘算子
最新推荐文章于 2023-06-05 10:35:41 发布