cvFindContours () exception?

cvFindContours () exception?

本文关键字:exception cvFindContours      更新时间:2023-10-16

我正在创建实时软件,所以cvFindContours经常在一个完全黑色的蒙版上被调用。在这种情况下,cvFindContours抛出异常,程序崩溃。

我该如何使它,如果cvFindContours无法找到轮廓,而不是程序崩溃,程序只是移动到下一行代码(只是简单的继续)?

感谢

PS:我想保持一个像素自动总是白色,以防止cvFindContours无法找到轮廓,但这对我来说是不方便的。

你为什么不试试这样做呢:

Mat black = Mat::zeros(Size(100, 100), CV_8UC1);
vector< vector<Point> > contours;
if(sum(black).val[0] > 0.0)
{
    findContours(black, contours, CV_RETR_CCOMP, CV_CHAIN_APPROX_SIMPLE);
}
else
{
    cout << "It's a black image, so I'm not going to do anything..." << endl;
}

这是使用c++接口,但您应该能够使用cvSum来完成相同的事情。如果图像是全黑的,那就意味着图像中只包含0。因此,当它是黑色遮罩时,总和将为零。