Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.09.14;
Скачать: [xml.tar.bz2];

Вниз

Как считать коды яркостей 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.54 MB
Время: 0.057 c
15-1215880737
No_Dead
2008-07-12 20:38
2008.09.14
от нечего делать — задумался (IT и автомобили)


2-1217636950
Res
2008-08-02 04:29
2008.09.14
beginthread


15-1216620114
Vlad Oshin
2008-07-21 10:01
2008.09.14
Постоянно в памяти висит процесс WinWord.exe


2-1217430165
datorn
2008-07-30 19:02
2008.09.14
TStream


6-1193251938
Leron
2007-10-24 22:52
2008.09.14
Домашняя сеть + инет + локалка





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский