opencv python边缘检测和轮廓提取


前言

opencv中的边缘检测和轮廓提取都是图像识别的重要部分


提示:以下是本篇文章正文内容,下面案例可供参考

一、边缘检测

Canny边缘检测算子是一个多级边缘检测算法,Canny的目标是找到一个最优的边缘检测算法,其评价标准为:低错误率、高定位性、最小响应。

Canny边缘检测步骤
Canny函数
Python:
edges = cv.Canny( image, threshold1, threshold2[, edges[, apertureSize[, L2gradient]]] )
image 源图像,需是单通道8位图像
edges 输出的边缘图像,需和源图像具有一样的大小和类型
threshold1 第一个滞后性阀值,double
threshold2 第二个滞后性阀值,double
apertureSize 应用Sobel算子孔径大小,默认值:3
L2gradient a flag, indicating whether a more accurate L 2 norm =(dI/dx) 2 +(dI/dy) 2 − − − − − − − − − − − − − − − − √ should be used to calculate the image gradient magnitude ( L2gradient=true ), or whether the default L 1 norm =|dI/dx|+|dI/dy| is enough ( L2gradient=false ).

import cv2 as cv
import numpy as np


def edge_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)  # xGrodient
    ygrad = cv.Sobel(gray, cv.CV_16SC1, 0, 1)  # yGrodient
    edge_output = cv.Canny(xgrad, ygrad, 100, 150)  # edge
    cv.imshow("Canny Ed
OpenCV是一个开源的计算机视觉库,提供了丰富的图像处理和计算机视觉算法。边缘提取是图像处理中的一项重要任务,可以用于检测图像中的边缘或轮廓。在Python中,可以使用OpenCV库进行边缘提取。 以下是使用OpenCV进行边缘提取的基本步骤: 1. 导入OpenCV库:首先需要导入OpenCV库,可以使用以下代码实现: ```python import cv2 ``` 2. 读取图像:使用`cv2.imread()`函数读取待处理的图像文件,例如: ```python image = cv2.imread('image.jpg') ``` 3. 转换为灰度图像:大多数边缘检测算法都是基于灰度图像的,因此需要将彩色图像转换为灰度图像。可以使用`cv2.cvtColor()`函数将图像转换为灰度图像: ```python gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) ``` 4. 边缘检测:使用OpenCV提供的边缘检测算法进行边缘提取。常用的边缘检测算法包括Canny边缘检测和Sobel算子等。以Canny边缘检测为例,可以使用`cv2.Canny()`函数进行边缘检测: ```python edges = cv2.Canny(gray, threshold1, threshold2) ``` 其中`threshold1`和`threshold2`是Canny算法的两个阈值,用于控制边缘检测的敏感度。 5. 显示结果:可以使用`cv2.imshow()`函数显示边缘提取的结果: ```python cv2.imshow('Edges', edges) cv2.waitKey(0) cv2.destroyAllWindows() ``` 以上是使用OpenCV进行边缘提取的基本步骤。你可以根据具体需求调整参数和选择不同的边缘检测算法。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值