打开CV标志不工作



首先代码:

#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;
}    

一个简单的程序,只是加载一个图像,然后命名为"MyPic.jpg",这是一个例子,我发现在开放的CV网站文档(有小的变化)。它给了我这两个错误:

    ‘CV_LOAD_IMAGE_GRAYSCALE’ was not declared in this scope
    ‘CV_WINDOW_AUTOSIZE’ was not declared in this scope

为什么不工作?怎么了?

我把我的评论作为答案,以便其他遇到这个问题的人可以很容易地找到解决办法。

你是使用主干版本还是发布版本的OpenCV?如果是前者,那么您应该使用IMREAD_GRAYSCALEWINDOW_AUTOSIZE代替。新的文档,包括函数调用的变化等,可以在这个链接中找到。

HTH

解决方法如下:

  1. 确保你使用的命名空间是:using namespace cv;
  2. ,而不是使用CV_LOAD_IMAGE_GRAYSCALE,尝试做:cv::IMREAD_GRAYSCALE

选择:

通过opencv项目,您还可以尝试使用常量运行快速搜索,并提供数值代替。例如,在CV_LOAD_IMAGE_GRAYSCALE的情况下,发现它对应于代码中的值0(特别是在文件constants_c.h .

中)。

相关内容

  • 没有找到相关文章

最新更新