OpenCV:我在哪里可以找到CV_WINDOW_AUTOSIZE常量
OpenCV: where can I find CV_WINDOW_AUTOSIZE constants?
我尝试从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
常量已包含在某个头文件中,但我找不到必要的头文件。
CV_WINDOW_AUTOSIZE
实际上确实可以在highgui.h
中找到,但是,正如@berak在评论中指出的那样,这是过时的c-API的一部分。相反,您应该执行以下两项操作之一:
- 请改用
WINDOW_AUTOSIZE
,这是 C++ API 的一部分。您无需更改任何其他内容即可完成此操作,甚至无需 #include 示例中尚未 #included 的任何内容。 - 请改用
namedWindow( "Display Image" )
,因为 namedWindow 默认使用WINDOW_AUTOSIZE
,因此您甚至不必将其作为参数包含在内。
针对 OpenCV 3.0.0 进行测试
似乎在OpenCV 3.1中,您需要cv::WindowFlags::WINDOW_AUTOSIZE
使用位于<opencv2/highgui.hpp>
.
对于 opencv 4,它是在 <opencv2/highgui/highgui_c.h>
中定义的
由于所有窗口化的东西都在Highgui模块中,你需要
#include <opencv2/highgui/highgui.hpp>
此外,您稍后需要链接到opencv_highgui库
我有同样的问题和使用
WINDOW_AUTOSIZE而不是
CV_WINDOW_AUTOSIZE
它在版本 4 中已更改。如果已使用命名空间 cv 定义,则可以直接使用 WIDOW_AUTOSIZE,如示例中所示。另外,不要忘记为 opencv 添加正确的依赖项
您可以在 highgui.h
中找到它。
相关文章:
- 将"打开的CV图像"中的"颜色"转换为整数格式
- 概念中的cv限定符需要表达式参数列表
- 将CHW格式的浮点向量转换为cv::Mat
- 错误的cv::face FacemarkLBF实例化
- 如何检查给定的参数是否为 cv::noArray()?
- 开放 CV 中的动态内存分配,用于视频处理
- 如何在 opencv 中使用 cv::VideoCapture::waitAny()
- 错误:未定义对cv::cudacodec::createVideoReader的引用
- OpenCV 3.4.1 error readNetFromTensorflow 无法在 cv::d nn::ReadProtoFromBinaryFile 中打开 .pb
- C++:从GPU内存(cudaMemcpy2D)获取BGR图像(cv::Mat)
- 选择基于另一个垫子的非零像素的cv::Mat的一部分?
- 将 cv::mat 转换为 QImage
- Inference pytorch C++ with alexnet and cv::imread image
- OpenCV 3.4.3 中对 'cv::String::d eallocate()' 错误的未定义引用
- cv::Normalise() 中的 L2_NORM 和 NORM_MINMAX 实现有什么区别?
- 将 cv::Mat 转换为 std::vector 的通用函数
- OpenCV undefined reference to 'cv::imread(cv::String const&, int)'
- 在 QML VideoOutput 中将 cv::mat 显示为 QVideoFrame
- 如何应用带有cv::cuda和C++的Canny Edge检测器?
- opencv cv::addText exception if no window