侧边栏壁纸
博主头像
★街角晚灯★ 博主等级

博观而约取 厚积而薄发

  • 累计撰写 468 篇文章
  • 累计创建 185 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

如何在 CentOS 7 上安装 OpenCV

WinJay
2023-08-24 / 0 评论 / 0 点赞 / 361 阅读 / 0 字 / 正在检测是否收录...

如何在 CentOS 7 上安装 OpenCV

Guide to OpenCV and Python-Dynamic Duo of Image Processing

第 1 步:安装 OpenCV 的依赖项

  • 默认的 CentOS 软件源上包含一个名称为Development Tools的软件包组,这个组合包含了 GCC 编译器以及一系列库文件,还有其他编译软件需要用到的工具;使用以下命令安装编译 OpenCV 所需的所有依赖项:
# 安装
yum group install "Development Tools" -y
# 验证gcc 查看版本
gcc --version
# 安装其它依赖
yum -y install cmake3 gcc gtk2-devel numpy pkconfig
yum -y install epel-release
yum -y install gtk2-devel
yum -y install libpng-devel
yum -y install jasper-devel
yum -y install openexr-devel
yum -y install libwebp-devel
yum -y install libjpeg-turbo-devel 
yum -y install libtiff-devel 
yum -y install tbb-devel eigen3-devel
yum -y install boost boost-thread boost-devel
yum -y install libv4l-devel

Cmake源码安装

CMake 是跨平台的安装编译工具

CentOS 7上官方的CMake版本是2.8.12,比较旧

许多新的C/C++项目要求的最低版本至少是3 需要升级旧版本或者直接安装新版

所以接下来直接进行编译安装

#默认的 CentOS 软件源上包含一个名称为Development Tools的软件包组,这个组合包含了 GCC 编译器以及一系列库文件,还有其他编译软件需要用到的工具
#yum group install 它安装一个安装包,这个安装包包涵了很多单个软件,以及单个软件的依赖关系
yum group install "Development Tools"
 
#如果安装上述工具包时候网络不畅通 可以选择只安装gcc及其依赖
yum -y install gcc gcc-c++ make automake
 
#安装wget
yum -y install wget
 
#安装openssl(高版本cmake需要)
yum -y install openssl-devel
  
#下载cmake源代码包
wget https://github.com/Kitware/CMake/releases/download/v3.22.2/cmake-3.22.2.tar.gz
 
#或者从本站下载源代码包
wget https://www.witersen.com/wp-content/uploads/2022/02/cmake-3.22.2.tar.gz
 
#解压、编译、安装
tar -zxvf cmake-3.22.2.tar.gz
cd cmake-3.22.2/
./bootstrap
#cpu几核写几
make -j4
make install
 
#  查看版本号
cmake --version

Working app using Flask on localhost

第 2 步:下载 OpenCV x.x.x 代码

下载并解压缩 OpenCV x.x.x 代码压缩文件,如下所示:

wget https://github.com/opencv/opencv/archive/x.x.x.zip
unzip x.x.x.zip

# 以4.6.0为例
wget https://github.com/opencv/opencv/archive/4..6.0.zip
unzip 4.6.0.zip

第三步:编译安装OpenCV x.x.x

使用以下命令编译安装OpenCV,编译好的OpenCV文件会保存在/usr/local目录下;编译完 发现此目录并没有,但在/usr/share/pkgconfig/是有的。

cd opencv-x.x.x

mkdir build

cd build

cmake3 \
-D CMAKE_BUILD_TYPE=DEBUG \
-D CMAKE_INSTALL_PREFIX=/usr/local ..
# 上述执行成功

# /*    ---未测试---

cmake \
-D CMAKE_BUILD_TYPE=Release \
-D CMAKE_INSTALL_PREFIX=/usr/local  \
-D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules/ \
-D WITH_TBB=OFF  \
-D WITH_CUDA=OFF \
-D BUILD_opencv_gpu=OFF \
-D BUILD_opencv_gpuarithm=OFF \
-D OPENCV_GENERATE_PKGCONFIG=ON ..


cmake \
-D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D WITH_TBB=OFF \
-D BUILD_NEW_PYTHON_SUPPORT=ON \
-D WITH_V4L=ON \
-D WITH_QT=ON \
-D WITH_OPENGL=ON \
-D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules/ \
-D WITH_GTK=ON \
-D ENABLE_CXX11=ON \
-D OPENCV_GENERATE_PKGCONFIG=ON \
-D WITH_CUDA=OFF \
-D BUILD_opencv_cudacodec=OFF \
-D INSTALL_C_EXAMPLES=OFF \
-D INSTALL_PYTHON_EXAMPLES=OFF \
-D BUILD_EXAMPLES=OFF \
-D WITH_EIGEN=OFF \
-D WITH_VTK=OFF \
-D BUILD_TESTS=OFF \
-D BUILD_PERF_TESTS=OFF \
-D BUILD_opencv_python2=OFF \
../opencv

# */


make

make install

image-20230824163805248

PS,如果没有相关依赖包,很多模块opencv在cmake配置时就取消掉了,因此编译出来的包有限,如果没有您想要的包或库,可能需要反复cmake和make、make install直接重复,因此这个编译包最好不要再安装完成后进删除,需要等待版本安装稳定后再说。

由于cmake时指定/usr/local安装路径,因此采用的默认安装路径 :

# OpenCV 默认安装路径是/usr/local目录下, 相关文件部署情况:
    /usr/local/bin - executable files
    /usr/local/lib - libraries (.so)
    /usr/local/cmake/opencv4 - cmake package
    /usr/local/include/opencv4 - headers
    /usr/local/share/opencv4 - other files
 
# 由于cmake配置时,没有做安装目录指定,采用默认路径,也没有指定编译静态库,默认的是动态库编译

对于opencv,我们开发者最主要的就是头文件及库路径需要关注,本文的存放路径及相关内容信息如下:

# 头文件所在位置
[root@pyfree ***]# ls /usr/local/include/opencv4/opencv2/
calib3d      features2d      highgui.hpp    objdetect           stitching.hpp
calib3d.hpp  features2d.hpp  imgcodecs      objdetect.hpp       video
core         flann           imgcodecs.hpp  opencv.hpp          video.hpp
core.hpp     flann.hpp       imgproc        opencv_modules.hpp  videoio
cvconfig.h   gapi            imgproc.hpp    photo               videoio.hpp
dnn          gapi.hpp        ml             photo.hpp
dnn.hpp      highgui         ml.hpp         stitching
[root@pyfree ***]# 
# 动态库文件位置
[root@pyfree ***]# ls /usr/local/lib64 | grep libopencv
libopencv_calib3d.so
libopencv_calib3d.so.407
libopencv_calib3d.so.4.7.0
libopencv_core.so
libopencv_core.so.407
......

第 4 步:配置所需的变量

除了编译和安装文件外,您还需要为 pkgconfig 和 OpenCV 指定路径信息:

ln -sf /usr/local/lib64/pkgconfig/opencv4.pc /usr/share/pkgconfig/
ldconfig


//修改PKG_CONFIG_PATH,需要已经安装pkgconfig包
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/lib64/pkgconfig:/usr/share/pkgconfig
//修改LD_LIBRARY_PATH,将opencv库路径加入,例如文末加入
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib64:/usr/lib64:/lib64



source /etc/profile
//--2--,root
cd /etc/ld.so.conf.d/
vi opencv.conf
//或:gedit /etc/ld.so.conf.d/opencv.conf
//添加opencv动态库路径在文件中,如/usr/local/lib64
//配置生效,运行以下命令
ldconfig    


echo '/usr/local/lib/' >> /etc/ld.so.conf.d/opencv.conf

ldconfig

将缺失的文件由源码中拷贝过来。

cp /root/opencv_20230711/opencv-4.6.0/build/unix-install/opencv4.pc /usr/share/pkgconfig/

image-20230824164139030

ln -sf /usr/lib64/pkgconfig/ /usr/local/lib64/

image-20230824164732344

参考资料:

https://juejin.cn/post/7202211586676703291

https://www.witersen.com/?p=1458

https://blog.csdn.net/py8105/article/details/129874628

Index of /releases

https://pkgconfig.freedesktop.org/releases/

https://blog.csdn.net/weixin_44847326/article/details/127264380


前期探索

OpenCV

