opencv加载和显示图像

时间:2015-07-01 04:49:25

标签: c++ opencv

我已安装opencv 3.0并验证其正常工作。然后开始加载和显示图像的教程,这给了我错误说明 'CV_LOAD_IMAGE_COLOR'未在此范围内声明。我经历了类似的帖子,但没有帮助

这是代码。非常感谢任何帮助。

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

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

2 个答案:

答案 0 :(得分:1)

可以在此处找到OpenCV 3.0的文档:http://docs.opencv.org/3.0.0/d4/da8/group__imgcodecs.html

负责imread的当前枚举是:

enum    cv::ImreadModes {
  cv::IMREAD_UNCHANGED = -1,
  cv::IMREAD_GRAYSCALE = 0,
  cv::IMREAD_COLOR = 1,
  cv::IMREAD_ANYDEPTH = 2,
  cv::IMREAD_ANYCOLOR = 4,
  cv::IMREAD_LOAD_GDAL = 8
}

这意味着您在使用OpenCv 3.0而不是cv::IMREAD_COLOR时需要使用cv::CV_LOAD_IMAGE_COLOR

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

答案 1 :(得分:0)

CV_LOAD_IMAGE_COLOR在opencv2 / imgcodecs / imgcodecs_c.h中声明。 因此,您需要添加

class PointsThing
  def initialize(points)
    @points = points
  end

  def query(x_min, n)
    @points.select { |point| point.x > x_min }.sort_by { |point| point.y }.take(n)
  end
end

此外,您只能包含一个头文件

#include<opencv2/imgcodecs/imgcodecs_c.h>

而不是单独包含opencv中的所有头文件。