exponenta event banner

randomWindow2d

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

Описание

пример

win = randomWindow2d(inputSize,targetSize) определяет окно для обрезки из 2-D входного изображения размера 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 width height].

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
2-D изображение в градациях серого или двоичном формате2-элементный вектор положительных целых чисел вида [height width]
2-D RGB или многоспектральное изображение размера 3-элементный вектор положительных целых чисел вида [height width channels]

Целевой размер изображения, указанный как один из следующих.

Тип целевого изображенияФормат targetSize
2-D изображение в градациях серого или двоичном формате2-элементный вектор положительных целых чисел вида [height width]
2-D 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

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

свернуть все

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

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