當前位置:首頁 » 編程軟體 » windowsopencv編譯

windowsopencv編譯

發布時間: 2022-10-22 01:27:40

❶ 如何編譯 opencv動態鏈接庫

在一個項目中需要用到OpenCV,剛開始使用了OpenCV的動態鏈接庫,這樣,在移動可執行程序時還必須將OpenCV動態支持庫一起搬移,很是麻煩。所以,最終選擇OpenCV靜態鏈接庫,這樣程序移植運行就方便了很多。

需要編譯成靜態庫以便於應用程序鏈接。

網上有的教程中寫的在VC++2010下安裝OpenCV2.1時用到了TBB庫,而我在編譯鏈接自己的程序後需要用到TBB.dll。本人設計的目的就是要做一個獨立的界面程序,不需要攜帶其他第三方庫。經過一段時間的努力最終找到了編譯OpenCV2.1靜態庫的方法。

需要的工具環境及文件:

-------------------------------------------------------------------------------------------------------------

1、Windows XP

2、VC++2010(VS2010)

3、為編譯OpenCV源碼包(我下載的有:OpenCV2.1.0,OpenCV2.3.0及OpenCV2.4.4)

4、CMake2.8.9

說明:OpenCV各版本官方下載地址:opencv.org/

cmake-2.8.9下載地址:ishare.iask.sina.com.cn/download/explain.php?fileid=35025936

--------------------------------------------------------------------------------------------------------------

以OpenCV2.1.0編譯靜態庫為例

CMake配置

-------------------------------------------------------------------------------------------------------------

打開CMake並設置:

Where is the rource code :OpenCV源代碼所在的文件夾

Where to build the binaries:CMake配置好得到的文件放在位置(我的:E:\OpenCV2.1.0-prj)

然後點擊configure,選擇"Visual Studio 10"。然後確定。

等待configure完成,會出現很多紅色的選項,因為主要是生成OpenCV的庫,所以只需保留某些選項:

去掉BUILD_NEW_python_SUPPORT,BUILD_SHARED_LIBS, BUILD_TESTS

勾選OPENCV_BUILD_3RDPARTY_LIBS, WITH_TBB,WITH_JASPER, WITH_JPEG,
WITH_PNG, WITH_TIFF選項,

然後再點擊configure,如下圖:

提示TBB_INCLUDE_DIR找不到,因為我們不需要TBB庫,所以忽略,再一次點擊configure。

等待配置完成,最後點擊generate,完成後關閉CMake。

-------------------------------------------------------------------------------------------------------------

VC++2010編譯靜態庫

-------------------------------------------------------------------------------------------------------------
進入E:\OpenCV2.1.0-prj目錄,使用VC++2010打開.sln文件,打開項目管理器

這時候會看到

解決方案中有很多小項目存在。

註:這時我們右鍵任意點擊一個子項目(如cv),選擇屬性,可以在配置屬性下的常規項目中看到,配置類型為
靜態庫(lib)。

按住ctrl鍵,選中除過ALL_BUILD, INSTALL, ZERO_CHECK,
uninstall四個項目的其他所有項目,在菜單中選擇項目->屬性,打開配置屬性->c/c++->代碼生成選項,在右側窗口中的運行時庫中選擇多線程調試(/MTd),然後確認。

說明:這里有四個選項(/MT, /MTd, /MD,
/MDd),前兩個一組,為靜態鏈接運行時庫,運行時不需要運行時庫的支持,代碼直接插入到程序中去;後兩個一組,為動態鏈接運行時庫,運行時需要msvcr90.dll或msvcp90.dll支持。

我們先編譯Debug版的OpenCV靜態庫,在解決方案"opencv"(22個項目)上單擊右鍵,選擇重新生成解決方案,此時便開始編譯OpenCV庫了,等編譯結束會提示完成16個,失敗4個:

這四個項目生成的是exe程序,不需要管他們。到這步我們已經生成了Debug版本的靜態庫!

然後我們用相同的方式生成Release版的庫,在之前的基礎上只需要將選項選擇多線程/MT,再進行編譯。編譯時警告很多,直接忽略!

注意:/MT即是Release版本,/MTD即是Debug版本。

最終我們需要的靜態庫就存在:E:\OpenCV2.1.0-prj/lib 和 E:\OpenCV2.1.0-prj/3rdparty/lib
兩個目錄,我們編譯好的庫就在這兩個文件夾下。分別

