先上代码:
#include <stdio.h>
#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
int main( int argc, char** argv )
{
Mat image;
image = imread( "MyPic.jpg", CV_LOAD_IMAGE_GRAYSCALE );
if( !image.data )
{
printf( "No image data \n" );
return -1;
}
namedWindow( "Display Image", CV_WINDOW_AUTOSIZE);
imshow( "Display Image", image );
waitKey(0);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
一个简单的程序,它只加载一个名为 "MyPic.jpg" 的图像,这是我在开放的 CV 网站文档中找到的一个例子(有一些小的变化)。它给了我这两个错误:
‘CV_LOAD_IMAGE_GRAYSCALE’ was not declared in this scope
‘CV_WINDOW_AUTOSIZE’ was not declared in this scope
Run Code Online (Sandbox Code Playgroud)
为什么它不起作用?怎么了?
我将我的评论作为答案,以便其他遇到此问题的人可以轻松找到解决方案。
你使用的是 trunk 还是 OpenCV 的发布版本?如果是前者,那么你应该使用IMREAD_GRAYSCALEandWINDOW_AUTOSIZE来代替。新的文档,包括函数调用的更改等可以在此链接中找到 。
华泰