参考:
https://www.cnblogs.com/woshijpf/p/3840530.html
http://blog.csdn.net/pbypby1987/article/details/18969441
在上述博客中看到,linxu 下编译opencv 程序,有三种方法,一个是使用makefile ,一个使用终端命令,一个是通过cmake 命令生成makefile 后编译。
这里做实验采用的是第三种,使用cmake 生成 makefile 进行编译。
第一步:建立文件夹
首先,在/opt/linux/opencv-2.4.9 文件夹下建立opencv_pc 目录用来存放自己写的代码和生成的可执行文件等。
之前opencv2.4.9.zip 是在/opt/linux/opencv-2.4.9 目录解压和安装的,也有指定build 文件夹。
第二步 准备和修改文件
编译使用opencv函数的程序,需要准备三个文件
1 CMakeLists.txt:cmake 命令使用
2 image_show.cpp :源代码
3 right.jpg : 测试文件
其中第一项可以从opencv2.4.9.zip 解压后的文件种复制过来做一些修改,
文件路径为
/opt/linux/opencv-2.4.9/samples/c/example_cmake
文件需要修改的内容为:
第二项为源代码,内容如下:
#include <highgui.h>
int main(int argc,char ** argv) {
IplImage* img = cvLoadImage(argv[1],CV_LOAD_IMAGE_COLOR);
cvNamedWindow("Image_show",CV_WINDOW_AUTOSIZE);
cvShowImage("Image_show",img);
cvWaitKey(0);
cvReleaseImage(&img);
cvDestroyWindow("Image_show");
return 0;
}
第三项即为测试图片。
第三步 生成 Makefile 文件
输入命令 cmake .
第四步 编译,生成可执行文件
输入命令 make
第五步 测试效果
输入命令 ./opencv_example right.jpg
至此可以编译显示,在开发板移植稍后尝试,中间可能遇到问题 ,我的原因是由于源代码有数字的行号,删除即可。
cmake 后 make 编译出错expected unqualified-id before numeric constant
可参考网上解决方案:
http://blog.sina.com.cn/s/blog_64b45d7101012sna.html
http://blog.chinaunix.net/uid-25873032-id-5758125.html
注意:如果修改程序,没有修改文件名则不用重新进行cmake,只需要编译就行,但是编译时一定要注意,先清除上次的编译内容在重新编译测试
make clean
make