Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Damaks
18 / 10 / 1
Регистрация: 02.09.2010
Сообщений: 235
#1

Преобразование цветов - C++

19.10.2012, 18:50. Просмотров 957. Ответов 12
Метки нет (Все метки)

Есть массив байтов 3 на 256 такого вида:
0,0,0
1,1,1
2,2,2
....
255,255,255
Т.е. он представляет собой палитру RGB из черного цвета в белый.

Есть палитра ironbow (картинка внизу)
[img]http://i064.***********/1210/da/8118863964c4.gif[/img]

Нужно математическими преобразованиями переделать значения серой палитры в соответствующие значения палитры ironbow. При этом не допускается напрямую делать матрицу значений и подставлять цвета, нужно именно методом расчета. Смысл всего этого изображен на последней картинке

[img]http://s018.***********/i516/1210/89/e171fd3d3aaa.jpg[/img]
Миниатюры
Преобразование цветов  
Изображения
 
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.10.2012, 18:50     Преобразование цветов
Посмотрите здесь:

Массив цветов - C++
как записать в массив какой нибудь цвет ?

Строки разных цветов - C++
Помогите разобраться с цветом в консольном приложении. Задача может оказаться довольно проста для вас, но, я , что то упорно не вижу ответа...

Задача: Покупка цветов - C++
Помогите решить задачу На День учителя Вася решил купить букет цветов. В магазине продаются ромашки по A рублей за штуку и гладиолусы...

Получение цветов GetBitmapBits() - C++
Здравствуйте: Мне надо получить иконку и сохранить ее в качестве массива пикселей, иконку я получил: SHFILEINFO fileInfo; ...

вертикальные линий разных цветов - C++
Вывести в ряд 10 вертикальных линий разных цветов, используя оператор gotoxy. Помогите пожалуйста.А то у меня это задание вообще не...

Раскрасить карту минимальным количеством цветов - C++
Задача раскраски карты. Страны на карте заданы матрицей смежности. Если страны i,j имеют на карте общую границу, то элемент матрицы A равен...

Неправильное считываение цветов пикселе в BMP - C++
Вот, собственно, программа: #include <iostream> #include <fstream> #include <cmath> #include <cstdio> #include <windows.h> ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Sor
35 / 35 / 0
Регистрация: 24.11.2011
Сообщений: 309
19.10.2012, 20:08     Преобразование цветов #2
палитра имеет 7 специальных оттенков (представление в rgb):

