OpenCV教程:加载和显示图像(codeblocks,fedora20)

时间:2014-06-26 20:22:21

标签: c++ opencv codeblocks

我成功安装并链接并包含了OpenCV。 (我知道它成功了,因为我编译并运行了opencv程序found on this site

所以我回到了OpenCV文档和教程页面。我复制了from this page下面的确切代码。

#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>

using namespace cv;
using namespace std;

int main(int argc, char** argv)
{
    if( argc != 2)
    {
        cout <<" Usage: display_image ImageToLoadAndDisplay" << endl;
        return -1;
    }

    Mat image;
    image = imread(argv[1], CV_LOAD_IMAGE_COLOR);   // Read the file

    if(!image.data )                              // Check for invalid input
    {
        cout <<  "Could not open or find the image" << std::endl ;
        return -1;
    }

    namedWindow( "Display window", WINDOW_AUTOSIZE );// Create a window for display.
    imshow( "Display window", image );                   // Show our image inside it.

    waitKey(0);                                          // Wait for a keystroke in the window
    return 0;
}
//This is the end

(在fedora20上运行代码块) 使用项目&gt;&gt;设置我在“/home/Kennedy/Pictures/enterprise.bmp”中输入的程序参数,不带引号。

由于我正在使用bmp文件(supported),并且文件路径正确,任何人都可以建议为什么代码块会吐出来

/home/Kennedy/Documents/workspace/OpenCVtest/main.cpp|21|error: ‘CV_LOAD_IMAGE_COLOR’ was not declared in this scope|

而不是运行一个可爱的小第一个程序?

作为参考,我已阅读但未找到有关thisthis以及其他Q&amp; As on stackoverflow,codeblocks论坛以及我能想到的其他任何地方的帮助。我也看到this,但我对WINDOW_AUTOSIZE没有问题。

编辑添加另一个被瞄准的解决方案: 我将enterprise.bmp复制并粘贴到包含项目的文件夹中,删除了参数,并用“enterprise.bmp”替换了argv 1。这没有效果,我仍然得到同样的错误。

2 个答案:

答案 0 :(得分:17)

这意味着您可能正在编译opencv 3.0。符号&#34; CV_LOAD_IMAGE_COLOR&#34;已替换为&#34; cv :: IMREAD_COLOR&#34;。只需编辑文件就可以了。它是Caffe中唯一不推荐使用的符号。

答案 1 :(得分:-1)

我安装ubuntu和opencv时遇到同样的问题。

我尝试更改标题包含文件,如下所示,问题已解决并成功运行。

但我不知道为什么,谁能提供帮助?

我的更改是注释掉opencv.hpp头文件并添加cv.h和highgui_c.h ......

#include <opencv/cv.h>
#include <opencv2/highgui/highgui_c.h>
//#include <opencv2/opencv.hpp>