Python OpenCV图像处理与深度学习:Python OpenCV入门-图像处理基础

Python OpenCV入门实践:图像处理基础

学习目标

通过本课程,学员们将了解OpenCV的基本概念、安装方法,掌握如何使用Python和OpenCV进行基本的图像处理操作,包括图像的读取、显示、保存以及简单的图像变换。

相关知识点

  • Python OpenCV图像处理基础

学习内容

1 Python OpenCV图像处理基础

1.1 OpenCV简介及其安装
1.1.1 OpenCV简介

OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库。OpenCV被广泛应用于各种计算机视觉应用,如图像和视频分析、人脸识别、物体识别、医学图像分析、增强现实等。它支持多种编程语言,包括Python、C++和Java,以及多种操作系统,如Windows、Linux、MacOS、Android和iOS。

OpenCV的开发始于1999年,由Intel公司发起,旨在加速计算机视觉应用的开发。2000年,OpenCV 1.0版本发布。随着时间的发展,OpenCV不断吸收新的算法和技术,成为计算机视觉领域不可或缺的工具之一。OpenCV 2.0版本引入了更多的高级功能,如机器学习模块。2012年,OpenCV 3.0版本发布,增加了更多的图像处理和视频分析功能。最新的OpenCV 4.0版本进一步优化了性能,增加了对深度学习的支持。

1.1.2 OpenCV的安装

安装OpenCV非常简单,特别是使用Python时。可以通过Python的包管理工具pip来安装OpenCV。打开命令行工具,输入以下命令:

python 复制代码
%pip install opencv-python

如果需要使用OpenCV的额外模块,如SIFT、SURF等,可以安装opencv-contrib-python包:

python 复制代码
%pip install opencv-contrib-python

安装完成后,可以在Python脚本中通过import cv2来导入OpenCV库。

1.2 图像的基本操作
1.2.1 读取图像

执行以下指令获取测试图片。

python 复制代码
!wget https://model-community-picture.obs.cn-north-4.myhuaweicloud.com/ascend-zone/notebook_datasets/188467642fa811f0b2fdfa163edcddae/example.jpg

在OpenCV中,读取图像非常简单。使用cv2.imread()函数可以读取图像文件。该函数接受一个文件路径作为参数,并返回一个NumPy数组,该数组表示图像的像素值。

python 复制代码
import cv2

# 读取图像
image = cv2.imread('example.jpg')

# 检查图像是否成功读取
if image is None:
    print("Error: Could not read image.")
else:
    print("Image successfully read.")
1.2.2 显示图像

读取图像后,可以使用cv2.imshow()函数来显示图像。该函数接受两个参数:窗口名称和图像数组。

python 复制代码
import cv2

# 读取图像
image = cv2.imread('example.jpg')

# 显示图像
cv2.imshow('Image', image)

# 等待用户按键
cv2.waitKey(0)

# 关闭所有窗口
cv2.destroyAllWindows()
1.2.3 保存图像

处理完图像后,可以使用cv2.imwrite()函数将图像保存到文件。该函数接受两个参数:文件路径和图像数组。

python 复制代码
import cv2

# 读取图像
image = cv2.imread('example.jpg')

# 保存图像
cv2.imwrite('save.jpg', image)
1.3 图像变换
1.3.1 图像灰度化

图像灰度化是将彩色图像转换为灰度图像的过程。在OpenCV中,可以使用cv2.cvtColor()函数来实现图像的灰度化。该函数接受两个参数:输入图像和颜色转换代码。

python 复制代码
import cv2
import matplotlib.pyplot as plt

# 读取图像
image = cv2.imread('example.jpg')

# 转换为灰度图像
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
python 复制代码
# 将 BGR 格式转换为 RGB 格式,以适配 matplotlib 的显示
gray_image = cv2.cvtColor(gray_image, cv2.COLOR_BGR2RGB)
# 显示灰度图像
plt.imshow(gray_image)
plt.axis('off')
plt.show()
1.3.2 图像缩放

图像缩放是改变图像大小的过程。在OpenCV中,可以使用cv2.resize()函数来实现图像的缩放。该函数接受多个参数,包括输入图像、输出图像的大小、插值方法等。

python 复制代码
import cv2

# 读取图像
image = cv2.imread('example.jpg')

# 缩放图像
resized_image = cv2.resize(image, (800, 600))
python 复制代码
# 将 BGR 格式转换为 RGB 格式,以适配 matplotlib 的显示
resized_image = cv2.cvtColor(resized_image, cv2.COLOR_BGR2RGB)
# 显示缩放后的图像
plt.imshow(resized_image)
plt.show()
1.3.3 图像旋转

图像旋转是将图像绕某个点旋转一定角度的过程。在OpenCV中,可以使用cv2.getRotationMatrix2D()cv2.warpAffine()函数来实现图像的旋转。

python 复制代码
import cv2
import numpy as np

# 读取图像
image = cv2.imread('example.jpg')

# 获取图像的中心点
height, width = image.shape[:2]
center = (width // 2, height // 2)

# 定义旋转角度和缩放比例
angle = 45
scale = 1.0

# 获取旋转矩阵
rotation_matrix = cv2.getRotationMatrix2D(center, angle, scale)

# 应用旋转
rotated_image = cv2.warpAffine(image, rotation_matrix, (width, height))
python 复制代码
# 将 BGR 格式转换为 RGB 格式,以适配 matplotlib 的显示
rotated_image = cv2.cvtColor(rotated_image, cv2.COLOR_BGR2RGB)
# 显示旋转后的图像
plt.imshow(rotated_image)
plt.axis('off')
plt.show()

通过本课程的学习,学员们将掌握OpenCV的基本使用方法,能够进行图像的读取、显示、保存以及简单的图像变换。这些基础知识将为后续更复杂的图像处理和计算机视觉任务打下坚实的基础。

相关推荐
树獭非懒3 小时前
AI大模型小白手册|Embedding 与向量数据库
后端·python·llm
唐叔在学习6 小时前
就算没有服务器,我照样能够同步数据
后端·python·程序员
曲幽8 小时前
FastAPI流式输出实战与避坑指南:让AI像人一样“边想边说”
python·ai·fastapi·web·stream·chat·async·generator·ollama
Flittly8 小时前
【从零手写 AI Agent:learn-claude-code 项目实战笔记】(1)The Agent Loop (智能体循环)
python·agent
vivo互联网技术10 小时前
ICLR2026 | 视频虚化新突破!Any-to-Bokeh 一键生成电影感连贯效果
人工智能·python·深度学习
敏编程11 小时前
一天一个Python库:virtualenv - 隔离你的Python环境,保持项目整洁
python
喝茶与编码13 小时前
Python异步并发控制:asyncio.gather 与 Semaphore 协同设计解析
后端·python
zone773913 小时前
003:RAG 入门-LangChain 读取图片数据
后端·python·面试
用户83562907805114 小时前
在 PowerPoint 中用 Python 添加和定制形状的完整教程
后端·python