边缘检测简介
边缘检测是计算机视觉和图像处理中的一种基本技术,用于识别图像中物体和图像中不同区域之间的边界或轮廓。边缘是图像中具有明显灰度或强度变化的区域,通常表示不同物体、纹理或形状之间的边界。
边缘检测算法通过分析图像中像素的灰度值或强度变化情况,以找到这些变化的区域。常见的边缘检测算法包括Sobel算子、Canny边缘检测和Laplacian算子等。
边缘检测的应用广泛,例如在目标识别、图像分割、物体测量、图像配准和图像压缩等领域都有重要作用。通过检测图像中的边缘,可以提取出物体的形状和结构信息,进而进行进一步的分析和处理。
这里我们实现对左边、右边和RGB摄像头三个不同的输入进行边缘检测。使用了硬件加速的Sobel滤波器3x3。可以通过按键1和2来改变Sobel滤波器的参数。
Setup 1: 创建文件
- 创建新建5-edge-detector文件夹
- 用vscode打开该文件夹
- 新建一个main.py 文件
Setup 2: 安装依赖
安装依赖前需要先创建和激活虚拟环境,我这里已经创建了虚拟环境OAKenv,在终端中输入cd…退回到OAKenv的根目录,输入 OAKenv\Scripts\activate
激活虚拟环境
安装pip依赖项:
pip install numpy opencv-python depthai blobconverter --user
Setup 3: 导入需要的包
在main.py中导入项目需要的包
import cv2
import depthai as dai
import numpy as np
这里导入了numpy库;
NumPy是一个Python库,用于进行科学计算和数据分析。它提供了高性能的多维数组对象(ndarray),以及一系列的函数用于操作这些数组。NumPy的主要功能包括:
-
多维数组:NumPy的核心是ndarray对象,它是一个具有固定大小的数组,可以容纳相同类型的元素。这使得NumPy数组比Python原生的列表更高效,更适合进行大规模数据处理和数值计算。
-
广播(Broadcasting):NumPy允许不同形状的数组执行相同的操作,而无需复制数据。通过广播,可以有效地对数组执行元素级别的数学运算。
-
数学和逻辑操作:NumPy提供了许多内置的数学函数(如sin,cos,exp等)和逻辑操作函数(如all,any,logical_and等),可以轻松地对数组进行操作。文章来源:https://www.toymoban.com/news/detail-521763.html
-
线性代数运算:NumPy包含了文章来源地址https://www.toymoban.com/news/detail-521763.html
到了这里,关于一步一步学OAK之五:通过OAK相机实现边缘检测的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!