主要内容

本页翻译不是最新的。点击此处可查看最新英文版本。

augment

对多个图像应用相同的随机变换

说明

augI = augment(augmenter,I) 使用由图像数据增强器 augmenter 定义的图像预处理选项集中的随机变换来增强图像 I。如果 I 由多个图像组成,则 augment 会对所有图像应用相同的变换。

示例

示例

全部折叠

创建一个能以随机角度旋转图像的图像增强器。要使用具有有效旋转角度的自定义范围,您可以在创建增强器时指定函数句柄。此示例指定一个名为 myrange 的函数(在示例末尾定义),该函数从两个不相交的区间内选择一个角度。

imageAugmenter = imageDataAugmenter(RandRotation=@myrange);

将多个图像读取到工作区中,并显示这些图像。

img1 = imread("peppers.png");
img2 = imread("corn.tif",2);
inImg = imtile({img1,img2});
imshow(inImg)

Figure contains an axes object. The hidden axes object contains an object of type image.

使用相同的增强来增强图像。随机选择的旋转角度以临时变量 angle 的形式返回。

outCellArray = augment(imageAugmenter,{img1,img2});
angle = 
8.1158

查看增强的图像。

outImg = imtile(outCellArray);
imshow(outImg);

Figure contains an axes object. The hidden axes object contains an object of type image.

支持函数

此示例定义了 myrange 函数,该函数首先以等概率随机选择两个区间 (-10, 10) 和 (170, 190) 中的一个。在选定区间内,该函数会从均匀分布中返回单个随机数。

function angle = myrange()
    if randi([0 1],1)
        a = -10;
        b = 10;
    else
        a = 170;
        b = 190;
    end
    angle = a + (b-a).*rand(1)
end

输入参数

全部折叠

增强选项,指定为 imageDataAugmenter 对象。

要增强的图像,指定为下列值之一。

  • 数值数组,表示单个灰度图像或彩色图像。

  • 由数值图像和分类图像组成的元胞数组。图像的大小及类型可以不同。

输出参量

全部折叠

增强的图像,以数值数组或由数值图像和分类图像组成的元胞数组形式返回,与输入图像 I 的格式一致。

提示

  • 您可以使用 augment 函数预览应用于示例图像的变换。

  • 要在训练过程中执行图像增强,请创建 augmentedImageDatastore,并使用带有 imageDataAugmenterDataAugmentation 名称-值参量来指定预处理选项。增强的图像数据存储会自动对训练数据应用随机变换。

版本历史记录

在 R2018b 中推出