You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在imgaug中为单张图片应用多个非随机固定旋转值

问题解决方法

问题根源

你当前代码中iap.DeterministicList([90,180,270])的逻辑是:为输入图像列表中的每一张图,依次从列表中取一个旋转参数应用。你仅传入了1张原图,所以只会得到1张应用了第一个角度(90度)的处理结果。

实现方案

方案1:传入3份原图副本,批量处理

该方案效率更高,适合后续扩展批量处理多图场景:

from imgaug import augmenters as iaa
from imgaug import parameters as iap
import cv2

aug = iaa.Affine(rotate=iap.DeterministicList([90,180,270]))

img = cv2.imread('i/1.jpg')
# 构造包含3份相同原图的列表,对应3个旋转角度
imglist = [img] * 3

images_aug = aug.augment_images(imglist)

# 分别保存3张旋转后的图片
for idx, rotated_img in enumerate(images_aug):
    cv2.imwrite(f'i/new_rotate_{90*(idx+1)}.jpg', rotated_img)

方案2:循环遍历角度单独处理

逻辑更直白,可读性更强:

from imgaug import augmenters as iaa
import cv2

img = cv2.imread('i/1.jpg')
rotate_angles = [90, 180, 270]

for angle in rotate_angles:
    # 每次指定固定角度构造增强器
    aug = iaa.Affine(rotate=angle)
    rotated_img = aug.augment_image(img)
    cv2.imwrite(f'i/new_rotate_{angle}.jpg', rotated_img)

内容的提问来源于stack exchange,提问作者efc07

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 16:24:02