cat <<"EOF" | bash                              
sudo yum install epel-release git gcc gcc-c++ cmake3 qt5-qtbase-devel python python-devel python-pip cmake make -y
sudo yum install python-devel numpy python34-numpy gtk2-devel libpng-devel jasper-devel openexr-devel libwebp-devel -y
sudo yum install libjpeg-turbo-devel libtiff-devel  libdc1394-devel tbb-devel eigen3-devel gstreamer-plugins-base-devel -y
sudo yum install freeglut-devel mesa-libGL mesa-libGL-devel  boost boost-thread boost-devel libv4l-devel -y
mkdir -p ~/opencv_build && cd ~/opencv_build
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git

image-20230720175428116

cd ~/opencv_build/opencv && mkdir build && cd build
cmake3 -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D INSTALL_C_EXAMPLES=ON \
    -D INSTALL_PYTHON_EXAMPLES=ON \
    -D OPENCV_GENERATE_PKGCONFIG=ON \
    -D OPENCV_EXTRA_MODULES_PATH=~/opencv_build/opencv_contrib/modules \
    -D BUILD_EXAMPLES=ON ..

image-20230720180356017

make -j12


sudo make install
sudo ln -s /usr/local/lib64/pkgconfig/opencv4.pc /usr/share/pkgconfig/
sudo ldconfig
pkg-config --modversion opencv4
sudo ln -s /usr/local/lib/python2.7/site-packages/cv2  /usr/lib/python2.7/site-packages/
EOF
git clone https://gitee.com/opencv/opencv.git

checkout 4.6.0


image-20230711165303589



OpenCV 安装和配置 - Mac OS 环境

1、本文环境

  • Mac OS版本12.3.1
  • OpenCV版本4.6.0

2、OpenCV的安装

2.1、首先检查下是否已经安装了cmake

cmake --version

若没有安装,执行命令:

brew install cmake

2.2、下载OpenCV源码

官方下载页: Releases - OpenCV

github下载:git clone GitHub - opencv/opencv: Open Source Computer Vision Library

或者 brew install opencv

2.3、构建OpenCV

OpenCV安装路径
将下载好的源码解压到 /usr/local 目录下,笔者的目录 /usr/local/opencv-4.6.0

这里建议将OpenCV安装到了/usr/local目录下,一般无需配置环境变量;若你安装到自定义的目录,为了让编译器找到OpenCV我们需要:

修改环境变量

在CMakeLists设置OpenCV_DIR为你的安装目录,例如你安装到~/opencv/opencv_libs,按下面的方式修改:

set(OpenCV_DIR ~/opencv/opencv_libs/lib/cmake/opencv4)

find_package(OpenCV REQUIRED)

这种方式笔者还没有验证,交给喜欢折腾的人去实验吧,哈

创建release文件夹

cd /usr/local/opencv-4.6.0

mkdir release

进入release目录下,配置环境

cd release

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local …

编译安装
make -j8

这个过程需要耐心等待一下

-j8指的是同时执行8个任务(jobs),可以加快编译速度。根据你CPU的性能,选择合适的参数将每个核心拉满即可。

根据性能不同,编译时间有点长。编译成功后进行安装

sudo make install

make编辑的时候可能会报错,自行解决就可以了

笔者遇到了make[2]: *** No rule to make target zlib', needed by lib/libopencv_imgcodecs.4.6.0.dylib’. Stop.这个错误,原因是zlib这个包在Homebrew里面有冲突,解决办法就是卸载了有两个,

1、Homebrew然后重装一下

ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)”

2、将BUILD-ZLIB参数取消打勾(-DBUILD_ZLIB=OFF)

3、构建java环境
OpenCV构建Java环境需要安装JDK和ANT,我本机的环境是JDK 1.8、ANT 1.10.1

安装JDK
各位看官自行度娘一下吧,装完记得配置好环境变量。

安装ANT
brew install ant

cmake配置
这里参考一下参考官网的描述,需要配在cmake中配置-DBUILD_SHARED_LIBS=OFF

https://docs.opencv.org/4.6.0/d9/d52/tutorial_java_dev_intro.html

cmake -DBUILD_SHARED_LIBS=OFF …

然后我们看一下To be built项中是否包含了java,如果存在就说明java会被编译出来,否则java会在Unavailable项中出现,我这里折腾了许久,试过N中方式始终找不到JDK环境,最后重启了系统就解决了…

如果java Unavailable,在日志的后面会有提示,如果后面项目为空则说明没有找到对应的环境

编译安装
检查java没问题后我们执行编译和安装即可

make -j8

sudo make install

0
AI
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区