將E:\OpenCV2.1.0-prj/3rdparty/lib中Debug
下面的所有文件Copy到E:\OpenCV2.1.0-prj/lib中的Debug 文件中。

將E:\OpenCV2.1.0-prj/3rdparty/lib中Release下面的所有文件Copy到E:\OpenCV2.1.0-prj/lib中的Release文件中。

❷ opencv編譯時錯誤」fatal error LNK1104: 無法打開文件「opencv_world310d.lib」 WIN10+VS2013+OPENCV3.0

1、右鍵點擊vs2013屬性。點擊鏈接器-輸入-附加依賴庫,檢查路徑是否是絕對路徑。

編譯有兩種:Debug和Release,分別對應opencv_worldxxxd.lib和opencv_worldxxx.lib(後綴有無d來區分),對舊版本代碼修改記得都修改清楚。

(2)windowsopencv編譯擴展閱讀:

fatal error LNK1104:無法打開文件的解決方法:

1.有的人是用的同一個大版本的openCV,比如都是openCV 2.x這個版本的,但也報了這樣的錯,那就是在配置附加依賴項的時候,沒注意版本號寫錯了(比如opencv_core249d.lib寫成opencv_core245d.lib這樣的錯誤),仔細檢查一下配置路徑和文件名就是了。

2.有的人是在項目中出錯。項目是有依賴關系的,子項目的一些文件是繼承自父項目的,要跑子項目,那就先去檢查下父項目都鏈接了些什麼庫,核對一下和自己用的openCV版本有沒有出入。

OpenCV是一個基於BSD許可(開源)發行的跨平台計算機視覺庫,可以運行在Linux、Windows、Android和Mac OS操作系統上。

它輕量級而且高效——由一系列 C 函數和少量 C++ 類構成,同時提供了Python、Ruby、MATLAB等語言的介面,實現了圖像處理和計算機視覺方面的很多通用演算法


❸ 在win7 X64下用cmake編譯OpenCV-2.1.0出錯

在vs2010里用的話選vs10啊,bcc是很古老的borland公司的C++編譯器

❹ win7下編譯的opencv在win8下可以使用嗎

工具環境如下: win7+VC2010+OpenCV2.4.3。
下面開始安裝。
win7和VC的安裝就不說了,重點是OpenCV的安裝,首先下載OpenCV,版本是2.4.3,即OpenCV2.4.3.exe,
注意OpenCV是一個庫文件,裡面是一些編寫好了的函數,在程序裡面直接使用就可以了。所以,首先將OpenCV進行解壓,最好是解壓到某個盤的根目錄下面(例如解壓在D盤的根目錄),下面就是一些主要的設置了。分一下幾步。
1、環境變數的設置
將OpenCV裡面的dll文件所在的目錄添加到系統的環境變數裡面:單擊計算機右鍵->屬性->高級系統設置->環境變數,在系統變數PATH的最後添加D:\opencv\build\x86\vc10\bin(注意,路徑不同的這里需要修改),否則在調用函數就會出錯,說什麼找不到opencv_core243d.dll等等因為找不到dll文件而出錯的情況,關於這個還有一點的就是在配置完這個之後需要重啟系統,這樣環境變數才會生效。
2、添加目錄
新建一個工程項目,然後單擊項目右鍵->屬性->單擊VC++目錄,編輯包含目錄,將D:\opencv\build\include、D:\opencv\build\include\opencv、D:\opencv\build\include\opencv2添加到裡面去,然後編輯庫目錄,將D:\opencv\build\x86\vc10\lib添加到裡面去(注意,要根據自己的路徑設置)
3、配置鏈接器
單擊項目右鍵->屬性->單擊鏈接器->輸入,在活動Debug配置下,找到附加依賴項,編輯其為: opencv_calib3d243d.lib
opencv_contrib243d.lib
opencv_core243d.lib
opencv_features2d243d.lib
opencv_flann243d.lib
opencv_gpu243d.lib
opencv_highgui243d.lib
opencv_imgproc243d.lib
opencv_legacy243d.lib
opencv_ml243d.lib
opencv_objdetect243d.lib
opencv_ts243d.lib
opencv_video243d.lib
這里要非常注意的是,以上的每一行是一項,不要用分號將其隔開,千萬不要,最好是將這些行復制下來直接粘貼到裡面去,這也就可以了;
然後將配置切換到release下面,找到附加依賴項,編輯其為:
opencv_calib3d243.lib
opencv_contrib243.lib
opencv_core243.lib
opencv_features2d243.lib
opencv_flann243.lib
opencv_gpu243.lib
opencv_highgui243.lib
opencv_imgproc243.lib
opencv_legacy243.lib
opencv_ml243.lib
opencv_objdetect243.lib
opencv_ts243.lib
opencv_video243.lib
也就是將以上的每一行後面的d去掉,因為d表示的是debug版本的,然後這樣就打工告成了,然後就可以使用opencv裡面的庫函數了。
最後有一點要說明的是,除了第一步以外,之後的兩步對於每一個工程項目都需要配置一遍,這樣雖然很不方便,但是也沒有辦法。

