Случайное изменение цвета пикселей
корректирует цвет изображения RGB J = jitterColorHSV(I,Name,Value)I со случайным выбором значения оттенка, насыщенности, яркости и контраста из цветового пространства HSV. Укажите диапазон каждого типа корректировки с помощью аргументов пары имя-значение.
Чтение и отображение изображения.
I = imread('kobi.png');
imshow(I)
Случайная регулировка оттенка, насыщенности, яркости и контрастности изображения. Чтобы продемонстрировать случайность корректировки, повторите операцию над исходным изображением три раза.
J1 = jitterColorHSV(I,'Contrast',0.4,'Hue',0.1,'Saturation',0.2,'Brightness',0.3); J2 = jitterColorHSV(I,'Contrast',0.4,'Hue',0.1,'Saturation',0.2,'Brightness',0.3); J3 = jitterColorHSV(I,'Contrast',0.4,'Hue',0.1,'Saturation',0.2,'Brightness',0.3);
Отображение скорректированных изображений в монтаже.
montage({J1,J2,J3},'Size',[1 3])
I - Образ RGBИзображение RGB с исходными значениями пикселей, заданными в виде числового массива m-by-n-by-3.
Типы данных: single | double | uint8 | uint16
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
J = jitterColorHSV(I,'Hue',0.1)'Hue' - Смещение тона0 (по умолчанию) | числовой скаляр | 2-элементный числовой векторСмещение тона, указанное как разделенная запятыми пара, состоящая из 'Hue' и одно из следующих значений. jitterColorHSV преобразует входное изображение RGB I в цветовое пространство HSV перед добавлением случайного значения в канал тона изображения. jitterColorHSV циклически переносит измененный оттенок в диапазон [0, 1] перед преобразованием дрожащего изображения HSV обратно в цветовое пространство RGB.
| Стоимость | Значение |
|---|---|
| Числовой скаляр в диапазоне [0, 1] | Добавление случайного количества тона из равномерного распределения [-Hue Hue] |
| 2-элементный числовой вектор с элементами в диапазоне [-1, 1] | Добавьте случайное количество тона из непрерывного равномерного распределения в пределах указанного интервала. Второй элемент должен быть больше или равен первому элементу. |
Типы данных: single | double
'Saturation' - Смещение насыщения0 (по умолчанию) | числовой скаляр | 2-элементный числовой векторСмещение насыщения, указанное как пара, разделенная запятыми, состоящая из 'Saturation' и одно из следующих значений. jitterColorHSV преобразует входное изображение RGB I в цветовое пространство HSV перед добавлением случайного значения в канал насыщения изображения. jitterColorHSV приводит измененное насыщение к диапазону [0, 1] перед преобразованием дрожащего изображения HSV обратно в цветовое пространство RGB.
| Стоимость | Значение |
|---|---|
| Числовой скаляр в диапазоне [0, 1] | Добавление случайной величины насыщения из равномерного распределения [-Saturation Saturation] |
| 2-элементный числовой вектор с элементами в диапазоне [-1, 1] | Добавьте случайную величину насыщения из непрерывного равномерного распределения в пределах указанного интервала. Второй элемент должен быть больше или равен первому элементу. |
Типы данных: single | double
'Brightness' - Смещение яркости0 (по умолчанию) | числовой скаляр | 2-элементный числовой векторСмещение яркости, указанное как пара, разделенная запятыми, состоящая из 'Brightness' и одно из следующих значений. jitterColorHSV преобразует входное изображение RGB I в цветовое пространство HSV перед добавлением случайного значения в канал яркости (значения) изображения. jitterColorHSV приводит измененную яркость к диапазону [0, 1] перед преобразованием дрожащего изображения HSV обратно в цветовое пространство RGB.
| Стоимость | Значение |
|---|---|
| Числовой скаляр в диапазоне [0, 1] | Добавление случайной величины яркости из равномерного распределения [-Brightness Brightness] |
| 2-элементный числовой вектор с элементами в диапазоне [-1, 1] | Добавьте случайную величину яркости из непрерывного равномерного распределения в пределах указанного интервала. Второй элемент должен быть больше или равен первому элементу. |
Типы данных: single | double
'Contrast' - Масштабный коэффициент контрастности0 (по умолчанию) | положительное число | 2-элементный числовой векторМасштабный коэффициент контрастности, определяемый как разделенная запятыми пара, состоящая из 'Contrast' и одно из следующих значений. jitterColorHSV преобразует входное изображение RGB I в цветовое пространство HSV перед масштабированием канала яркости (значения) изображения на случайный коэффициент. jitterColorHSV приводит измененную яркость к диапазону [0, 1] перед преобразованием дрожащего изображения HSV обратно в цветовое пространство RGB.
| Стоимость | Значение |
|---|---|
| Положительное число | Масштабирование яркости на случайный коэффициент из равномерного распределения [1-Contrast 1+Contrast] |
| 2-элементный числовой вектор положительных чисел | Масштабирование яркости на случайный коэффициент из равномерного распределения в пределах заданного интервала. Второй элемент должен быть больше или равен первому элементу. |
Типы данных: single | double
J - Сбитый образ RGBсбитый RGB-образ, возвращаемый в виде числового массива того же размера и типа данных, что и входной образ, I.
Типы данных: single | double | uint8 | uint16
Цветовое пространство HSV определяет цветовой тон, насыщенность и значение (яркость) для каждого пикселя, соответственно, как описано в таблице.
| Признак | Описание |
|---|---|
| Оттенок | Значение от 0 кому 1 соответствует положению цвета на цветовом круге. По мере увеличения оттенка от 0 кому 1, цвет переходит от красного к оранжевому, желтому, зеленому, голубому, синему, пурпурному и, наконец, обратно к красному. |
| Насыщенность | Величина оттенка или отхода от нейтрали. 0 указывает изображение в оттенках серого и 1 указывает максимальное насыщение. |
| Стоимость | Максимальное значение среди красных, зеленых и синих компонентов определенного цвета. |
centerCropWindow2d | hsv2rgb | randomAffine2d | randomWindow2d | rgb2hsv
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.