我目前正在开发一个程序来处理3D相机的数据。不幸的是,我使用opencv的“findcontours”函数时出错了。
事实上,当我尝试在我的程序中使用它时,我会遇到这些错误:
线程0x1a4c停止,代码为0(0x0)
线程0x188c停止,代码为-1073740777(0xc0000417)。
线程0x1c08因代码-1073740777(0xc0000417)而停止。
线程0x1330因代码-1073740777(0xc0000417)而停止。
线程0x1c90因代码-1073740777(0xc0000417)而停止。
线程0x1ed4因代码-1073740777(0xc0000417)而停止。
线程0x10d4停止,代码为-1073740777(0xc0000417)。
线程0x1a80停止,代码为-1073740777(0xc0000417)。
线程0x11bc停止,代码为-1073740777(0xc0000417)。
线程0x1970因代码-1073740777(0xc0000417)而停止。
线程0x1428以-1073740777(0xc0000417)停止。
程序'[7932] Project_Camera.exe'已停止,代码为-1073740777(0xc0000417)。
此外,我曾经有一个窗口告诉我:
0xc0000417处的未处理异常...(ntdll.dll)。内存段 已经损坏了。
(对不起,如果它不够精确,但我只记得这个,并没有保存它的确切内容。另外,它是真正的错误的翻译因为我的VS是法语所以我道歉,如果词汇不是确切的同样的。)
这是我的代码:
float function (input)
{
// First i get the datas from the camera and save it in an array of the size DATA_SIZE :
// float distance[DATA_SIZE] (This array only contain ones and zeros)
Mat img = Mat(Size(NB_ROW, NB_LINE), CV_32FC1, distance);
Mat element_o = getStructuringElement(MORPH_ELLIPSE, Size(SIZE_OPEN, SIZE_OPEN), Point(-1, -1));
Mat element_c = getStructuringElement(MORPH_ELLIPSE, Size(SIZE_CLOSE, SIZE_CLOSE), Point(-1, -1));
Mat img_output;
morphologyEx(img, img_output, MORPH_OPEN, element_o);
Mat img_close;
morphologyEx(img_output, img_close, MORPH_CLOSE, element_c);
namedWindow("Image from morph ", CV_WINDOW_AUTOSIZE);
imshow("Image from morph ", img_close);
waitKey(0);
///Convert the image into B&W CV_8U format for the findContours function
Mat bwimg;
img_close.convertTo(bwimg, CV_8U);
/// Find contours
vector<vector<Point>> contours;
printf("here"); // I see this one
findContours(bwimg, contours, CV_RETR_LIST, CV_CHAIN_APPROX_NONE);//SIMPLE, Point(0, 0));
printf("here2"); // this one never show up, the program stops right before
//... ( Then i get the minAreaRect from the contour and deduce an angle )
return angle;
}
我的VS解决方案拥有2个项目: DLLCam:我的函数被定义并构建为dll Project_Camera:我调用dll中的函数
要使用opencv,我在此链接(http://funvision.blogspot.fr/2015/11/install-opencv-visual-studio-2015.html)之后构建它以获得32位3.1版本的opencv。 我正确设置了项目的属性以使用库。
然后,我想知道可能导致问题的原因,以及我如何解决它。
感谢您的帮助。
答案 0 :(得分:1)
正如Miki在评论中所说,问题来自我正在使用的库(opencv_310.lib)。
我实际上错过了编译OpenCV解决方案的INSTALL项目以进行调试。然后,文件&#34; opencv_310 d .lib&#34;失踪了,我想要联系他们。 在为Debug编译之后,我找到了那些文件并在链接器中使用它们 - &gt;输入,从而解决问题。