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

Вниз

Как качественно перевести цветную картинку в черно-белую   Найти похожие ветки 

 
dmitriyk   (2002-01-31 03:22) [0]

Народ! Может кто знает как перевести картинку в черно-белую, при этом не теряя качества. Пробовал процедуру, которая есть в этом форуме, там где использованы стандартные коэыициенты перевода, применяемые на TV, но она в итоге, сильно искажает картинку.
Може кто поможет готовым кодом. буду признателен.


 
Фэ   (2002-01-31 10:14) [1]

http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1012350234&n=7


 
Yuraz   (2002-01-31 10:19) [2]

var p: TColor;
p1: byte;

{...}

for x := 0 to Image1.Width-1 do
for y := 0 to Image1.Height-1 do
begin
p := Image1.Canvas.pixels[x, y];
p1 := (GetRValue(p)+GetGValue(p)+GetBValue(p)) div 3;
Image1.Canvas.pixels[x, y] := RGB(p1, p1, p1);
end;


 
dmitriyk   (2002-02-01 03:22) [3]

Yuraz !

К сожалению ваша процедурка после преобразования, тоже портит картинку. Но всеравно, большое спасибо всем.


 
VuDZ   (2002-02-01 04:55) [4]


for( int i=0; i < nColors; i++)
{
long lSquareSum = bmInfo.bmiColors[i].rgbRed
* bmInfo.bmiColors[i].rgbRed
+ bmInfo.bmiColors[i].rgbGreen
* bmInfo.bmiColors[i].rgbGreen
+ bmInfo.bmiColors[i].rgbBlue
* bmInfo.bmiColors[i].rgbBlue;
int nGray = (int)sqrt(((double)lSquareSum)/3);
pLP->palPalEntry[i].peRed = nGray;
pLP->palPalEntry[i].peGreen = nGray;
pLP->palPalEntry[i].peBlue = nGray;
pLP->palPalEntry[i].peFlags = 0;
}


http://www.codeguru.com/bitmap/grayscale.shtml
http://www.codeguru.com/bitmap/index.shtml


 
Фэ   (2002-02-01 09:47) [5]

>dmitriyk
Обрати еще раз внимание на гамма-коррекцию.
А вот тебе пример софта и сконвертированных изображений
ftp://ftp.pi8plus.ru/download/math/image/togray

25,872 d3.jpg метод RGB/3
27,046 gamma1_5.jpg Гамма-коррекция 1.5
27,068 gamma2_0.jpg -"- 2.0
26,703 gamma2_5.jpg -"- 2.5
29,734 test.jpg Тестовая картинка
235,008 togray.exe Тест
25,928 tv.jpg Метод TV

ВОпросы остануться - отвечу.


 
Фэ   (2002-02-01 09:48) [6]

Sorry
ftp://ftp.pi8plus.ru/download/math/images/togray


 
Фэ   (2002-02-01 09:50) [7]

Да что за черт
ftp://ftp.pi8plus.ru/pub/download/math/images/togray/


 
dmitriyk   (2002-02-02 04:25) [8]

>Фэ, VuDZ

Спасибо большое. Вопросов пока нет.


 
Donal_Graeme   (2002-02-03 20:59) [9]

procedure ToGray(Bm1 : TBitmap; BR : TBitmap);
var I, J, K : Integer;
R, G, B, C : Byte;
L1, L2 : PByteArray;
begin
If Bm1.PixelFormat <> pf24bit then Bm1.PixelFormat := pf24bit;
BR.Width := Bm1.Width;
BR.Height := Bm1.Height;
BR.PixelFormat := pf24bit;
For I := 0 to Bm1.Height -1 do
begin
L1 := Bm1.ScanLine [I];
L2 := BR.ScanLine [I];
For J := 0 to Bm1.Width -1 do
begin
K := J*3;
B := L1[K];
Inc(K);
G := L1[K];
Inc(K);
R := L1[K];
C := (299*R +587*G +114*B) div 1000;
L2[K] := C;
Dec(K);
L2[K] := C;
Dec(K);
L2[K] := C;
end;
end;
end;



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

Форум: "Media";
Текущий архив: 2002.06.17;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.006 c
14-55303
lak_b
2002-05-16 00:01
2002.06.17
сон и мы


3-55024
dyacha
2002-05-22 12:19
2002.06.17
Доступ к базам БЕСТ


4-55349
Gayrus
2002-04-13 07:02
2002.06.17
Cобытия


1-55208
Immortal
2002-06-05 12:36
2002.06.17
Ожидание завершения программы


4-55368
DeadMoroze
2002-04-15 00:52
2002.06.17
Active desktop





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский