exponenta event banner

randomAffine2d

Создайте рандомизированное 2-е аффинное преобразование

Описание

tform = randomAffine2d создает affine2d со значениями свойств по умолчанию, совместимыми с преобразованием идентификатора.

пример

tform = randomAffine2d(Name,Value) указывает тип аффинных преобразований с использованием аргументов пары имя-значение.

Примеры

свернуть все

Чтение и отображение изображения.

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

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

Создание affine2d объект преобразования, который вращает изображения. randomAffine2d функция выбирает угол поворота случайным образом из непрерывного равномерного распределения в пределах интервала [35, 55] градусов.

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

Поверните изображение и отобразите результат.

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

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

Объект преобразования, tform1, поворачивает все изображения на одну и ту же величину. Чтобы повернуть изображение на другую случайно выбранную величину, создайте новое affine2d объект преобразования.

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

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

Чтение и отображение изображения.

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

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

Создание affine2d объект преобразования, который вращает изображения. Чтобы выбрать угол поворота из пользовательского диапазона, укажите 'Rotation' аргумент пары имя-значение как дескриптор функции. В этом примере указана функция с именем myrange (определяется в конце примера), который выбирает угол в пределах двух непересекающихся интервалов.

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

Поверните изображение и отобразите результат.

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

Figure contains an axes. The axes 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

Входные аргументы

свернуть все

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: tform = randomAffine2d('XReflection',true)

Случайное горизонтальное отражение, указанное как разделенная запятыми пара, состоящая из 'XReflection' и false или true. Когда XReflection является true (1), преобразование tform отражает изображения по горизонтали с вероятностью 50%. По умолчанию преобразование не отражает изображения в горизонтальном направлении.

Случайное вертикальное отражение, указанное как разделенная запятыми пара, состоящая из 'YReflection' и false или true. Когда YReflection является true (1), преобразование tform отражает изображения вертикально с вероятностью 50%. По умолчанию преобразование не отражает изображения в вертикальном направлении.

Диапазон поворота, в градусах, применяемый к входному изображению, определяемый как разделенная запятыми пара, состоящая из 'Rotation' и одно из следующих.

  • 2-элементный числовой вектор. Второй элемент должен быть больше или равен первому элементу. Угол поворота выбирается случайным образом из непрерывного равномерного распределения в пределах заданного интервала.

  • дескриптор функции. Функция не должна принимать входные аргументы и возвращать угол поворота в виде числового скаляра. Используйте дескриптор функции для выбора углов поворота из непересекающегося интервала или с использованием неравномерного распределения вероятностей. Дополнительные сведения об дескрипторах функций см. в разделе Создание дескриптора функции.

По умолчанию преобразование tform не поворачивает изображения.

Пример: [-45 45]

Диапазон равномерного (изотропного) масштабирования, применяемый к входному изображению, определяемый как разделенная запятыми пара, состоящая из 'Scale' и одно из следующих.

  • 2-элементный числовой вектор. Второй элемент должен быть больше или равен первому элементу. Масштабный коэффициент выбирается случайным образом из непрерывного равномерного распределения в пределах заданного интервала.

  • дескриптор функции. Функция не должна принимать входные аргументы и возвращать масштабный коэффициент в виде числового скаляра. Используйте дескриптор функции, чтобы выбрать масштабные коэффициенты из непересекающегося интервала или с помощью неравномерного распределения вероятности. Дополнительные сведения об дескрипторах функций см. в разделе Создание дескриптора функции.

По умолчанию преобразование tform не масштабирует изображения.

Пример: [0.5 4]

Диапазон горизонтального сдвига, применяемый к входному изображению, определяемый как разделенная запятыми пара, состоящая из 'XShear' и одно из следующих. Сдвиг измеряется как угол в градусах и находится в диапазоне (-90, 90).

  • 2-элементный числовой вектор. Второй элемент должен быть больше или равен первому элементу. Угол горизонтального сдвига выбирается случайным образом из непрерывного равномерного распределения в пределах заданного интервала.

  • дескриптор функции. Функция не должна принимать входные аргументы и возвращать угол горизонтального сдвига в виде числового скаляра. Используйте дескриптор функции для выбора углов горизонтального сдвига из непересекающегося интервала или с использованием неравномерного распределения вероятности. Дополнительные сведения об дескрипторах функций см. в разделе Создание дескриптора функции.

По умолчанию преобразование tform не сдвигает изображения в горизонтальном направлении.

Пример: [0 45]

Диапазон вертикального сдвига, применяемый к входному изображению, определяемый как разделенная запятыми пара, состоящая из 'YShear' и одно из следующих. Сдвиг измеряется как угол в градусах и находится в диапазоне (-90, 90).

  • 2-элементный числовой вектор. Второй элемент должен быть больше или равен первому элементу. Угол вертикального сдвига выбирается случайным образом из непрерывного равномерного распределения в пределах заданного интервала.

  • дескриптор функции. Функция не должна принимать входные аргументы и возвращать вертикальный угол сдвига в виде числового скаляра. Используйте дескриптор функции, чтобы выбрать вертикальные углы сдвига из непересекающегося интервала или с помощью неравномерного распределения вероятности. Дополнительные сведения об дескрипторах функций см. в разделе Создание дескриптора функции.

По умолчанию преобразование tform не сдвигает изображения в вертикальном направлении.

Пример: [0 45]

Диапазон горизонтального перемещения, применяемый к входному изображению, определяемый как разделенная запятыми пара, состоящая из 'XTranslation' и одно из следующих. Расстояние перемещения измеряется в пикселях.

  • 2-элементный числовой вектор. Второй элемент должен быть больше или равен первому элементу. Расстояние горизонтального перемещения выбирается случайным образом из непрерывного равномерного распределения в пределах заданного интервала.

  • дескриптор функции. Функция не должна принимать входные аргументы и возвращать расстояние горизонтального перевода в виде числового скаляра. Используйте дескриптор функции для выбора расстояний горизонтального перемещения из непересекающегося интервала или с использованием неравномерного распределения вероятностей. Дополнительные сведения об дескрипторах функций см. в разделе Создание дескриптора функции.

По умолчанию преобразование tform не перемещает изображения в горизонтальном направлении.

Пример: [-5 5]

Диапазон вертикального перемещения, применяемый к входному изображению, определяемый как разделенная запятыми пара, состоящая из 'YTranslation' и одно из следующих. Расстояние перемещения измеряется в пикселях.

  • 2-элементный числовой вектор. Второй элемент должен быть больше или равен первому элементу. Расстояние вертикального перемещения выбирается случайным образом из непрерывного равномерного распределения в пределах заданного интервала.

  • дескриптор функции. Функция не должна принимать входные аргументы и возвращать расстояние вертикального перевода в виде числового скаляра. Используйте дескриптор функции для выбора расстояний вертикального перемещения из непересекающегося интервала или с использованием неравномерного распределения вероятностей. Дополнительные сведения об дескрипторах функций см. в разделе Создание дескриптора функции.

По умолчанию преобразование tform не перемещает изображения в вертикальном направлении.

Пример: [-5 5]

Выходные аргументы

свернуть все

Аффинное преобразование, указанное как affine2d объект.

Представлен в R2019b