❺ 如何編譯帶有extra molesopencv

從opencv官網下載下來的exe文件安裝後只含有opencv自帶的一些moles,有時需要其extra moles的一些功能,就需要手動編譯。
這里詳細的說明了opencv自帶的moles和extra moles

環境說明

Windows10 x64
Opencv 3.1.0
Visual Studio 2015
CMAKE 3.4.1

第一部分:生成OpenCV vs項目

下載opencv源碼和 opencv_contrib源碼 這里的opencv源碼部分用官網的exe安裝包解壓安裝也可以。需要的只是源碼。
!!!注意:這里OpenCV和OpenCV contrib的代碼版本要一致,否則可能後產生不可預知的編譯錯誤!!!
將opencv和opencv_contrib解壓到一個目錄里,並建立一個空文件夾名為VSproject,用來存儲待編譯的vs項目

打開CMAKE,在where is the source code裡面選擇opencv的源代碼目錄,我安裝的是exe包,所以我的目錄是F:/Sunday/opencv/sources
在where to build the binaries選擇F:/Sunday/VSproject
點擊Configure,選擇你的編譯器,如下

點擊Finish
等待出現Configuring done
找到OPENCV_EXTRA_MODULES_PATH項,輸入opencv_contrib下的moles目錄F:/Sunday/opencv_contrib/moles
如下

其他選項根據自己的需要勾選,不懂的話就不要動了。
我取消勾選的有

BUILD_DOCS
BUILD_TESTS
BUILD_PERF_TESTS
BUILD_opencv_python2
BUILD_opencv_python3
WITH_CUDA
WITH_MATLAB

注意:千萬不要勾選BUILD_opencv_contrib_world和BUILD_opencv_world,否則會導致編譯失敗。但是如果
不添加opencv_contrib的話,就可以勾選BUILD_opencv_world,這樣編譯出來的庫文件和dll就只有一個
opencv_world.dll。包含了所有的庫。

再次點擊Configure沒問題的話上面不會有紅色,如下

7. 點擊Generate,開始生成VS項目

導出成功如下,顯示Genereating done

第二部分:編譯

打開VSproject目錄下的OpenCV.sln,我的是F:\Sunday\VSproject\OpenCV.sln
先編譯debug版本的代碼,同時要確保平台正確,在ALL_BUILD項目上右鍵→生成,即開始編譯。這個過程一般較長。

編譯成功後生成CMake Targets下的install項目,這樣所有opencv編譯出來的lib,dll,頭文件都會統一放在install文件夾下。

把編譯改為Release模式,按照1~3步再編譯一下。
最終所有編譯好的文件都會存在VSproject的install目錄下。

❻ win8 64位 VS2008+OpenCv2.4.10在編譯時一直會出現 STATUS_DLL_NOT_FOUND。

有可能是win8操作系統導致的,2.4.11版本的windows版opencv實在win7 sp1上測試的。官方沒有保證最新的操作系統能夠可以使用。很可能2.4.10版本的opencv調用的是win7版本的mfc相關庫,所以在win8上沒法運行。

熱點內容
sql提示存儲過程 發布:2025-05-17 07:35:58 瀏覽:743
qq里的互動訪問 發布:2025-05-17 07:26:53 瀏覽:665
口語易賬號密碼發送到哪裡 發布:2025-05-17 07:26:52 瀏覽:62
核桃編程幼兒 發布:2025-05-17 07:26:50 瀏覽:786
2台伺服器集群搭建 發布:2025-05-17 07:18:57 瀏覽:185
北方園林配置植物有哪些 發布:2025-05-17 07:18:20 瀏覽:544
數控加工零件圖及編程 發布:2025-05-17 07:18:11 瀏覽:730
煉鋼鹼度演算法 發布:2025-05-17 07:17:26 瀏覽:14
python獲取年月日 發布:2025-05-17 07:15:33 瀏覽:303
手機加密軟體java 發布:2025-05-17 07:00:24 瀏覽:443