opencv教程(三)c++

本文是OpenCV教程的第三部分,重点介绍了使用C++进行轮廓检测的方法。主要内容包括findContours函数的使用,详细解释了函数参数及其作用,如模式选择和轮廓近似方法。此外,还讲解了Canny边缘检测算子的工作流程和Canny函数的参数设置,提供了用于检测行驶车辆的代码示例。
摘要由CSDN通过智能技术生成

opencv教程(三)轮廓检测c++

边缘检测函数
1)c++:void findContours( InputOutputArray image, OutputArrayOfArrays contours,int mode, int method, Point offset = Point());
2)c++:void findContours( InputOutputArray image, OutputArrayOfArrays contours,OutputArray hierarchy,int mode, int method, Point offset = Point());
函数解析:image输入图像,8位单通道二值图像;contours为检测到的轮廓,每一个轮廓都在向量中;hierarchy为包含图像拓扑结构的信息;mode为可选获取轮廓的方法,常用的有CV_RETR_EXTERNAL,CV_RETR_LIST为检测所有轮廓的不包含继承关系,CV_RETR_TREE为检测所有轮廓的包含继承关系,CV_RETR_CCOMP为检测所有轮廓,但是仅仅建立两层包含关系;method为轮廓近似方法,参数设置为CV_CHAIN_APPROX_NONE表示把轮廓上所有的点存储,CV_CHAIN_APPROX_SIMPLE表示只存储水平,垂直及对角直线的起始点;offset为可选的偏移量。
Canny:边缘检测算子,边缘检测步骤:1.消除噪声2.计算梯度幅度与方向3.非极大值抑制4.用滞后阈值算法求解图像边缘
Canny函数
c++:void Canny( InputArray image, OutputArray edges,double threshold1, double threshold2,int apertureSize = 3, bool L2gradient = false );
函数解析:image为输入函数,单通道8bit;edges为输出图像,与输入同类型同尺寸;threshold1为第一滞后过程阈值;threshold2为第二滞后过程阈值;apertureSize为索贝尔操作的尺寸因子;L2gradient为标志位,表示是否使用L2范数来计算图像梯度大小。

代码示例

#include<opencv2/core/core.hpp>
#include<opencv2/imgproc/imgproc.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<iostream>
using namespace cv;
using 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值