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

Вниз

Удаление черного и серого из рисунка.   Найти похожие ветки 

 
Карелин Артем   (2002-09-06 10:55) [0]

Итак, есть куча видеофайлов. В них вращается сложная спиралевидная фигура, состоящая из белых точек.
Поскольку это сжатое видео, то белые точки на черном фоне превращаются в градиент от белого до черного. Требуется быстро удалать черные и темно-серые пиксели из TBitmap.
Что посоветуете?


 
MBo   (2002-09-06 12:24) [1]

1) самое быстрое - Intel Image Processing Library
2) получить адрес данных TBitmap, пробежать по этому куску памяти
Проще - GetDIBits, SetDIBits
3) Scanline


 
Карелин Артем   (2002-09-06 12:43) [2]

Intel Image Processing Library:
developer.intel.com 22 мега, DLL-ки увесистые


 
Владимир Васильев   (2002-09-06 13:59) [3]

Пиксели удалить нельзя - можно заменить один цвет (или диапазон цветов) на другой.
Обьясните подробнее вашу проблему.


 
Карелин Артем   (2002-09-06 14:21) [4]

В общем надо все пиксели темнее заданного заменить на один определенный.


 
Владимир Васильев   (2002-09-06 14:42) [5]

Предлагаю юзать G32:
Код не проверял, но должно работать


//TreshOld-величина среза по интенсивности
procedure DoIt(Dst, Src: TBitmap32; TreshOld: integer; DestColor : TColor32 );
var
I: Integer;
D, S: PColor32;
begin
CheckParams(Dst, Src);
Dst.SetSize(Src.Width, Src.Height);
D := @Dst.Bits[0];
S := @Src.Bits[0];
for I := 0 to Src.Width * Src.Height - 1 do
begin
if Intensity(S^)<TreshOld
then D^:=DestColor
else D^:=S^;
Inc(S); Inc(D);
end;
Dst.Changed;
end;


 
msts   (2002-09-06 14:44) [6]

а распознать фигуру случаем тоже надо?


 
Карелин Артем   (2002-09-06 14:47) [7]

Распознавать не надо.


 
Владимир Васильев   (2002-09-06 14:47) [8]

Опечатка: ThreshOld - а то и в правильном написании неблагозвучно.


 
samvel   (2002-09-06 22:27) [9]

если все пиксели серово цвета, то значит у них R=G=B, можно
получить цвет пискеля (colortoRGB.pixels[i,j]), a потом получить
значение или R или G или B (r:=getrvalue(colortoRGB.pixels[i,j]),
a потом заменить их каким хотим:
(image1,canvas.pixels[i,j]:=RGB(r,g,b))



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

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

Наверх





Память: 0.45 MB
Время: 0.008 c
14-74993
Marcus
2002-12-03 17:20
2002.12.23
С чем у вас ассоциируется жанр


14-74919
Sergey13
2002-12-02 08:50
2002.12.23
Музыка для мобильника


14-74939
Axis_of_Evil
2002-12-02 12:48
2002.12.23
Macintosh vs Остальное


3-74620
Identifikator Borna
2002-12-03 16:17
2002.12.23
А могут ли Table и Query работать с одним DataSource и DBGrid?


1-74740
orion_st
2002-12-10 16:30
2002.12.23
Проблемы с добавлением объекта в StringList





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