目录
6.1 数字图像基本概念
数字图像:连续的图像数字化、离散化之后的图像,是对连续图像的一种近似
像素:图像的最小单位
位图:记录每个像素值来存储和表达的图像
色彩深度/位深度:位图中每个像素点要用多少个二进制位表示
BMP格式:Windows系统标准位图格式
·二值图像(仅有两种颜色的图像)
每个像素只有两种可能取值,使用1位二进制表示,位深度为1
·灰度图像
每个像素使用一个字节表示,位深度为8(0为黑色,255为白色)
·彩色图像
每个像素都有红、绿、蓝三个分量
每个像素点使用三个字节,位深度为24
·RGBA图像
RGB图像+8位透明度信息
BMP格式无法压缩图像,所占空间较大。
JPEG格式:有损压缩,占空间小
PNG格式:无损压缩
GIF格式:支持静态与动态格式
TIFF格式:较复杂
6.2 Pillow图像处理库
matplotlib中有image库,仅支持导入PNG格式图像
PIL功能丰富,但已停止更新
Pillow:在PIL基础上发展而成
1.导入模块
from PIL import Image
2.图像操作
·打开图像Image.open
from PIL import Image
path="D:\Python Code\lena.tiff"
Img=Image.open(path)
Im.show()
·保存图像
Img.save("test.tiff")
·图像属性
·显示图像
from PIL import Image
import matplotlib.pyplot as plt
path="D:\Python Code\lena.tiff"
Img=Image.open(path)
plt.figure(figsize=(5,5))
plt.imshow(Img)
plt.show()
·转换图像的色彩模式
Img_gray=Img.convert("L")
·颜色通道的分离与合并
·转换成数组
import numpy as np
path="D:\Python Code\lena.tiff"
Img=Image.open(path)
arr_img=np.array(Img)
print("shape:",arr_img.shape)
print(arr_img)
·缩放图像
from PIL import Image
import matplotlib.pyplot as plt
import numpy as np
path="D:\Python Code\lena.tiff"
img=Image.open(path)
plt.figure(figsize=(5,5))
img_small=img.resize((64,64))
plt.imshow(img_small)
plt.show()
·旋转、镜像
·裁剪图像
6.3 手写数字数据集
MNIST数据集:含手写字
·加载数据
mnist=tf.keras.datasets.mnist
(train_x,train_y),(test_x,test_y)=mnist.load_data()
·显示数据
plt.imshow(train_x[0],cmap="gray")
plt.show()