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