arm架构opencv环境搭建(ubantu)

1. 获取OpenCV源代码

首先,我们需要从GitHub上克隆OpenCV的源代码仓库。使用以下命令:

git clone https://github.com/opencv/opencv.git
cd opencv
git checkout 4.x # 选择最新的4.x稳定版本

这将下载OpenCV的主仓库。如果你需要额外的模块,也可以克隆opencv_contrib仓库:

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

3. 编译和安装

注意:以下步骤假设你使用的是Python 3.8环境。

  1. 创建并进入构建目录:
mkdir build && cd build
  1. 配置CMake:
cmake -D CMAKE_INSTALL_PREFIX=/usr/local \
-D CMAKE_BUILD_TYPE=Release \
-D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules \
..

注意:如果在配置过程中缺少资源,请手动下载并复制到 opencv/.cache 目录中(使用 Ctrl+H 可查看隐藏目录)。

  1. 编译OpenCV:
make -j8

这里的 -j8 表示使用8个核心进行编译。你可以根据你的CPU核心数调整这个数字。

  1. 安装OpenCV:
sudo make install

如果在安装过程中遇到缺少文件的情况,请手动下载所需文件并放置到 opencv/.cache 目录中。

让我们解释一下这个CMake命令的各个部分:

  1. cmake: 这是CMake工具的命令,用于配置项目的构建过程。
  2. -D CMAKE_INSTALL_PREFIX=/usr/local: 这设置了安装目录。在这里,OpenCV将被安装到 /usr/local 目录下。
  3. -D CMAKE_BUILD_TYPE=Release: 这指定了构建类型为”Release”。Release版本通常会进行优化,以提高性能。
  4. -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules: 这指定了额外模块的路径。如果你克隆了opencv_contrib仓库,这将包含那些额外的模块。
  5. ..: 这指定了CMakeLists.txt文件的位置。在这个例子中,它位于当前目录的父目录中。

这个命令会生成必要的Makefile和其他构建文件,为后续的编译过程做准备。通过这些选项,你可以自定义OpenCV的安装位置、构建类型和包含的模块。

4. 配置系统环境

安装完成后,我们需要进行一些系统配置以确保OpenCV能够被正确识别和使用。

  1. 添加OpenCV库路径到系统库搜索路径:
sudo nano /etc/ld.so.conf
# 添加以下行
/usr/local/lib
# 保存并退出,然后运行
sudo ldconfig

这段代码是在配置系统环境,以确保OpenCV库能被正确识别和使用。让我解释一下这个过程:

  1. 首先,使用 sudo nano /etc/ld.so.conf 命令打开系统库配置文件。
  2. 在该文件中添加 /usr/local/lib 这一行。这是告诉系统在这个目录下查找库文件。
  3. 保存并退出文件编辑器。
  4. 然后运行 sudo ldconfig 命令。这个命令会刷新系统的库缓存,使得新添加的库路径生效。

这些步骤的目的是确保系统能够找到并正确加载OpenCV的库文件,这对于后续使用OpenCV进行开发是必要的。

  1. 配置PKG_CONFIG_PATH:
echo "export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig" >> ~/.bashrc
source ~/.bashrc

这段代码是用来配置PKG_CONFIG_PATH环境变量的。让我为您解释一下:

  • echo "export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig" >> ~/.bashrc
    这行命令将PKG_CONFIG_PATH的设置添加到用户的.bashrc文件中。它将/usr/local/lib/pkgconfig路径添加到现有的PKG_CONFIG_PATH中。这样做是为了确保pkg-config工具能够找到OpenCV的配置文件。
  • source ~/.bashrc
    这行命令重新加载.bashrc文件,使刚才的修改立即生效,而不需要重新登录。

配置PKG_CONFIG_PATH是很重要的,因为它允许系统在编译和链接时正确找到OpenCV库的信息。这对于后续使用OpenCV进行开发是必要的。

如果在编译时仍然找不到OpenCV的地址(仅适用于OpenCV4),可以运行以下命令:

sudo ln -s /usr/local/include/opencv4/opencv2/ /usr/local/include/

这些步骤将确保系统能够正确找到并使用OpenCV库。

/usr/local/include/opencv4/opencv2/:这是源路径,也就是你想要链接到的原始目录,根据实际情况进行修改。

5. 验证安装

安装完成后,我们可以使用以下命令来验证OpenCV是否已经正确安装并配置:

pkg-config --libs opencv4

如果安装成功,这个命令应该会输出OpenCV库的链接信息,类似于:

-L/usr/local/lib -lopencv_gapi -lopencv_stitching -lopencv_alphamat -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_dnn_objdetect -lopencv_dnn_superres -lopencv_dpm -lopencv_face -lopencv_freetype -lopencv_fuzzy -lopencv_hfs -lopencv_img_hash -lopencv_intensity_transform -lopencv_line_descriptor -lopencv_mcc -lopencv_quality -lopencv_rapid -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_superres -lopencv_optflow -lopencv_surface_matching -lopencv_tracking -lopencv_highgui -lopencv_datasets -lopencv_text -lopencv_plot -lopencv_videostab -lopencv_videoio -lopencv_xfeatures2d -lopencv_shape -lopencv_ml -lopencv_ximgproc -lopencv_video -lopencv_xobjdetect -lopencv_objdetect -lopencv_calib3d -lopencv_imgcodecs -lopencv_features2d -lopencv_dnn -lopencv_flann -lopencv_xphoto -lopencv_photo -lopencv_imgproc -lopencv_core

如果你看到类似的输出,说明OpenCV已经成功安装并正确配置。如果命令没有输出任何内容或报错,可能需要检查前面的安装步骤是否有遗漏或错误。