![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
пиксель [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 соответвенно