IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 在Ubuntu 20.04 LTS下建立OpenCV (C++)的Vim (SpaceVim)开发环境 -> 正文阅读

[系统运维]在Ubuntu 20.04 LTS下建立OpenCV (C++)的Vim (SpaceVim)开发环境

从源码编译OpenCV (C++)

更新Ubuntu软件源,升级现有包

sudo apt update && sudo apt upgrade

安装g++

sudo apt install -y g++

安装 CMake

sudo apt install -y cmake

安装wget and unzip (Ubuntu应该已经预装了)

sudo apt install -y wget unzip

下载源码 (here: OpenCV 4.5.5),也可以安装git后以"git clone"下载整个Repository

wget -O opencv.zip https://github.com/opencv/opencv/archive/4.5.5.zip
unzip opencv.zip

创建build文件夹(须独立于源码文件夹)并打开它

mkdir -p opencv-4.5.5-build && cd opencv-4.5.5-build

生成cmake编译说明文件 (此处: make)

cmake ../opencv-4.5.5

正式编译 ("-j4" 指用4个线程)

make -j4

Vim (SpaceVim)

Vim 是一个高度可配置的文本编辑器,它使创建和改变任何类型的文本变得高效。

SpaceVimVim 的一个发行版。它将插件的集合分层管理,这有助于将相关的软件包收集在一起以提供功能。
安装 Vim

sudo apt install -y vim

安装 curl

sudo apt install -y curl

安装 git

sudo apt install -y git

Python3已经安装在Ubuntu中。

安装 SpaceVim

curl -sLf https://spacevim.org/install.sh | bash

在用户第一次打开Vim后,SpaceVim会自动设置好所有的东西。

要在SpaceVim中添加C/C++语言支持,只需按[Space]、[f]、[v]、[d],添加以下配置即可:

[[layers]]
	name = 'lang#c'

根据默认设置,标签只有2个空格,添加以下配置可将其改为4个空格:

[options]
    default_indent = 4
    expand_tab = false

开发环境配置

在 /etc/ld.so.conf.d 下编辑/创建ld设定文件

sudo vim /etc/ld.so.conf.d/opencv.conf

在 “opencv.conf” 结尾加上

/usr/local/lib

在终端里执行下面的命令已更新设定

sudo ldconfig

编辑bash的设定文件

sudo vim /etc/bash.bashrc

把下列命令加到 “bash.bashrc” 的结尾

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig  
export PKG_CONFIG_PATH  

在终端里执行下列命令以更新设定

source /etc/bash.bashrc
sudo updatedb

现在我们可以用CMake编译 OpenCV (C++) 了,要用CMake编译代码,每个项目都需要一个 “CMakeList.txt”,你可以在源码文件夹/samples/cpp/example_cmake里找到这个CMakeList.txt模板。

# cmake needs this line
cmake_minimum_required(VERSION 3.1)

# Define project name
project(opencv_example_project)

# Find OpenCV, you may need to set OpenCV_DIR variable
# to the absolute path to the directory containing OpenCVConfig.cmake file
# via the command line or GUI
find_package(OpenCV REQUIRED)

# If the package has been found, several variables will
# be set, you can find the full list with descriptions
# in the OpenCVConfig.cmake file.
# Print some message showing some of them
message(STATUS "OpenCV library status:")
message(STATUS "    config: ${OpenCV_DIR}")
message(STATUS "    version: ${OpenCV_VERSION}")
message(STATUS "    libraries: ${OpenCV_LIBS}")
message(STATUS "    include path: ${OpenCV_INCLUDE_DIRS}")

# Declare the executable target built from your sources
add_executable(opencv_example example.cpp)

# Link your application with OpenCV libraries
target_link_libraries(opencv_example PRIVATE ${OpenCV_LIBS})

在 "CMakeList.txt "被配置后(将 "opencv_example "和 "example.cpp "改为正确的名称),在终端执行以下命令

cmake .
make -j4
./example

我遇到过的一些问题

  1. 当imshow()被调用时,无法打开窗口。在我安装了opencv-python并使用 "git clone"版本的源码重建了OpenCV之后,这个问题就解决了。
  2. 用CMake编译代码的效率很低。所以我添加了一个SpaceVim引导函数,以方便调试,还添加了一个python脚本,只需通过一个名字就能建立新的项目。文档说明在这里:Setting up SpaceVim for OpenCV C++
  3. Gtk-Message: 17:19:01.138: Failed to load module “canberra-gtk-module”. 我通过安装以下软件包解决了这个问题。
    sudo apt install libcanberra-gtk-module libcanberra-gtk3-module
    

测试

Code for test

#include <opencv2/opencv.hpp>
using namespace cv;

int main()
{
	VideoCapture cap(0);

	while(1)
	{
		Mat frame;
		cap >> frame;
		imshow("Using Camera", frame);
		if(waitKey(10) == 27) break;	
	}
	return 0;
}

测试结果:成功调用了摄像头并在窗口输出了图像
请添加图片描述

参考

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-02-01 20:59:17  更:2022-02-01 21:01:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 7:22:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码