randomAffine2d

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

Описание

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 объект преобразования, который вращает изображения. The 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