Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.09.14;
Скачать: CL | DM;

Вниз

Как считать коды яркостей RGB   Найти похожие ветки 

 
++vist++ ©   (2008-07-27 00:30) [0]

Подскажите кто-нибудь, как считать коды яркостей произвольного пискела изображения TImage?


 
{RASkov} ©   (2008-07-27 00:35) [1]

> [0] ++vist++ ©   (27.07.08 00:30)

Что такое "код яркости пиксела изображения TImage"?


 
Anatoly Podgoretsky ©   (2008-07-27 02:01) [2]

> {RASkov}  (27.07.2008 0:35:01)  [1]

А кто про пиксели спрашивает, ты опечатался, речь про пискели


 
Юрий Зотов ©   (2008-07-27 02:02) [3]

GetPixel.

0x00bbggrr

The low-order byte contains a value for the relative intensity of red; the second byte contains a value for green; and the third byte contains a value for blue. The high-order byte must be zero. The maximum value for a single byte is 0xFF.

To extract the individual values for the red, green, and blue components of a color value, use the GetRValue, GetGValue, and GetBValue macros, respectively.


 
{RASkov} ©   (2008-07-27 02:13) [4]

> [2] Anatoly Podgoretsky ©   (27.07.08 02:01)

:) Хм... Точно - пискел)
Тогда поправлю Юрия - GetPiskel
Или еще проще Col:=Image{.Picture.Bitmap}.Canvas.Piskel[x, Y];
Что и GetХValue и что целиком Col - одно и тоже по сути, и кода яркости тут нет...


 
Anatoly Podgoretsky ©   (2008-07-27 02:15) [5]

> Юрий Зотов  (27.07.2008 2:02:03)  [3]

Думаешь в этом его вопрос?


 
Anatoly Podgoretsky ©   (2008-07-27 02:16) [6]

> {RASkov}  (27.07.2008 2:13:04)  [4]

В RGB вообще яркости нет, это надо переводить в другую цветовую схему.
Даже GrayScale нельзя считать за яркость.


 
Palladin ©   (2008-07-27 02:19) [7]

"Осторожно - дети!"


 
{RASkov} ©   (2008-07-27 02:20) [8]

> [5] Anatoly Podgoretsky ©   (27.07.08 02:15)

С другой стороны, что есть яркость пиксела на канве?
- Его(пиксела) цвет.
Может автору и нужно получить цвет отдельного пиксела.... А может даже и разложить его по байтам...(последнее предложение в [3])


 
{RASkov} ©   (2008-07-27 02:21) [9]

> [6] Anatoly Podgoretsky ©   (27.07.08 02:16)

Ну вот и я о том же, но может Ю. Зотов более проникся в моск автору? :)


 
Юрий Зотов ©   (2008-07-27 02:27) [10]

> Anatoly Podgoretsky ©   (27.07.08 02:15) [5]

> Думаешь в этом его вопрос?

Я просто не смог придумать никакой другой разумной интерпретации.


 
Anatoly Podgoretsky ©   (2008-07-27 10:52) [11]

> Юрий Зотов  (27.07.2008 2:27:10)  [10]

А я вообше никакой.


 
Тын-Дын ©   (2008-07-27 12:26) [12]

Да всё верно. Юрий явно правильно понял вопрос. Совершенный новичок спрашивает, как получить RGB пикселя.


 
Denis__ ©   (2008-07-27 13:52) [13]


> Да всё верно. Юрий явно правильно понял вопрос. Совершенный
> новичок спрашивает, как получить RGB пикселя.

Телепаторы рулят? Откуда такая уверенность? У меня есть вариант, но озвучивать не буду.


 
{RASkov} ©   (2008-07-27 13:56) [14]

> [12] Тын-Дын ©   (27.07.08 12:26)
> Да всё верно.

Не факт.

>Юрий явно правильно понял вопрос. Совершенный новичок спрашивает, как получить RGB пикселя

Может автор хочет изменением(получением) одного значения иметь новый оттенок какого либо цвета. Т.е. BRGB
1-я B - яркость...
Но лучше было бы, чтоб автор сам объяснил, что же он имел в виду под кодом яркости...
Хотя в любом случае яркость - это и есть цвет пиксела :)


 
Denis__ ©   (2008-07-27 14:17) [15]


> Но лучше было бы, чтоб автор сам объяснил

ИМХО, автор уже забыл что писал на каком-то там делфимастере:)


 
Sergio666 ©   (2008-07-27 19:46) [16]

Ну если речь идет о яркости, тогда
lum = R * 0.29 + G * 0.60 + B * 0.11

Наверно это, автор и спрашивал.
>ИМХО, автор уже забыл что писал на каком-то там делфимастере
:))


 
@!!ex ©   (2008-07-27 19:53) [17]

> [16] Sergio666 ©   (27.07.08 19:46)

Зачет.. Как раз собирался эту формулу написать. :)


 
Anatoly Podgoretsky ©   (2008-07-27 20:25) [18]

> @!!ex  (27.07.2008 19:53:17)  [17]

Ну формул много, вот только автор продолжает партизанить.


 
brother ©   (2008-07-28 05:27) [19]

имхо [4] автору нужно...


 
++vist++ ©   (2008-07-28 08:13) [20]

Необходимо сделать wavelet кодек. WaveLet алгоритм подразумевает разделение исходного изображения на отдельные матрицы яркостей. То есть, матрицы RED,  GREEN и BLUE. Вот именно для этого разделения я и спрашиваю, как считать код яркости!


 
brother ©   (2008-07-28 08:31) [21]

