Главная страница
    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
1-55082
Leo^Sun
2002-06-02 22:30
2002.06.17
Призеры


1-55120
PTE
2002-06-06 10:15
2002.06.17
Как по нажатию кнопки удалить процедуру из кода программы?


1-55211
Zamiran
2002-06-05 11:45
2002.06.17
Помогите плизз!!!


3-55009
AndruhaM
2002-05-23 16:06
2002.06.17
Как организовать поиск


1-55210
Аня
2002-06-05 12:47
2002.06.17
Создание справочной системы





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