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

图像基础:从像素到OpenCV

学习目标

通过本课程,学员们将深入了解图像的基本概念,包括像素、颜色空间(如RGB、HSV)以及常见的图像格式。同时,学员们将掌握如何使用OpenCV库读取、显示和保存图像,为后续深入学习图像处理打下坚实的基础。

相关知识点

  • Python OpenCV图像基础

学习内容

1 Python OpenCV图像基础

1.1 图像的基本概念

在数字图像处理中,图像可以被看作是一个二维函数f(x, y),其中x和y是空间坐标,而f(x, y)的值则对应于该点的亮度或颜色。在计算机中,图像通常以矩阵的形式存储,矩阵中的每个元素代表图像中的一个像素。像素是构成图像的最小单位,每个像素都有一个特定的位置和颜色值。

1.1.1 像素

像素(Pixel)是图像的基本单位,每个像素都有一个特定的位置和颜色值。在数字图像中,像素的颜色通常由红(R)、绿(G)、蓝(B)三种颜色的组合来表示,这就是常说的RGB颜色模型。每个颜色通道的值范围通常是从0到255,其中0表示该颜色完全缺失,255表示该颜色最亮。

1.1.2 图像格式

图像格式是指图像文件的存储方式,不同的图像格式有不同的特点和用途。常见的图像格式包括:

  • JPEG:一种有损压缩格式,适用于照片等需要大量存储空间的图像。
  • PNG:一种无损压缩格式,支持透明度,适用于需要保持图像质量的场景。
  • BMP:一种未压缩的图像格式,文件较大,但兼容性好。
  • GIF:支持动画,常用于网页和简单的动画制作。
1.1.3 图像的分辨率

图像的分辨率是指图像的宽度和高度,通常以像素为单位表示。例如,一个分辨率为1920x1080的图像表示该图像的宽度为1920像素,高度为1080像素。分辨率越高,图像的细节越丰富,但文件大小也会相应增加。

1.2 颜色空间

颜色空间是一种数学模型,用于描述颜色的表示方式。不同的颜色空间适用于不同的应用场景。在图像处理中,最常用的颜色空间包括RGB、HSV和灰度空间。

1.2.1 RGB颜色空间

RGB颜色空间是最常用的颜色模型之一,它通过红、绿、蓝三种颜色的组合来表示图像中的每个像素。每个颜色通道的值范围从0到255,其中0表示该颜色完全缺失,255表示该颜色最亮。RGB颜色空间适用于大多数显示设备,如计算机显示器和电视。

1.2.2 HSV颜色空间

HSV颜色空间是一种基于人类视觉系统的颜色模型,它将颜色分为色调(Hue)、饱和度(Saturation)和亮度(Value)三个分量。色调表示颜色的类型,饱和度表示颜色的纯度,亮度表示颜色的明暗程度。HSV颜色空间在图像处理中常用于颜色分割和颜色识别。

1.2.3 灰度空间

灰度空间是一种单通道的颜色模型,每个像素只有一个亮度值,范围从0到255。0表示黑色,255表示白色,中间的值表示不同的灰度。灰度图像在图像处理中常用于简化计算和提高处理速度。

1.3 使用OpenCV处理图像

OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,提供了丰富的图像处理和计算机视觉功能。在本课程中,将学习如何使用OpenCV读取、显示和保存图像。

1.3.1 安装OpenCV

在开始之前,确保已经安装了OpenCV库。可以使用以下命令通过pip安装:

%pip install opencv-python
1.3.2 读取图像

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

!wget https://model-community-picture.obs.cn-north-4.myhuaweicloud.com/ascend-zone/notebook_datasets/85ff9c822fa811f0a0bdfa163edcddae/example.jpg

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

import cv2

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

# 检查图像是否成功读取
if image is None:
    print("图像读取失败,请检查文件路径是否正确。")
else:
    print("图像读取成功!")
1.3.3 显示图像

使用cv2.imshow()函数可以显示图像。需要注意的是,cv2.imshow()函数会创建一个窗口来显示图像,因此需要使用cv2.waitKey()函数来等待用户按键,否则窗口会立即关闭。

import cv2

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

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

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

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

在这里插入图片描述
注意:退出命令行,需要鼠标点中图像,然后输入任意值,即可退出。再在命令行里输入cv2.destroyAllWindows()即可完全退出。(这个设计有点奇怪,哈哈)
在这里插入图片描述

1.3.4 保存图像

使用cv2.imwrite()函数可以将图像保存到文件中。该函数需要两个参数:保存的文件路径和要保存的图像。

import cv2

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

# 保存图像
cv2.imwrite('save.jpg', image)

print("图像保存成功!")
1.3.5 图像的基本操作

除了读取、显示和保存图像,OpenCV还提供了许多其他图像处理功能。例如,可以使用cv2.cvtColor()函数将图像从一种颜色空间转换为另一种颜色空间。

import cv2
import matplotlib.pyplot as plt

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

# 将图像从BGR颜色空间转换为灰度空间
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 将 BGR 格式转换为 RGB 格式,以适配 matplotlib 的显示
gray_image = cv2.cvtColor(gray_image, cv2.COLOR_BGR2RGB)
# 显示灰度图像
plt.imshow(gray_image)
plt.axis('off')
plt.show()

在这里插入图片描述
注意:此处直接关闭图片,即可会退到命令行,可以继续执行指令。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值