【C++】OpenCV:计算机视觉库介绍及C++环境配置

这篇具有很好参考价值的文章主要介绍了【C++】OpenCV:计算机视觉库介绍及C++环境配置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.OpenCV介绍

OpenCV是一个跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。

OpenCV是用C++语言编写的,同时留有C ++(工程部署用)、Python(深度学习用)、Java和MATLAB(Matlab好多例子都调用的opencv)接口,为了学习(juan)和部署视觉类的应用,记录一下学习过程。

OpenCV的应用太广了,就不再赘述,这里我主要关心在车辆摄像头上的一些应用。

官网:https://opencv.org/

这里我主要看OpenCVxuetang贾老师的视频,然后再看一些比较好的书籍。

贾老师的学习代码如下:https://gitee.com/opencv_ai/opencv_tutorial_data

2.Windows OpenCV环境配置(VS和MinGW)

VS编译

首先安装Visual studio,这里我用的2017,可参考安装;

下载OpenCV库,我用的4.5.4,放在这里,提取码0121

首先,新建工程,设置Release/x64:

dev c++配置opencv,c++CV计算机视觉与音视频,opencv,c++,计算机视觉

将下载好的OpenCV库解压到D盘,命名为opencv-454(防止版本多了乱):

dev c++配置opencv,c++CV计算机视觉与音视频,opencv,c++,计算机视觉

打开属性管理器,配置Release/x64的属性:

dev c++配置opencv,c++CV计算机视觉与音视频,opencv,c++,计算机视觉
dev c++配置opencv,c++CV计算机视觉与音视频,opencv,c++,计算机视觉

包含目录配置如下:

dev c++配置opencv,c++CV计算机视觉与音视频,opencv,c++,计算机视觉

库目录配置如下:

dev c++配置opencv,c++CV计算机视觉与音视频,opencv,c++,计算机视觉

附加依赖项配置如下:

dev c++配置opencv,c++CV计算机视觉与音视频,opencv,c++,计算机视觉

MinGW编译

除了VS,也可以用MinGW编译器来链接OpenCV库,首先下载源码并安装好cmake-gui,然后配置选好我们mingw的地址,并勾选WITH_QTWITH_OPENGL,其他自己看需要。

编译生成后,进入terminal,编译和安装:

mingw32-make
mingw32-make install # 生成install目录,这是我们需要的include和lib

当然除了自己去编译,也可以下载网上别人编译好的opencv-mingw包(推荐),因为自己的环境很可能有一些奇奇怪怪的问题。

然后可以在CLion的CMakeLists里添加:

set(OpenCV_DIR "D:/develop/opencv341_mingw/x64/mingw/lib")

