OpenCV开发教程之图像绘制

12人浏览 / 0人评论 / 添加收藏

一、什么是OpenCV

OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库。它提供了数千种优化算法,可以作为计算机视觉领域的通用工具库。

核心特点

1. 跨平台支持

支持 Windows、Linux、macOS、Android、iOS 等主流操作系统

提供 C++、Python、Java、MATLAB 等多种语言接口

2. 开源且免费

BSD 许可协议,可自由用于商业和学术项目

活跃的社区持续贡献和维护

3. 性能优化

底层使用 C/C++ 编写,运行效率高

支持 Intel IPP、OpenCL、CUDA 等硬件加速

主要功能模块

 
 
模块 功能
图像处理 滤波、边缘检测、色彩空间转换、直方图处理
特征检测 SIFT、SURF、ORB 等特征点提取与匹配
目标检测 Haar 级联、HOG + SVM、YOLO 等深度学习模型接口
图像分割 分水岭算法、GrabCut、语义分割
机器学习 SVM、决策树、K-means、神经网络等传统算法
深度学习 支持 TensorFlow、PyTorch、Caffe 等框架的模型加载
视频分析 运动检测、光流法、背景减除、目标跟踪
相机校准 相机标定、立体视觉、3D 重建
OCR 文字检测与识别(配合 Tesseract)

版本演进

OpenCV 1.x:早期版本,以 C 接口为主

OpenCV 2.x:引入 C++ 接口,模块化设计,成为主流版本

OpenCV 3.x:架构重构,部分模块移至 opencv_contrib,性能提升

OpenCV 4.x:移除 C 接口,加强深度学习支持,优化核心模块

典型应用场景

人脸检测与识别

自动驾驶中的车道线检测、交通标志识别

医疗图像分析

工业视觉缺陷检测

增强现实(AR)应用

安防监控中的行为分析

 

二、如何进行图像的绘制

我们直接上代码:

新建一个python项目,新建一个opencv_image.ipynb。

代码如下:

# 图像的绘制
import cv2
import numpy as np
# image = cv2.imread('./me.png')
# print(image.shape)
image = np.zeros((300, 300, 3), dtype=np.uint8)
image[:, :, 0] = 100
image[:, :, 1] = 100
image[:, :, 2] = 100
cv2.line(image, (100, 100), (250, 250), (255, 0, 0), 2)
cv2.rectangle(image, (30, 100), (50, 150), (0, 255, 0), 2)
cv2.circle(image, (150, 100), 20, (0, 0, 255), 3)
cv2.putText(image, "Hello OpenCV!", (50, 50), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 255, 255), 2)
cv2.imshow("image", image)
# 等待按键输入
cv2.waitKey()

 

演示效果如下:

全部评论