手把手練習--cmake+VS2015編譯OpenCV3.3原始碼(x86版本)
1:首先下載OpenCV3.3.0的原始碼:
2:解壓原始碼包opencv-3.3.0.zip,【點選"解壓當前資料夾"】:,為了以下方便說明,這裡以F:\opencv-3.3.0為例:
檢視原始碼包,在資料夾下3rdparty【就是需要的第三方的庫】,但是第三方庫 ffmpeg 和 ippicv是空的,
在用cmake配置編譯時,有些需要聯網下載,並儲存在源但是往往會下載很慢,所以可以提前下載好,放進對應的資料夾即可,這個對應的資料夾是原始碼資料夾下的.cache資料夾,需要新建,即在F:\opencv-3.3.0下新建.cache資料夾,注意不要滑鼠右鍵新建資料夾,建立不了字首名是"."的資料夾,需要用命令列,> md .cache
即可新建。
然後在.cache資料夾下,新建ffmpeg和ippicv資料夾。以下詳細介紹下載動態庫。
3:下載對應的ffmpeg的動態庫:
開啟資料夾ffmpeg下的ffmpeg.cmake檔案,會看到有一個第一行,我們需要下載master_20170704
開啟https://github.com/opencv/opencv_3rdparty/branches/all,找到對應的名字:
然後下載,解壓後,將以下三個檔案複製到F:\OpenCV-3.3.0/.cache/ffmpeg資料夾下:
同時將這三個複製到原始碼的資料夾F:\opencv-3.3.0\3rdparty\ffmpeg下,只是為了後期配置編譯的更快。
4:下載ippicv
與上述步驟類似,開啟\opencv-3.3.0\3rdparty\ippicv\ippicv.cmake檔案:
需要下載字尾是20170418的包,解壓後,會看到看到幾個不同平臺下的壓縮包:
比如這裡需要編譯x86版本的,將ippicv_2017u2_win_ia32_20170418.zip複製到到F:\opencv-3.3.0\.cache\ippicv資料夾下,然後注意要重新命名,加上改.zip的hash碼,那麼怎麼檢視該.zip的hash碼呢?同樣開啟\opencv-3.3.0\3rdparty\ippicv\ippicv.cmake檔案,
把ippicv_2017u2_win_ia32_20170418.zip的檔名字,改為以下,即在前面加上它對應的HASH碼:
這樣點.cache資料夾下的兩個資料夾都已經完成了。
5:電腦上需要安裝Python3.X否則會有以下提示:
再編譯過程需要python3.X版本
6:開啟cmake
即以以下為例:
為了快速編譯將原始碼包中的資料夾3rdparty整個複製到F:\OpenCV3.3Build資料夾下,
然後點選“Configure”按鈕:
等一兩分鐘後,等待配置完成:
然後再點選"Configure"按鈕
點選“Generate”,
可以關閉'CMake"。
7:開啟編譯後的資料夾F:\OpenCV3.3Build
開啟OpenCV.sln,然後點選Build Solution:
需要等待幾分鐘:
最後會出現以下介面
,這個時候x86版的Debug版本已經編譯成功,生成的動態庫、共享庫、可執行檔案在資料夾F:\OpenCV3.3Build\bin\Debug下
開啟該資料夾檢視生成的動態庫
第8步:點選"INSTALL"->Project Only Build Only INSTALL
然後在F:\OpenCV3.3Build下自動生成一個install資料夾,資料夾下儲存了OpenCV的標頭檔案和x86 Debug模式下的
動態庫和共享庫
開啟x86資料夾,
開啟vc14資料夾
lib資料夾:
可以看到有一個是opencv_dnn330d.lib即深度學習的共享庫
9:編譯x86的release版本
點選Build->Build Solution,通以上編譯Debug版本類似,需要等待幾分鐘,。
然後,這時檢視F:\OpenCV3.3Build\bin下的Release資料夾下已經生成好動態庫
同樣點選:
等幾秒鐘
然後檢視F:\OpenCV3.3Build\install\x86\vc14\lib多了一些檔名不帶"d"的共性庫檔案
10:測試使用
#include<iostream>
#include<string>
#include<opencv2\core\core.hpp>
#include<opencv2\highgui\highgui.hpp>
#include<opencv2\imgproc\imgproc.hpp>
using namespace cv;
using namespace std;
int main(int argc,char*argv[])
{
Mat img = cv::imread(argv[1], cv::IMREAD_COLOR);
imshow("as", img);
waitKey(0);
return 0;
}
親測可用
11:為了方便將其提交到http://download.csdn.net/download/wxcdzhangping/9990091,可下載使用
相關文章
- Android高版本P/Q/R原始碼編譯指南Android原始碼編譯
- PostgreSQL原始碼學習 win10原始碼編譯安裝SQL原始碼Win10編譯
- FFmpeg學習之一(FFmpeg原始碼編譯)原始碼編譯
- CentOS 7版本原始碼編譯方式安裝TokuDBCentOS原始碼編譯
- 如何學習 PHP 原始碼 – 從編譯開始PHP原始碼編譯
- 原始碼編譯Vim 8原始碼編譯
- MongoDB(0)- 原始碼編譯MongoDB原始碼編譯
- 編譯Android原始碼編譯Android原始碼
- 編譯hibernate原始碼編譯原始碼
- Docker編譯Azerothcore原始碼Docker編譯原始碼
- Spring原始碼編譯Spring原始碼編譯
- Kubernetes原始碼學習之一:下載和編譯原始碼原始碼編譯
- 編譯版本編譯
- 編譯FFMPEG原始碼的指令碼編寫案例編譯原始碼指令碼
- WebRTC研究 (一) 編譯原始碼Web編譯原始碼
- 原始碼編譯 apache2.4原始碼編譯Apache
- Kubernetes原始碼編譯原始碼編譯
- Swift原始碼專案編譯Swift原始碼編譯
- 龍芯原始碼編譯MySQL原始碼編譯MySql
- Ceph原始碼編譯與打包原始碼編譯
- nvme driver 原始碼修改、編譯原始碼編譯
- 原始碼編譯安裝Redis原始碼編譯Redis
- LAMP原始碼編譯安裝LAMP原始碼編譯
- osg原始碼編譯步驟原始碼編譯
- Android原始碼編譯--整理Android原始碼編譯
- XCode 編譯 PAG 原始碼XCode編譯原始碼
- Android原始碼閱讀-編譯8.0原始碼Android原始碼編譯
- 手把手教你在Mac OS下載、編譯及匯入Android原始碼Mac編譯Android原始碼
- Vue3原始碼分析——編譯模組和編譯器Vue原始碼編譯
- MySQL5.5原始碼編譯新增編譯備註資訊~MySql原始碼編譯
- 反編譯APK資原始檔與原始碼編譯APK原始碼
- 編譯器背後的故事(入門練習)編譯
- android原始碼學習之原始碼編譯並nexus s真機刷機Android原始碼編譯
- Dubbo原始碼之動態編譯原始碼編譯
- MacOS X 編譯Android原始碼Mac編譯Android原始碼
- 原始碼編譯安裝的原理原始碼編譯
- openssl原始碼編譯及配置方法原始碼編譯
- Android FrameWork 之原始碼編譯AndroidFramework原始碼編譯