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触发了指定给RtlValidateHeap的断点无效地址 我在Visual Studio 2013中用C++和OpenCV 2.49编写了一些代码: cv::Mat mask = Mat::zeros(tmp.size(), CV_8UC1);_Opencv_Dll_Vector_Breakpoints - Fatal编程技术网

opencv触发了指定给RtlValidateHeap的断点无效地址 我在Visual Studio 2013中用C++和OpenCV 2.49编写了一些代码: cv::Mat mask = Mat::zeros(tmp.size(), CV_8UC1);

opencv触发了指定给RtlValidateHeap的断点无效地址 我在Visual Studio 2013中用C++和OpenCV 2.49编写了一些代码: cv::Mat mask = Mat::zeros(tmp.size(), CV_8UC1);,opencv,dll,vector,breakpoints,Opencv,Dll,Vector,Breakpoints,修改掩码,使某些元素为零,某些元素为255 cv::vector<cv::vector<cv::Point> > contours; cv::vector<cv::Vec4i> hierarchy; cv:findContours(mask, contours, CV_RETR_CCOMP, CV_CHAIN_APPROX_NONE); cv::imshow("Mask", mask); cv::矢量轮廓; 向量层次; cv:findContours(遮罩、

修改掩码,使某些元素为零,某些元素为255

cv::vector<cv::vector<cv::Point> > contours;
cv::vector<cv::Vec4i> hierarchy;
cv:findContours(mask, contours, CV_RETR_CCOMP, CV_CHAIN_APPROX_NONE);
cv::imshow("Mask", mask);
cv::矢量轮廓;
向量层次;
cv:findContours(遮罩、轮廓、cv_-RETR_-CCOMP、cv_-CHAIN_-About_-NONE);
cv::imshow(“面具”,面具);
方法结束时,出现以下错误:

为RtlValidateHeap(004D0000、02EBD9D8)指定的地址无效 Project.exe已触发断点

我搜索了stackoverflow和其他平台,但没有找到答案

我将正确的opencv路径添加到“path”环境变量:C:\opencv\build\x86\vc12\bin 以及项目配置: C:\opencv\build\x86\vc12\lib

如果使用opencv api中的merge/split,则会导致相同的错误,但在这种情况下,可以在进入方法之前分配向量。然后它就起作用了。在这种情况下,之前不可能分配向量,因为我现在不知道大小

我认为问题在于opencv分配的内存不在正确的堆中,但我检查了所有dll和路径。你还有别的想法吗

提前谢谢

编辑:
我用一个新下载的opencv替换了opencv文件夹,它工作正常,别问我为什么

cv::vector声明有效吗?您应该尝试std::vector而不是它们。 根据给定的代码,很难确定是什么导致了故障。你能提供更多的细节吗

还请注意,此“函数在提取轮廓时修改图像”

您还应检查以下属性:

  • 右键单击项目
  • 属性-配置属性-常规:将Plattform工具集设置为Visual Studio 2013(v120)
  • 配置属性-C/C++-代码生成-设置运行时库: 用于调试生成或多线程的多线程调试DLL(/MDd) 用于发布版本生成的DLL(/MD)

  • 请确保不要混合调试/发布DLL。它们不是混合的。。。只有d用于调试(opencv_imgproc249d.lib)您还有其他ideathx。。。所有这些都是正确的!我替换了opencv文件夹,它工作了!