Цветное изображение -> Градации серого

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
fallen
Новичок
Новичок
 
Сообщения: 30
Зарегистрирован: 06.04.2003 (Вс) 22:06

Цветное изображение -> Градации серого

Сообщение fallen » 18.06.2004 (Пт) 4:12

вопрос возможно не по адресу, но все же....

допустим дан какой-то произвольный цвет.
как найти, соответствующий этому цвету, оттенок серого?

например для RGB(255,0,0) соответствующий оттенок серого: RGB(127,127,127)
для RGB(240,120,50) - RGB(145,145,145)

спасибо.

Urvin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 518
Зарегистрирован: 04.06.2003 (Ср) 10:47
Откуда: с Марса

Сообщение Urvin » 18.06.2004 (Пт) 9:20

По какому принципу?
Тебе надо сделать картинку в градациях серого? Тогда ищи по форуму, тут недавно был такой топик!
Не так страшен русский танк, как его пьяный экипаж

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 18.06.2004 (Пт) 9:47

Переводишь RGB в HSB и в B будет нужная яркость
Lasciate ogni speranza, voi ch'entrate.

Juriev
Новичок
Новичок
 
Сообщения: 38
Зарегистрирован: 25.11.2003 (Вт) 21:13

Сообщение Juriev » 18.06.2004 (Пт) 9:59

coler=25536811
r = colerSum And &HFF 'Красный
g = (colerSum \ 256) And &HFF 'Зеленый
b = (colerSum \ 65536) And &HFF 'Синий
grey = r * 0.3 + g * 0.59 + b * 0.11 'Серый
'Стандарт телевизора

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 18.06.2004 (Пт) 10:14

Juriev, не телевизора, а стандарта JPEG. Только там сложнее немного, смотреть спецификации надо.
Lasciate ogni speranza, voi ch'entrate.

TEH3OP
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 143
Зарегистрирован: 12.12.2003 (Пт) 20:19
Откуда: Москва

Re: Цветное изображение -> Градации серого

Сообщение TEH3OP » 18.06.2004 (Пт) 17:08

fallen писал(а):вопрос возможно не по адресу, но все же....

допустим дан какой-то произвольный цвет.
как найти, соответствующий этому цвету, оттенок серого?
например для RGB(255,0,0) соответствующий оттенок серого: RGB(127,127,127)
для RGB(240,120,50) - RGB(145,145,145)
спасибо.

IMHO это делается так:
Вот у тя есть пиксел:
R0: 134
G0: 089
B0: 200
Его ч.б. реинкарнация ищется так:
Находим среднее арифметическое из всех составляющих цвета:
AvgColor = (R0+G0+B0)/3
Цвет ч.б. пиксела буит:
R: AvgColor
G: AvgColor
B: AvgColor

Фсё! ;-)

fallen
Новичок
Новичок
 
Сообщения: 30
Зарегистрирован: 06.04.2003 (Вс) 22:06

Сообщение fallen » 19.06.2004 (Сб) 1:06

всем спасибо.
натолкнули меня на правильное направления поиска :)
порылся и наткнулся в инете на сравнительный обзор перевода из цвета в серый различными программами. стало ясно, что одного определенного стандарта нет (типа предложенного Juriev стандарта для телевизора). все проги используют различные коэффициенты при RGB
в общем оказалось все не так просто...


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 34

    TopList  
cron