opencv - OpenCV代码错误-为RtlFreeHeap指定的地址无效

标签 opencv visual-studio-2012

我有以下代码,可以正常运行:

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/features2d/features2d.hpp>

using namespace std;
using namespace cv;

void main() {

    bool running = true;

    cv::OrbFeatureDetector OrbDetector;

    while (running) {
        IplImage *newFrame = cvLoadImage("x1.jpg");
        IplImage *newFrameBW = cvCreateImage(cvGetSize(newFrame), newFrame->depth, 1);
        cvConvertImage(newFrame, newFrameBW);
        vector<KeyPoint> KeyPoints;
    }
}

但是,添加以下行:
OrbDetector.detect(newFrameBW, KeyPoints);

进入while循环会导致以下错误:
HEAP[Example 4.exe]: Invalid address specified to RtlFreeHeap( 006B0000, 02474D20 )
Example 4.exe has triggered a breakpoint.

我确定代码没有错,因为我刚刚看到它可以在其他人的机器上成功运行。是否有任何非代码相关的原因可能导致这种情况?

最佳答案

问题是您使用的OpenCV版本在MCVS 2012中无法正常运行。这不是代码问题,因为我有一个类似的包含 vector 的代码,但无法正常工作。
看一下本教程,它将向您展示如何重建OpenCV库,并且您的代码可以很好地工作;)
链接在这里:
http://answers.opencv.org/question/6495/visual-studio-2012-and-rtlfreeheap-error/

关于opencv - OpenCV代码错误-为RtlFreeHeap指定的地址无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15107008/

相关文章:

c++ - 是否有能力倒回 VideoCapture 中的多个帧

visual-studio-2012 - 如何在web.config转换过程中添加文件?

c# - bin中的dll与vs2012中发布的dll有区别吗

iPhone OpenCV 人脸检测

python - 如何从具有许多不同前景的图像中提取任意背景矩形 block

python - OpenCV 寻找图像的紧密匹配

visual-studio-2012 - 如何查看来自 Team Foundation Service 中早期代码审查的注释?

visual-studio - 在 Visual Studio 2012/2013 中自动 "Attach to Running Process"

c++ - 将 VS 2013 中的目标编译器更改为 VS 2012

java - OpenCV 图像描述符到 JSON