安裝環(huán)境
Ubuntu20.04
官方參考網(wǎng)址
OpenCV官網(wǎng):https://opencv.org/
官方安裝文檔參考:https://docs.opencv.org/4.8.0/d7/d9f/tutorial_linux_install.html
安裝OpenCV環(huán)境
安裝必需工具
# cmake -> 構(gòu)建工具
# g++ -> c++編譯器
# unzip -> zip文件解壓工具
# libgtk2.0-dev pkg-config是圖形界面支持的工具,不安裝執(zhí)行程序時會報錯
sudo apt update && sudo apt install -y cmake g++ libgtk2.0-dev pkg-config wget unzip
下載并解壓OpenCV庫(Opencv Core Modules和opencv_contrib)
Opencv Core Modules: OpenCV的核心庫模塊是OpenCV的主要部分,包含了圖像處理和計算機視覺方面的核心功能。
opencv_contrib:OpenCV的附加庫,它包含了OpenCV官方貢獻的擴展功能和算法,非必須安裝的庫文件,僅當需要使用該庫時安裝即可。
# 進入到安裝目錄,創(chuàng)建opencv父目錄
cd ~ # 安裝目錄自選,如進入到根目錄下的子目錄,后面的命令前均需要添加sudo
mkdir opencv && cd opencv
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.x.zip
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.x.zip
unzip opencv.zip
unzip opencv_contrib.zip
# 刪除安裝包
sudo rm -rf opencv*.zip
創(chuàng)建構(gòu)建目錄,進行構(gòu)建
# 在opencv目錄下創(chuàng)建build文件
mkdir -p build && cd build
# 配置構(gòu)建的 opencv-4.x 和 opencv_contrib-4.x 項目的路徑,
cmake -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.x/modules ../opencv-4.x
# 構(gòu)建當前目錄下的CMake項目,--build 指定編譯生成的文件存放目錄,其中就包括可執(zhí)行文件,. 表示存放到當前目錄
cmake --build .
構(gòu)建過程花費時間很長,我這邊用了將近半個小時,需要耐心等待一下
驗證構(gòu)建結(jié)果
構(gòu)建完成后,我們可以在build/lib路徑下看到庫文件,在build/bin路徑下看到一些可執(zhí)行的文件(樣例,測試,apps等),運行以下指令可以查看上述文件是否存在
ls bin
ls lib
在build目錄下看到CMake package files,運行以下指令可查看
ls OpenCVConfig*.cmake
ls OpenCVModules.cmake
安裝
若上述檢查無誤,進行安裝
sudo make install
按照默認設(shè)置,opencv會被安裝到 /usr/local 目錄下,所有的文件會被復制到以下位置:
/usr/local/bin - executable files
/usr/local/lib - libraries (.so)
/usr/local/cmake/opencv4 - cmake package
/usr/local/include/opencv4 - headers
/usr/local/share/opencv4 - other files (e.g. trained cascades in XML format)
opencv官方說明:安裝過程只將文件復制到預定義的位置,并進行少量的修補。使用這種方法進行安裝不會將opencv集成到系統(tǒng)包注冊表中,因此,例如,opencv不能自動卸載。由于可能與系統(tǒng)包沖突,我們不建議普通用戶進行全系統(tǒng)安裝。
驗證安裝結(jié)果
使用opencv自帶的samples驗證即可
cd ~/opencv-4.x/samples/cpp/example_cmake # 進入opencv核心庫文件夾的samples下的cpp的案例文件中
# 構(gòu)建
cmake .
# 編譯并生成可執(zhí)行文件
make
# 執(zhí)行文件
./opencv_example
執(zhí)行后,顯示OpenCV的版本即代表安裝成功
配置VSCode環(huán)境
創(chuàng)建項目文件
VSCode是基于文件夾管理項目,首先創(chuàng)建文件夾,使用VSCode打開同時創(chuàng)建Cpp文件(同級目錄下添加一張圖片,便于測試),cpp內(nèi)容如下
#include<opencv2/opencv.hpp>
using namespace cv;
int main()
{
Mat srcImage=imread("1.jpg");
imshow("Origin",srcImage);
waitKey(0);
return 0;
}
安裝C/C++拓展,點擊
拓展
,自行搜索安裝C/C++
和C/C++ Extension Pack
計科
修改配置信息
點擊調(diào)試,選擇
創(chuàng)建launch.json文件
launch.json
配置如下:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceRoot}/${fileBasenameNoExtension}.main.out",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceRoot}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "build"
}
]
}
點擊
允許
,點擊配置任務
,選擇使用模板創(chuàng)建tasks.json文件 > Others
tasks.json
配置如下:
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"command": "g++",
"args": [
"-g",
"-std=c++11",
"${file}",
"-o",
"${fileBasenameNoExtension}.main.out",
"-I",
"/usr/local/include",
"-I",
"/usr/local/include/opencv4",
"-I",
"/usr/local/include/opencv4/opencv2",
"-L",
"/usr/local/lib",
"-l",
"opencv_core",
"-l",
"opencv_imgproc",
"-l",
"opencv_imgcodecs",
"-l",
"opencv_video",
"-l",
"opencv_ml",
"-l",
"opencv_highgui",
"-l",
"opencv_objdetect",
"-l",
"opencv_flann",
"-l",
"opencv_imgcodecs",
"-l",
"opencv_photo",
"-l",
"opencv_videoio"
],
"problemMatcher": {
"owner": "cpp",
"fileLocation": [
"relative",
"${workspaceFolder}"
],
"pattern": [
{
"regexp": "^([^\\\\s].*)\\\\((\\\\d+,\\\\d+)\\\\):\\\\s*(.*)$",
"file": 1,
"location": 2,
"message": 3
}
]
},
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
Ctrl+Shift+P
搜索找到Edit Configurations(JSON)/編輯配置(JSON)
c_cpp_properties.json
配置如下:
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**",
// 添加頭文件查找路徑
"/usr/include",
"/usr/local/include/**"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"compilerPath": "/usr/bin/cpp",
"cStandard": "c11",
"cppStandard": "c++11",
"intelliSenseMode": "gcc-x64"
}
],
"version": 4
}
執(zhí)行程序
環(huán)境配置完成,回到項目,單擊
F5
執(zhí)行程序,運行成功
文章來源:http://www.zghlxwxcb.cn/news/detail-779353.html
注:如運行后出現(xiàn)如下信息,則是沒有安裝
libgtk2.0-dev
和pkg-config
,回到第一步,安裝好所有工具重新進行構(gòu)建、編輯、安裝文章來源地址http://www.zghlxwxcb.cn/news/detail-779353.html
terminate called after throwing an instance of 'cv::Exception'
what(): OpenCV(4.8.0-dev) /usr/local/opencv/opencv-4.x/modules/highgui/src/window.cpp:1272: error: (-2:Unspecified error) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Cocoa support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function 'cvShowImage'
到了這里,關(guān)于Linux安裝OpenCV并配置VSCode環(huán)境的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!