find_package(OpenCV 3 REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
link_directories(${OpenCV_LIBRARIES})

add_executable(test main.cpp )

target_link_libraries(${PROJECT_NAME}
        ${OpenCV_LIBS}
        )

测试

配置完成后,写入以下代码(读取图像):

// opencv454学习

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main()
{
	Mat src = imread("D:/images/test.png");
	imshow("input", src);
	waitKey(0);
	destroyAllWindows();
	return 0;
}

运行结果如下:

dev c++配置opencv,c++CV计算机视觉与音视频,opencv,c++,计算机视觉

3.Ubuntu OpenCV环境配置

如果安装了ros,会自带opencv3.2.0版本,可通过命令查看版本:

pkg-config --modversion opencv

如果需要用到OpenCV4,可先从官网或Github下载源码。

由于编译过程中一些资源无法正常下载,因此先改几个地方:

# ippicv_2020_lnx_intel64_20191018_general.tgz解决办法
cd opencv-xxx/3rdparty/ippicv
vim ippicv.cmake
找到https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/
在链接前加上github的代理地址:https://ghproxy.com/(后续一样)
# face_landmark_model.dat解决办法
cd opencv-xxx/opencv_contrib-4.5.1/modules/face
vim CMakeLists.txt
找到"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${__commit_hash}/"
添加代理地址
# .i文件解决办法
cd /opencv-xxx/opencv_contrib-xxx/modules/xfeatures2d/cmake
将cmake文件夹下两文件的下载路径都加上代理地址
这样在编译的时候就可以正常下载以上资源了。

下载完成并解压后:

mkdir build && cd build
cmake -D CMAKE_INSTALL_PREFIX=/usr/local -D CMAKE_BUILD_TYPE=Release -D OPENCV_GENERATE_PKGCONFIG=ON -D   -D OPENCV_ENABLE_NONFREE=True ..
make
sudo make install

然后进行环境配置:

sudo gedit /etc/bash.bashrc
# 文件末尾添加以下内容 并保存
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
# 更新
sudo updatedb
source /etc/bash.bashrc

添加动态库:

# 打开文件
sudo gedit /etc/ld.so.conf.d/opencv.conf 
# 添加lib路径
/usr/local/lib
# 更新链接库
sudo ldconfig

查看安装情况:

pkg-config --modversion opencv4 #查看版本号
pkg-config --libs opencv4 #查看libs库

源码里有sample示例,可以先学习。

如果要编译带cuda的opencv,可以参考:

# 先安装cuda(我选择11.5),选择对应的系统环境安装即可
https://developer.nvidia.com/cuda-11-5-0-download-archive
# 例如,WSL ubuntu
wget https://developer.download.nvidia.com/compute/cuda/11.5.0/local_installers/cuda_11.5.0_495.29.05_linux.run
sudo sh cuda_11.5.0_495.29.05_linux.run
sudo gedit ~/.bashrc
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.5/lib64
export PATH=$PATH:/usr/local/cuda-11.5/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-11.5
source ~/.bashrc
nvcc -V  # 验证版本
# 卸载的话
To uninstall the CUDA Toolkit, run cuda-uninstaller in /usr/local/cuda-11.5/bin

替换上面编译opencv的选项:

cmake \
-D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_PYTHON_EXAMPLES=OFF \
-D INSTALL_C_EXAMPLES=OFF \
-D OPENCV_ENABLE_NONFREE=ON \
-D BUILD_TIFF=OFF \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-4.2.0/modules \
-D BUILD_EXAMPLES=OFF \
-D CUDA_ARCH_BIN='8.0' \
-D WITH_CUDA=ON \
-D WITH_CUDNN=ON \
-D WITH_FFMPEG=ON \
-D WITH_V4L=ON \
-D WITH_QT=ON \
-D OPENCV_DNN_CUDA=ON \
-D WITH_CUBLAS=ON \
-D OPENCV_GENERATE_PKGCONFIG=YES \
-D CUDA_nppicom_LIBRARY=stdc++ \
..

4.卸载OpenCV4

首先删除opencv4.conf:

cd /etc/ld.so.conf.d/
sudo rm opencv4.conf

然后进入编译文件夹卸载(源代码编译完先不要删):

cd ./OpenCV-xxx/build
sudo make uninstall

dev c++配置opencv,c++CV计算机视觉与音视频,opencv,c++,计算机视觉

以上。文章来源地址https://www.toymoban.com/news/detail-805914.html

到了这里,关于【C++】OpenCV:计算机视觉库介绍及C++环境配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Docker容器部署OpenCV,打造高效可移植的计算机视觉开发环境

    海鲸AI-ChatGPT4.0国内站点:https://www.atalk-ai.com 在计算机视觉领域,快速部署和测试算法是研究和开发的关键。OpenCV作为一个强大的开源计算机视觉库,广泛应用于各种图像处理和视频分析任务。然而,配置OpenCV环境可能会因为不同操作系统和依赖库的版本差异而变得复杂。这

    2024年04月26日
    浏览(42)
  • Docker容器中的OpenCV:轻松构建可移植的计算机视觉环境

    「作者主页」 :雪碧有白泡泡 「个人网站」 :雪碧的个人网站 chatgpt体验地址 计算机视觉是一门涉及图像和视频处理的领域,可以应用于目标检测、图像识别、人脸识别等各种任务。 不同的开发环境、操作系统和硬件配置可能导致部署和运行计算机视觉应用的困难。 目的

    2024年02月05日
    浏览(52)
  • 云原生Docker容器中的OpenCV:轻松构建可移植的计算机视觉环境

    构建可移植的计算机视觉环境 计算机视觉是一门涉及图像和视频处理的领域,可以应用于目标检测、图像识别、人脸识别等各种任务。 不同的开发环境、操作系统和硬件配置可能导致部署和运行计算机视觉应用的困难。 目的和重要性: Docker容器提供了一种轻量级、可移植、

    2024年04月11日
    浏览(35)
  • 用于计算机视觉的 OpenCV(C++ 与 Python)与 MATLAB之间的优缺点比较

    我们经常混淆我们的工具和我们的手艺。工具可以帮助你练习手艺,但它们并不能使你成为一名优秀的工匠。一个好工匠的口袋里有许多不同的工具,她会明智地使用适合工作的工具。她没有嫁给这些工具。她嫁给了她的手艺。 我经常被关于编程语言的战争逗乐。人们对哪一

    2024年02月13日
    浏览(42)
  • 【计算机视觉 | 目标检测】Grounding DINO 深度学习环境的配置(含案例)

    “ Grounding DINO:Marrying DINO with Grounded Pre-Training for Open-Set Object Detection ”的官方 PyTorch 实现: SoTA 开放集对象检测器。 论文地址: 在 YouTube 上观看介绍视频: Try the Colab Demo: Try Official Huggingface Demo: Grounded-SAM: Marrying Grounding DINO with Segment Anything Grounding DINO with Stable Diffusion

    2024年02月07日
    浏览(72)
  • 计算机视觉入门 - MacOS搭建Python的OpenCV环境并在VScode上使用的详细步骤(完整版)

    目录 过程: 下载VScode编辑器: 在VScode中安装Python插件:  安装Python解释器: 测试Python程序:  安装wget插件: 安装cmake插件:  安装opencv: 通过程序来测试opencv: 运行成功:  要使用的东西:VScode编辑器、Terminal终端、Homebrew软件包管理工具、Python、OpenCV 首先在Mac上下载

    2024年01月16日
    浏览(50)
  • 【计算机视觉】基于OpenCV计算机视觉的摄像头测距技术设计与实现

    在当今技术日益进步的时代,计算机视觉已成为我们生活中不可或缺的一部分。从智能监控到虚拟现实,计算机视觉技术的应用范围日益广泛。在这篇博客中,我们将探索一个特别实用的计算机视觉案例:使用OpenCV实现摄像头测距。这一技术不仅对专业人士有用,也为编程爱

    2024年02月04日
    浏览(45)
  • 计算机视觉(OpenCV+TensorFlow)

    本系列文章是OpenCV系列文章的第三篇,仍然跟随上篇内容主要聚焦于图像的一些操作 在通常情况下我们使用大小恒定的图像。但在某些情况下,我们需要使用不同分辨率的同幅图像,例如,在搜索图像中的某些内容比如脸部信息时,并不确定该内容在图像中占据的大小。这种

    2024年02月05日
    浏览(47)
  • 计算机视觉:OpenCV相机标定

    针孔照相机模型是一种经典的相机模型,它将相机视为一个针孔,将场景中的点投影到成像平面上。在这个模型中,相机的 内参和外参 描述了相机的几何形状和相机的姿态。 相机的 内参矩阵 描述了相机的内部几何形状,包括相机的焦距、像素尺寸和像素坐标原点。相机的

    2024年01月19日
    浏览(63)
  • 【计算机视觉】---OpenCV实现物体追踪

    OpenCV中的物体追踪算法基于视觉目标跟踪的原理。物体追踪的目标是在连续的图像序列中定位和跟踪特定物体的位置。 在物体追踪中,我们需要对目标对象进行表示。通常使用边界框(bounding box)来表示目标的位置和大小。边界框是一个矩形区域,由左上角的坐标(x,y)和

    2024年02月08日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包