randomAffine2d

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

Описание

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

пример

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

Примеры

свернуть все

Считайте и отобразите изображение.

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

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

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

Вращайте изображение и отобразите результат.

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

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

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

Считайте и отобразите изображение.

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

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

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

Вращайте изображение и отобразите результат.

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

Поддерживание функции

Этот пример задает 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 элементами. Второй элемент должен быть больше, чем или равным первому элементу. Угол поворота выбран случайным образом от непрерывного равномерного распределения в заданном интервале.

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

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

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

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

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

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

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

Пример: [0.5 4]

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

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

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

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

Пример: [0 45]

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

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

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

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

Пример: [0 45]

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

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

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

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

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

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

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

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

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

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

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

свернуть все

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

Введенный в R2019b