我试图从OpenCV文档构建示例程序,但我遇到了一个问题:
错误:未在此范围内声明'CV_WINDOW_AUTOSIZE'
计划来源:
#include <stdio.h>
#include <opencv2/opencv.hpp>
using namespace cv;
int main( int argc, char** argv )
{
Mat image;
image = imread( argv[1], 1 );
if( argc != 2 || !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)
我认为CV_WINDOW_AUTOSIZE
常量已包含在某个头文件中,但我找不到必要的头文件.
CV_WINDOW_AUTOSIZE
实际上真的是在highgui.h
,但是,正如@berak在评论中指出的那样,这是过时的c-api的一部分.你应该做两件事之一:
WINDOW_AUTOSIZE
相反,使用它,这是C++ API的一部分.您不需要更改任何其他内容来使其工作,甚至不包括#include示例中尚未包含的任何内容.namedWindow( "Display Image" )
改用,因为namedWindow WINDOW_AUTOSIZE
默认使用,因此您甚至不必将其作为参数包含在内.测试OpenCV 3.0.0
由于所有窗口内容都在 highgui 模块中,因此您需要
#include <opencv2/highgui/highgui.hpp>
Run Code Online (Sandbox Code Playgroud)
另外,您稍后需要链接到 opencv_highgui 库