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


虽然有看到图片但是其中的有些原理还不是很清楚,会进一步跟踪研究~~~

你可能感兴趣的:(linux,image,gcc)