提前從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
按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
運行結果:
水平有限,如有問題,請直接郵件[email protected]聯系更正,樓主脆弱,切勿亂噴。