Добрый день.
Есть такая задача: конвертировать цветное изображение из пространства RGB в HSV и отобразить в виде полутонового, состоящего из компоненты H.
Собственно задачу уже решил, как мне ранее казалось правильно, было написано приложение, которое реализовывает данную функциональность.
Однако возникли сомнения, и решил почитать подробнее про полутоновые изображения... и оказалось что что-то я упустил.
Логика моего приложения была такова:
1. Получения цвета пикселя в RGB. (например RGB: 36, 62, 87)
2. Конвертация полученного цвета в пространство HSV. (получаю HSV: 144°, 77.8%, 63.5%)
3. Манипуляция с полученным цветом в HSV(отобразить в виде полутонового, состоящего из компоненты H).
Вот тут я допустил ошибку, я просто вытащил отдельно компоненту H, а компоненты S и V установил в 100%, т.е. получил HSV: 144°, 100%, 100%
4. Обратная конвертация цвета, полученного на предыдущем шаге, в RGB. (из HSV: 144°, 100%, 100% получил RGB: 0, 255, 104)
5. Изменение цвета пикселя цветом, полученным на предыдущем шаге.
6. Переход к следующему пикселю.
На шаге 3 я упустил момент "отобразить в виде полутонового". Изображение как я понял по итогу должно было получится черно-белое, точнее градации серого. Но до сих пор не ясно на каком шаге и каким образом нужно использовать получение полутона.
Была найдена формула конвертации цветного изображения в RGB в полутоновое:
[quot]Преобразование цветного изображения в полутоновое заключается в получении яркости каждой точки по формуле:
Y=0.3R+0.59G+0.11B
и последующем копировании на все три канала полученной величины (R=B=G=Y). Где R,G,B - значение красного, зеленого и синего цветов в обрабатываемой точке.[/quot]
окей, с этим вопросов нет, RGB в полутоновое преобразовать не проблема, но не могу понять где и когда это применить?
До сих пор в голове не укладывается что именно имеется ввиду под выражением "изображение в пространстве HSV отобразить в виде полутонового, состоящего из компоненты H".
Подскажите, знающие люди, в чем тут логика, как именно это нужно реализовывать?
Логика конвертации цвета из RGB в HSV и отображения в виде полутонового состоящего из компоненты H
Всего 8 сообщ.
|
Показаны 1 - 8
Логика конвертации цвета из RGB в HSV и отображения в виде полутонового состоящего из компоненты H
Re[Интегратор]:
HSV = convert_to_hsv(RGB);
H = HSV(1);
H = (H/360)*100;
R = H;
G = H;
B = H;
H = HSV(1);
H = (H/360)*100;
R = H;
G = H;
B = H;
Re[TRANTOR]:
от: TRANTOR
HSV = convert_to_hsv(RGB);
H = HSV(1);
H = (H/360)*100;
R = H;
G = H;
B = H;
Спасибо! А можно это немного более подробно текстом расшифровать? В частности 2ю и 3ю строку. И это будет замена моего шага 3?
На всякий случай код моего приложения: http://sharetext.org/Hacy
Re[Интегратор]:
2. Берем компоненту H
3. Нормализация из 0~360 в 0~100 (если у Вас проценты; если 8bit, то умножаем на 255 вместо 100).
Код матлабовский для примера.
3. Нормализация из 0~360 в 0~100 (если у Вас проценты; если 8bit, то умножаем на 255 вместо 100).
Код матлабовский для примера.
Re[TRANTOR]:
Re[Интегратор]:
от: ИнтеграторПонятия не имею. Никогда не пробовал.
Так и должно выглядеть полутоновое изображение, состоящее из компоненты H?
Зачем это надо?
Re[TRANTOR]:
от: TRANTOR
Понятия не имею. Никогда не пробовал.
Зачем это надо?
Попросили меня помочь с контрольной по предмету "Обработка изображений", а сейчас преподаватель на больничном, не у кого уточнить постановку задачи.
Мне то написать необходимый код не проблема, но вот сам с обработкой изображений и работой с цветом знаком не очень глубоко, поэтому пришлось прибегнуть к помощи тут.
Re[Интегратор]:
не волнуй,,кто напесал это задане знаком ещё меньше.. разумееться где то будит разрыв х же не имеет концов



