c++ - "NULL pointer is passed"用于检测轮廓

标签 c++ c opencv

The program我正在开发一个轮廓检测程序,它可以过滤捕获帧中最大的轮廓,将其涂成红色并打印出对象的中心坐标。有时,当我调试程序时,我会收到以下错误消息:

OpenCV Error: Null pointer (NULL array pointer is passed) in unknown function, file ......../array.cpp line 2382

我已经搜索了问题的根源,并发现如果第一个(和后续)捕获的帧中没有检测到轮廓(轮廓为 NULL),程序将崩溃。到目前为止,我还没有找到任何解决方案使该程序忽略错误,直到至少检测到轮廓。那么有什么线索可以阻止这个问题的发生吗?

提前致谢。干杯

P/S:检测到轮廓后,程序就可以正常工作了。目前使用OpenCV 2.4.2

最佳答案

我建议,如果找不到轮廓,请忘记对框架的处理。

cvFindContours( src_gray, storage, &contours, sizeof(CvContour), 
    CV_RETR_EXTERNAL, CV_CHAIN_APPROX_NONE, cvPoint(0,0));
if(contours==NULL)
   continue;

关于c++ - "NULL pointer is passed"用于检测轮廓,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13047212/

相关文章:

c++ - 两个大型稀疏 vector 上的按位运算符没有循环?

c++ - 同样的程序在 Linux 上比在 Windows 上运行更快——为什么?

c++ - 在 C++ 中更改内存值

c - 如何在 C 中使用 ## 实现循环

python-3.x - 无法计算输出视频流的 fps

c++ - F1后跳转到QtCreator中正确的C++ STL文档页面?

c - 字节打印和写入

在 C 中创建一个按钮结构

javascript - 将 openCV C++ 视频流式传输到浏览器

python - 在 Pygame 表面内显示 cv2.VideoCapture 图像