前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【C++】OpenCV:计算机视觉库介绍及C++环境配置

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

作者头像
DevFrank
发布2024-07-24 15:02:06
2390
发布2024-07-24 15:02:06
举报
文章被收录于专栏: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:

在这里插入图片描述
在这里插入图片描述

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

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

包含目录配置如下:

在这里插入图片描述
在这里插入图片描述

库目录配置如下:

在这里插入图片描述
在这里插入图片描述

附加依赖项配置如下:

在这里插入图片描述
在这里插入图片描述
MinGW编译

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

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

代码语言:javascript
复制
mingw32-make
mingw32-make install # 生成install目录,这是我们需要的include和lib

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

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

代码语言:javascript
复制
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}
        )
测试

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

代码语言:javascript
复制
// 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;
}

运行结果如下:

3.Ubuntu OpenCV环境配置

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

代码语言:javascript
复制
pkg-config --modversion opencv

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

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

代码语言:javascript
复制
# 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文件夹下两文件的下载路径都加上代理地址
这样在编译的时候就可以正常下载以上资源了。

下载完成并解压后:

代码语言:javascript
复制
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

然后进行环境配置:

代码语言:javascript
复制
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

添加动态库:

代码语言:javascript
复制
# 打开文件
sudo gedit /etc/ld.so.conf.d/opencv.conf 
# 添加lib路径
/usr/local/lib
# 更新链接库
sudo ldconfig

查看安装情况:

代码语言:javascript
复制
pkg-config --modversion opencv4 #查看版本号
pkg-config --libs opencv4 #查看libs库

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

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

代码语言:javascript
复制
# 先安装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的选项:

代码语言:javascript
复制
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:

代码语言:javascript
复制
cd /etc/ld.so.conf.d/
sudo rm opencv4.conf

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

代码语言:javascript
复制
cd ./OpenCV-xxx/build
sudo make uninstall

以上。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-01-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.OpenCV介绍
  • 2.Windows OpenCV环境配置(VS和MinGW)
    • VS编译
      • MinGW编译
        • 测试
        • 3.Ubuntu OpenCV环境配置
        • 4.卸载OpenCV4
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档