赞
踩
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
首先安装Visual studio,这里我用的2017,可参考安装;
下载OpenCV库,我用的4.5.4,放在这里,提取码0121
;
首先,新建工程,设置Release/x64:
将下载好的OpenCV库解压到D盘,命名为opencv-454(防止版本多了乱):
打开属性管理器,配置Release/x64的属性:
包含目录配置如下:
库目录配置如下:
附加依赖项配置如下:
除了VS,也可以用MinGW
编译器来链接OpenCV库,首先下载源码并安装好cmake-gui
,然后配置选好我们mingw的地址,并勾选WITH_QT
和WITH_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; }
运行结果如下:
如果安装了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++ \ ..
首先删除opencv4.conf:
cd /etc/ld.so.conf.d/
sudo rm opencv4.conf
然后进入编译文件夹卸载(源代码编译完先不要删):
cd ./OpenCV-xxx/build
sudo make uninstall
以上。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。