未处理的异常Microsoft C ++异常:cv ::内存位置的异常

问题描述 投票:1回答:2

我刚开始使用OpenCV。我下载了OpenCV 2.4.9,并安装了MSVS 2010.我的Windows是X64。我按照以下步骤操作:

一个。在Configuration Properties下,单击Debugging - > Environment并复制粘贴:PATH = C:\ opencv \ build \ x86 \ vc10 \ bin

湾VC ++目录 - >包含目录并添加条目:C:\ opencv \ build \ include

C。 VC ++目录 - >库目录并添加条目:C:\ opencv \ build \ x86 \ vc10 \ lib

d。链接器 - >输入 - >附加依赖项并添加以下内容:

opencv_calib3d249.lib; opencv_contrib249.lib; opencv_core249.lib; opencv_features2d249.lib; opencv_flann249.lib; opencv_gpu249.lib; opencv_nonfree249.lib; opencv_highgui249.lib; opencv_imgproc249.lib; opencv_legacy249.lib; opencv_ml249.lib; opencv_objdetect249.lib; opencv_ts249。 LIB; opencv_video249.lib;

我运行了以下代码:

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
int main() {
        // read an image
        cv::Mat image= cv::imread("img.jpg");
        // create image window named "My Image"
        cv::namedWindow("My Image");
         cv::waitKey(1000);
        // show the image on window
        cv::imshow("My Image", image);
        // wait key for 5000 ms
        cv::waitKey(50);
        return 1;
}

要得到错误:

BTP1.exe中0x76d2b727处的未处理异常:Microsoft C ++异常:cv ::内存位置的异常0x003af414

我想这可能是因为X64和x86不匹配。在更改条目时。到PATH = C:\ opencv \ build \ x64 \ vc10 \ bin和c。到C:\ opencv \ build \ x64 \ vc10 \ lib,我收到以下错误:

应用程序无法正确启动(0xc000007b)。单击“确定”关闭应用程序。

关于我如何克服这个问题的任何提示?

c++ windows visual-studio-2010 opencv
2个回答
3
投票

解决了这个问题。在一些修补,我发现该程序在Release模式下运行,而不是Debug模式。

这是附加依赖项的问题。没有添加相同的Debug版本。 (XYZ249d.lib)


2
投票

这可能是因为您尝试显示的图像为空,可能是因为图像不在右侧文件夹中。要确认这一点,请将代码更改为

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

#include <iostream>  // std::cout

int main() {
    // read an image
    cv::Mat image= cv::imread("img.jpg");

    // add the following lines
    if(image.empty())
       std::cout << "failed to open img.jpg" << std::endl;
    else
       std::cout << "img.jpg loaded OK" << std::endl;

    ...   // the rest of your code
© www.soinside.com 2019 - 2024. All rights reserved.