0x00007FFB8436A388 处(位于190124_SpecialCarDetection_MulObjMulScaleTrack2.exe 中)有未经处理的异常: Microsoft C++ 异常: cv::Exception,位于内存位置 0x0000005CEA51C9B0 处。
由于初学者对openCV函数使用不熟悉,可能只知道函数的功能,却没有养成先查看函数使用详情的习惯,导致以上错误在初学者使用openCV函数过程中很常见,如果出现类似以上与“异常”相关的错误,第一步先检查所用函数的定义(函数名称右键->函数定义),以排除函数使用方式错误造成的异常。
例1:
void Canny( InputArray image, OutputArray edges,
double threshold1, double threshold2,
int apertureSize = 3, bool L2gradient = false );
//image:8位输入图像(8bit表示每个通道的每个像素占用8bit,取值是0-255,并没有限定通道数).
//edges:8位单通道图像,高宽尺寸必须和第一个参数image一致。
//threshold1:Canny算法中的阈值1
// threshold2 :Canny算法中的阈值2
//apertureSize:中间过程计算梯度时所用的Sobel算法的尺寸
//L2gradient:取值为true或false,计算梯度幅值的时候是用更为精确的方程:"magnitude=sqrt(Gx^2+Gy^2)",还是用估计方程:"magnitude=|Gx|+|Gy|"
以上是Canny函数的用法,若参数apertureSize设置为0,就会提醒异常出现。因为计算梯度时所用的Sobel算法的尺寸为0的话没有任何意义。