码迷,mamicode.com
首页 > 编程语言 > 详细

python-opencv-Canny边缘检测

时间:2020-01-29 19:58:00      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:就是   tco   style   img   open   mic   滤波器   nbsp   resize   

技术图片

OpenCV中有专门的Canny边缘检测算法的函数Canny(image,threshold1,threshold2,edges=None,apertureSize=None,L2gradient=None),我们可以直接调用它轻松实现图像的边缘检测。 

但是Canny()函数内部并没有对图像进行很好地降噪,因此为了保证结果更准确,我们在调用Canny()函数前常常会先通过高斯滤波降噪。OpenCV中提供了
GaussianBlur(src,ksize,sigmax,dst=None,sigmaY=None,borderType=None)函数来实现高斯滤波器降噪

高斯滤波-高斯降噪:

import cv2

image = cv2.imread("1.png",1)
image_info =image.shape
height=image_info[0]
width=image_info[1]
gray=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
cv2.imshow(gray,gray)

image_G=cv2.GaussianBlur(gray,(5,5),0)  #高斯滤波-高斯降噪
‘‘‘
参数1 src:必选参数。待处理的图像。它可以是单独的任意通道数的图像,但图片深度必须为CV_8U,CV_16U,CV_16S,CV_32F以及CV_64F之一
参数2 ksize:必选参数。高斯内核的大小。其中ksize.width和ksize.height可以不同,但他们都必须为正数和奇数或者它们都为零。【用来计算的像素点】
参数3 sigmaX:必选参数。表示高斯内核函数在X方向的的标准偏差。
参数4 可选参数。sigmaY: 高斯核函数在Y方向上的标准偏差,如果sigmaY是0,则函数会自动将sigmaY的值设置为与sigmaX相同的值,如果sigmaX和sigmaY都是0,这两个值将由ksize.width和ksize.height计算而来
‘‘‘
cv2.imshow("dst",image_G)

cv2.waitKey()

效果图:

技术图片

 

技术图片

 

可以看到,经过高斯平滑滤波降噪后的图像会比原图像模糊,因此通常高斯滤波我们也叫高斯模糊。这种模糊技术生成的图像,其视觉效果就像是经过一个半透明屏幕在观察图像,其结果就是减少图像的噪声并降低细节层次。

 

 

 

 

 

技术图片

 

python-opencv-Canny边缘检测

标签:就是   tco   style   img   open   mic   滤波器   nbsp   resize   

原文地址:https://www.cnblogs.com/liming19680104/p/12240989.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!