當前位置:首頁 » 編程軟體 » 編譯鏈接調試opencv

編譯鏈接調試opencv

發布時間: 2023-03-25 21:31:34

⑴ 怎麼在vs2022中編譯opencvmat類的源碼

1. 首先需要在VS2022中添加OpenCV庫,可以通過NuGet Package Manager搜索並安裝OpenCV。

2. 打開VS2022,創建一個新的C++項目。

3. 在項目屬性中,選擇VC++目錄,添加OpenCV庫的包含目錄和庫目錄。

4. 在鏈接器中,添加需要鏈接的OpenCV庫。

5. 在代碼中包含需要使用的頭文件,例如<opencv2/opencv.hpp>。

6. 編寫代碼,使用OpenCV的Mat類。

7. 按下F7編譯代碼。
結論:在VS2022中編譯OpenCV的Mat類源碼需要添加OpenCV庫,並在項目屬性中設置相關選項。
原因:OpenCV是一個開源計算機視覺庫,包含了許多圖像和視頻處理的函數和類,其中的Mat類用於存儲和操作多維數組。
在VS2022中編譯OpenCV的Mat類源碼需要添加OpenCV庫,並在項目屬性中設置相關選項,以便編譯器能夠正確地鏈接和使用OpenCV庫。
內容延伸:除了在VS2022中編譯OpenCV的Mat類源碼,OpenCV還提供了搭禪許多其他功能和類,例如圖像處理、特徵提取、目標識別等,可以根據需要使用。
此外,還清做可以使用OpenCV與其他答枝衡計算機視覺庫和框架(如TensorFlow、PyTorch等)結合使用,以實現更復雜的計算機視覺任務。

⑵ 如何用cmake 編譯OpenCV 3.1.0的opencv

你機子的某個盤里建一個新的文件夾,如我這里的完整路徑是:D:\CMake\CMake-Study\HelloCMake; 然後在HelloCMake文件夾里建立一個HelloCMake.cpp文件,裡面的代碼如下:
#include <iostream>
int main()
{
std::cout<<"Study CMake Together - Hello CMake!"<<std::endl;
return 0;
}
然後在HelloCMake文件夾里建立一個CMakeLists.txt文件,注意文件名不能是別的,必須叫這個名字。裡面的內容如下:
cmake_minimum_required(VERSION 2.6)
project(HelloCmake)
add_executable(HelloCMake hellocmake.cpp)
接著在HelloCMake的同級目錄里建立一個新的文件夾,就叫做HelloCMake-bin,在我機子上的完整路徑是:D:\CMake\CMake-Study\HelloCMake-bin,你可以針對自己的目錄路徑對號入座。
然後打開CMake程序,界面如圖(1):

圖(1)

圖(2)
接著把包含CMakeLists.txt和HelloCMake.cpp文件的完整路徑給」where is the source code」,把最後建立的HelloCMake-bin目錄的完整路徑給」where to build the binaries」,然後按Cofigure,界面如圖(2)。
Configure完了以後,再按Generate,直到所有的紅色選項都變成灰色為止。界面如圖(3)。然後打開HelloCMake-bin,你會發現原來空的文件夾裡面自動生成了好多文件,如圖(4)。

圖(3)

