---
title: OpenCV安装说明
description: "CV图算子的使用依赖于OpenCV，因此使用CV图算子前需要完成OpenCV编译操作。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/251RC1/accel/kunpengaccel_kpcv_06_0032.html
sourcePath: /source/zh/kunpengboostkithistory/251RC1/accel/kunpengaccel_kpcv_06_0032.html
indexId: 7773cac96238d7fb641d3ad99cac30ac9eb6b12c7f83b199cd7037c00913d90477
---
# OpenCV安装说明

CV图算子的使用依赖于OpenCV，因此使用CV图算子前需要完成OpenCV编译操作。

1. 搭建OpenCV环境。
  安装OpenCV环境所需的相关依赖，其中，Python安装的版本需为3.2及以上版本。

  1 yum install -y binutils cmake git pkgconfig gcc gcc-c++ lapack ffmpeg ffmpeg-devel libjpeg-* python3-devel python3-numpy

2. 使用CV图算子提供的加速算子需先完成OpenCV 4.10.0源码的patch修改操作。

  a. 获取OpenCV源码包    4.10.0.zip(https://github.com/opencv/opencv/archive/refs/tags/4.10.0.zip)
。
  b. 从压缩包BoostKit-kp_cv_***.zip解压得到kcv.patch和kcv_AIOP.patch文件。
  c. 可根据需要优化的函数在OpenCV源码目录下应用patch文件。
```
unzip /home/opencv-4.10.0.zip && cd /home/opencv-4.10.0
```


    - cvtColor、dilate、GaussianBlur、merge、remap、resize函数的优化需要应用kcv.patch文件。
      1 git apply /home/kcv.patch

    - convertTo、threshold、warpAffine、contourArea、countNonZero、morphologyEx、 copyMakeBorder、bitwise_and、bitwise_or、t函数的优化需要应用kcv_AIOP.patch文件。
      1 git apply /home/kcv_AIOP.patch

    - kcv_normalAndNCHW是基于用户自研接口normalAndNCHW优化的函数，不属于OpenCV的接口函数，可直接调用，无需合入任何patch，其用法请参见      kcv_normalAndNCHW
。
3. 在OpenCV源码目录下执行cmake命令，生成相关makefile文件。
  1 2 3 4 5 6 7 8 9 mkdir build cmake -S . -B build \ -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D CMAKE_CXX_FLAGS="-O3 -march=armv8-a" \ -D CMAKE_C_FLAGS="-O3 -march=armv8-a" \ -D BUILD_opencv_python3=ON\ -D OPENCV_GENERATE_PKGCONFIG=ON \ -D PYTHON3_EXECUTABLE=$(which python3)

4. 编译安装OpenCV。
  1 2 cd build make -j && make install

  此时可以正常调用优化后的OpenCV。


#### 故障排除

- 问题一：shll等汇编指令提示“Error: invalid shift amount at operand 3 -- 'shll v22.4s,v19.4h,#8'”等信息。
  解决方法：安装ffmpeg依赖和libjpeg相关包。

  1 yum install ffmpeg libjpeg-*

- 问题二：Python通过import cv2找不到cv2。
  解决方法：cv2没正确安装到Python的sitepackage，cmake指定Python路径后，在3执行cmake命令后需要看到如图1所示信息才为正确。如图2所示则为安装错误示例。

  图1 cv2正确安装回显信息

  图2 cv2未被正确安装回显信息

- 问题三：安装过程中提示“typing_stubs_generation.nodes.type_node.TypeResolutionError: Failed to resolve alias "GProtoArg" exposed as "GProtoArg"”，详细信息如下所示。
  解决方法：网络问题，无法访问Github网站下载ADE包。

  ADE包主要用于自动微分，增强OpenCV在深度学习和机器学习方面的功能，尤其是在需要梯度计算的场景中，不影响KPCV库使用。

- 问题四：DNN模块提示“[modules/dnn/CMakeFiles/opencv_dnn.dir/build.make: 2530: lib/libopencv_dnn.so.4.10.0] Error 1”，详细信息如下所示。
  解决方法：KPCV不涉及DNN模块，因此编译时通过增加编译选项：-DBUILD_opencv_dnn=OFF将DNN模块屏蔽。
