1、表示图像
常见的数字图像文件是*.jpg或*.png,其由像素数组组成的。像素值的范围是0-255的标量值,0表示黑色,255表示白色。常见的RGB图像是一个三维向量,向量中的每个分量分别对应于红色、绿色和蓝色的标量值。
图像包含nums*height*width*c的像素,其中nums表示图像数量,height表示像素的行数,width表示像素的列数,c表示通道数。
灰度图像:像素值为0时,图像为黑色;像数值为255时,图像为白色。
RGB图像:R为255,G、B为0时,图像为红色,其他情况同理。
1.1 将图像转换成结构化数组和标量
读取图像,将图像转换为像素值数组。
import cv2, matplotlib.pyplot as plt
img = cv2.imread('R-C.jpg')
在图像的第50~250行和第40~240列之间进行裁剪。最后,将图像转换为灰度图像
img = img[50:250,40:240]
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2BGRA)
plt.imshow(img_gray, cmap='gray')
plt.show()
将图像转换为一个25*25的数组
import cv2, matplotlib.pyplot as plt
img = cv2.imread('../R-C.jpg)
img = img[50:250,40:240]
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2BGRA)
img_gray_small = cv2.resize(img_gray, (25,25))
plt.imshow(img_gray_samll,cmap='gray')
plt.show()
cv2导入图像时,通道顺序时蓝色先,绿色次之,最后是红色,而我们通常习惯于观看基于RGB通道的图像。
import cv2, matplotlib.pyplot as plt
img = cv2.imread('../R-C.jpg')
img = img[50:250,40:240]
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
print(img.shape)
crop = img [-3:,-3:]
print(crop)
plt.imshow(crop)
1.2 训练神经网络
导入相关程序包和FMNIST数据集
from torch.utils.data import Dataset,DataLoader
import torch
import torch.nn as nn
import