OpenCV:我在哪里可以找到CV_WINDOW_AUTOSIZE常量?

时间:2013-09-08 09:22:10

标签: c++ linux opencv

我曾尝试从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;  
}

我认为CV_WINDOW_AUTOSIZE常量已包含在某个头文件中,但我无法找到必要的头文件。

7 个答案:

答案 0 :(得分:7)

CV_WINDOW_AUTOSIZE实际上 highgui.h中找到,但是@berak在评论中指出, &#39; s过时的c-api的一部分。你应该做两件事之一:

  • 使用WINDOW_AUTOSIZE代替,这是C ++ API的一部分。你不需要改变任何其他东西来使这项工作,甚至不包括#include在示例中已经#include的任何东西。
  • 请改用namedWindow( "Display Image" ),因为namedWindow默认使用WINDOW_AUTOSIZE,因此您甚至不必将其作为参数包含在内。

经过OpenCV 3.0.0测试

答案 1 :(得分:3)

对于opencv 4,它是在<opencv2/highgui/highgui_c.h>

中定义的

答案 2 :(得分:1)

因为所有窗口化内容都在highgui模块中,所以你需要

#include <opencv2/highgui/highgui.hpp>

此外,您需要稍后链接对抗opencv_highgui库

答案 3 :(得分:1)

版本4已更改。 如果已使用示例中的名称空间cv进行定义,则可以直接使用WIDOW_AUTOSIZE。 另外,不要忘记为opencv添加正确的依赖项

答案 4 :(得分:0)

在OpenCV 3.1中,您需要使用位于cv::WindowFlags::WINDOW_AUTOSIZE的{​​{1}}。

答案 5 :(得分:0)

我有相同的问题并使用

WINDOW_AUTOSIZE代替

CV_WINDOW_AUTOSIZE

答案 6 :(得分:-1)

您可以在highgui.h找到它。