Opencv --- 我不能使用函数 imread

Posted

技术标签:

【中文标题】Opencv --- 我不能使用函数 imread【英文标题】:Opencv --- I cannot use the function imread 【发布时间】:2013-08-29 14:39:45 【问题描述】:

我的 opencv 函数有问题。我可以使用

IplImage* img = CvLoadImage("2_DeepViewOutput.png");

但是我不能用

Mat img = imread("2_DeepViewOutput.png");

它给了我

此行有多个标记 - 行断点:Hello.cpp [行:11] - 对 `cv::imread(std::string const&, int)' 的未定义引用

我想我已经在路径中加载了库。我不知道原因,请帮助我。

【问题讨论】:

Windows?编译器明确表示您没有链接到正确的库(可能是 opencv2 的 highgui)。 可能重复:1, 2 【参考方案1】:

问题是您包含了 C 头文件,而不是 C++ 头文件。因此,您的程序无法编译,因为 C 头文件中不存在 cv::imread(std::string const&, int) 函数的声明。

因此,您必须包含 C++ 头文件。 (例如 - #include "opencv2/highgui/highgui.hpp")(这个link 会帮助你)

如果你还没有为 C++ 配置你的 IDE,请通过这个link

【讨论】:

【参考方案2】:

问题在于您的 IDE 路径中缺少 dll。按照这个link 一步一步地解决你的问题。

【讨论】:

我认为我在 IDE 路径中是对的,如果我错了,我该如何运行函数 CVLoadImage ?是C++函数不能运行吗? C 可以吗? 不,我使用的是 elcipse,opencv 2.4.5。现在,我必须用 C 编程,因为我不能在 opencv 中使用 C++ 函数。就像我可以使用 CvLoadImage 加载图像一样,我不能直接使用 imread。 不,有什么问题,您可以尝试使用 Netbeans 吗?它非常简单。 我对eclipse很熟悉...我仍然不知道。

以上是关于Opencv --- 我不能使用函数 imread的主要内容,如果未能解决你的问题,请参考以下文章

在 OpenCv 中使用“cv::imread”函数读取图像的问题

c++调用opencv相关函数并打包成dll,c#不能调用

opencv imread和imwrite

Opencv imread 不能正常读取

Opencv imread 不能正常读取

详解OpenCV的函数imread()和函数imshow(),并利用它们实现对图像的读取和显示