内容简介:
????????OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。该拥有2500多种算法,可用于人像、物体检测识别、图像分类、寻找相似图像、文字识别、机器人自动驾驶领域等。
????????OpenCV用C++语言编写,它具有C ++,Python,Java和MATLAB接口,并支持Windows,Linux,Android和Mac OS,OpenCV主要倾向于实时视觉应用,并在可用时利用MMX和SSE指令, 如今也提供对于C#、Ch、Ruby,GO的支持。
Opencv下载:
????????本文配置安装的版本为Opencv3.4.10,环境为Ubuntu16.04。注:Linux下安装Opencv需要先安装cmake。
以下为官网给出的Opencv3.4.10的链接:
https://codeload.github.com/opencv/opencv/zip/3.4.10
?https://github.com/opencv/opencv_contrib/releases
?Opencv编译:
下载好Opencv源码后,进入源码文件夹,创建build文件夹,并将opencv_contrib3.4.10文件夹重命名为opencv_contrib放入Opencv源码目录下,这里给出cmake编译指令,直接在命令行中运行即可,所有指令如下:
cd opencv-3.4.10
mkdir build
cd build
注:
WITH_OPENGL=ON为OpenGL选项开启?,WITH_GTK_2_X=ON默认开启即可;
BUILD_TYPE=RELEASE为编译release库
CMAKE_INSTALL_PREFIX=/usr/local/opencv3为你指定Opencv要安装到的位置,推荐路径不变。
BUILD_NEW_PYTHON_SUPPORT=ON 为开启python支持
WITH_CUDA=ON WITH_NVCUVID=ON为开启cuda支持,需要显卡支持且安装显卡驱动和cuda,如果需要则开启
OPENCV_EXTRA_MODULES_PATH=/home/l/Downloads/opencv-3.4.10/opencv_contrib/modules该路径为opencv_contrib模块所在路径
OPENCV_ENABLE_NONFREE=ON使用特征提取模块sift、surf算子需开启此项
命令行执行如下编译指令:?
cmake -D WITH_OPENGL=ON -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/opencv3 -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_CUDA=ON -D WITH_NVCUVID=ON -D WITH_GTK_2_X=ON OPENCV_EXTRA_MODULES_PATH=/home/l/Downloads/opencv-3.4.10/opencv_contrib/modules OPENCV_ENABLE_NONFREE=ON ..
无报错即表示配置成功,接着进行下一步
sudo make -j8
sudo make install
然后将该目录添加到系统环境变量中:
sudo gedit ~/.bashrc
在该文件中添加如下语句:
#opencv2
#export PKG_CONFIG_PATH="/usr/lib/x86_64-linux-gnu/pkgconfig"
#export LD_LIBRARY_PATH="/usr/lib/x86_64-linux-gnu"
#opencv3
export PKG_CONFIG_PATH="/usr/local/opencv3/lib/pkgconfig"
export LD_LIBRARY_PATH="/usr/local/opencv3/lib"
?#为注释符,这样可以在opencv各个版本之间切换,只需要取消注释需要的版本即可。?如下指令可以让环境在当前bash生效。或者重启bash也可达到同样的效果。
source ~/.bashrc
?查看当前生效版本可以用如下指令,查看其安装路径文件夹名称即可知道具体版本。
`pkg-config --libs --cflags opencv`
安装结束后,建议不要删除源码目录,防止可能需要卸载时需手动删除,卸载时可以在build文件夹中执行卸载指令,指令如下:
sudo make uninstall
Opencv测试:?
? ? ? ?在自己的测试代码文件夹下,新建showImg.cpp,将下面的代码写入其中
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace cv;
int main(int argc,char **argv)
{
Mat Img = imread(argv[1]);
imshow("TestImg",Img);
waitKey(0);
return 0;
}
执行编译指令:
g++ showImg.cpp -o showImg `pkg-config --libs --cflags opencv`
运行可执行文件:(apple.jpg为自己准备显示的图片)
./showImg apple.jpg
|