linux opencv安裝與入門記錄

2021-08-18 08:32:28 字數 1795 閱讀 4093

按官網說明文件,使用cmake按步驟編譯編譯即可

原始碼八十兆左右,編譯完成後有3個g。。。(猜測是有許多可選項一併編譯了,待求證)

--------------------------使用

剛編譯完對其還是一頭霧水,不知用法。

在官網上看了主要模組的大概介紹。

網上各種例程包含標頭檔案又各有差異。經查證,是由於版本差異。

目前新版的opencv標頭檔案命名為opencv2,老版的標頭檔案資料夾命名為opencv,推薦使用opencv2。

開啟頭檔案目錄,/usr/include/opencv2  (標頭檔案的推薦路徑之一) 不同distribution的路徑有所差異。使用whereis 可以方便找到。

###模組說明

1.core模組是核心模組,包括定義了opencv庫所有的資料型別。該模組所有程式都必須包含。

在opencv2中,核心標頭檔案是 opencv.h或opencv.hpp(從命名上看推薦為c++使用,直接包含了opencv.h)。在我pc上的opencv版本中,該標頭檔案內部還包含了定義是否包含其他模組標頭檔案的選項;而在我伺服器所裝opencv版本中,該標頭檔案預設包含所有其他模組。都只需在呼叫時宣告這乙個標頭檔案,完全不用像網上很多例程宣告好幾個。

###編譯和鏈結

#學習了部分編譯原理:

1.標頭檔案的作用在於:告訴編譯器當前編譯的這個檔案所呼叫的這些外部函式已經寫好了,是存在並且正確的。標頭檔案的作用在編譯編階段發揮。編譯器針對單個的檔案進行編譯,不管其引用的外部函式具體實現,只需要知道有這個函式。

#兩種生成執行檔案方法

1.先將**生成 .o檔案,再與庫檔案一同鏈結。主要為了理解編譯過程。

2.源**直接與庫檔案一同進行編譯鏈結。

重要:(1)gcc生成庫檔案時,庫檔名會自動加上lib頭和.so(shared object,動態庫)或.a(,靜態庫)。但庫名任然為去掉頭和尾的部分。

(2)雖然opencv的庫路徑在庫的環境變數下,但是gcc並沒有能力找到對應的庫,必須要在鏈結時給出庫名。否則會報錯,cv::imread() undefined ...等等

其中, -l 選項是給出庫名。若庫路徑不在環境變數中,要增加 -l 接路徑(選項和引數間的空格可有可無)

如,g++ -o test test.cpp -l ~/testlib/ -ltestlib1 -ltestlib2

參考:#執行編譯完成後,可能會遇到找不到庫到錯誤(不同發行版預設存放庫的路徑有差異)

error while loading shared libraries

以下**:

ubuntu中,編譯器只會使用/lib和/usr/lib這兩個目錄下的庫檔案,通常通過原始碼包進行安裝時,如果不指定--prefix,會將庫安裝在/usr/local/lib目錄下;當執行程式需要鏈結動態庫時,提示找不到相關的.so庫,會報錯。也就是說,/usr/local/lib目錄不在系統預設的庫搜尋目錄中,需要將目錄加進去。

1.開啟預設庫目錄的配置檔案:/etc/ld.so.conf

2.在"include ld.so.conf.d/*.conf"下方增加"/usr/local/lib"

儲存後,在命令列終端執行:ldconfig -v;其作用是將檔案/etc/ld.so.conf列出的路徑下的庫檔案快取到/etc/ld.so.cache以供使用,因此當安裝完一些庫檔案,或者修改/etc/ld.so.conf增加了庫的新搜尋路徑,需要執行一下ldconfig,使所有的庫檔案都被快取到檔案/etc/ld.so.cache中,如果沒做,可能會找不到剛安裝的庫。

另外作者還提到庫檔案的許可權問題,需要在具體使用時留意。

linux opencv 安裝和配置

在fedora16 和 centos 下面配置opencv,由於不同主機裝的軟體的都不一樣,所以不能一概而論 大概需要的開發套件 pkgconfig libpng zlib libjpeg libtiff libjasper ffmepeg gtk 的基本庫 這裡可選,用到的時候再裝也行 下面是我的...

linux opencv 安裝和配置

在fedora16 和 centos 下面配置opencv,由於不同主機裝的軟體的都不一樣,所以不能一概而論 大概需要的開發套件 pkgconfig libpng zlib libjpeg libtiff libjasper ffmepeg gtk 的基本庫 這裡可選,用到的時候再裝也行 下面是我的...

Windows下pytorch的安裝與入門

上班前的最後乙個寒假,接觸了pytorch框架。由於家裡只有windows筆記本,因此在windows環境下安裝。安裝方法見我安裝後碰到了如下問題,記錄下來以便查閱 conda install c peterjc123 pytorch cuda80 報錯 unsatisfiableerror the...