前一篇的笔记总结了大部分图像输入时大小调整的操作包括resize和crop,然后这一篇记录了常见的图像的翻转,旋转等位置的变化,希望能帮到你吧!
import numpy as np
from PIL import Image
import albumentations as A
import matplotlib.pyplot as plt复制
def display_images(img, img2):
fig, axes = plt.subplots(1,2, figsize=(10,20))
axes[0].imshow(img)
axes[0].set_title(r'Original')
axes[1].imshow(img2)
axes[1].set_title(r'Transformed')复制
图像分类篇
compose HorizontalFlip VerticalFlip Flip Rotate ShiftScaleRotate Transpose IAAAffine
HorizontalFlip
HorizontalFlip水平方向翻转图像
transform = A.Compose([
A.LongestMaxSize(max_size=512),
A.HorizontalFlip(p=1.0),
])复制
path = r'.\kitten-1845789_1920.jpg'
origin_img = np.array(Image.open(path))
img = transform(image=origin_img)['image']
display_images(origin_img, img)复制
VerticalFlip
VerticalFlip垂直方向翻转图像
transform = A.Compose([
A.LongestMaxSize(max_size=512),
A.VerticalFlip(p=1.0),
])复制
img = transform(image=origin_img)['image']
display_images(origin_img, img)复制
Flip
随机的水平方向翻转或垂直方向翻转图像
transform = A.Compose([
A.LongestMaxSize(max_size=512),
A.Flip(p=1.0),
])复制
img = transform(image=origin_img)['image']
display_images(origin_img, img)复制
Rotate
使图像旋转一个角度,limit控制旋转的角度,若是一个数字则旋转角度固定,若是元组比如(-30,30),那么旋转角度就在这个区间内:
transform = A.Compose([
A.LongestMaxSize(max_size=512),
A.Rotate(limit=60, p=1.0),
])复制
img = transform(image=origin_img)['image']
display_images(origin_img, img)复制
ShiftScaleRotate
随机的对图像进行平移,缩放和旋转操作,shift_limit,scale_limit和rotate_limit分别控制了平移、缩放和旋转,同样可以传入单个数字或元组:
transform = A.Compose([
A.LongestMaxSize(max_size=512),
A.ShiftScaleRotate(shift_limit=0.1, scale_limit=0.5, rotate_limit=45, p=1.0),
])复制
img = transform(image=origin_img)['image']
display_images(origin_img, img)复制
Transpose
转置图像的x轴和y轴
transform = A.Compose([
A.LongestMaxSize(max_size=512),
A.Transpose(p=1.0),
])复制
img = transform(image=origin_img)['image']
display_images(origin_img, img)复制
IAAAffine
仿射变换,上面所有的旋转,平移,缩放,包括translate和shear都可以用这个完成,scale代表图像缩放的大小,若是1.0则就保持原图大小,translate_percent意味着translate和shear的时候最多有多少像素会移动,rotate控制旋转角度:
transform = A.Compose([
A.LongestMaxSize(max_size=512),
A.IAAAffine(scale=(1.0,2.0), translate_percent=0.2, rotate=(-30,30), p=1.0),
])复制
img = transform(image=origin_img)['image']
display_images(origin_img, img)复制
那就这样吧,BYEBYE!
文章转载自Yuan的学习笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。