圖(4)
到此為止,工程構建完成,打開HelloCMake-bin目錄下的HelloCMake.sln,裡面有三個工程,分別是:ALL_BUILD;HelloCMake;ZERO_CHECK。這三個工程的大概作用如下(個人理解而已),HelloCMake就不用說了,自己要建立的那個工程;ALL_BUILD是管理整個項目的工程;ZERO_CHECK是實時監視隱帆滲CMakeLists.txt文件變化的工程,一旦CMakeLists.txt里的內容發生了任何變化,ZERO_CHECK就會告訴編譯器要重新構建整個工程環灶脊境。所以,你可以先把工程關掉,打開CMakeLists.txt文件,更改裡面的內容以後,把根據以上說的步驟走一遍CMake;你也可以在編譯器環境(如VS2008)中更改CMakeLists.txt文件,然後直接F7編譯工程。如果你選擇後者,你會發現如圖(5)所示的現象發生。
因為你改變了CMakeLists.txt的內容,工程的環境要重新構建、設置。所以你必須載入新轎念的工程環境設置。點Yes,然後點Reload。重新載入設置過的工程環境。
另外一個經常看某些童鞋問的,就是當彈出圖(6)所示的界面時要怎麼辦?能怎麼辦?界面上提示已經灰常清楚了,指定exe的路徑給它,然後點OK就可以了;出現這種情況的原因是你把沒有生成exe可執行文件的工程設為啟動工程了,如圖(6)所示,你會發現ALL_BUILD這個工程名字是黑體顯示的,表示它是啟動工程;或者你把生成exe可執行文件的工程,如這里的HelloCMake右擊->設置為啟動工程,也不會出現如圖(6)所示的界面。
好,這些比較瑣碎的東西介紹完,我們一起來看看CMakeLists.txt裡面的代碼表示什麼意思,爭取每句代碼都作解釋,如果有不對的地方,一定要告訴我!

圖(5)

圖(6)
把CMakeLists.txt里的內容再羅列出來:
1. cmake_minimum_required(VERSION 2.6)
2. project(HelloCmake)
3. add_executable(HelloCMake hellocmake.cpp)
第1行,cmake_minimum_required(VERSION 2.6)這是對CMake版本的要求,基本上每個CMakeLists.txt文件里都會有這句代碼,cmake_minimum_required是cmake里的命令,可大寫小寫。VERSION這個關鍵字必須是大寫,而且不能省略;2.6就是CMake的版本號,現在的版本是2.8.3。
第2行,project(HelloCmake),project也是CMake的命令,裡面的參數HelloCMake是你要生成的工程的名字,換句話說就是生成的***.sln或者***.dsw等工程項目文件的名字。
第3行,add_executable(HelloCMake hellocmake.cpp),add_executable同樣是CMake的命令,鏈接有關的源文件,然後生成exe可執行文件,這是這個命令的作用。第一個參數是生成的exe文件的文件名,一般與project里的工程名一致,這樣編譯生成的文件就分別是HelloCMake.sln和HelloCMake.exe,當然也可以不一樣。Add_executable()後面的是一個參數列表,可帶多個要編譯的文件名,中間以空格或回車等隔開,如可以加入:
add_executable(HelloCMake hellocmake.cpp hellocmake.h)
這樣就把CMake里最常用的三個命令介紹完了,分別是cmake_minimum_required; project; add_executable等

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

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

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

(3)編譯鏈接調試opencv擴展閱讀:

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等語言的介面,實現了圖像處理和計算機視覺方面的很多通用演算法


⑷ 怎麼讓opencv編譯到可執行文件里,使別人電腦沒有opencv也能運行exe

首先,先要再linux上安裝opencv的庫,在線安裝的話,很容易
然後,編譯的時候需要加上
`pkg-config
opencv
--libs
--cflags
opencv`
參數

⑸ Jetson nano(四)—編譯安裝opencv

參考之前Ubuntu x64上的編譯步驟
https://www.jianshu.com/p/99bdc2472423

編譯好的python動態鏈接庫位於 /lib/python3.x中

將cv2文件夾復制到python的/lib/site-package中即可
sudo cp -r xxx/lib/python3.x/cv2 xxx/to/your/python/site-packages

⑹ 能配置opencv的編譯軟體有哪些

配置環境是: ubuntu12.04 + opencv2.4.0
安裝OpenCV:
1. 安裝必要的軟體
apt-get install build-essential cmake libgtk2.0-dev pkg-config python-dev python-numpy libavcodec-dev libavformat-dev libswscale-dev

2. 從sourceforge上下載OpenCV的源碼,下載地址是:
http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.0/

3. 解壓到任意目錄
tar xvf OpenCV-2.4.3.tar.bz2
cd OpenCV-2.4.3/

