OpenCV
简介
OpenCV(开源计算机视觉库)是一个编程函数库,主要用于实时计算机视觉。
应用领域
-
图像处理和分析:OpenCV 可以用来进行各种图像处理和分析操作,如图像增强、滤波、边缘检测、形态学操作、颜色空间转换等。
-
目标检测和跟踪:OpenCV 可以用来进行目标检测和跟踪,比如人脸识别、车辆识别、行人检测等。
-
机器视觉和工业自动化:OpenCV 可以用来进行机器视觉和工业自动化方面的应用,如自动检测和分类、工业质量控制等。
-
视频分析和处理:OpenCV 可以用来进行视频分析和处理,如运动检测、物体跟踪、视频压缩、视频编解码等。
-
医学图像处理:OpenCV 还可以用于医学图像处理和分析,如医学图像的分割、配准、重建等。
-
智能交通系统:OpenCV 可以用于智能交通系统,包括车牌识别、交通流量统计、路面损坏检测等。
安装
APT 安装
- C++ 库
- Python 库
sudo apt install libopencv-dev
pip3 install opencv-python
编译安装
- 到下载 OpenCV 官网下载所需要的版本(这里以 4.10 为例)
wget https://github.com/opencv/opencv/archive/refs/tags/4.10.0.zip
- 解压
unzip 4.10.0.zip
- 安装所需要的包
sudo apt-get install build-essential cmake git unzip pkg-config libjpeg-dev libpng-dev libavcodec-dev libavformat-dev libswscale-dev libgtk2.0-dev libcanberra-gtk* libgtk-3-dev libgstreamer1.0-dev gstreamer1.0-gtk3 \
libgstreamer-plugins-base1.0-dev gstreamer1.0-gl libxvidcore-dev libx264-dev python3-dev python3-numpy python3-pip libtbb2 libtbb-dev libdc1394-22-dev libv4l-dev v4l-utils \
libopenblas-dev libatlas-base-dev libblas-dev liblapack-dev gfortran libhdf5-dev libprotobuf-dev libgoogle-glog-dev libgflags-dev protobuf-compiler -y
- 编译
mkdir build
cd build
cmake ..
make -j$(nproc)
sudo make install
sudo ldconfig
示例代码
以下以 Python 为例展示一些简单的示例。
特征检测
- Harris 角点检测
harris_corner_detection.py
效果图:
![python harris corner detection](/img/common/opencv/harris_corner_detection_py.webp)
- Shi-Tomasi 角点检测
shi_tomasi_detection.py
效果图:
![python shi tomasi detection](/img/common/opencv/shi_tomasi_detection_py.webp)
- ORB 特征检测
pip install opencv-contrib-python
orb.py
效果图:
![python orb](/img/common/opencv/orb_py.webp)
人脸识别
- 基于图片
pic_face_detect.py
效果图:
![pic face detect](/img/common/opencv/pic_face_detect.webp)
- 基于摄像头
camera_face_detect.py
该 demo 会打开摄像头,将识别到的人脸框出。
视频剪辑
video_cut.py
该程序会将原有视频帧率帧率调整为 40,大小调整为 1920 * 1080。