Форум: "Начинающим";
Текущий архив: 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