1. 程式人生 > >Windows環境下編譯OpenCV3.1和OpenCV_contrib

Windows環境下編譯OpenCV3.1和OpenCV_contrib

參考 https://segmentfault.com/a/1190000003496009

說明一下,當我編譯OpenCV_contrib時,已經是要配合OpenCV3.1的版本才能編譯通過,所以有要自己編譯OpenCV_contrib的請儘量使用較新的OpenCV版本。

配置如有加入caffe、glog、protobuf等的支援,CMake配置時時要注意一下(指明到具體的庫檔名字如:Protobuf_LIBS=/opencv/glog-0.3.3/x64/Release/libglog.lib)

用VS2013編譯google-glog庫(官方程式碼託管地址:https://github.com/google/glog)時,提示錯誤的解決方法:
1、error C4235: 使用了非標準擴充套件: 不支援在此結構上使用“_asm”關鍵字
解決方法:在函式"static void logging_fail()"實現的L1462行
_asm int 3  
改成
__debugbreak();//_asm int 3  


2、error C2039: “min”: 不是“std”的成員 error C2873: “min”: 符號不能用在 using 宣告中
解決方法:這時需要開啟對於報錯的.cpp檔案,在頭部加入
#include <algorithm>

其他安裝步驟如下:

一、下載安裝

下載以上內容並安裝opencv和cmake-gui,我的OpenCV安裝路徑為D:\opencv3

二、使用cmake生成OpenCV.sln

  1. 開啟cmake-gui

  2. 在where is the source code選擇opencv的安裝目錄,我的是D:\opencv3\opencv\sources

  3. 在where to build the binaries裡面選擇要將opencv編譯到的目錄下面,我的是:D:\opencv3\opencv\mybuild

  4. 點選configure,在彈出的對話方塊內選擇 Visual Studio 2013和default引數,點選finish。(這裡需要注意一下,如果系統是x64的,選擇的編譯工具也必須是x64的,否則後續編譯會出錯。)

  5. 這個時候cmake會開始編譯不知道什麼東西,然後會在螢幕中間出現一堆引數包括Name和Value,在其中找到Name為OPENCV_EXTRA_MODULES_PATH的引數,然後把它的Value設定為opencvcontrib的路徑,我的是D:/Files/Codes/Tracking/Exp/opencvcontrib-master/opencvcontrib-master/modules

  6. 然後再次點選configure,沒問題後點擊Generate,等待。中間報了兩次錯,我去掉了BUILDopencvadas和WITH_CUDA等一系列看起來沒用的東西,然後就完成了。

三、用VS編譯生成debug和release庫

  1. 開啟D:\opencv3\opencv\mybuild目錄下的OpenCV.sln

  2. 編譯debug版本庫:在“解決方案'OpenCV'(416個專案)”上面點選右鍵-->重新生成解決方案。

  3. 找到CMakeTargets中的INSTALL,然後右鍵選擇“僅限於專案”-->“僅生成INSTALL”,然後就在D:\opencv3\opencv\mybuild\install中發現了許多東東。至此,debug版本的opencv的庫檔案就安裝完成了。release版本的,方法相同,重複2、3即可。

四、新建、配置自己的專案

  1. VC++目錄-->包含目錄,新增:
    D:\opencv3\opencv\mybuild\install\include

  2. VC++目錄-->庫目錄,新增:
    D:\opencv3\opencv\mybuild\install\x86\vc12\lib
    D:\opencv3\opencv\mybuild\install\x86\vc12\staticlib

  3. 連結器-->輸入-->附加依賴項,新增: (下面新增的release的版本,注意新增的庫與編譯選項要一致)

opencv_aruco310.lib
opencv_bgsegm310.lib
opencv_bioinspired310.lib
opencv_calib3d310.lib
opencv_ccalib310.lib
opencv_core310.lib
opencv_datasets310.lib
opencv_dnn310.lib
opencv_dpm310.lib
opencv_face310.lib
opencv_features2d310.lib
opencv_flann310.lib
opencv_fuzzy310.lib
opencv_highgui310.lib
opencv_imgcodecs310.lib
opencv_imgproc310.lib
opencv_line_descriptor310.lib
opencv_ml310.lib
opencv_objdetect310.lib
opencv_optflow310.lib
opencv_photo310.lib
opencv_plot310.lib
opencv_reg310.lib
opencv_rgbd310.lib
opencv_saliency310.lib
opencv_shape310.lib
opencv_stereo310.lib
opencv_stitching310.lib
opencv_structured_light310.lib
opencv_superres310.lib
opencv_surface_matching310.lib
opencv_text310.lib
opencv_tracking310.lib
opencv_ts310.lib
opencv_video310.lib
opencv_videoio310.lib
opencv_videostab310.lib
opencv_xfeatures2d310.lib
opencv_ximgproc310.lib
opencv_xobjdetect310.lib
opencv_xphoto310.lib
ippicvmt.lib

4、關於imread的問題。如果圖片名稱是存在txt文件中,用readImageLists方法提取到list列表時,要特別注意txt文件的換行符必須是“UNIX 終束符 -LF"。否則讀取到的檔名會多出"\r"字元,導致讀取影象檔案失敗。

已上傳編譯後的檔案(x64版本,分成兩個壓縮包)
http://download.csdn.net/detail/eagelangel/9617069
http://download.csdn.net/detail/eagelangel/9617064

相關推薦

Windows環境編譯OpenCV3.1OpenCV_contrib

參考 https://segmentfault.com/a/1190000003496009 說明一下,當我編譯OpenCV_contrib時,已經是要配合OpenCV3.1的版本才能編譯通過,所以有要自己編譯OpenCV_contrib的請儘量使用較新的OpenCV版本。

[更新]windows 環境編譯tensorflow 1.9及下載 ( CUDA 9.1 + CUDNN 7.0)

基本流程和上個文章的編譯過程相差不多。不過1.9新加了MKL的支援,不過據intel的朋友說是沒多大改善:( 所以大家自己決定要不要加MKL支援選項。 在編譯tensorflow前需要預編譯的工程有: farmhash nsync protobu

openssl 1.1.1 windows環境編譯

專案需要用到RSA加解密,MD5等,專案用的C++環境,VS2005。通過幾天的摸索,網上學習,終於將openssl編譯完成並使用到專案中。總結下過程: 環境:XP,VS2005,C++。 程式碼:openssl 1.1.1. 工具:ActivePerl,nasm彙編器

Android 開發之Windows環境Android Studio安裝使用教程(圖文詳細步驟)

9.png 虛擬機 jdk版本 編寫 clip 開發平臺 集成開發 arc 電腦安裝 鑒於谷歌最新推出的Android Studio備受開發者的推崇,所以也跟著體驗一下。 一、介紹Android Studio Android Studio 是一個Android

windows 環境編譯 Code::Blocks

detail 工具包 sha min art 開源 ++ n-1 tor 背景 Code::Blocks是一款輕型的 C/C++ IDE,也是windows上唯一一款開源的C/C++ IDE。 需求:我們嘗試來完整編譯Code::Blocks 必備庫和程序 MinGW

visual studio 2012 配置OPENcv3.1 CMAKE問題總結

visual studio 2012 下配置OPENcv3.1 和CMAKE問題總結   作為一個CMAKE的新手,在搭建環境的時候確實廢了很多功夫,所以總結一下自己的過程,希望隊大家有所幫助。   在開始之前有幾點需要強調: 1. 首先一定要確

Windows環境編譯curl

        編譯curl時可以新增對c-ares、mbedTls、nghttp2、libssh2、openssl、zlib的支援,我下面內容只暫時添加了對openssl,zlib的支援,後期有需要會再新增。      

windows環境編譯zlib及使用

系統:win10_x64 IDE:vs2017 一、下載zlib原始檔 1.下載地址:https://github.com/madler/zlib,找Release版下載 此時版本:zlib-1.2.11.zip 2.解壓 3.進入"/contrib/vstudio"子目

windows環境編譯OpenSSL

系統:win10_x64 IDE:vs2017 一、安裝Perl 1.下載地址:https://www.activestate.com/activeperl 版本:ActivePerl-5.24.3.2404-MSWin32-x64-404865.exe 2.安裝 二、安

android開發-Windows環境編譯FFMPEG原始碼

1.簡介 之前有兩篇文章講到如何在windowsPC端使用FFMPEG命令列程式。 但是我想要在android開發時使用FFMPEG的功能又該怎麼辦?所以就需要編譯FFMPEG,然後才能使用。這才有了這篇文章。 1.先講思路,2.後講具體流程! 但是首先有個問題就是我

windows環境的zookeeper安裝使用

簡介 ZooKeeper是一個分散式的,開放原始碼的分散式應用程式協調服務,是Google的Chubby一個開源的實現,是Hadoop和Hbase的重要元件。它是一個為分散式應用提供一致性服務的軟體,提供的功能包括:配置維護、域名服務、分散式同步、組服務等。 ZooKeepe

最新的IOS在windows環境編譯環境搭建記錄

Objective-C是蘋果軟體的程式語言,想要上機學習、除錯,有一個整合開發環境(IDE)方便很多。有三類方法搭建Objective-C的整合開發環境: 1)   使用蘋果的平臺,整合開發環境使用Xcode。但如果沒有蘋果平臺,想在Windows環境下學習Objectiv

jdk 1.8環境編譯打包1.6版本的jar包

      ma是1.6的jdk環境,我的開發工具是1.8的jdk,打了個補丁,要改為jdk1.6,然後重新編譯。 一直以為還要再裝一個1.6jdk(一個筆記本上面可以裝兩個版本jdk的),其實jdk是向下版本相容的,只要在編譯的時候改為jdk1.6的就行。  然後呢,稍

windows環境編譯執行C語言程式(…

    首先寫一個完好的C語言程式,可以執行的通,自然是簡單就好,下面給出一個簡單的示例供參考: #include<stdio.h> int main(void) {  char *string = "Hello World!";  printf("%s\n",string);  ret

james使用(一):windows環境james3.0.1版本郵件伺服器搭建及配置

1.介紹james是apache基金會下一款免費的提供pop3、stmp的開源免費郵件伺服器,其最新版本為james sever 3.0,網上充斥著許多2.3版本的配置,3.0使用了spring的架構,配置上有些許不同,在配置過程中爬了很多坑,特此記錄,給小夥伴們指明方向。後

windows環境將基於FFMpegSDL的播放器整合到Qt creator中

然後,你得有在windows下的FFmpeg以及SDL的標頭檔案和庫檔案,上面給的這個連結中,博主已經把所有的標頭檔案和庫檔案都給出來了。 再然後,在QT的工程檔案.pro裡面新增標頭檔案和庫檔案的路徑。關於新增庫檔案的方法,網上有很多種格式,貌似都可以,反正條條大路

Windows環境編譯除錯Hbase原始碼

一、 hbase架構簡介 HBase 是一個開源的、分散式的、資料多版本的,列式儲存的nosql資料庫。依託 Hadoop 的分散式檔案系統 HDFS 作為底層儲存, 能夠為數十億行數百萬列的海量資料表提供隨機、實時的讀寫訪問。 HBase 叢集服務包含:HBase 資料庫

【Code::Blocks】windows 環境編譯 Code::Blocks(已修正)

Code::Blocks 在2012-11-25釋出了最新的12.11版本,相比上一個版本(10.05),Code::Blocks 進行了許多改進和更新(Change log)。 Code::Blocks是一個免費、開源、跨平臺的IDE,使用C++開發,並且使

Win10+VS2015環境編譯 OpenCV 3.1opencv_contrib

一、下載安裝 下載以上內容並安裝opencv和cmake-gui,我的OpenCV安裝路徑為 D:\OpenCV3.1 二、Cmake 做到後面才發現x86和x64的庫生成需要在Configu

Windows環境的RTKPlot_Qt版本編譯時遇到的問題解決方法

-s debug otc 命令 rcv 目的 我們 自帶 不知道 在使用了 RTKLIB開源包自帶的 rtkplot.exe後,知道了它所具有的功能,就想著如何模仿它做出一個 demo。一開始看的是之前下載的 2.4.2版本的 RTKLIB,裏面是使用 Delphi開