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

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

admin2个月前 (03-18)Python80

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 上下文管理器:从基础到高级应用

Python 的 with 语句和上下文管理器是每个开发者都应该掌握的高级技巧,但很多初学者对它的理解仅仅停留在文件操作层面。本文将深入讲解上下文管理器的原理、多种实现方式,以及在实际开发中的高级应用...

Python 装饰器进阶:从入门到实战,写出更灵活的函数增强技巧

# Python 装饰器进阶:从入门到实战,写出更灵活的函数增强技巧 ## 简介 很多 Python 开发者都听过装饰器,也知道怎么写简单的装饰器。但大多数人对装饰器的进阶用法,比如带参数的装饰器、...

Python 高级技巧:让你的代码更优雅高效

# Python 高级技巧:让你的代码更优雅高效 在 Python 编程的世界里,掌握基础语法只是第一步。真正的高手懂得运用高级技巧,让代码更简洁、更高效、更易维护。今天,我将分享一些实用且不那么广为...

Python 上下文管理器的实战应用与原理深度解析

Python 上下文管理器的实战应用与原理深度解析 概述 上下文管理器是 Python 中一个优雅而强大的特性,通过 with 语句实现资源的自动管理。本文将从原理到实践,深入讲解如何创建自定义上下...

Python 上下文管理器的高级应用与自定义实现

Python 的 with 语句是处理资源管理的黄金标准,最常见的应用场景就是文件操作。当我们使用 with open() 时,无论代码块中是否发生异常,文件都会被正确关闭。这种自动化的资源管理大大提...

Python 装饰器完全指南:从入门到精通

什么是装饰器?装饰器本质上是一个 Python 函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能。装饰器的返回值也是一个函数对象。在 Python 中,装饰器使用 @decorator...

发表评论

访客

看不清,换一张

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