C++;Eclipse OpenCV:.exe文件和二进制文件已生成,但未显示图像

C++;Eclipse OpenCV:.exe文件和二进制文件已生成,但未显示图像,opencv,eclipse-cdt,Opencv,Eclipse Cdt,这是我的代码(OpenCV文档中的第一个DisplayImage.cpp代码) /* *DisplayImage.cpp * *创建日期:2011年12月25日 *作者:大角星*/ #包括 #包括 使用名称空间cv; 使用名称空间std; int main(int argc,字符**argv){ Mat图像; image=imread(argv[1],1); if(argc!=2 | |!image.data){ cout您是如何使用MinGW编译OpenCV的(即,在CMake配置期间,您的B

这是我的代码(OpenCV文档中的第一个DisplayImage.cpp代码)

/*
*DisplayImage.cpp
*
*创建日期:2011年12月25日
*作者:大角星*/
#包括
#包括
使用名称空间cv;
使用名称空间std;
int main(int argc,字符**argv){
Mat图像;
image=imread(argv[1],1);
if(argc!=2 | |!image.data){

cout您是如何使用MinGW编译OpenCV的(即,在CMake配置期间,您的
BUILD\u类型
SSE*
选项设置为什么)?我问的原因是,在使用MinGW构建版本时,SSE优化中存在一个已知的bug,它会导致
highgui
操作崩溃。请参阅我的另一个SO答案。

1)您的图像有多大?2)在Windows上,我认为完整路径必须有双斜杠,如:
C:\\folder\\other\u folder\\img.png
嘿,Karl,是这样的是一张750 KB的图片。我尝试了绝对路径,仍然没有找到。我就是不明白。可执行文件就在那里,二进制文件就在那里,为什么不显示图片,我简直无法理解。如果从insi运行,您可能必须将图像与源代码放在同一文件夹中,而不是放在.exe目录中de Eclipse。我也试过这么做。另外,当我从命令提示符运行它时,它说找不到libopencv_highgui231d.dll。但它就在Eclipse指向的库中。它是从Eclipse构建的,所以为什么它应该与hte命令行有所不同呢?从cmd行它找不到OpenCV dll是有道理的。你知道吗需要编辑名为PATH的Windows环境变量并添加OpenCV DLL的位置。然后打开新的命令提示符并重试。嗨,mevatron,我的CMAKE_BUILD_类型是Debug,我的SSE选项是选中的。现在您提到了它,我还注意到,当我尝试从命令行运行它时,使用DisplayImage.exe blackbuck.bmp,我得到了一个留言"程序无法运行,因为您的计算机中缺少libopencv_highgui231d.dll。请尝试安装…,但此文件位于eclipse指向的库文件夹中。非常感谢!嘿,mevatron,我从另一篇文章中接受了您的建议并禁用了SSE。我从CMake重新配置并生成了它。这些更改会在中自行生效吗Eclipse?因为它仍然没有显示图像。请确保OpenCV DLL位于可执行文件所在的目录中,或者OpenCV DLL的路径位于path变量中。如果在设置path变量时打开了Eclipse,则需要重新启动Eclipse,以便使用新的环境变量。
/*
 * DisplayImage.cpp
 *
 *  Created on: Dec 25, 2011
 *      Author: Arcturus */       
 #include <iostream>    
 #include <opencv2\opencv.hpp>

using namespace cv;

using namespace std;

int main(int argc, char** argv){

    Mat image;

    image = imread(argv[1], 1);

    if(argc!=2 || !image.data){

        cout<<"no image data";

        return -1;
    }

    namedWindow("Display Image", CV_WINDOW_AUTOSIZE);

    imshow("Display Image", image);

    waitKey(10000);

    return 0;
}