Python3与OpenCV3.3 图像处理(十八)--Canny边缘提取

一、什么是边缘检测

图像的边缘检测的原理是检测出图像中所有灰度值变化较大的点,而且这些点连接起来就构成了若干线条,这些线条就可以称为图像的边缘。


二、canny 算法五步骤

  1. 高斯模糊
  2. 灰度转换
  3. 计算梯度
  4. 非最大信号抑制
  5. 高低阈值输出二值图像

三、示例代码

 

import cv2 as cv
import numpy as np


def edge(img):
    #高斯模糊,降低噪声
    blurred = cv.GaussianBlur(img,(3,3),0)
    #灰度图像
    gray=cv.cvtColor(blurred,cv.COLOR_RGB2GRAY)
    #图像梯度
    xgrad=cv.Sobel(gray,cv.CV_16SC1,1,0)
    ygrad=cv.Sobel(gray,cv.CV_16SC1,0,1)
    #计算边缘
    #50和150参数必须符合1:3或者1:2
    edge_output=cv.Canny(xgrad,ygrad,50,150)
    #图一
    cv.imshow("edge",edge_output)

    dst=cv.bitwise_and(img,img,mask=edge_output)
    #图二(彩色)
    cv.imshow('cedge',dst)

src=cv.imread('15.jpg')
#图三(原图)
cv.imshow('def',src)
edge(src)
cv.waitKey(0)
cv.destroyAllWindows()
图一

 

图二

图三

觉得不错打赏一下

 

转载于:https://www.cnblogs.com/BMFramework/p/10017277.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值