C++
1
2
3
4
5
6
7
72, 153, 45 #ISOTERM1 Isotherm 1
229, 160, 22 #ISOTERM2 Isotherm 2
0, 255, 255 #MARKER IR window Area, Line, Spot
0, 0, 255 #RESERVED1
200, 0, 0 #RESERVED2
50, 50, 50 #UNDERFLOW Image underflow
200, 200, 200 #OVERFLOW Image overflow
и 120 оттенков температуры:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
0, 0, 0
0, 0, 36
0, 0, 51
0, 0, 66
0, 0, 81
2, 0, 90
4, 0, 99
7, 0, 106
11, 0, 115
14, 0, 119
20, 0, 123
27, 0, 128
33, 0, 133
41, 0, 137
48, 0, 140
55, 0, 143
61, 0, 146
66, 0, 149
72, 0, 150
78, 0, 151
84, 0, 152
91, 0, 153
97, 0, 155
104, 0, 155
110, 0, 156
115, 0, 157
122, 0, 157
128, 0, 157
134, 0, 157
139, 0, 157
146, 0, 156
152, 0, 155
157, 0, 155
162, 0, 155
167, 0, 154
171, 0, 153
175, 1, 152
178, 1, 151
182, 2, 149
185, 4, 149
188, 5, 147
191, 6, 146
193, 8, 144
195, 11, 142
198, 13, 139
201, 17, 135
203, 20, 132
206, 23, 127
208, 26, 121
210, 29, 116
212, 33, 111
214, 37, 103
217, 41, 97
219, 46, 89
221, 49, 78
223, 53, 66
224, 56, 54
226, 60, 42
228, 64, 30
229, 68, 25
231, 72, 20
232, 76, 16
234, 78, 12
235, 82, 10
236, 86, 8
237, 90, 7
238, 93, 5
239, 96, 4
240, 100, 3
241, 103, 3
241, 106, 2
242, 109, 1
243, 113, 1
244, 116, 0
244, 120, 0
245, 125, 0
246, 129, 0
247, 133, 0
248, 136, 0
248, 139, 0
249, 142, 0
249, 145, 0
250, 149, 0
251, 154, 0
252, 159, 0
253, 163, 0
253, 168, 0
253, 172, 0
254, 176, 0
254, 179, 0
254, 184, 0
254, 187, 0
254, 191, 0
254, 195, 0
254, 199, 0
254, 202, 1
254, 205, 2
254, 208, 5
254, 212, 9
254, 216, 12
255, 219, 15
255, 221, 23
255, 224, 32
255, 227, 39
255, 229, 50
255, 232, 63
255, 235, 75
255, 238, 88
255, 239, 102
255, 241, 116
255, 242, 134
255, 244, 149
255, 245, 164
255, 247, 179
255, 248, 192
255, 249, 203
255, 251, 216
255, 253, 228
255, 254, 239
255, 255, 249
Damaks
18 / 10 / 1
Регистрация: 02.09.2010
Сообщений: 235
19.10.2012, 20:16  [ТС]     Преобразование цветов #3
К сожалению мне это не подходит, мне нужно использовать математическую зависимость между яркостью и цветом. По заданию мне нужно использовать математическую модель для этой палитры. В графике она выглядит так [img]http://s002.***********/i200/1210/ae/5b824328e635.gif[/img]
Sor
35 / 35 / 0
Регистрация: 24.11.2011
Сообщений: 309
19.10.2012, 20:21     Преобразование цветов #4
получается, по графику нужно понять в каких диапазонах какой функцией задается компонента?
Damaks
18 / 10 / 1
Регистрация: 02.09.2010
Сообщений: 235
19.10.2012, 20:22  [ТС]     Преобразование цветов #5
В задании этого не сказано. Даже не знаю как действовать. Вроде палитра часто используется, значит по логике должна существовать ее модель... не могли же ее методом тыка сделать. А график я сам составил слив картинку в RGB массив и запихав его в эксель. Я тут нашел инфу что палитра еще называется IR FLIR Thermal Palette и infrared palette, но это тоже не помогло
ValeryS
Модератор
6551 / 5017 / 463
Регистрация: 14.02.2011
Сообщений: 16,737
19.10.2012, 20:31     Преобразование цветов #6
значения яркости рассчитывается так
Y=0.3R+0.59G+0.11B
переводи свою
Цитата Сообщение от Damaks Посмотреть сообщение
палитра ironbow
в градации серого и сравнивай с
Цитата Сообщение от Damaks Посмотреть сообщение
массив байтов 3 на 256
по другому никак у серого потеряна информация о цветности и однозначно перевести из серого в цветное не получится, если подставить другую палитру результат будет другим
Sor
35 / 35 / 0
Регистрация: 24.11.2011
Сообщений: 309
19.10.2012, 20:40     Преобразование цветов #7
Цитата Сообщение от ValeryS Посмотреть сообщение
Y=0.3R+0.59G+0.11B
так это ж для монохромного просто.
rgb нужно перевести в ironbow, как сделать? независимо монохромное оно или нет, есть же преобразование какое-то
Damaks
18 / 10 / 1
Регистрация: 02.09.2010
Сообщений: 235
19.10.2012, 20:41  [ТС]     Преобразование цветов #8
ironbow - одномерная палитра, т.ч. цвет в ней соответствует яркости, чем сильнее принятый сигнал - тем ярче цвет. Я получаю черно-белое изображение в котором каждый пиксель это уровень сигнала, соответственно максимальный и минимальный уровни могут быть разными, и мне нужно относительно них и встраивать эту картину. Картинка должна интуитивно-понятно отображать уровень излучения от объектов http://2.bp.blogspot.com/_moFK8jHyxf...49_600x450.jpg Вот как тут - четко видно что центр теплый. Кстати эта палитра мне тоже бы подошла, но по ней вообще нет инфрмации.
Sor
35 / 35 / 0
Регистрация: 24.11.2011
Сообщений: 309
19.10.2012, 20:43     Преобразование цветов #9
Damaks, ну эта фотка явно с тепловизора, через ironbow такого не добиться,мне кажется, он же реально не видит ИК спектр
ValeryS
Модератор
6551 / 5017 / 463
Регистрация: 14.02.2011
Сообщений: 16,737
19.10.2012, 20:51     Преобразование цветов #10
Цитата Сообщение от Sor Посмотреть сообщение
независимо монохромное оно или нет, есть же преобразование какое-то
Нет такого преобразования если из цветного мы сделали изображение с градациями серого то обратно не вернуть(информация о цветности потеряна)
например есть серый с уровнем 0.3
это может быть и красный
0.3=0.3*1+0.59*0+0.11*0
и половина зеленого(примерно)
0.3=0.3*0+0.59*0.5+0.11*0
и смесь цветов
для этого я и предлагаю добавить в опорную палитру уровень яркости и сравнивать этот уровень с уровнем на изображении
например уровень 255 это в палитре белый задаем белый
227 это уровень желтого в палитре задаем желтый
и так пройтись по всем пикселям
Damaks
18 / 10 / 1
Регистрация: 02.09.2010
Сообщений: 235
19.10.2012, 20:53  [ТС]     Преобразование цветов #11
Вы не совсем понимаете. В моем первом посте есть картинка в которой градации серого переведены в ironbow. Это возможно только по той простой причине что вместо 3 байт (R G B) я получаю 1 байт (яркость) А палитра Ironbow и палитра с тепловизора одномерные, т.е. у них можно сказать одно значение цвета на одно значение яркости - поэтому это возможно.
Вот смотрите - каждому значению серого оттенка соответсвует значение цвеита из палитры [img]http://s015.***********/i333/1210/e1/73424ca098ff.jpg[/img]
ValeryS
Модератор
6551 / 5017 / 463
Регистрация: 14.02.2011
Сообщений: 16,737
19.10.2012, 20:56     Преобразование цветов #12
я тебе про что и толкую
в палитру Ironbow добавь значения яркости и потом сравнивай эту яркость с яркостью на картинке
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.10.2012, 21:01     Преобразование цветов
Еще ссылки по теме:

