C++ “本机”已退出,代码为2(0x2)

C++ “本机”已退出,代码为2(0x2),c++,visual-studio-2010,opencv,image-processing,dll,C++,Visual Studio 2010,Opencv,Image Processing,Dll,我正在使用windows8.1、visual Studio 10和Opencv。 这是我的密码 #include "stdafx.h" #include <iostream> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/opencv.hpp> #include <opencv/cvaux.h> #in

我正在使用windows8.1、visual Studio 10和Opencv。 这是我的密码

#include "stdafx.h"

#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/opencv.hpp>
#include <opencv/cvaux.h>
#include <stdio.h>

using namespace cv;
using namespace std;

int main(int argc, const char * argv[]){
你能帮我解决这个问题吗 几天前它还可以工作。现在它不工作了。我对opencv和visual studio有点陌生
非常感谢

问题是您的图像加载不正确

如果您查看日志,它会告诉您该应用程序已退出,代码为2

如果你看你的代码,只有把它放在2是退出

if(!image.data){

    printf("Error: Couldn't open the file.\n");
    return 2;

}

因此,我会检查您是否输入了正确的文件路径,以及图像文件是否存在,使用Imread函数时会出现问题

image = imread("C:/Users/chandanawin8/Desktop/len.jpg", CV_LOAD_IMAGE_COLOR);
使用下面的函数代替上面的函数

image = cvLoadImage("C:/Users/chandanawin8/Desktop/easy.JPG",CV_LOAD_IMAGE_COLOR);

亲爱的,不,坏主意。应该避免使用旧的c-api调用。如果imread不起作用,那么下面就潜伏着一个更大的链接器相关问题。检查你是否混合了调试/发布libs或诸如此类。谢谢你的回复。当我使用它时,cvloardImage功能。它正在工作。你需要解释一下你说的chek调试/发布libs。我是OpenCVI的新手如果你不知道答案,请不要参与
image = imread("C:/Users/chandanawin8/Desktop/len.jpg", CV_LOAD_IMAGE_COLOR);
image = cvLoadImage("C:/Users/chandanawin8/Desktop/easy.JPG",CV_LOAD_IMAGE_COLOR);