本文主要介绍如何使用python进行图片的读取和扩增图片数量
1. 图像读取
python中图像的读取,有以下两种常见的方式:
- 利用Pillow库
- OpenCV 库
方式一:利用Pillow读取
from PIL import Image #导入需要的库
im = Image.open('G:/python/04DataWhale/04CV基础入门/data-街景字符/mchar_train/mchar_train/000001.png')
im.show()
方式二:用OpenCv来读取
import cv2 #导入库
img = cv2.imread('G:/python/04DataWhale/04CV基础入门/data-街景字符/mchar_train/mchar_train/000001.png')#文件地址
cv2.namedWindow('input_image',cv2.WINDOW_AUTOSIZE)#创建一个窗口
cv2.imshow('input_image',img)#用指定窗口显示图片
cv2.waitKey(0)
注:我在使用OpenCV进行读取时,代码跟网上的一样,但是一直没有成功,出现如下报错:
cv2.error: OpenCV(4.2.0) C:\projects\opencv-python\opencv\modules\highgui\src\window.cpp:376: error: (-215:Assertion failed) size.width>0 && size.height>0 in function ‘cv::imshow’
网上找了很多原因,如:
- 文件路径中不能出现“\”;
- 不能包含英文
- …
都试了,但是还是不行,暂时放在这里吧,等我找到原因,再更。
2.数据扩增(Data Augmentation)
- 目的;深度学习时代,数据为王。但是往往不可能拿到很多数据。这个时候,就需要数据扩增加训练集的样本量,同时也可以缓解模型过拟合的情况,还可以给模型带来更强的泛化能力。
- 核心:不能改变数据本来的意思,即扩增之后数据(包括图像)所代表含义不变。像图片6经过旋转就会变成9,改变了本身的意思,就是不对的。
常见的数据扩增方法
主要介绍pytorch中的torchvision
import torchvision.transforms as transforms # 导入模块
具体方法如下图