Главная страница
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.022 c
2-1217300882
apic
2008-07-29 07:08
2008.09.14
иконки


15-1216701537
Sergey13
2008-07-22 08:38
2008.09.14
СУБД Ред База Данных. Никто не пробовал? Как впечатления?


2-1216308535
Дмитрий Белькевич
2008-07-17 19:28
2008.09.14
Окно - прогресс в отдельном потоке


6-1193124658
Alex_C
2007-10-23 11:30
2008.09.14
Загрузить фаил на сервер


15-1216979977
Jolik
2008-07-25 13:59
2008.09.14
Есть работа...