gpt4 book ai didi

c++ - Findcontours() 运行时错误

转载 作者:行者123 更新时间:2023-11-28 05:09:10 25 4
gpt4 key购买 nike

我正在使用这样的函数;

Mat large = imread(path+name);
Mat rgb;
if (large.rows > 2500 || large.cols > 1250)
{
pyrDown(large, rgb);
}
else
{
rgb = large.clone();
}
cv::Mat smallx;
cvtColor(rgb, smallx, CV_BGR2GRAY);
Mat grad,connected,bw;

Mat morphKernel = getStructuringElement(MORPH_ELLIPSE, Size(3, 3));
cv::morphologyEx(smallx, grad, MORPH_GRADIENT, morphKernel);
cv::threshold(grad, bw, 100, 255, THRESH_BINARY + THRESH_OTSU);
morphKernel = getStructuringElement(MORPH_RECT, Size(9, 1));
cv::morphologyEx(bw, connected, MORPH_CLOSE, morphKernel);

Mat mask = Mat::zeros(bw.size(), CV_8UC1);
vector<vector<Point>> contours;
vector<Vec4i> hierarchy;

cv::findContours(connected, contours, hierarchy, CV_RETR_CCOMP, CV_CHAIN_APPROX_SIMPLE, Point(0, 0));

一些输入图像在函数返回时提示异常,它把我抛到“_Mybase::deallocate(_Ptr, _Count);” xmemory0 类中的代码块。我必须捕获此类错误并防止此过程意外暂停

------------错误详情------------

我用 30 个不同的输入尝试了那个代码块,但它在一些图像中给出了错误。在 findcontours 之后它抛出异常中断并向我显示此消息。

Unhandled exception at 0x74477fb2 (ucrtbase.dll) in ImageRecognizer.exe: 0xC0000409: 0xc0000409.

那时,“vector ”类在我的 Visual Studio 中用这些行打开;

~vector() _NOEXCEPT
{ // destroy the object
_Tidy();
}

或“xmemory”类以这些行开头;

void deallocate(pointer _Ptr, size_type _Count)
{ // deallocate object at _Ptr, ignore size
_Mybase::deallocate(_Ptr, _Count);
}

最佳答案

您的方法找到的计数器数量似乎超过 50000。尽量不要使用魔数(Magic Number)。这始终是一种不好的做法。

关于c++ - Findcontours() 运行时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43867668/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com