apt-get install **安裝opencv

Real_Biter_Oliver發表於2019-02-09

1.前言
相比於原始碼方式安裝opencv,通過apt方式安裝過程步驟簡單些,消耗的時間也少一些。通過apt方式安裝沒有自動生成opencv.pc檔案,所以在編寫makefile檔案時不能直接使用pkg-config工具,而需要逐個指定opencv_core、opencv_imgproc等動態連結庫!

2.安裝方法
更新ubtuntu系統軟體源
sudo apt-get update
1
安裝opencv
sudo apt-get install libcv-dev
1
這個安裝過程大概需要幾分鐘,安裝完成後得到如下結果 

3. opencv被安裝在了哪裡?
3.1 opencv的安裝原始檔
apt-get install **這樣的命令會下載檔案放在 /var/cache/apt/archives目錄下,然後安裝。可以看到,opencv相關的.deb檔案都在該目錄下;如下圖所示,原始的/var/cache/apt/archives目錄下只有資料夾partial和檔案lock,但由於此時下載了opencv的相關安裝檔案,發現該資料夾下多個大量的deb安裝檔案! 


實際上,執行完以上的安裝過程,這些archives路徑下的檔案是可以直接刪除的!因為相關的安裝已經結束,不再需要安裝檔案了

安裝上面這種apt-get install的方式,會使得/var/cache/apt/archives這個目錄所佔空間會越來越大
但幸運的是apt提供了相應的管理工具apt-get clean來刪除檔案目錄/var/cache/apt/archives/和檔案目錄 /var/cache/apt/archives/partial/下所有包(鎖定的除外)。
執行舉例: 
執行如下命令 
 
可以發現,剛剛下載的所有關於opencv的檔案都被刪除了 

3.2 opencv相關的標頭檔案的安裝位置
opencv相關的標頭檔案被安裝到/usr/lib目錄中,該目錄是linux預設標頭檔案查詢路徑。

3.3 opencv的相關動態連結庫的安裝位置
linux下的動態連結庫檔案即.so檔案

opencv的相關動態連結庫被安裝到/usr/lib目錄中。這些動態連結庫包括: 
【opencv_calib3d】——相機校準和三維重建 
【opencv_core】——核心模組,繪圖和其他輔助功能 
【opencv_features2d】——二維特徵檢測 
【opencv_flann】——快速最鄰近搜尋 
【opencv_highgui】——GUI使用者介面 
【opencv_imgproc】——影象處理 
【opencv_legacy】——廢棄部分 
【opencv_ml】——機器學習模組 
【opencv_objdetect】——目標檢測模組 
【opencv_ocl】——運用OpenCL加速的計算機視覺元件模組 
【opencv_video】——視訊分析元件

下圖是/usr/lib資料夾中與opencv相關的檔案,例如,第一個和第二個檔案分別為機器學習模組對應的靜態態連結庫檔案(libopencv_ml.a)和動態連結庫檔案(libopencv_ml.so) 


3.4 linux下的opencv和windows下的opencv檔案
windows下下載得到的opencv解壓檔案包含2個資料夾:source+build

source:opencv的原始碼(opencv是開源的),下面的build資料夾下的各種庫就是在這些原始碼的基礎上利用cMake得到的(實際上,該source資料夾除了可以編譯得到下面的build中的動態連結庫和靜態連結庫外,在實際呼叫opencv相關庫時,並不需要!)
build:存放的opencv**預編譯好的各種庫(**DLL(動態連結庫)和lib庫(靜態連結庫)),對於使用opencv的使用者來說,只使用該資料夾就夠了,不需要自己利用opencv的原始碼重新編譯得到這些庫
linux下載得到的是.deb解壓縮後也可以得到動態連結庫和靜態連結庫

在ubuntu中, .so檔案即為動態連結庫檔案,對應於windows下的dll檔案 
在ubuntu中, .a檔案對應於windows下的lib檔案;實際上,該檔案就是普通的函式通過編譯之後得到(在高翔的SLAM教程第2章有一個關於如何編譯得到靜態連結庫的簡單小例子)

實際上,無論是在任何作業系統下,我們需要使用opencv的相關庫時,使用的都僅僅是它的動態連結庫和靜態連結庫

 

相關文章