> Необходимо сделать wavelet кодек

О_О
зы почитал про него, удачи!


 
@!!ex ©   (2008-07-28 08:32) [22]

> [20] ++vist++ ©   (28.07.08 08:13)

Это не яркость. :(


 
@!!ex ©   (2008-07-28 08:47) [23]

> [21] brother ©   (28.07.08 08:31)

В принципе там не так сложно, проапгрейженный Фурье...


 
brother ©   (2008-07-28 09:48) [24]

> Необходимо сделать wavelet кодек

а готовые разве не существуют? может велосипед изобретать и не надо)


 
++vist++ ©   (2008-07-29 23:36) [25]


> а готовые разве не существуют? может велосипед изобретать
> и не надо)


Существуют, но "умный" препод решил, что это развивает мышление. В итоге нужно следующее: в TImage загружаемся картинка. С нее нужно считать три матрицы Red, Green, Blue.

Знает кто-нить как это сделать?


 
{RASkov} ©   (2008-07-29 23:38) [26]

> [25] ++vist++ ©   (29.07.08 23:36)
> три матрицы Red, Green, Blue

Нео.... или Морфей точно знает :)


 
{RASkov} ©   (2008-07-29 23:40) [27]

> [25] ++vist++ ©   (29.07.08 23:36)

Что такое матрицы Red, Green и Blue?
Массивы значений каждого пиксела? т.е. состовляющие цвета? См. [4] и [3]


 
{RASkov} ©   (2008-07-29 23:50) [28]

Псевдо:
var
 RedArr, GreenArr, BlueArr: array of Byte;
 X, Y: Integer;
begin
 SetLength(RedArr, holstwidth*holstheight);
....
 for X:=0 to holstwidth do
  for Y:=0 to holstheight do begin
   RedArr[holstwidth*Y+X]:=GetRValue(holst{.canvas}.Pixel[X,Y]);
.....
  end;
end;


 
++vist++ ©   (2008-07-30 00:13) [29]


> {RASkov}


Пытаюсь считать таким способом. Выдает сообщение "Can only modify an image if it contains a bitmap"...


 
Anatoly Podgoretsky ©   (2008-07-30 00:55) [30]

> {RASkov}  (29.07.2008 23:50:28)  [28]

Речь стояла об матрице, а не векторе.


 
antonn ©   (2008-07-30 01:29) [31]


>
> Пытаюсь считать таким способом. Выдает сообщение "Can only
> modify an image if it contains a bitmap"...

в Image должен быть bmp, стучаться надо в TImage.picture.bitmap.canvas, а не в Тimage.canvas


 
antonn ©   (2008-07-30 01:32) [32]

возможно чем то пригодится:
http://kladovka.net.ru/index.cgi?pid=list&rid=252


 
++vist++ ©   (2008-07-30 07:49) [33]


> в Image должен быть bmp, стучаться надо в TImage.picture.
> bitmap.canvas, а не в Тimage.canvas
>


Пробовал. Для любого пиксела выдается значение 255 для всех яркостей. Реагирует одинаково как на .jpg, так и .bmp ...


 
@!!ex ©   (2008-07-30 09:05) [34]

> значение 255 для всех яркостей.

ЭТО НЕ ЯРКОСТЬ, ЭТО НАСЫЩЕННОСТЬ.


 
antonn ©   (2008-07-30 09:11) [35]


> ЭТО НЕ ЯРКОСТЬ, ЭТО НАСЫЩЕННОСТЬ.

помоему он говорит о значении канала в rgb, в систему hsl он перевода не делал...


 
KilkennyCat ©   (2008-07-30 09:14) [36]

ЭТО НЕНАСЫЩЕННОСТЬ!!!


 
@!!ex ©   (2008-07-30 23:13) [37]

> [36] KilkennyCat ©   (30.07.08 09:14)

А что это?


 
@!!ex ©   (2008-07-30 23:18) [38]

На картинке два цвета:
http://img227.imageshack.us/img227/2814/lumsn1.png
Какой из них визуально ярче?
Не знаю как вам, а лично мне визуально желтый кажется ярче фиолетового...
Хотя с точки зрения RGB они равнозначны.


 
KilkennyCat ©   (2008-07-30 23:19) [39]


> @!!ex ©   (30.07.08 23:13) [37]
> > [36] KilkennyCat ©   (30.07.08 09:14)
>
> А что это?


в смысле? Вы думаете, я забыл пробел?


 
@!!ex ©   (2008-07-30 23:22) [40]

> [39] KilkennyCat ©   (30.07.08 23:19)

А. Все. Понял.
Имеется ввиду не количество цвета, а его отсутсвие... Согласен. :)



Страницы: 1 2 вся ветка

Текущий архив: 2008.09.14;
Скачать: CL | DM;

Наверх




Память: 0.56 MB
Время: 0.02 c
9-1165756032
darkangel
2006-12-10 16:07
2008.09.14
3д мир и клики мышью. (OpenGL)


15-1216815562
oldman
2008-07-23 16:19
2008.09.14
А у меня завтра дочери исполняется шесть лет!


3-1206022526
patrick1968
2008-03-20 17:15
2008.09.14
BatchMove из Oracle


2-1217606385
InsanI
2008-08-01 19:59
2008.09.14
Ввод текста в другой программе


11-1193050704
DevilDevil
2007-10-22 14:58
2008.09.14
механизм MCK. как реализовать?