randomWindow2d

Случайным образом выберите прямоугольную область в изображении

Описание

пример

win = randomWindow2d(inputSize,targetSize) определяет окно, чтобы обрезать от 2D входного изображения размера inputSize таким образом, что размером кадрированного изображения является targetSize. Координаты окна выбраны из случайного положения во входном изображении.

пример

win = randomWindow2d(inputSize,'Scale',scale,'DimensionRatio',dimensionRatio) выбирает прямоугольную область, задавая размер области относительно входного изображения, scale, и соотношение сторон области, dimensionRatio.

Примеры

свернуть все

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

I = imread("flamingos.jpg");
imshow(I)

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

Задайте размер входного изображения и целевой размер прямоугольной области.

inputSize = size(I);
targetSize = [40 60];

Выберите область целевого размера от случайного местоположения в изображении.

rect = randomWindow2d(inputSize,targetSize);

Преобразуйте область от Rectangle возразите против вектора с 4 элементами из формы [xmin ymin высоте ширины].

rectXYWH = [rect.XLimits(1) rect.YLimits(1) ...
    diff(rect.XLimits)+1 diff(rect.YLimits)+1];

Отобразите контур прямоугольной области, наложенной на оригинальном изображении.

annotatedI = insertShape(I,"Rectangle",rectXYWH,"LineWidth",3);
imshow(annotatedI)

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

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

I = imread("strawberries.jpg");
imshow(I)

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

Задайте размер входного изображения.

inputSize = size(I);

Определите дробную площадь области между 2% и 13% области входного изображения. Укажите диапазон соотношений сторон между 1:5 и 4:3.

scale = [0.02 0.13];
dimensionRatio = [1 5;4 3];

Выберите область со случайным образом выбранной дробной областью и соотношением сторон от случайного местоположения в изображении.

rect = randomWindow2d(inputSize,"Scale",scale, ...
    "DimensionRatio",dimensionRatio);

Обрежьте оригинальное изображение в случайным образом выбранную область и отобразите результат.

Icrop = imcrop(I,rect);
imshow(Icrop)

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

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

свернуть все

Введите размер изображения в виде одного из следующих.

Тип входного изображенияФормат inputSize
2D полутоновое или бинарное изображениеВектор с 2 элементами из положительных целых чисел формы [height width]
2D RGB или многоспектральное изображение размера Вектор с 3 элементами из положительных целых чисел формы [height width channels]

Размер целевого изображения в виде одного из следующих.

Тип целевого изображенияФормат targetSize
2D полутоновое или бинарное изображениеВектор с 2 элементами из положительных целых чисел формы [height width]
2D RGB или многоспектральное изображение размера Вектор с 3 элементами из положительных целых чисел формы [height width channels]

Область области как часть входной области изображения в виде одного из этих значений.

  • Не уменьшающийся числовой вектор с 2 элементами со значениями в области значений [0, 1]. Элементы задают минимальную и максимальную дробную область области, соответственно. randomWindow2d выбирает случайное значение в области значений, чтобы использовать в качестве дробной области области. Чтобы использовать фиксированную область области, задайте то же значение для обоих элементов.

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

Область значений соотношений сторон прямоугольной области в виде одного из этих значений.

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

  • Указатель на функцию. Функция не должна взять входные параметры и возвратить одно положительное число, задающее допустимое отношение размерности. Например, значение 1,2 задает 5:4 соотношение сторон. Для получения дополнительной информации об указателях на функцию, см. Создание указателя на функцию.

Пример: [1 8;1 4] выбирает соотношение сторон в области значений 1:8 к 1:4

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

свернуть все

Окно Cropping, возвращенное как Rectangle объект.

Введенный в R2021a