我已经开始学习 OpenCV。我正在研究Linux。从他们的文档页面我能够编译这个 http://docs.opencv.org/doc/tutorials/introduction/linux_gcc_cmake/linux_gcc_cmake.html#linux-gcc-usage
然而,在那之后我迷失了试图声明一个新的垫子和它的构造函数。所以我决定看这本书http://www.amazon.com/Learning-OpenCV-Computer-Vision-Library/dp/0596516134 但是我无法编译这本书的第一个程序。程序在这里:
#include "highgui.h"
int main(int argc, char** argv)
{
IplImage* img = cvLoadImage (argv[1]);
cvNamedWindow("Example1", CV_WINODW_AUTOSIZE);
cvShowImage("Example1",img);
cvWaitKey(0);
cvReleaseImage(&img);
cvDestroyWindow("Example1");
}
我将它保存在一个名为load.c的文件中
然后我创建了一个CMakeLists.txt文件并将其放入其中:
project( load )
find_package( OpenCV REQUIRED )
add_executable( load load )
target_link_libraries( load ${OpenCV_LIBS} )
从终端运行“ cmake . ”时,它是成功的。但是当我运行“ make ”时,它给了我这个错误:
Scanning dependencies of target load
[100%] Building C object CMakeFiles/load.dir/load.o
/home/ishan/load/load.c: In function ‘main’:
/home/ishan/load/load.c:4:2: error: too few arguments to function ‘cvLoadImage’
/usr/local/include/opencv2/highgui/highgui_c.h:212:18: note: declared here
/home/ishan/load/load.c:5:28: error: ‘CV_WINODW_AUTOSIZE’ undeclared (first use in this function)
/home/ishan/load/load.c:5:28: note: each undeclared identifier is reported only once for each function it appears in
make[2]: *** [CMakeFiles/load.dir/load.o] Error 1
make[1]: *** [CMakeFiles/load.dir/all] Error 2
make: *** [all] Error 2
我认为这是因为本书中的这个例子是针对 OpenCV 1.x 而我目前正在运行 2.4.3,但是我相信必须有一种方法来运行这个程序和书中的后续程序。我认为问题在于正确链接头文件。我想先阅读本书并使用文档中的参考,然后完全切换到文档。但是现在我希望从这本书中学习,因为从书中学习对我来说比文档要容易得多。另外,我花了大约 3000 卢比买了这本书,今天才拿到,我不想看到它浪费掉。我想从中学习。
请帮帮我。