小编Mar*_*sUt的帖子

CascadeClassifier :: detectMultiScale不适用于C++

我正在使用OpenCV和CascadeClassifier::detectMultiScale面部检测.我的问题是它似乎导致输出中的内存损坏vector<Rect>.向量使用Rects正确填充,但在释放向量时会导致崩溃.

这仅在编译Debug构建时发生.错误消息是Debug Assertion Failed,这让我想知道在Release版本中是否也存在问题,并且不会检查断言.

这可能是OpenCV的错误吗?或者只是我在处理我的载体时做错了什么?

以下代码段显示了重现错误的示例代码:

#include <opencv2/opencv.hpp>
using namespace cv;

int main(array<System::String ^> ^args)
{
    VideoCapture video(0);
    Mat frame;
    CascadeClassifier classifier("haarcascade_frontalface_default.xml");

    while (waitKey(1000 / 30) != 'q')
    {
        video >> frame;

        vector<Rect> faces;
        classifier.detectMultiScale(frame, faces);
        for (int i = 0; i < faces.size(); i++)
            rectangle(frame, faces[i], Scalar(255, 255, 255));

        imshow("Camera", frame);
    } // <<< The crash occurs here when the faces vector is released
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:

调试断言失败!

程序:MyProgram.exe文件:minkernel\crts\ucrt\src\appcrt\heap\debug_heap.cpp行:892

表达式:is_block_type_valid(header - > _ block_use)

c++ opencv

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

检查函数是否被声明为递归

是否可以检查函数是否被声明为递归,即使用rec?

我有一个memoize函数,但它不适用于任意递归函数.如果用户使用这样的函数调用它,我想给出一个错误.(随意告诉我这是否是处理F#错误的坏方法)

f#

4
推荐指数
1
解决办法
202
查看次数

标签 统计

c++ ×1

f# ×1

opencv ×1