Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opencv 在countNonZero中释放cv::Mat时如何避免崩溃?_Opencv - Fatal编程技术网

Opencv 在countNonZero中释放cv::Mat时如何避免崩溃?

Opencv 在countNonZero中释放cv::Mat时如何避免崩溃?,opencv,Opencv,我在一个非常简单的代码片段中看到了崩溃。当cv::Mat::deallocate尝试释放未分配的内存时,会发生崩溃。我甚至把代码简化到了无用的地步,但我仍然看到了崩溃 boost::shared_ptr<cv::Mat> mask = ...; cv::Mat thresholdedImage = cv::Mat::zeros(mask->size(), CV_32FC1); cv::Mat dummyMask = cv::Mat::zeros(mask->size(),

我在一个非常简单的代码片段中看到了崩溃。当cv::Mat::deallocate尝试释放未分配的内存时,会发生崩溃。我甚至把代码简化到了无用的地步,但我仍然看到了崩溃

boost::shared_ptr<cv::Mat> mask = ...;
cv::Mat thresholdedImage = cv::Mat::zeros(mask->size(), CV_32FC1);
cv::Mat dummyMask = cv::Mat::zeros(mask->size(), CV_32FC1);
cv::threshold(dummyMask, thresholdedImage, 0.5, 1, cv::THRESH_BINARY);
int nonzeroCount = cv::countNonZero(thresholdedImage);

我是否遗漏了一些明显的内容?

请提供一个简单完整的示例?通常这是由于链接到错误的库(不同的编译器、不同的体系结构、调试与发布)造成的。但是,指向
Mat
的共享指针也是可疑的。。。不要那样做<代码>Mat已经是智能指针
1   libsystem_c.dylib               0x00007fff93aa49a3 abort + 129
2   libsystem_malloc.dylib          0x00007fff92ec91cb free + 428
3   MyLib.dylib                     0x0000000135b45d7c cv::StdMatAllocator::deallocate(cv::UMatData*) const + 60
4   MyLib.dylib                     0x0000000135b0240c cv::Mat::deallocate() + 28
5   MyLib.dylib                     0x0000000135ba9362 cv::countNonZero(cv::_InputArray const&) + 802