图像矢量化 人工智能(36.人工智能基于API的图像增强常见操作)
图像矢量化 人工智能(36.人工智能基于API的图像增强常见操作)3、Compose,组合增强import paddle.vision.transforms as T import cv2 import numpy as np img=cv2.imread("img/street.jpg") #定义一个增强操作 transform=T.RandomResizedCrop(640) #执行操作 dst=transform(img) #显示结果 cv2.imshow("dst" dst) cv2.waitKey(0) cv2.destroyAllWindows()RandomResizedCrop(640) 'Compose' 'Resize' 'RandomResizedCrop' 'CenterCrop' 'RandomHorizo
在做图像处理时,我们经常要对图像进行一些增强操作,如:缩放、随机大小裁剪、中心裁剪、随机水平翻转、随机垂直翻转、随机裁剪、随机旋转、颜色调整等。
前面有讲过一篇基于OpenCV的图像增强操作( 21. OpenCV 图像增强操作 ),本着不用重复造轮子的想法,我们可以直接使用深度学习框架自带的图像增强操作API,下面以飞桨深度学习框架为例,具体讲一下图像增强的基本操作方法。
源图像(1330*1330)
一、读取显示源图像信息import cv2
img=cv2.imread("img/street.jpg")
print(img.shape)
cv2.imshow("img" img)
cv2.waitKey(0)
cv2.destroyAllWindows()
输出结果:(1330 1330 3)
二、框架自带图像增强常见API 'Compose' 'Resize' 'RandomResizedCrop' 'CenterCrop' 'RandomHorizontalFlip'
'RandomVerticalFlip' 'ColorJitter' 'RandomCrop' 'RandomRotation'
1、Resize 缩放
import paddle.vision.transforms as T
import cv2
import numpy as np
img=cv2.imread("img/street.jpg")
#定义一个增强操作
transform=T.Resize(size=(640 640))
#执行操作
dst=transform(img)
#显示结果
cv2.imshow("dst" dst)
cv2.waitKey(0)
cv2.destroyAllWindows()
Resize(size=(640 640))
2、RandomResizedCrop,随机缩放裁剪
import paddle.vision.transforms as T
import cv2
import numpy as np
img=cv2.imread("img/street.jpg")
#定义一个增强操作
transform=T.RandomResizedCrop(640)
#执行操作
dst=transform(img)
#显示结果
cv2.imshow("dst" dst)
cv2.waitKey(0)
cv2.destroyAllWindows()
RandomResizedCrop(640)
3、Compose,组合增强
有时需要对图像同时进行几个增强操作,如:随机大小裁剪 随机旋转 颜色变化
import paddle.vision.transforms as T
import cv2
import numpy as np
img=cv2.imread("img/street.jpg")
#定义一个的组合增强操作
transform=T.Compose([
T.RandomResizedCrop(640)
T.RandomRotation(np.random.randint(0 360))
T.ColorJitter(np.random.rand() np.random.rand() np.random.rand() np.random.rand())
])
dst=transform(img)
cv2.imshow("dst" dst)
cv2.waitKey(0)
cv2.destroyAllWindows()
随机大小裁剪 随机旋转 颜色变化
其他增强操作API的使用方法类似,具体使用的参数可以查看API说明。