gpt4 book ai didi

opencv - C++ Eclipse OpenCV : . 生成了 exe 文件和二进制文件,但没有显示图像

转载 作者:行者123 更新时间:2023-12-02 16:43:09 25 4
gpt4 key购买 nike

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

/*
* 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;
}

构建完成,生成可执行文件,生成二进制文件。

我的图像 - blackbuck.bmp- 在 DisplayImage Debug 文件夹中。要运行代码,我转到运行 > 运行配置。选择 DisplayImage Debug exe 文件,键入 blackbuck.bmp(也尝试使用绝对路径)并运行它。

在控制台顶部,我收到消息:DisplayImage Debug。它根本不显示任何图像。这里有什么问题?

我在 Eclipse 上运行它,使用 CDT。

感谢您的时间!

编辑:问题解决了!!!我必须将库文件夹中的所有 dll 文件复制到生成可执行文件的文件夹中。不过,我仍然不明白为什么。毕竟,链接器已经在链接包含所有 dll 的库文件夹。如果有人能解释一下,这对以后的调试会有很大帮助。感谢 karl 和 mevotron 抽出宝贵时间 :)

编辑 2:来自 msdn 网站:
“使用 DLL 的一个潜在缺点是应用程序不是自包含的;它依赖于单独的 DLL 模块的存在。如果进程需要在进程启动时找不到的 DLL,系统会使用加载时动态链接终止进程并向用户提供错误消息。在这种情况下,系统不会使用运行时动态链接终止进程,但缺少的 DLL 导出的函数对程序不可用。

我认为这回答了我的问题。也许这意味着 eclipse 使用加载时动态链接。

最佳答案

您是如何使用 MinGW 编译 OpenCV 的(即,在 CMake 配置期间您的 BUILD_TYPESSE* 选项设置为什么)?我问的原因是,有一个已知的 SSE 优化错误会导致 highgui使用 MinGW 构建版本时崩溃的操作。请参阅我的其他 SO 答案 here .

关于opencv - C++ Eclipse OpenCV : . 生成了 exe 文件和二进制文件,但没有显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8756397/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com