Main Content

randomAffine2d

Create randomized 2-D affine transformation

Description

tform= randomAffine2dcreates anaffine2dobject with default property values consistent with the identity transformation.

example

tform= randomAffine2d(Name,Value)specifies the type of affine transformations using name-value pair arguments.

Examples

collapse all

Read and display an image.

I = imread('kobi.png'); imshow(I)

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

Create anaffine2d转换对象旋转图像。的randomAffine2dfunction picks a rotation angle randomly from a continuous uniform distribution within the interval [35, 55] degrees.

tform1 = randomAffine2d('Rotation',[35 55]);

腐烂ate the image and display the result.

J = imwarp(I,tform1); imshow(J)

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

的transformation object,tform1, rotates all images by the same amount. To rotate an image by a different randomly selected amount, create a newaffine2dtransformation object.

tform2 = randomAffine2d('Rotation',[-10 10]); J2 = imwarp(I,tform2); imshow(J2)

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

Read and display an image.

I = imread('sherlock.jpg'); imshow(I)

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

Create anaffine2d转换对象旋转图像。To select a rotation angle from a custom range, specify the'Rotation'name-value pair argument as a function handle. This example specifies a function calledmyrange(defined at the end of the example) that selects an angle from within two disjoint intervals.

tform = randomAffine2d('Rotation',@myrange);

腐烂ate the image and display the result.

J = imwarp(I,tform); imshow(J)

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

Supporting Function

This example defines themyrangefunction that first randomly selects one of two intervals (-10, 10) and (170, 190) with equal probability. Within the selected interval, the function returns a single random number from a uniform distribution.

functionangle = myrange()ifrandi([0 1],1) a = -10; b = 10;elsea = 170; b = 190;endangle = a + (b-a).*rand(1);end

Input Arguments

collapse all

Name-Value Arguments

Specify optional pairs of arguments asName1=Value1,...,NameN=ValueN, whereNameis the argument name andValueis the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

Before R2021a, use commas to separate each name and value, and encloseNamein quotes.

Example:tform = randomAffine2d('XReflection',true)

随机水平反射, specified as the comma-separated pair consisting of'XReflection'andfalseortrue. WhenXReflectionistrue(1), the transformationtformreflects images horizontally with 50% probability. By default, the transformation does not reflect images in the horizontal direction.

Random vertical reflection, specified as the comma-separated pair consisting of'YReflection'andfalseortrue. WhenYReflectionistrue(1), the transformationtformreflects images vertically with 50% probability. By default, the transformation does not reflect images in the vertical direction.

Range of rotation, in degrees, applied to the input image, specified as the comma-separated pair consisting of'Rotation'and one of the following.

  • 2-element数值向量。第二个元素必须be larger than or equal to the first element. The rotation angle is picked randomly from a continuous uniform distribution within the specified interval.

  • function handle. The function must accept no input arguments and return the rotation angle as a numeric scalar. Use a function handle to pick rotation angles from a disjoint interval or using a nonuniform probability distribution. For more information about function handles, seeCreate Function Handle.

By default, the transformationtformdoes not rotate images.

Example:[-45 45]

Range of uniform (isotropic) scaling applied to the input image, specified as the comma-separated pair consisting of'Scale'and one of the following.

  • 2-element数值向量。第二个元素必须be larger than or equal to the first element. The scale factor is picked randomly from a continuous uniform distribution within the specified interval.

  • function handle. The function must accept no input arguments and return the scale factor as a numeric scalar. Use a function handle to pick scale factors from a disjoint interval or using a nonuniform probability distribution. For more information about function handles, seeCreate Function Handle.

By default, the transformationtformdoes not scale images.

Example:[0.5 4]

Range of horizontal shear applied to the input image, specified as the comma-separated pair consisting of'XShear'and one of the following. Shear is measured as an angle in degrees, and is in the range (–90, 90).

  • 2-element数值向量。第二个元素必须be larger than or equal to the first element. The horizontal shear angle is picked randomly from a continuous uniform distribution within the specified interval.

  • function handle. The function must accept no input arguments and return the horizontal shear angle as a numeric scalar. Use a function handle to pick horizontal shear angles from a disjoint interval or using a nonuniform probability distribution. For more information about function handles, seeCreate Function Handle.

By default, the transformationtformdoes not shear images in the horizontal direction.

Example:[0 45]

Range of vertical shear applied to the input image, specified as the comma-separated pair consisting of'YShear'and one of the following. Shear is measured as an angle in degrees, and is in the range (–90, 90).

  • 2-element数值向量。第二个元素必须be larger than or equal to the first element. The vertical shear angle is picked randomly from a continuous uniform distribution within the specified interval.

  • function handle. The function must accept no input arguments and return the vertical shear angle as a numeric scalar. Use a function handle to pick vertical shear angles from a disjoint interval or using a nonuniform probability distribution. For more information about function handles, seeCreate Function Handle.

By default, the transformationtformdoes not shear images in the vertical direction.

Example:[0 45]

Range of horizontal translation applied to the input image, specified as the comma-separated pair consisting of'XTranslation'and one of the following. Translation distance is measured in pixels.

  • 2-element数值向量。第二个元素必须be larger than or equal to the first element. The horizontal translation distance is picked randomly from a continuous uniform distribution within the specified interval.

  • function handle. The function must accept no input arguments and return the horizontal translation distance as a numeric scalar. Use a function handle to pick horizontal translation distances from a disjoint interval or using a nonuniform probability distribution. For more information about function handles, seeCreate Function Handle.

By default, the transformationtformdoes not translate images in the horizontal direction.

Example:[-5 5]

Range of vertical translation applied to the input image, specified as the comma-separated pair consisting of'YTranslation'and one of the following. Translation distance is measured in pixels.

  • 2-element数值向量。第二个元素必须be larger than or equal to the first element. The vertical translation distance is picked randomly from a continuous uniform distribution within the specified interval.

  • function handle. The function must accept no input arguments and return the vertical translation distance as a numeric scalar. Use a function handle to pick vertical translation distances from a disjoint interval or using a nonuniform probability distribution. For more information about function handles, seeCreate Function Handle.

By default, the transformationtformdoes not translate images in the vertical direction.

Example:[-5 5]

Output Arguments

collapse all

Affine transformation, specified as anaffine2dobject.

Version History

Introduced in R2019b