在CentOS 7上安装OpenCV 4(C ++和Python)

OpenCV于11月20日发布了OpenCV-3.4.4和OpenCV-4.0.0。这些版本中有很多错误修复和其他更改。发布重点如下:

  • OpenCV现在是C ++ 11库,需要符合C ++ 11标准的编译器。所需的最低CMake版本已提升至3.5.1。
  • 很多来自OpenCV 1.x的C API已被删除。
  • 在核心模块中的持久性(在XML,YAML或JSON中存储和加载结构化数据)已在C ++中完全重新实现,并且也丢失了C API。
  • 添加了新的模块G-API,它可以作为非常有效的基于图形的图像处理流水线的引擎。
  • dnn模块现在包括实验性Vulkan后端,并支持ONNX格式的网络。
  • 流行的Kinect Fusion算法已经实现并针对CPU和GPU进行了优化(OpenCL)
    QR码检测器和解码器已添加到objdetect模块中。
  • 非常高效且高质量的DIS密集光流算法已从opencv_contrib转移到视频模块。

在这篇文章中,我们将提供一个bash脚本,用于在CentOS 7上安装OpenCV-4.0(C ++,Python 2.7和Python 3.4)。我们还将简要研究脚本以了解其中的内容。请注意,此脚本将OpenCV安装在本地目录中,而不是整个系统上。我们跳吧​

如果您仍然无法在系统上安装OpenCV,但想要开始使用它,我们建议使用预先安装的OpenCV,Dlib,miniconda和jupyter笔记本的docker镜像以及本博客中描述的其他依赖项。

1.选择要安装的OpenCV版本

echo "OpenCV installation by learnOpenCV.com"

echo "Installing OpenCV - 4.0"

#Specify OpenCV version

cvVersion="master"

我们还将清理build目录并创建installation目录。

最后,我们将当前工作目录存储在cwd变量中。我们还将在此博客中将此目录称为OpenCV_Home_Dir

# Save current working directory

cwd=$(pwd)

2.安装包 

接下来,我们将安装Python 3.4以及OpenCV安装所需的其他库和包。

sudo yum -y install epel-release

sudo yum -y install git gcc gcc-c++ cmake3

sudo yum -y install qt5-qtbase-devel

sudo yum install -y python34 python34-devel python34-pip

sudo yum install -y python python-devel python-pip

sudo yum -y install python-devel numpy python34-numpy

sudo yum -y install gtk2-devel

sudo yum install -y libpng-devel

sudo yum install -y jasper-devel

sudo yum install -y openexr-devel

sudo yum install -y libwebp-devel

sudo yum -y install libjpeg-turbo-devel

sudo yum install -y freeglut-devel mesa-libGL mesa-libGL-devel

sudo yum -y install libtiff-devel

sudo yum -y install libdc1394-devel

sudo yum -y install tbb-devel eigen3-devel

sudo yum -y install boost boost-thread boost-devel

sudo yum -y install libv4l-devel

sudo yum -y install gstreamer-plugins-base-devel

3.创建Python虚拟环境

我们将创建Python虚拟环境以正确区分不同的OpenCV版本。
我们将安装virtualenvvirtualenvwrapper模块来创建Python虚拟环境

sudo pip3 install virtualenv virtualenvwrapper


echo "export WORKON_HOME=$HOME/.virtualenvs" >> ~/.bashrc


echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3" >> ~/.bashrc


echo "source /usr/bin/virtualenvwrapper.sh" >> ~/.bashrc


export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3


source /usr/bin/virtualenvwrapper.sh

现在让我们创建虚拟环境并安装一些模块。 

3.1 Python 3.4虚拟环境

mkvirtualenv OpenCV-"$cvVersion"-py3 -p python3

workon OpenCV-"$cvVersion"-py3

pip install cmake

pip install numpy scipy matplotlib scikit-image scikit-learn ipython dlib

# quit virtual environment

deactivate

3.2 Python 2.7虚拟环境

4. 克隆GitHub存储库

接下来我们将克隆opencvopencv_contrib GitHub存储库。

git clone https://github.com/opencv/opencv.git

cd opencv

git checkout $cvVersion

cd ..

 

git clone https://github.com/opencv/opencv_contrib.git

cd opencv_contrib

git checkout $cvVersion

cd ..

5. 构建OpenCV 

现在,我们一直在等待的部分 - 构建OpenCV。首先,我们将创建构建目录。

cd opencv

mkdir build

cd build

接下来,我们将使用CMake和make来构建OpenCV。 

cmake3 -D CMAKE_BUILD_TYPE=RELEASE \

            -D CMAKE_INSTALL_PREFIX=$cwd/installation/OpenCV-"$cvVersion" \

            -D INSTALL_C_EXAMPLES=ON \

            -D INSTALL_PYTHON_EXAMPLES=ON \

            -D WITH_TBB=ON \

            -D WITH_V4L=ON \

            -D OPENCV_SKIP_PYTHON_LOADER=ON \

            -D OPENCV_GENERATE_PKGCONFIG=ON \

            -D OPENCV_PYTHON3_INSTALL_PATH=$HOME/.virtualenvs/OpenCV-$cvVersion-py3/lib/python3.4/site-packages \

            -D OPENCV_PYTHON2_INSTALL_PATH=$HOME/.virtualenvs/OpenCV-$cvVersion-py2/lib/python2.7/site-packages \

        -D WITH_QT=ON \

        -D WITH_OPENGL=ON \

        -D PYTHON_DEFAULT_EXECUTABLE=/usr/bin/python3 \

        -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \

        -D ENABLE_CXX11=ON \

        -D BUILD_EXAMPLES=ON ..

 

make -j$(nproc)

make install

 

cd $cwd

6. 如何在C ++中使用OpenCV

在C ++中有两种使用OpenCV的方法,首选方法是使用CMake,另一种方法是使用g ++进行命令行编译。我们将看看两种方式。

6.1 使用CMakeLists.txt

CMakeLists.txt的基本结构将保持不变。唯一不同的是,您必须设置OpenCV_DIR,如下所示。

SET(OpenCV_DIR <OpenCV_Home_Dir>/installation/OpenCV-master/share/OpenCV/)

确保使用正确的路径替换OpenCV_Home_Dir。例如,在我的情况下:

完成CMakeLists.txt后,请按照以下步骤操作。

mkdir build && cd build

cmake ..

cmake --build . --config Release

6.2 使用g ++这将在构建目录中生成可执行文件

要编译示例文件(比方说my_sample_file.cpp),请使用以下命令。

g++ `pkg-config --cflags --libs <OpenCV_Home_Dir>/installation/OpenCV-

master/lib/pkgconfig/opencv.pc` my_sample_file.cpp -o my_sample_file

7. 如何在Python中使用OpenCV 

要使用使用Python脚本安装的OpenCV版本,首先要激活Python虚拟环境。

对于OpenCV-4.0:Python 3

workon OpenCV-master-py3

对于OpenCV-4.0:Python 2

激活虚拟环境后,即可进入Python shell并测试OpenCV版本。

ipython

import cv2

print(cv2.__version__)

猜你喜欢

转载自blog.csdn.net/ITLearnHall/article/details/85229656