我已经安装了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;
}
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
}
这意味着您在使用OpenCv3.0而不是cv::CV_LOAD_IMAGE_COLOR
时需要使用cv::IMREAD_COLOR
。
image = imread(argv[1], IMREAD_COLOR); // Read the file
CV_LOAD_IMAGE_COLOR在opencv2/imgcodecs/imgcodecs_c.h中声明。因此,您需要添加
#include<opencv2/imgcodecs/imgcodecs_c.h>
此外,您可以只包含一个头文件
#include <opencv2/opencv.hpp>
而不是在opencv中单独包含所有头文件。