欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 游戏 > Linux 35.6 + JetPack v5.1.4@python opencv安装

Linux 35.6 + JetPack v5.1.4@python opencv安装

2025/4/3 11:06:23 来源:https://blog.csdn.net/lida2003/article/details/143814156  浏览:    关键词:Linux 35.6 + JetPack v5.1.4@python opencv安装

Linux 35.6 + JetPack v5.1.4@python opencv安装

  • 1. 源由
  • 2. 步骤
    • Step 1: 检查现有 OpenCV 安装路径
    • Step 2: 编译 OpenCV 并安装
    • Step 3: 替换现有的 OpenCV
    • Step 4: 设置环境变量
    • Step 5: 验证替换后的 OpenCV
    • Step 6: 可能的其他问题
  • 3. 验证

1. 源由

为了使得python下的opencv代码使用到GPU的性能,增加处理速率,减少延时,发挥Jetson Orin板子的性能。

  • 主要目的:为了使用python处理抖动视频,做一些实时防抖处理。

2. 步骤

以下是替换 OpenCV 的步骤:

Step 1: 检查现有 OpenCV 安装路径

在终端或 Python 环境中检查当前 OpenCV 的版本及安装路径:

$ python3 -c "import cv2; print('OpenCV 版本:', cv2.__version__); print('OpenCV 路径:', cv2.__file__)"

这将输出当前使用的 OpenCV 路径,例如:

OpenCV 版本: 4.5.3
OpenCV 路径: /usr/local/lib/python3.8/dist-packages/cv2/python-3.8/cv2.cpython-38-x86_64-linux-gnu.so

注:记下路径,稍后需要清理或替换它。

Step 2: 编译 OpenCV 并安装

  • (1) 下载 OpenCV 源码
    从 OpenCV GitHub 获取源码:
$ git clone https://github.com/opencv/opencv.git
$ git clone https://github.com/opencv/opencv_contrib.git  # 可选,包含扩展模块
  • (2) 使用 CMake 配置编译参数
    进入 OpenCV 源码目录并创建构建文件夹:
$ cd opencv
$ mkdir build && cd build

配置 CMake:

cmake -D CMAKE_BUILD_TYPE=Release \-D CMAKE_INSTALL_PREFIX=/usr/local \-D WITH_CUDA=ON \-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \-D PYTHON_EXECUTABLE=$(which python3) \..

注:其他编译选项,请保持原来配置情况。

  • (3) 编译和安装
make -j$(nproc)
sudo make install
sudo ldconfig  # 刷新动态链接库

编译完成后,OpenCV 会被安装到 /usr/local

Step 3: 替换现有的 OpenCV

  • (1) 删除旧版本 OpenCV
    根据前面检查到的路径,删除旧版本的 OpenCV:
sudo pip uninstall opencv-python opencv-contrib-python
sudo rm -rf /usr/local/lib/python3.x/dist-packages/cv2  # 根据版本修改路径
sudo rm -rf /usr/lib/python3.x/site-packages/cv2
  • (2) 链接新的 OpenCV
    编译好的 OpenCV 通常安装在 /usr/local/lib/python3.x/site-packages 或类似路径。将其链接到当前的 Python 环境:
cd /usr/local/lib/python3.x/site-packages  # 替换为实际路径
sudo ln -s /usr/local/python/cv2/python-3.8/cv2.cpython-38-x86_64-linux-gnu.so cv2.so

Step 4: 设置环境变量

确保动态链接库和 Python 环境能正确加载新编译的 OpenCV。

  • (1) 配置 LD_LIBRARY_PATH
    ~/.bashrc 中添加:
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

然后刷新配置:

source ~/.bashrc
sudo ldconfig
  • (2) 检查 Python 模块路径
    确保 Python 能加载新的 OpenCV 模块:
python3 -c "import cv2; print(cv2.__file__)"

输出应该是新编译的路径,例如:

/usr/local/lib/python3.8/site-packages/cv2.cpython-38-x86_64-linux-gnu.so

Step 5: 验证替换后的 OpenCV

运行以下代码测试 OpenCV 是否正常工作:

import cv2
print("OpenCV 版本:", cv2.__version__)
print("CUDA 是否支持:", cv2.cuda.getCudaEnabledDeviceCount() > 0)

如果 OpenCV 版本正确且支持 CUDA,则替换成功。

Step 6: 可能的其他问题

  • 如果 Python 环境中无法识别 OpenCV
    确保 OpenCV 的 .so 文件在 Python 的 sys.path 中。可运行以下代码检查:

    import sys
    print(sys.path)
    
  • 动态库冲突
    如果多个 OpenCV 动态库存在,可能需要删除 /usr/lib 中的旧版本动态库或检查 LD_LIBRARY_PATH

3. 验证

上述步骤,非常适合开发人员,但是对于一般用户不是很友好。因为OpenCV编译本身就有不少配置选项,不同的设置可能都会有不同的应用场景。

而且将自己编译的 OpenCV 替换为系统默认的 OpenCV 或 Python 环境中现有的 OpenCV,需要正确配置环境路径和库加载顺序。

为了更好的上手 OpenCV 在Jetson Orin板子上的应用,我们提供了大量简单且使用的日志记录供大家参考:

【1】ubuntu22.04@Jetson Orin Nano之OpenCV安装
【2】ubuntu22.04@laptop OpenCV定制化安装
【3】ubuntu22.04@laptop OpenCV安装

根据以上 python 的 OpenCV 安装,对脚本进行了修正add python opencv build support for jetson,大家可以一键安装!

  • 步骤
$ git clone git@github.com:SnapDragonfly/SnapLearnOpenCV.git
$ cd SnapLearnOpenCV/scripts
$ sudo ./install_opencv_for_jetson.sh

注1:如果没有注册做github账号,请使用git clone https://github.com/SnapDragonfly/SnapLearnOpenCV.git
注2:整个过程比较耗时,估计在2小时以上,请耐心等待。

  • 安装前
$ python3 -c "import cv2; print('OpenCV 版本:', cv2.__version__); print('OpenCV 路径:', cv2.__file__)"
OpenCV 版本: 4.10.0
OpenCV 路径: /home/daniel/.local/lib/python3.8/site-packages/cv2/__init__.py$ python3 -c "import cv2; print('OpenCV 版本:', cv2.__version__); print('CUDA 是否支持:', cv2.cuda.getCudaEnabledDeviceCount() > 0)"
OpenCV 版本: 4.10.0
CUDA 是否支持: False
  • 安装后
$ python3 -c "import cv2; print('OpenCV 版本:', cv2.__version__); print('OpenCV 路径:', cv2.__file__)"
OpenCV 版本: 4.9.0
OpenCV 路径: /usr/local/lib/python3.8/dist-packages/cv2/__init__.py$ python3 -c "import cv2; print('OpenCV 版本:', cv2.__version__); print('CUDA 是否支持:', cv2.cuda.getCudaEnabledDeviceCount() > 0)"
OpenCV 版本: 4.9.0
CUDA 是否支持: True

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词