#image #matlab #colors
#изображение #matlab #Цвет
Вопрос:
В чем разница между двумя приведенными выше представлениями белого цвета? Я немного смущен, и как они используются?
Ответ №1:
Два эквивалентных представления
uint8([255 255 255])
и
double([1 1 1])
Это только целочисленные представления и представления с плавающей запятой. Обратите внимание, что это uint8([1 1 1])
будет (почти) черным, и это double([255 255 255])
обычно вызывает ошибку.
Обратите внимание, что целочисленная версия обычно разрешена только функциями обработки изображений, такими как imread
, imwrite
и image
. Все остальное будет ожидать представления с плавающей запятой.
Ответ №2:
Эти два представления белого цвета относятся к цветовой модели RGB, в которой красные, зеленые и синие источники света складываются вместе (аддитивная цветовая модель) для получения желаемого цвета.
Каждый из трех основных источников света обычно кодируется 8-битным целым числом, которое поэтому варьируется от 0 до 255 (0 означает полное отсутствие этого источника света).
В Matlab эти коды часто нормализуются на 255 и являются плавающими значениями между 0 и 1. Обратите внимание, что это не тот случай, когда вы открываете изображение с помощью imread
for exemple , поэтому вы должны быть осторожны и обращаться к соответствующим разделам документации.
Пример: если вы хотите указать определенный цвет с помощью кода RGB для графика, который вы можете использовать plot(data,'color',[0 1 1]);
. Это отобразит ваши данные в голубом цвете (зеленый синий).
Другие способы указания цветов в Matlab см. в спецификации цвета Matlab.