Linux下怎么安装及使用OpenCV

发布时间:2022-01-25 10:16:15 作者:iii
来源:亿速云 阅读:229
# Linux下怎么安装及使用OpenCV

## 一、OpenCV简介

OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库,由Intel于1999年首次发布。它包含了2500多种优化算法,涵盖:

- 图像处理
- 视频分析
- 特征检测
- 目标识别
- 机器学习
- 深度学习集成

目前广泛应用于:
✓ 安防监控
✓ 自动驾驶
✓ 医学影像
✓ AR/VR
✓ 工业检测

## 二、安装前准备

### 1. 系统要求
- 推荐Linux发行版:Ubuntu 20.04/22.04、CentOS 7+
- 内存:至少4GB(处理高清视频建议8GB+)
- 磁盘空间:10GB可用空间

### 2. 安装依赖项
```bash
# Ubuntu/Debian
sudo apt update
sudo apt install -y build-essential cmake git pkg-config
sudo apt install -y libjpeg-dev libtiff-dev libpng-dev
sudo apt install -y libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt install -y libxvidcore-dev libx264-dev
sudo apt install -y libgtk-3-dev libatlas-base-dev gfortran
sudo apt install -y python3-dev python3-pip

# CentOS/RHEL
sudo yum groupinstall "Development Tools"
sudo yum install cmake git pkgconfig
sudo yum install libjpeg-turbo-devel libpng-devel
sudo yum install ffmpeg-devel

三、三种安装方式

方法1:通过包管理器安装(最简单)

# Ubuntu
sudo apt install -y python3-opencv libopencv-dev

# 验证安装
python3 -c "import cv2; print(cv2.__version__)"

优点:一键安装
缺点:版本可能较旧

方法2:从源码编译安装(推荐)

1. 下载源码

cd ~
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git  # 额外模块

2. 创建编译目录

cd opencv
mkdir build && cd build

3. CMake配置(关键步骤)

cmake -D CMAKE_BUILD_TYPE=RELEASE \
      -D CMAKE_INSTALL_PREFIX=/usr/local \
      -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
      -D WITH_CUDA=ON \
      -D ENABLE_FAST_MATH=1 \
      -D CUDA_FAST_MATH=1 \
      -D WITH_CUBLAS=1 \
      -D OPENCV_ENABLE_NONFREE=ON \
      -D BUILD_EXAMPLES=ON ..

4. 编译安装

make -j$(nproc)  # 使用所有CPU核心
sudo make install
sudo ldconfig  # 更新动态链接库

方法3:Anaconda环境安装

conda create -n opencv_env python=3.9
conda activate opencv_env
conda install -c conda-forge opencv

四、环境验证

C++验证

// test.cpp
#include <opencv2/opencv.hpp>
using namespace cv;
int main() {
    Mat image = imread("test.jpg");
    imshow("Display", image);
    waitKey(0);
    return 0;
}

编译命令:

g++ test.cpp -o test `pkg-config --cflags --libs opencv4`

Python验证

import cv2
print("OpenCV版本:", cv2.__version__)

img = cv2.imread('test.jpg')
cv2.imshow('Demo', img)
cv2.waitKey(0)

五、基础使用教程

1. 图像处理基础

# 读取/显示图像
img = cv2.imread('input.jpg', cv2.IMREAD_COLOR)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# 边缘检测
edges = cv2.Canny(gray, 100, 200)

# 保存结果
cv2.imwrite('output.jpg', edges)

2. 视频处理

cap = cv2.VideoCapture(0)  # 0表示默认摄像头

while True:
    ret, frame = cap.read()
    if not ret: break
    
    # 转换为灰度帧
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    
    cv2.imshow('Live', gray)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

3. 人脸检测示例

face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')

img = cv2.imread('group.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

faces = face_cascade.detectMultiScale(gray, 1.3, 5)
for (x,y,w,h) in faces:
    cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)

cv2.imshow('Face Detection', img)
cv2.waitKey(0)

六、性能优化技巧

  1. 使用UMat:OpenCL加速
cv::UMat uimage = imread("image.jpg").getUMat(cv::ACCESS_READ);
  1. 多线程处理
cv2.setUseOptimized(True)
cv2.setNumThreads(4)  # 使用4个线程
  1. 减少内存拷贝
roi = img[y1:y2, x1:x2]  # 使用数组切片而非拷贝

七、常见问题解决

1. 找不到动态库

export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

2. CUDA加速问题

检查CUDA支持:

print(cv2.cuda.getCudaEnabledDeviceCount())

3. 视频编解码问题

安装额外编码器:

sudo apt install libx264-dev ffmpeg

八、进阶学习资源

  1. 官方文档:https://docs.opencv.org/4.x/
  2. 推荐书籍:
    • 《Learning OpenCV 4》 by Adrian Kaehler
    • 《OpenCV计算机视觉编程攻略》
  3. 实战项目:
    • 车牌识别系统
    • 实时人数统计
    • 手势识别控制

提示:本文档基于OpenCV 4.5+版本,如需特定版本请修改git checkout命令。建议在虚拟环境中测试新功能,避免污染系统环境。 “`

这篇文章包含了从安装到基础使用的完整流程,采用模块化结构便于阅读。实际使用时可根据需要调整: 1. 安装部分可选择最适合的方式 2. 示例代码需要准备对应的测试图片 3. CUDA加速部分需要NVIDIA显卡支持 4. 中文注释可自行添加

推荐阅读:
  1. Window系统下Python如何安装OpenCV库
  2. Linux下Docker如何安装使用

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

opencv linux

上一篇:Linux系统中如何部署Docker

下一篇:怎么在Linux下进行C++开发

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》