Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.23;
Скачать: CL | DM;

Вниз

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

 
Карелин Артем ©   (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 вся ветка

Текущий архив: 2002.12.23;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.018 c
1-74800
Сергей
2002-12-11 14:18
2002.12.23
пример программного добавления папки и программ в меню Start->Pro


1-74764
Иванов Сергей
2002-12-10 20:24
2002.12.23
как заставить D5 сохранять изменения в *.dfm


14-74928
lak_b
2002-12-01 15:03
2002.12.23
файлы ресурсов


14-74995
Ketmar
2002-12-03 21:13
2002.12.23
test


14-74930
AL2002
2002-12-02 09:46
2002.12.23
Заурядный вопрос про погоду...