如何在 imgaug 中为一张图像应用多个旋转值? (不是随机的)
How to apply mutliple rotate values for one image in imgaug? (Not randomly)
from imgaug import augmenters as iaa
from imgaug import parameters as iap
import cv2
aug=iaa.Affine(rotate=iap.DeterministicList([90,180,270]))
imglist = []
img = cv2.imread('i/1.jpg')
imglist.append(img)
images_aug = aug.augment_images(imglist)
cv2.imwrite('i/new.jpg', images_aug[0])
我有这段代码,想将我的 3 个旋转值 (90,180,270) 应用到图像。所以我的输出应该是 3 张图像(旋转了 90,180,270 个角度版本的图像)但是当我使用这段代码时,它会分配一个随机旋转值并给我一个旋转图像。
这就是你想要的:
from imgaug import augmenters as iaa
from imgaug import parameters as iap
import cv2
rotations = [90,180,270]
aug = iaa.Affine(rotate=iap.DeterministicList(rotations))
img = cv2.imread('i/1.jpg')
imglist = [img for i in range(len(rotations))]
images_aug = aug.augment_images(imglist)
for i in range(len(rotations)):
cv2.imwrite('i/new_{}.jpg'.format(rotations[i]), images_aug[i])
变化是:
- 我们有一个旋转数组,在整个代码中都会用到。这只是有助于缩短后续代码。
- 我们在
imglist
中添加了足够的 img
s 来覆盖每个旋转。
- 我们输出来自
images_aug
的每个图像。
最终结果:
from imgaug import augmenters as iaa
from imgaug import parameters as iap
import cv2
aug=iaa.Affine(rotate=iap.DeterministicList([90,180,270]))
imglist = []
img = cv2.imread('i/1.jpg')
imglist.append(img)
images_aug = aug.augment_images(imglist)
cv2.imwrite('i/new.jpg', images_aug[0])
我有这段代码,想将我的 3 个旋转值 (90,180,270) 应用到图像。所以我的输出应该是 3 张图像(旋转了 90,180,270 个角度版本的图像)但是当我使用这段代码时,它会分配一个随机旋转值并给我一个旋转图像。
这就是你想要的:
from imgaug import augmenters as iaa
from imgaug import parameters as iap
import cv2
rotations = [90,180,270]
aug = iaa.Affine(rotate=iap.DeterministicList(rotations))
img = cv2.imread('i/1.jpg')
imglist = [img for i in range(len(rotations))]
images_aug = aug.augment_images(imglist)
for i in range(len(rotations)):
cv2.imwrite('i/new_{}.jpg'.format(rotations[i]), images_aug[i])
变化是:
- 我们有一个旋转数组,在整个代码中都会用到。这只是有助于缩短后续代码。
- 我们在
imglist
中添加了足够的img
s 来覆盖每个旋转。 - 我们输出来自
images_aug
的每个图像。
最终结果: