首先是代码:
#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 的 trunk 还是 release 版本?如果是前者,那么您应该改用 IMREAD_GRAYSCALE
和 WINDOW_AUTOSIZE
。新文档,包括函数调用的更改等,可在 this link 中找到。 .
HTH
关于c++ - Opencv 标志不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22547416/