Вниз
Скачать: CL | DM;

Управление платой видеозахвата   Найти похожие ветки 

 
joseph   (2006-12-27 11:19) [0]

Здравствуйте, уважаемые коллеги.

Прошу помочь новичку в области видеозахвата.

Для одного приложения, которое я пишу, требуется вывод на экран, а затем запись в файл одним блоком одного кадра  изображений с четырех видеокамер.

Есть четырехвходовая плата на чипе Bt878. Для видеозахвата я использую DSPack (аналог примера PlayVideoCap из дистрибутива).

Переключение входов пытаюсь делать с помощью метода Route интерфейса IAMCrossBar.

procedure TVideoForm.SampleGrabberBuffer(sender: TObject;
 SampleTime: Double; pBuffer: Pointer; BufferLen: Integer);
var
 Image: TImage;

begin
 case DeviceNo of
   0: Image := Image1;
   1: Image := Image2;
   2: Image := Image3;
   3: Image := Image4;
 end;

 Image.Canvas.Lock;
 try
   SampleGrabber.GetBitmap(Image.Picture.Bitmap, pBuffer, BufferLen);
 finally
   Image.Canvas.Unlock;
 end;

 Inc(DeviceNo); if DeviceNo > 3 then DeviceNo := 0;

 amcbTest.Route(0, DeviceNo);
end;

Каналы действительно выводятся каждый в свой Image, но выглядят как кадры телевизора
с неисправной кадровой синхронизацией: то посредине кадра какая-то полоса, то часть
изображения одного канала попадает в окно другого и т.п.

Наверное событие OnBuffer надо как-то синхронизовать с переключением? Или я вообще иду по неверному пути?

Помогите, пожалуйста разобраться с происходящим!

Заранее благодарен,

                                  Иосиф Рисенберг


 
medved_68 ©   (2006-12-28 09:40) [1]


> Каналы действительно выводятся каждый в свой Image, но выглядят
> как кадры телевизора
> с неисправной кадровой синхронизацией: то посредине кадра
> какая-то полоса, то часть
> изображения одного канала попадает в окно другого и т.п.
>

joseph после переключения входа на другой канал необходимо для "устаканивания" изображения перед захватом кадра сделать паузу примерно 280 мс. Или же пропустить два кадра и захватить в Имадже 3. :)))


 
Sapersky   (2006-12-28 12:34) [2]

Если есть возможность - лучше синхронизировать камеры (общий FPS будет выше). См. в инструкции словосочетания line-lock (от сети) и gen-lock (друг от друга).


 
joseph   (2006-12-29 00:33) [3]

Большое спасибо, коллеги!

Оказалось достаточным просто пропустить один кадр. С синхронизацией камер обязательно попробую.



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.015 c
15-1189177104
AZIZE
2007-09-07 18:58
2007.10.07
Просто жуть


2-1189337391
delphiForever
2007-09-09 15:29
2007.10.07
аналог Sleep, но с "мягкой" задержкой


3-1180427313
Sergdead
2007-05-29 12:28
2007.10.07
Delphi+Access (DateTime)


2-1189280080
AlRal
2007-09-08 23:34
2007.10.07
Нахождение всех файлов на сайте


15-1189200756
Petr V. Abramov
2007-09-08 01:32
2007.10.07
славные 90-е РФ




   Наверх