我在ubuntu中使用以下代码:
img = imread("E:/object_recognition_c++/build/saved images/webcam_capture_2.jpg", CV_LOAD_IMAGE_COLOR); // Read the file, comment if use camera
Mat img_orginal = img;
Mat src_gray, threshold_output;
vector<vector<Point> > contours;
cvtColor(img, src_gray, CV_BGR2GRAY);
blur(src_gray, src_gray, Size(3, 3));
int thresh = 85;
threshold(src_gray, threshold_output, thresh, 255, THRESH_BINARY); /// Detect edges using Threshold
imshow("threshold_output", threshold_output);
vector<Vec4i> hierarchy;
findContours(threshold_output, contours, hierarchy, CV_RETR_CCOMP, CV_CHAIN_APPROX_SIMPLE, Point(0, 0));
我在Visual Studio 2012上的Windows 7中尝试过但是在线:
findContours(threshold_output, contours, hierarchy, CV_RETR_CCOMP, CV_CHAIN_APPROX_SIMPLE, Point(0, 0));
它始终与代码崩溃:
线程0x1bf0已退出,代码为-1073740777(0xc0000417)。 线程0x18c8已退出,代码为-1073740777(0xc0000417)。 线程0x153c已退出,代码为-1073740777(0xc0000417)。 线程0x1990已退出,代码为-1073740777(0xc0000417)。 线程0x191c已退出,代码为-1073740777(0xc0000417)。 线程0x18d4已退出,代码为-1073740777(0xc0000417)。 线程0x197c已退出,代码为-1073740777(0xc0000417)。 线程0x1988已退出,代码为-1073740777(0xc0000417)。 线程0x1998已退出,代码为-1073740777(0xc0000417)。 线程0x1850已退出,代码为-1073740777(0xc0000417)。 线程0x19f0已退出,代码为-1073740777(0xc0000417)。 线程0x1994已退出,代码为-1073740777(0xc0000417)。 线程0x1980已退出,代码为-1073740777(0xc0000417)。 线程0x19f8已退出,代码为-1073740777(0xc0000417)。 程序'[7148] opencvtest.exe'已退出,代码为-1073740777(0xc0000417)。
有人可以帮我解决这个问题吗?谢谢!
答案 0 :(得分:0)
解决了!我想我使用的是opencv的错误版本。当我切换到2.4.10时,evrything正常。