相关疑难解决方法(0)

在发布/调试模式下,Haar级联的结果不同

我正在使用从MIT汽车数据集训练的Haar级联分类器来检测OpenCV中的车辆(使用随OpenCV提供的实用程序进行训练).在调试模式下编译时,这种方法工作得相当好,但是在发布模式下编译时,级联根本不会进行任何检测.在下面的测试图像上运行以下代码可以在调试模式下进行检测,但在发布模式下无任何检测(此行为将继续通过我的数据序列中的所有图像).

你能说出为什么会出现这种情况,更重要的是,在发布模式下运行时我能做些什么才能获得检测?

级联文件

cv::Mat testImage = cv::imread("testImage.png",0);
cv::equalizeHist(testImage, testImage);

cv::CascadeClassifier vehicleCascade;
vehicleCascade.load("cars3.xml");

// Detect vehicles
std::vector<cv::Rect> cars;
vehicleCascade.detectMultiScale(
    testImage,                  // Input image
    cars,                   // Output bounding boxes
    1.1,                    // scale factor - how much image size is reduced at each scale
    5,                      // min neighbours - how many neighbours required to maintain rect
    0|CV_HAAR_SCALE_IMAGE,  // Not used
    cv::Size(30,30),        // Min poss object size
    cv::Size()              // Max poss object size
    );

std::cout << "Found " << cars.size() << …
Run Code Online (Sandbox Code Playgroud)

c++ opencv release-mode debug-mode

13
推荐指数
1
解决办法
2025
查看次数

OpenCV + VS2010上未处理的异常

我可以成功构建并执行以下代码:

 IplImage* img = cvLoadImage("C:\\hello.jpg");
 cvNamedWindow("myfirstwindow");
 cvShowImage("myfirstwindow", img);
Run Code Online (Sandbox Code Playgroud)

但是在执行下面的代码时我得到了未处理的异常:

    cv::Mat image= cv::imread("boldt.jpg");
    cv::namedWindow("Image");
    cv::imshow("Image",image);
Run Code Online (Sandbox Code Playgroud)

虽然,我可以成功构建代码.

我在Windows 7 x86版本上使用opencv2.2和VS2010 x86版本.请帮忙 !

更新:我在winxp上尝试过,它工作正常......只有在发布模式下win7才能正常工作.

c c++ opencv visual-studio-2010

5
推荐指数
2
解决办法
1万
查看次数

标签 统计

c++ ×2

opencv ×2

c ×1

debug-mode ×1

release-mode ×1

visual-studio-2010 ×1