4. cmake編譯OpenCV源碼,所有的lib文件都會被安裝到/usr/local目錄下
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local

5. 安裝
make
sudo make install
環境變數pkg_config_path 提供編譯時和運行時庫的路徑查詢。pkg-config 是通過庫提供的一個 .pc 文件獲得庫的各種必要信息的,包括版本信息、編譯和鏈接需要的參數等。這些信息可以通過 pkg-config 提供的參數單獨提取出來直接供編譯器和 鏈接器使用。使用 pkg-config 的 --cflags 參數可以給出在編譯時所需要的選項,而 --libs 參數可以給出 鏈接時的選項。
在上述opencv 的安裝結束後,pkg-config 的讀取目錄 /usr/local/lib/pkgconfig/ 下已經有opencv.pc。

6. 更新環境變數:
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig/

編譯程序:

用OpenCV讀入一副圖像(img.jpg),代碼如下:
//main.cpp
#include <stdio.h>
#include <cvaux.h>
#include <highgui.h>
using namespace cv;

int main() {
IplImage *img = cvLoadImage("img.jpg",0);
if (NULL == img) {
printf("Load image failed.\n");
return -1;
}
printf("Hello World\n");
cvReleaseImage(&img);
return 0;
}

方法1:直接命令編譯:
g++ main.cpp -o main `pkg-config --cflags --libs opencv` (注意ESC下面的`,不是單引號)

方法2:藉助cmake,需要寫CMakeLists.txt,示例如下:

cmake_minimum_required(VERSION 2.8)
project(Hello)
find_package(OpenCV REQUIRED)
add_executable(Hello main.cpp)
target_link_libraries(Hello ${OpenCV_LIBS})

然後:
cmake .
make

⑺ cmake編譯mxnet怎麼配置opencv

機某盤建新文件夾我完整路徑:D:\CMake\CMake-Study\HelloCMake; HelloCMake文件夾建立HelloCMake.cpp文件面代碼:
#include
int main()
{
std::cout<<"Study CMake Together - Hello CMake!"<<std::endl;
return 0;
}
HelloCMake文件夾建立CMakeLists.txt文件注意文件名能別必須叫名字面內容:
cmake_minimum_required(VERSION 2.6)
project(HelloCmake)
add_executable(HelloCMake hellocmake.cpp)
接著HelloCMake同級目錄建立新文件夾叫做HelloCMake-bin我機完整路徑:D:\CMake\CMake-Study\HelloCMake-bin針自目錄路徑號入座
打CMake程序界面圖(1):

圖(1)

圖(2)
接著包含CMakeLists.txtHelloCMake.cpp文件完整路徑給where is the source code建立HelloCMake-bin目錄完整路徑給where to build the binaries按Cofigure界面圖(2)
Configure完再按Generate直所紅色選項都變灰色止界面圖(3)打HelloCMake-bin發現原空文件夾面自文件圖(4)

圖(3)

圖(4)
止工程構建完打HelloCMake-bin目錄HelloCMake.sln面三工程別:ALL_BUILD;HelloCMake;ZERO_CHECK三工程概作用(理解已)HelloCMake用說自要建立工程;ALL_BUILD管理整項目工程;ZERO_CHECK實監視CMakeLists.txt文件變化工程旦CMakeLists.txt內容發任何變化ZERO_CHECK告訴編譯器要重新構建整工程環境所先工程關掉打CMakeLists.txt文件更改面內容根據說步驟走遍CMake;編譯器環境(VS2008)更改CMakeLists.txt文件直接F7編譯工程選擇者發現圖(5)所示現象發
改變CMakeLists.txt內容工程環境要重新構建、設置所必須載入新工程環境設置點Yes,點Reload重新載入設置工程環境
另外經看某些童鞋問彈圖(6)所示界面要辦能辦界面提示已經灰清楚指定exe路徑給點OK;現種情況原沒exe執行文件工程設啟工程圖(6)所示發現ALL_BUILD工程名字黑體顯示表示啟工程;或者exe執行文件工程HelloCMake右擊->設置啟工程現圖(6)所示界面
些比較瑣碎東西介紹完我起看看CMakeLists.txt面代碼表示意思爭取每句代碼都作解釋定要告訴我

圖(5)

圖(6)
CMakeLists.txt內容再羅列:
1. cmake_minimum_required(VERSION 2.6)
2. project(HelloCmake)
3. add_executable(HelloCMake hellocmake.cpp)
第1行cmake_minimum_required(VERSION 2.6)CMake版本要求基本每CMakeLists.txt文件都句代碼cmake_minimum_requiredcmake命令寫寫VERSION關鍵字必須寫且能省略;2.6CMake版本號現版本2.8.3
第2行project(HelloCmake)projectCMake命令面參數HelloCMake要工程名字換句說***.sln或者***.dsw等工程項目文件名字
第3行add_executable(HelloCMake hellocmake.cpp)add_executable同CMake命令鏈接關源文件exe執行文件命令作用第參數exe文件文件名般與project工程名致編譯文件別HelloCMake.slnHelloCMake.exeAdd_executable()面參數列表帶要編譯文件名間空格或車等隔加入:
add_executable(HelloCMake hellocmake.cpp hellocmake.h)
CMake用三命令介紹完別cmake_minimum_required; project; add_executable等

⑻ 如何編譯 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

1. 將OpenCV2.2.0的壓縮包解壓到路徑D:\OpenCV\opencv (以下所有路徑都可自己選擇 只要對應起來即可)
2. 安裝Cmake,可以到官網去下載並按默認設置安裝安裝即可。
此處注意一般vs採用的是win32編譯器進行debug和release(即使你是安裝的x64),所以下載cmake的時候應該下載32位版本,這樣cmake編譯出來的是32位的工程文件,x64的cmake編譯的是64位工程文件。
3.打開Cmake,在第一行「Where is the source code」後面的那個「Browse Source...」按鈕,選擇OpenCV的安裝路徑。

⑽ OpenCV靜態庫編譯與鏈接

以OpenCV-4.0.0為例說明在Ubuntu環境下的靜態庫編譯與鏈接方法:

opencv依賴第三方的庫,所以當把opencv編譯成靜態庫的時候,注意要把它運行時必要的依賴庫也編譯進來,opencv源碼內有自己的3rdparty,主要有:libjpeg、libpng、libtiff、libzlib、libwebp、libprotobuf、ffmpeg(用到video時編譯)、libgtk(用於顯示界面顯示,伺服器部署不會用到),可以通過cmake -LA來查看配置的編譯信息,再根據信息考慮把opencv的哪些mole編譯進來。

鏈接時指定opencv的靜態庫以及依賴的庫。另外需要注意頭文件的問題,通過CMakeLists把opencv加入項目編譯時,由於opencv編譯完成後要install才會把所用的頭文件集中拷貝到一個地方,所以事先將頭文件拷貝到了項目的opencv目錄下。

熱點內容
伺服器搭建主機配置 發布:2025-07-18 12:12:43 瀏覽:125
ftp命令批量下載文件 發布:2025-07-18 11:58:45 瀏覽:743
nba2k17文件夾 發布:2025-07-18 11:48:53 瀏覽:871
朔源碼是什麼 發布:2025-07-18 11:44:33 瀏覽:774
迷你世界解壓劇場 發布:2025-07-18 11:43:48 瀏覽:154
linux安裝opencv 發布:2025-07-18 11:42:10 瀏覽:446
編程游戲的軟體有哪些 發布:2025-07-18 11:41:34 瀏覽:956
c程序設計語言電子書 發布:2025-07-18 11:35:58 瀏覽:642
lightning耳機如何在安卓手機上用 發布:2025-07-18 11:21:47 瀏覽:176
妄想山海新宿怎麼配置好 發布:2025-07-18 11:07:43 瀏覽:616