Главная страница
    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.011 c
14-74947
race1
2002-12-01 16:29
2002.12.23
ndd and ntfs


3-74594
Tiny
2002-12-04 08:31
2002.12.23
DBGrid и картинки....


4-75033
apay
2002-11-09 02:07
2002.12.23
Как получить MenuSpeed (delay-before-show time)


14-74933
Сатир
2002-12-01 20:53
2002.12.23
Исходящие на шару?


1-74726
Gennadiy
2002-12-13 12:16
2002.12.23
Работа с текстом





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