CMake生成OpenCV解決方案&&編譯OpenCV原始碼
生成OpenCV工程需要用到CMake,所以第一步需要下載CMake軟體,下載連結:CMake下載
目前最新的版本是3.7.1,這裡選擇下載Platform下的Windows win32-x86 ZIP,大小21M:
把下載完成的壓縮包解壓出來就可以了,不用安裝。開啟解壓後的路徑下…\cmake-3.7.1-win32-x86\bin\cmake-gui.exe,會彈出如下CMake視窗:
接下來就可以安裝步驟一步一步生成OpenCV工程了。
1. 點選右側“Browse Source”按鈕輸入OpenCV原始碼所在路徑:
2. 點選右側“Browse Build”輸入生成的OpenCV工程存放目錄:
3. 點選左下角“Configure”按鈕生成工程:
點選之後彈出如下對話方塊,CMake會自動選擇本機已經安裝的目標編譯器,一般情況下預設即可,單擊“Finish”:
如果不幸中招了,錯選了本機沒有的編譯器,則會生成失敗。要更改預設的目標編譯器,點選CMake左上角的File->Delete Cache ,就會把之前選擇的清除掉再重新選擇。
如果選擇的編譯器沒錯,點選“Finish”後就會執行生成:
大概需要2分鐘,生成完成:
4. 第一次“Configure”生成之後,還需要第二次執行生成,再次單擊“Configure”按鈕,執行第二次生成:
第二次生成完成:
5. 經過兩次“Configure”之後,點選“Generate”按鈕生成最終的OpenCv解決方案:
出現“Generate done”表示生成完成:
經過以上5個步驟之後就可以去剛才選擇的OpenCV工程存放目錄下檢視生成的專案,我這裡是在D:\Software\MyOpenCV 下:
雙擊開啟工程OpenCV.sln,一共有71個專案,我們用的所有的OpenCV函式都是由這個工程生成的,可以在這些專案 裡找到所有OpenCV函式的原始實現,按F5編譯工程:
編譯成功之後會在工程目錄bin->Debug下生成很多個dll動態庫檔案。如果沒對OpenCV工程原始碼修改的話,這些dll檔案跟OpenCV自帶的dll檔案是一樣的,如果要對指定的OpenCV函式進行優化或者功能上的剪下,在更改原始碼之後編譯生成dll檔案,再去呼叫這些dll檔案就行了。
編譯OpenCV原始碼
以最常見的imshow函式為例,找到opencv_highgui專案裡的window.cpp檔案裡的imshow函式實現,在函式開頭加一句話“2017新年快樂!”,並在控制檯輸出(需要加標頭檔案iostream):
之後右鍵opencv_highgui專案->生成,把bin->Debug資料夾下的opencv_highgui2413d.dll替換掉之前OpenCV程式中的opencv_highgui2413d.dll檔案。新建一個工程,測試一下imshow函式的效果:
#include <highgui/highgui.hpp>
using namespace cv;
int main()
{
Mat image = imread("Test.jpg");
imshow("Test", image);
waitKey();
return 0;
}
執行效果,在輸出圖片的同時,也在控制檯輸出了“2017新年快樂!”,說明對OpenCV函式原始碼的修改起作用了:
相關文章
- VScode編譯opencv(Cmake + MinGW)VSCode編譯OpenCV
- 使用vs2015+cmake編譯opencv+opencv_contrib編譯OpenCV
- Windows下CMake編譯安裝OpenCVWindows編譯OpenCV
- Windows平臺使用CMake+MinGW64編譯OpenCVWindows編譯OpenCV
- 編譯opencv 提示opencv_sfm links to target absl::log but not found解決辦法編譯OpenCV
- Win10下Qt+OpenCV+Cmake編譯錯誤Win10QTOpenCV編譯
- windows下基於cmake配置opencv並使用visual studio編譯WindowsOpenCV編譯
- opencv 編譯常見錯誤OpenCV編譯
- windows安裝cmake、opencv、qtWindowsOpenCVQT
- 樹莓派編譯OpenCV報錯樹莓派編譯OpenCV
- ubuntu系統編譯安裝OpenCV 4.4Ubuntu編譯OpenCV
- 原始碼編譯,Apache DolphinScheduler前後端分離部署解決方案原始碼編譯Apache後端
- 編譯OpenCV——ubuntu x86_64平臺編譯OpenCVUbuntu
- 解決OpenCV(4.1.2) C:\projects\opencv-python\opencv\modules\highgui\src\window.cpp:376: error: (-215:AOpenCVProjectPythonGUIError
- Linux環境下, 原始碼編譯安裝詳解 (編譯CMake 3.15 和 gcc 5.3.0 為例)Linux原始碼編譯GC
- 模組化-Application多module共存編譯生成解決方案APP編譯
- OpenCV翻譯總結OpenCV
- Mingw GCC 編譯OpenCV報錯: Project files may be invalidGC編譯OpenCVProject
- 已經編譯好的opencv QT creator直接使用編譯OpenCVQT
- 解決ubuntu16.04 opencv2與opencv3共存問題UbuntuOpenCV
- 以opencv為例說明cmake中的findpackage()OpenCVPackage
- 關於og4j漏洞修復解決方案及原始碼編譯原始碼編譯
- VS2019配置Opencv遇到的部分問題及解決方案OpenCV
- 配置OpenCV3.4.5擴充套件模組:CMake3.14.0+opencv_contrib3.4.5+VS2017+WIN10(解決release依賴項丟失問題)OpenCV套件Win10
- 樹莓派編譯安裝opencv3 (2019.1.6更新)樹莓派編譯OpenCV
- 大漠編譯的程式 解決方案編譯
- Vue 原始碼解讀(10)—— 編譯器 之 生成渲染函式Vue原始碼編譯函式
- opencv + SVM 程式碼OpenCV
- 從cmake解決clion編譯生成的可執行檔案(.exe)不可執行的問題編譯
- OpenCV Core functionality翻譯總結OpenCVFunction
- 如何用cmake編譯編譯
- CMake for Mac編譯工具Mac編譯
- OpenCV翻譯專案總結三——對OpenCV效能、查詢表等分析OpenCV
- OpenCV()OpenCV
- opencvOpenCV
- OpenCV開發筆記(七十四):OpenCV+ffmpeg交叉編譯移植到海思平臺Hi35xx平臺OpenCV筆記編譯
- nginx原始碼編譯安裝(詳解)Nginx原始碼編譯
- MinGW GCC 5.3.0 編譯OpenCV4.5.5 執行到imshow時崩潰GC編譯OpenCV
- python base64 編解碼,轉換成Opencv,PIL.Image圖片格式PythonOpenCV