randomAffine2d

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

Описание

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

пример

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

Примеры

свернуть все

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

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

Figure contains an axes object. The axes object 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 object. The axes object contains an object of type image.

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

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.

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

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

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

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

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

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

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

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

Входные параметры

свернуть все

Аргументы name-value

Задайте дополнительные разделенные запятой пары 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