Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

пиксель [D6, Win95/98]


gregz ©   (2003-01-17 17:10:00) 

Допустим, у меня есть девайс, передающий изображение в реальном времени с фреймрейтом~10 с малым разрешением.Мне нужно проверить атрибут цвета каждого пикселя для сравнения с неким эталоном, параметры которого оговорены.Как это зделать в Delphi6?


Th   (2003-01-17 17:23:00) [1]

У меня подобная задача решена, правда скорость захвата кадра (которую здесь "фреймрейтом" названа (ужасное слово ;))) 1/30 с
Я сделал так - предположим изорбажение храниться в некоем Bitmap: TBitmap:

function GetBMPBits(const HBMP: HBitmap): pointer;
var bmpinfo: Bitmap;
begin
if HBMP<>0 then
begin
GetObject(HBMP,sizeof(Bitmap),@bmpinfo);
result:=bmpinfo.bmBits;
end
else
result:=nil;
end;

там где сравнивать надо:
var ptr: pointer;
i, j: integer;
begin
...
ptr:=GetBMPBits(Bitmap.Handle);
for i:=0 to h-1 do
for j:=0 to w-1 do
...ppixel(integer(ptr)+(i*w+j)*b)...
...
end;

здесь w, h, b - ширина, высота и размер пиксела в байтах
ppixel = ^byte например если b = 1 и bitrate = 8 соответвенно


Наверх

Титульная страница Поиск, карта сайта Написать письмо