ubuntu qt opencv環境配置

2021-06-22 12:30:15 字數 2722 閱讀 5657

參考blog

.org/bbs/article_1156_538517.html

說明:作業系統

ubuntu 12.04 desktop lts qt

是c++圖行使用者介面開發框架。它既可以開發gui程式,也可用於開發非gui程式,比如控制台工具和伺服器。qt

易於擴充套件,並且允許元件程式設計,

它可以執行在

windows,mac os x, unix,linux。

opencv是計算機開源視覺庫

可以執行在linux、windows和mac os作業系統上。它輕量級而且高效——由一系列 c 函式和少量 c++ 類構成,同時提供了python、ruby、matlab等語言的介面,實現了影象處理

和計算機視覺方面的很多通用演算法。

1.前期準備

opencv.

書上以2.3.1

版本為例,為保持一致性,採用

opencv2.3.1

安裝cmake

sudo apt-get install cmake

cmake

是乙個跨平台的安裝(編譯

)工具,可以用簡單的語句來描述所有平台的安裝

(編譯過程

)。他能夠輸出各種各樣的

makefile

或者project檔案,

能測試編譯器

所支援的

c++特性,類似

unix

下的automake

。opencv

使用cmake

進行makefile

的建立。

安裝qtcreator

sudo apt-get install qtcreator 2.

安裝 將opencv

包解壓到使用者目錄下,得到

opencv

資料夾

cd ~/opencv

mkdir release

cd release

cmake -d cmake_build_type=release -d cmake_install_prefix=/usr/local ..

(注意「

..」前有空格)

make

等待大概十分鐘

make完成

sudo make install 至此

opencv

庫安裝到了

/usr/local/lib

目錄下,重啟電腦,或者執行

sudo ldconfig

(關於ldconfig:ubuntu

把在開機時所有庫檔案裝入到快取,這樣避免每次使用鏈結庫都需裝載,提高系統的效率,

ldconfig

命令就是重新裝載,可通過

ldconfig -v

檢視已經在快取裡的庫。)

3.qt4+opencv

組合配置示例

下面就可以使用qt和

opencv

進行開發了。 開啟

qtcreator

新建專案,新增標頭檔案,原始檔及其**(如下,示例專案在附件裡也有)

//opencv_example.h

#ifndef

opencv_example_h

#define

opencv_example_h

#include

#include

#include

"cv.h"

#include

"highgui.h"

class

opencv_example

:public

qmainwindow

;#endif

//opencv_example_h

///opencv_example.cpp

#include

"opencv_example.h"

opencv_example

::opencv_example

()void

opencv_example

::slot_imgshow()

在main

中編寫:

#include

#include

"opencv_example.h"

intmain(

intargc,

char

*argv)

在.pro

檔案中新增編譯/

鏈結選項

includepath

+=/usr/local/

include

includepath+=/usr/local/include/opencv

libs+=/usr/local/lib/libopencv_core.so

libs+=/usr/local/lib/libopencv_highgui.so

libs+=/usr/local/lib/libopencv_imgproc.so

然後構建執行。

4.說明,以後在qt

的專案的.pro檔案裡類似的加入上邊的配置即可。

按照以上配置好之後,qt顯示說找不到libopencvhighgui

於是又參考了

把/usr/local/lib寫入/etc/

ld.so.conf

成功搞定

原環套原環

今天在除錯兄弟的程式的時候發現了乙個問題,就是在組合資料的時候,有些時候可以成功,有些時候失敗,感覺十分奇怪。功能大概是這樣的,就是在一棵樹上掛資料,所有的節點都可以有資料,不只是葉子的,在組合資料的時候,可以從任意節點取資料,但是不能是重複的資料。資料可能出現的情況如圖a b c所示,圖a是沒有干...

單鏈表的環入口,環大小,解環

1.單鏈表是否有環 使用快慢指標,都從head出發,慢指標一次一步,快指標一次兩步,如果兩個指標相遇,說明鍊錶有環,否則,快指標為null或其next為null,到達末尾節點 function hascircle head return fast null fast.next null 2.單鏈錶環...

有環鏈表的環起點

用兩個指標,乙個快指標一次走兩步,乙個慢指標一次走一步。快慢指標可以重合表示鍊錶有環,此時距離環起點的距離和起點距離環起點的距離相等。include bits stdc h using namespace std struct list list beginofcircle list p1,list...