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的基本使用方法,能够进行图像的读取、显示、保存以及简单的图像变换。这些基础知识将为后续更复杂的图像处理和计算机视觉任务打下坚实的基础。

相关推荐
abcd_zjq1 天前
【2025最新】【win10】vs2026+qt6.9+opencv(cmake编译opencv_contrib拓展模
人工智能·qt·opencv·计算机视觉·visual studio
Voyager_41 天前
图像处理踩坑:浮点数误差导致的缩放尺寸异常与解决办法
数据结构·图像处理·人工智能·python·算法
jie*1 天前
小杰深度学习(ten)——视觉-经典神经网络——LetNet
人工智能·python·深度学习·神经网络·计算机网络·数据分析
大叔_爱编程1 天前
基于Python的交通数据分析应用-hadoop+django
hadoop·python·django·毕业设计·源码·课程设计·交通数据分析
abcd_zjq1 天前
VS2026+QT6.9+opencv图像增强(多帧平均降噪)(CLAHE对比度增强)(边缘增强)(图像超分辨率)
c++·图像处理·qt·opencv·visual studio
Blossom.1181 天前
用一颗MCU跑通7B大模型:RISC-V+SRAM极致量化实战
人工智能·python·单片机·嵌入式硬件·opencv·机器学习·risc-v
mit6.8241 天前
[GazeTracking] 摄像头交互与显示 | OpenCV
人工智能·opencv·交互
工业互联网专业1 天前
基于大数据的学习资源推送系统的设计与实现 _django
vue.js·python·django·毕业设计·源码·课程设计·学习资源推送系统
木子杳衫1 天前
【软件开发】管理类系统
python·web开发
程序员小远1 天前
银行测试:第三方支付平台业务流,功能/性能/安全测试方法
自动化测试·软件测试·python·功能测试·测试工具·性能测试·安全性测试