linux下第一个OpencV程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
linux下第一个OpencV程序
今天在linux下安装了OpenCV,下面是我的linux下第一个OpencV程序,很简单,但是在编译的过程中还是遇到了不少的问题。下面就简单总结一下。
源代码如下(hello.c):
#include "cv.h"
#include "highgui.h"
int main(int argc,char **argv)
{
IplImage* pImage;
if (argc == 2 && (pImage=cvLoadImage(argv[1],1)) !=0)
{
cvNamedWindow("Image",1);
cvShowImage("Image",pImage);
cvWaitKey(0);
cvDestroyWindow("Image");
cvReleaseImage(&pImage);
return 0;
}
return -1;
}
1.编译:gcc hello.c -o hello
报错如下:
hello.c:1:16: 错误:cv.h:没有该文件或目录
hello.c:2:21: 错误:highgui.h:没有该文件或目录
hello.c: 在函数‘main’ 中:
hello.c:6: 错误:‘IplImage’ 未声明(在此函数内第一次使用)
hello.c:6: 错误:(即使在一个函数内多次出现,每个未声明的标识符在其
hello.c:6: 错误:所在的函数内只报告一次。)
hello.c:6: 错误:‘pImage’ 未声明(在此函数内第一次使用)
hello.c:20:2: 警告:文件未以空白行结束
解决方法:
把目录/usr/local/include/opencv拷贝到/usr/include下,
即执行命令:sudo cp -r /usr/local/include/opencv /usr/include
再编译:gcc hello.c -o hello
仍然报错:
hello.c:1:16: 错误:cv.h:没有该文件或目录
hello.c:2:21: 错误:highgui.h:没有该文件或目录
hello.c: 在函数‘main’ 中:
hello.c:6: 错误:‘IplImage’ 未声明(在此函数内第一次使用)
hello.c:6: 错误:(即使在一个函数内多次出现,每个未声明的标识符在其
hello.c:6: 错误:所在的函数内只报告一次。)
hello.c:6: 错误:‘pImage’ 未声明(在此函数内第一次使用)
hello.c:20:2: 警告:文件未以空白行结束
再改变编译命令:
g++ `pkg-config --cflags opencv` -c hello.c
链接命令:
g++ `pkg-config --libs opencv` -o hello hello.o
此时编译成功,执行时候,需要进入超级用户模式下,并进入工程目录,执行命令:hello v.jpg即可显示出图片v.jpg
虽然有看到图片但是其中的有些原理还不是很清楚,会进一步跟踪研究~~~