Ubuntu12.04+OpenCv-2.4.9安装及简单程序编写测试

来源:互联网 发布:matlab nan数据变为0 编辑:程序博客网 时间:2024/06/06 01:15

提前从OpenCv官网下载好OpenCv-2.4.9.zip安装包。

首先通过命令行在/home文件夹下建立own文件夹,并将OpenCv放在此文件夹。注:ubuntu为无界面版本,传送文件建议使用ssh,方便快捷,远程登录之利器。

# mkdir  own

将OpenCv-2.4.9.zip传至/home/own文件夹下,如下图


接下来进行安装步骤(不要紧张,不行重来就是了):

1、更新、升级软件列表

#sudo apt-get update

#sudo apt-get upgrade

2、安装Cmake

#sudoapt-get install cmake  

#sudoapt-get install cmake-curses-gui 

3、安装必要库文件(可以现在安或者安装OpenCv之后都可以。不过建议现在安,后续使用无忧)

# #sudo apt-get install build-essential libgtk2.0-dev libjpeg-dev libtiff4-dev libjasper-dev libopenexr-dev cmake python-dev python-numpy python-tk libtbb-dev 
libeigen2-dev yasm libfaac-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev libqt4-dev libqt4-opengl-dev sphinx-common texlive-latex-extra libv4l-dev libdc1394-22-dev libavcodec-dev libavformat-dev libswscale-dev

由于文档原因,可能空格有些地方没空好,还望你自行分辨)安装时间几分钟


4、解压安装OpenCv-2.4.9

如果没有安装unzip,先安装解压文件

#sudo apt-getinstall unzip

将路径切到own文件夹下

# cd /home/own

#unzipopencv-2.4.9.zip

#cd opencv2.4.9  

#mkdirrelease  在文件夹下创建release文件夹

#cdrelease  

#ccmake ../ 出现如下界面:

按C进入下图界面并配置如下图:

键盘按c,然后按g,然后就回到命令行界面。

#make  这是个漫长的过程。(如果没别的事情可以出去溜达一圈了)

# sudomake install

安装完毕。

5、配置文件

# sudo vim/etc/ld.so.conf.d/opencv.conf 

注意:很多时候可能机器不存在conf文件,可以切换到root用户权限用vim opencv.conf创建新文件,包括下面

按i插入/usr/local/lib。ESC键->:wq->回车退回命令行

# sudo ldconfig

# cd /etc

# vim bash.bashrc

添加下面两行到文件的末尾并保存(:wq)。

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig

exportPKG_CONFIG_PATH

# sudo ldconfig

6、测试

重启ubuntu

# reboot

# cd/home/own/opencv-2.4.9/samples/c 

# ./build_all.sh

# ./find_obj

一开始以为红色部分为错误,后来发现可能跟无界面的ubuntu系统有密切关系。如果不是,请您指点。

完毕。

7、玩一段程序试试

程序代码(网络上盛传的二值化代码):

 #include "cxcore.h" #include "highgui.h" #include <iostream>    using namespace std;    int main (int argc, char *argv[])  {      IplImage* img = cvLoadImage(argv[1], -1);      IplImage* biimg = cvCreateImage(cvGetSize(img), img->depth, img->nChannels);      CvScalar s;      int sum = 0;      for (int i = 0;i < img->height;i++)      {          for (int j = 0;j < img->width;j++)          {              s =  cvGet2D(img, i, j);              cout << s.val[0] << " " << s.val[1] << " " << s.val[2] <<endl;              sum = (s.val[0] + s.val[1] + s.val[2]) / 3;              if (sum > 128)                  s.val[0] = s.val[1] = s.val[2] = 255;              else                  s.val[0] = s.val[1] = s.val[2] = 0;                cvSet2D(img, i, j, s);          }      }      cvCopy(img, biimg);      cvSaveImage("combibi.JPG", biimg);      cvNamedWindow("imagebinary");      cvShowImage("imagebinary", biimg);      cvWaitKey(0);      cvDestroyWindow("imagebinary");      cvReleaseImage(&img);      cvReleaseImage(&biimg);      return 0;  }

建立文件夹,并将erzhihua.cpp和lena.jpg上传。本文创建的文件夹为:../opencv-2.4.9samples/c/test


# gccerzhihua.cpp -o erzhi `pkg-config --cflags --libs opencv`

# ./erzhilena.jpg

运行结果:


水平有限,如有问题,请直接邮件489348116@qq.com联系更正,楼主脆弱,切勿乱喷。
2 0
原创粉丝点击