Ubuntu 12.04 + opencv 2.4.1 + Qt 4.8.3 + Qt creater 2.5.2 安裝配置

來源:互聯網
上載者:User

整體參考:http://www.cnblogs.com/tornadomeet/archive/2012/07/10/2584702.html

1. opencv庫的安裝參考http://www.samontab.com/web/2012/06/installing-opencv-2-4-1-ubuntu-12-04-lts/
最好按照上面的步驟安裝,提供更多支援,opencv.org有更簡便的辦法,但貌似很多東西沒裝上。

2.Qt庫編譯安裝參考:http://www.linuxidc.com/Linux/2012-06/62606.htm
注意 ./configure 時最好只制定路徑 -prefix 其他不要亂設,容易出問題
安裝完最好不要make clean 避免出現找不到庫檔案的錯誤以及以後可以重新編譯資料庫驅動。
安裝過程可能出現 warning ,即使./configure加上 -no-webkit 還是會出現,不過好像不影響。
編譯過程出現提示說沒有許可權什麼的,就sudo執行。

如果編譯完錯誤,想重新編譯,則(進入make的路徑,一般是在解壓後的檔案夾內如/xxxopensource-src/進行make操作)

直接運行下面的命令就行了。
make   uninstall
make   clean
rm -rf XXX  //XXX 目錄
如果是編譯過程出錯,要重新編譯
那就
make clean
然後再
./configure
make && make install

 後記:其實這樣還不算是靜態編譯,要在./configure 加上-static 後面接一些庫名,可以查一下

3. Qt creater 安裝參考http://www.linuxidc.com/Linux/2012-06/62607.htm
如果安裝完出錯想卸載,源檔案是.bin,應該會有個uninstall檔案,給予執行許可權,卸載。
4.直接在ubuntu軟體中心搜出來的QT,安裝完很多東西是沒有的,比如運行程式時可能不會出現qtcreater_process_stub,只彈出一個terminal,但找到可執行檔還是可以點擊執行的。
5.下載點http://qt-project.org/downloads只有最新版本,老版本可以去ftp下載ftp://ftp.qt.nokia.com/qt/source/
opencv下載點http://sourceforge.net/projects/opencvlibrary/files/
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
在還沒裝QT想使用opencv的情況下,需要用下列命令編譯:
 
g++ canny.c `pkg-config opencv --libs --cflags opencv` -o canny
需要注意的是opencv.org提供的常式中有些是從main函數傳參數的,如 ./xxx ./agrv[1]  //當然參數可以帶路徑的



運行結果

如果不是從主函數傳參,則一般需要把圖片檔案放在.c檔案同個目錄下。注意程式中圖片檔案名稱不要寫錯。
----------------------------------------------------------------------------------------------------------------------------------------------
安裝完QT與QTcreater之後,開啟qtcreater 選擇tools--option --run & debug --qt version 選擇我們安裝的/usr/local/qt 4.8.3/bin/qmake 注意每個人的路徑有可能是不一樣的。
在QTcreater裡面使用opencv庫時需要注意一點的是,需要將opencv的標頭檔和庫檔案與Qt關聯起來,所以在雙擊QtCreator工程下到***.pro檔案,在其後面添加下列代碼:
 
INCLUDEPATH +=  /usr/local/include  \
                             /usr/local/include/opencv  \

                         /usr/local/include/opencv2


LIBS += /usr/local/lib/libopencv_video.so  \
  /usr/local/lib/libopencv_ts.so \
  /usr/local/lib/libopencv_objdetect.so \
  /usr/local/lib/libopencv_ml.so  \
  /usr/local/lib/libopencv_legacy.so \
  /usr/local/lib/libopencv_core.so \
  /usr/local/lib/libopencv_features2d.so  \
  /usr/local/lib/libopencv_imgproc.so \
  /usr/local/lib/libopencv_highgui.so \
  /usr/local/lib/libopencv_gpu.so \
  /usr/local/lib/libopencv_flann.so   \
  /usr/local/lib/libopencv_contrib.so \
  /usr/local/lib/libopencv_calib3d.so

include路徑就不用解釋了,按照共用庫的命名慣例,每個共用庫有三個檔案名稱:real name、soname和linker name。真正的庫
檔案(而不是符號連結)的名字是real name,包含完整的共用庫版本號碼。soname是一個符號連結的名字,只包含共用庫的主要版本號。
linker name僅在編譯連結時使用,gcc 的-L選項應該指定linker name所在的目錄。有的linker
name是庫檔案的一個符號連結,有的linker name是一段連結指令碼。上面的LIBS就是linker name!


,libopencv_ts.so是linker name,libopencv_ts.so.2.4是son name,libopencv_ts.so 2.4.1 是real name

注意:我們在include目錄增加opencv2的目錄,其實你真的要用的話,要繼續深入底層目錄,才能直接找到標頭檔。比如在程式中 #include <opencv2/highgui/highgui.hpp>
這樣使用連結的相對路徑就能找到標頭檔
還有路徑可能大家都不一樣,老版本的opencv動態庫名稱也不一樣。
 
要是嫌麻煩,直接在 /usr/local/Qt-4.8.3/mkspecs/linux-g++/qmake.conf 加入下面命令以及將上面的libs和include都加進去:
QMAKE_INCDIR = /usr/local/include/opencv
QMAKE_LIBS = -lopencv_imgproc  -lopencv_core -lopencv_highgui -lopencv_ml
註:gcc -L選項告訴編譯器去哪裡找需要的庫檔案,-L. 表示在目前的目錄找。-lstack告訴編譯器要連結libstack 庫,-I選項告訴編譯器去哪裡找標頭檔。

編譯器預設會找的目錄可以用-print-search-dirs 選項查看。其中的libraries 就是庫檔案的搜尋路徑列表,各路徑之間用:號隔開。編譯器會在這些搜尋路徑以及-L選項指定的路徑中尋找用-l選項指定的庫,比如-lstack,編譯器會首先找有沒有共用庫libstack.so,如果有就連結它,如果沒有就找有沒有靜態庫libstack.a ,如果有就連結它。所以編譯器是優先考慮共用庫的,如果希望編譯器只連結靜態庫,可以指定-static選項。

程式運行時,共用庫的搜尋路徑由動態連結器決定,從ld.so(8)的Man Page可以查到共用庫路徑的搜尋順序:
1. 首先在環境變數LD_LIBRARY_PATH所記錄的路徑中尋找。
2. 然後從快取檔案/etc/ld.so.cache中尋找。這個快取檔案由ldconfig命令讀取設定檔/etc/ld.so.conf之後產生。
3. 如果上述步驟都找不到,則到預設的系統路徑中尋找,先是/usr/lib然後是/lib。


這樣以後建立檔案就不用每個都去更改.pro檔案了。

如果你使用IDE編譯完一個給main函數傳參的程式,那也只能去到命令列執行程式並傳參數了(其實也可以在項目配置中添加需要的命令列參數),所謂IDE 只是幫你整合了編譯以及調試的工具,如給g++,gdb,還有就是幫你連結一些庫檔案,使你省去一些輸入長命令的工作。先執行build ,再把圖片檔案放進 產生的xxx-build-desktop-Qt_4_8_3__Qt-4_8_3____目錄內。


基於Qt 和 Opencv的一個影像處理小軟體,ubuntu 下測試通過,軟體操作介面如下:



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.