【问题标题】:error: imread is not a member of cv错误:imread 不是 cv 的成员
【发布时间】:2016-02-15 21:44:18
【问题描述】:

我使用 OpenCV 3.0 和 Ubuntu 14.04。我正在尝试使用 opencv 在 ubuntu 上编译一些代码。我得到错误

“错误:‘imread’不是‘cv’的成员”

由于我之前的搜索知识,我尝试通过添加“highgui.h”进行编译。

我用:

$g++ main.cpp HOG.cpp HOGFeaturesOfBlock.cpp -I/usr/local/include/opencv -lml -lcvaux -highgui -lcv -lcxcore -o featureExtractor

在终端上编译。

有什么建议吗? 问候。 可以。

【问题讨论】:

  • 请发帖minimal reproducible example,以便我们准确了解您的所作所为 - 否则很难回答。
  • 你没有正确设置OpenCV。请参阅here 以了解要包含和链接的内容(此处添加到 Visual Studio 项目,只需添加到 gcc 命令行即可)。
  • 好的,我正在尝试从 main.cpp 中的深度图像中提取特征我还读取了 main.cpp 中调用的 Data.cpp。我在尝试编译时使用了 imread 的 cpp 我得到 readData.cpp:error: 'imread' is not a member of 'cv'
  • @Miki 我使用的是 Ubuntu,而不是 Windows:/
  • 是的,我明白了。但是你需要正确地包含和链接opencv。

标签: c++ opencv ubuntu imread


【解决方案1】:

以下命令应该可以工作。如果它不起作用,您应该检查您是否正确设置了 include/lib 文件。

#include <opencv2\highgui\highgui.hpp>
#include <opencv2\core\core.hpp>
#include <opencv\cv.hpp>

using namespace cv;

Mat image = imread(filename, CV_LOAD_IMAGE_COLOR);

【讨论】:

  • 1) 你不需要#include &lt;opencv\cv.hpp&gt;,2) 你可以只使用#include &lt;opencv2/opencv.hpp&gt; 3) 没有main 这将不起作用,4) Opencv 3.0 参数现在称为@ 987654325@
  • 我将这些标头包含在我的代码中,但这次我得到另一个错误,/usr/bin/ld 找不到 -lml 和其他库的相同错误
【解决方案2】:
#include <opencv2/imgcodecs.hpp> 

解决了包含imread函数的问题

【讨论】:

    【解决方案3】:

    我发现编译命令必须非常具体(除了在代码中添加了using namespace cv;),源文件必须直接在g++之后,如下所示;

    g++ test.cpp -fpermissive $(pkg-config --cflags --libs opencv) -o testbin
    

    如果您使用的是 opencv4,请将 opencv 替换为 opencv4

    【讨论】:

      【解决方案4】:

      我之前也有同样的问题。 只需添加#include "imgcodec.hpp", 希望对你有帮助

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-03-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-22
        • 2014-10-18
        • 1970-01-01
        相关资源
        最近更新 更多