Генератор случайных цветов для Формы - C++
Суть такова , при нажатии на кнопку мыши менялся цвет BackGround PictureBox. Помогите пожалуйста

Как сделать разные символы разных цветов [C++] - C++
Здраствуйте! Мне нужно, чтобы на экран выводились символы разных цветов. Отрывок из кода : tt: switch(color) { case...

Определить необходимое конечное множество цветов и оттенков - C++
Входные данные: цветовая гамма Выходные данные: -RGB; -HSV; -нечеткое наименование. Хочу сделать на Visual Studio 2013 C++....

Как сделать текст на консоли двух цветов? - C++
Подскажите как сделать так, чтобы текст в консоли сделать двух цветов ? К примеру вот код: system("color C"); cout <<...

Разбить окно на случайного размера прямоугольники разных цветов - C++
Здравствуйте! Необходимо разбить окно на случайного размера прямоугольники разных цветов. Примерно так, как на картинке. Я собираюсь делать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Damaks
18 / 10 / 1
Регистрация: 02.09.2010
Сообщений: 235
19.10.2012, 21:01  [ТС]     Преобразование цветов #13
Дак в чем и проблема - палитры у меня нет, у меня есть только ее растровое представление, которое нельзя использовать. Мне нужно математическими преобразованиями получить результат. Типо как взять значение яркости домножить на что то, взять интеграл и т.д. и получить значение R, потом G и B
Yandex
Объявления
19.10.2012, 21:01     Преобразование цветов
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru