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

时间:2017-03-02 18:59:37

标签: 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_32FC1);
cv::threshold(dummyMask, thresholdedImage, 0.5, 1, cv::THRESH_BINARY);
int nonzeroCount = cv::countNonZero(thresholdedImage);

这是回溯:

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

我错过了一些明显的东西吗?

0 个答案:

没有答案