当前位置:首页 > Python > 正文内容

[Python 教程] OpenCV-Python 入门:图像处理基础详解

admin3小时前Python2

OpenCV-Python 入门:图像处理基础详解

OpenCV 是一个跨平台计算机视觉库,轻量级且高效,支持 Python 接口。本文将系统介绍 OpenCV 的核心概念和基础操作。

一、OpenCV 简介

OpenCV 可以运行在 Linux、Windows 和 Mac OS 上,由 C 函数和 C++ 类构成,实现了图像处理和计算机视觉的通用算法。

二、安装方法

# 安装 NumPy
pip install numpy

# 安装 OpenCV(主模块)
pip install opencv-python

# 安装完整包(含附加模块)
pip install opencv-contrib-python

三、核心模块

模块功能
core核心数据结构
imgproc图像滤波、几何变换、颜色空间转换
imgcodecs图像文件读写
highguiGUI 操作(窗口、滑动条、键盘鼠标事件)
videoio视频捕获和编解码
video视频分析(背景减法、运动估计、目标跟踪)
dnn深度神经网络
ml机器学习(分类、回归、聚类)
objdetect目标检测(人脸、眼睛、行人等)

四、应用场景

  • 人脸识别系统

  • 手势识别与人机交互

  • 物体识别与检测

  • 医学图像分析

  • 运动跟踪

  • 增强现实

  • 机器人与自动驾驶

五、图像基础概念

5.1 像素与颜色

数字图像由像素组成,RGB 模型中每个通道取值范围 [0, 255]。800×1200 分辨率的图像包含 96 万像素。

5.2 图像文件类型

  • BMP - Windows 位图

  • JPEG - 有损压缩

  • PNG - 无损压缩,支持透明

  • TIFF - 高质量图像存储

六、OpenCV 重要特性

6.1 坐标系

左上角为原点 (0, 0),像素索引从 0 开始。

6.2 BGR 颜色顺序

注意:OpenCV 使用 BGR 而非 RGB 顺序(历史原因)。

import cv2
import numpy as np

# 读取图像(BGR 顺序)
img = cv2.imread('image.jpg')

# BGR 转 RGB
img_rgb = img[:, :, ::-1]

# 或者使用 split/merge
b, g, r = cv2.split(img)
img_rgb = cv2.merge([r, g, b])

七、像素操作

7.1 访问像素

# 访问彩色图像像素 (x=40, y=6)
(b, g, r) = img[6, 40]

# 访问单个通道
b = img[6, 40, 0]

# 获取图像属性
height, width, channels = img.shape
total_pixels = img.size
data_type = img.dtype  # uint8

7.2 修改像素

# 设置像素为红色
img[6, 40] = (0, 0, 255)

# 获取区域(ROI)
top_left = img[0:50, 0:50]

7.3 灰度图像处理

# 读取灰度图像
gray = cv2.imread('image.jpg', cv2.IMREAD_GRAYSCALE)

# 访问像素强度
intensity = gray[6, 40]

# 修改像素
gray[6, 40] = 0  # 黑色

八、图像显示

import cv2

# 显示图像
cv2.imshow("Image", img)

# 等待键盘输入(0 表示无限等待)
cv2.waitKey(0)

# 关闭所有窗口
cv2.destroyAllWindows()

九、总结

本文介绍了 OpenCV 的基础知识,包括安装、核心模块、图像概念、像素操作等。掌握这些基础后,可以进一步学习图像滤波、几何变换、特征检测等高级技术。

十、后续学习方向

  • 图像滤波与平滑

  • 边缘检测

  • 轮廓查找与分析

  • 特征点检测

  • 目标识别与跟踪

  • 深度学习集成

相关文章

[Python 教程] OpenCV 实战:图像与视频文件处理

OpenCV 实战:图像与视频文件处理本文详细介绍如何使用 OpenCV 处理图像和视频文件,包括读取、显示、保存等操作。一、图像文件操作1.1 读取图像import cv2 #&nb...

[Python 教程] OpenCV 绘图教程:图形与文本标注

OpenCV 绘图教程:图形与文本标注本文介绍如何在 OpenCV 中绘制各种图形和添加文本,用于图像标注和可视化。一、绘制基本图形1.1 创建画布import cv2 import&nb...

[Python 教程] NumPy 数组操作详解

NumPy 数组操作详解 NumPy 是 Python 科学计算的基础库,提供高性能的多维数组对象。本文详细介绍 NumPy 数组的核心操作。 一、创建数组 import numpy as np...

[Python 教程] Pandas 数据分析实战

Pandas 数据分析实战 Pandas 是 Python 数据分析的核心库,提供 DataFrame 和 Series 数据结构。本文介绍 Pandas 的实用技巧。 一、创建 DataFrame...

[Python 教程] Matplotlib 数据可视化教程

Matplotlib 数据可视化教程 Matplotlib 是 Python 最常用的绘图库。本文介绍常用图表的绘制方法。 一、基础设置 import matplotlib.pyplot as pl...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。