簡介:
一直以來都是在ubuntu下使用opencv,最近因為有《圖像處理與模式識別》這門課,需要使用vs2015+opencv提交課程作業,因為opencv官方編譯好的exe沒有contrib部分,就索性自己來cmake,還是鼓足了很大的勇氣的,不過還是要勇敢踩坑。
一、編譯前准備
1.cmake3.10.3
官網下載,或者【百度雲下載】,提取碼【hk1p】,自行百度自己安裝
2.opencv源碼
opencv-3.4.1: https://github.com/opencv/opencv/releases
opencv_contrib-3.4.1: https://github.com/opencv/opencv_contrib/releases
二、cmake編譯opencv
1.打開cmake,首先編譯opencv-3.4.1, 選定 源碼路徑 和 編譯輸出路徑 ,如下圖:
這里我自己定義的源碼路徑是:D:/opencv3.4.1/sources/opencv-3.4.1 , 編譯輸出路徑是: D:/opencv3.4.1/build
然后單擊 configure , 並選擇如下圖所示的配置,(我的電腦裝的是vs2015 x64)
然后點擊Finish,就可以開始進行編譯了。
2. 編譯opencv-3.4.1過程中遇到的問題,及解決辦法
出現問題的原因的是,cmake過程中,需要從國外網站下載一下文件,導致下載不下來。
具體做法是,自己去取下載這三個文件,這里我給出容易下載失敗的文件百度雲鏈接,也可以去源碼對應的github倉庫中的3rdparty中下載自己沒有下載成功的文件
opencv_ffmpeg_64.dll 【百度雲下載】,提取碼:【p4tu】
oepncv_ffmpeg.dll 【百度雲下載】,提取碼:【qvm6】
ffmpeg_version.cmake 【百度雲下載】,提取碼:【bm61】
上面文件分別在下面兩個壓縮文件中,可以去倉庫下載,這里我也給出自己下載的鏈接
ffmpeg相關:【百度雲鏈接】,提取碼:【fvy4】 ippicv相關:【百度雲鏈接】,提取碼:【2q72】
解決方法:可以參考這個博客【參考鏈接】
但是我需要說的是,我在配置過程中在編譯ippicv_2017u3_win_intel64_general_20170822.zip時,無論我怎么弄始終沒有成功,后來我就索性把 WITH_IPP 給勾選掉了,這才編譯通過,當然這是權宜之計,盡量還是都配置。
3. 編譯opencv_contrib-3.4.1
在OPENCV_EXTRA_MODULES_PATH 下將opencv_contrib-3.4.1路徑加入進去,如下圖:
編譯這個的過程中,竟然沒有出錯,通常可能也會因為網速的原因而失敗的。具體可能失敗的文件及解決辦法也可以參考上述那個博客!
4. Cmake最后一步
最后點擊 “Generate” ,然后出現 Configuring done, 這時候我們就編譯好了opencv-3.4.1 + opencv_contrib-3.4.1的源碼了
5. opencv在vs2015下的配置
這里就不展開說了,網上有很多教程,一步一步照着來就好了
6. 測試程序
1 #include<opencv2\opencv.hpp>
2 using namespace cv; 3 int main() 4 { 5 Mat srcImage = imread("1.jpg");//圖片必須添加到工程目錄下 6 //也就是和main.cpp文件放在一個文件夾下!!!
7 imshow("srcImage", srcImage); 8 waitKey(0); 9 }
能正確打開一張圖片,說明opencv編譯和配置成功