Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как разбить цветовую палитру ? Помогите Pleazzzze. [D6, Win2k]


Клименко Александр ©   (2002-06-25 13:54:00) 

Подскажите как разбить цветовую палитру на несколько основных цветов, а все остальные цвета считать как оттенками. Допустим сначала идёт синий цвет после него идут оттенки синего, затем оранжевый и т.д. и т.п. Мне нужно, чтобы цвет и его оттенки считать как один цвет.


Viewer   (2002-07-01 14:39:00) [1]

Сначала определись с задачей: какая цветовая гамма может быть соотнесена с объектом, затем выбери походящую цветовую модель и ее составляющую. Затем определись с допустимым диапазоном изменения координаты для конкретного твоего объекта на изображении.


Клименко Александр   (2002-07-01 13:16:00) [2]

Viewer посмотри свой mail


Viewer   (2002-07-01 12:16:00) [3]

Ушло на оба и возврата не было


Клименко Александр   (2002-07-01 11:58:00) [4]

Мое мыло пустое. мой ящик klimeS@yandex.ru.
Попробуй отправить на cpo@samtel.ru


Viewer   (2002-07-01 11:56:00) [5]

Ссылки для развития
Subj на мыле твоем


Клименко Александр   (2002-07-01 11:51:00) [6]

Материал по этим ссылкам интересный. Но в нём, что-то ввиде формул перехода с RGB в HSB.

Я беру точку определяю её RGB, а том как мне перевести всё это дело в HSB.


Viewer   (2002-07-01 11:27:00) [7]

http://www.directorart.ru/2DIntColormodels
http://www.anriintern.com/ps/hsb.html
http://www.i2r.ru/static/255/out_8531.shtml
http://new.3dnews.ru/reviews/peripheral/color_matching/index05.htm

На мыле


Клименко Александр   (2002-07-01 10:14:00) [8]

А как в Delphi перейти к градациям HSB и Lab. Я с этим никогда не сталкивался. Подскажите люди добрые.


Viewer   (2002-06-26 22:44:00) [9]

Не факт.
Например, на картике изображен раскаленный кусок металла.
В центре ярко-красный, к краям -темнее.
Для такого случая распознавания следует перейти к HSB или Lab цветовым координатам и округлять B-составляющую (HSB) или
L-составляющую (Lab) и по ним ранжировать принадлежность.


MBo   (2002-06-26 12:23:00) [10]

см. (26.06.02 09:35)


Клименко Александр   (2002-06-26 10:42:00) [11]

Я сейчас поясню ситуацию. У меня есть картинка в формате EMF. И мне нужно вычислить площадь фигур на картинке определённого цвета. Цветов на картинке может быть много. Для того, чтобы вычислить площадь фигур. Я должен подсчитать количество точек одного цвета и затем поделить это количество на количество точек в кв. см. Вроде задача простая. Но вот появляются точки, у которых цвет не много темнее или светлее. Т.е. если я распознал первую точку например оранжевого цвета. То я считаю этот цвет как базовый. Если в дальнейшем мне попадается точка тёмно- оранжевого цвета программа должна считать, что это тоже оранжевый цвет и прибавлять единицу к колчеству точек оранжевого цвета. Если точка визуально оранжевого цвета, а номер цвета другой, то программа тоже должна считать, что это оранжевый цвет.
Как это сделать ?


MBo   (2002-06-26 10:18:00) [12]

Всех возможных цветов 16 миллионов. если вывожить их так-
for i:=0 to ($FFFFF-1) do
Canvas.Pixels[x,y]:=i;//все не поместятся, конечно
будет меняться сначала Red составляющая, затем вторая градация
Green и снова все градации Red и т.д.


Клименко Александр   (2002-06-26 09:58:00) [13]

Я не могу понять одного момента. Если я беру например оранжевый цвет получаю его RGB и беру цвет тоже оранжевый, но немного темнее. Значения RGB цветов как будут располагаться если вывести полностью все возможные цвета на экран ? Какая составляющая RGB будет меняться или могут меняться все составляющие ?


MBo   (2002-06-26 09:35:00) [14]

напиши функцию типа (округление сделай подходящим тебе способом)
function RoundToNearestColor(col:TColor):TColor;
var r,g,b:byte;
begin
r:=(GetRValue(col) div 16) * 16;
...
Result:=RGB(r,g,b);
end;


Клименко Александр   (2002-06-26 09:10:00) [15]

Я считываю точки с картинки по цветам и затем веду подсчёт количества точек определёного цвета.

И у меня проблема такого рода.

Допустим я считываю с картинки точку чёрного цвета. Затем я считываю следующую точку она тоже чёрного цвета (визуально), но RGB уже другое и программа считает, что эта точка не чёрная, а другого цвета. Как мне программно определить, что эта точка тоже чёрная ?

И ещё одна проблема. Допустим я считал точку серого цвета. Затем я считываю следующую точку тоже серого цвета, но она немного ярче. Мне нужно сделать так, чтобы эти две точки считались при подсчёте количества точек серого цвета, как точки одного цвета ?
Т.е. у меня получается, что цвет первой точки является основным цветом, а цвет второй точки как бы оттенком цвета первой.

Как-бы получить градации цветов ?


MBo   (2002-06-25 14:07:00) [16]

не очень понятно...
Кстати, понятие палитры используется только для 256 цветов и меньше


Наверх

Титульная страница Поиск, карта сайта Написать письмо