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

Вниз

Как получить каждый кадр с Web камеры в память?   Найти похожие ветки 

 
AlexT1000 ©   (2003-09-04 12:00) [0]

просто как TBITMAPINFO или дамп памяти или в каком либо другом виде.
Кто сталкивался дайте пожалуйста кусочек кода


 
pasha_676 ©   (2003-09-04 12:41) [1]

Каптуришь кадр и записываешь. Все прозрачно.


 
Sapersky ©   (2003-09-04 14:44) [2]

http://delphimaster.net/view/8-1060930510/


 
AlexT1000 ©   (2003-09-04 15:15) [3]

>> Sapersky у меня в системе нет указанного вами ActiveX компонента.
Есть еще варианты?

я тут выкопал такую ссылку в хелпе
{
VideoCallbackProc: Video Stream Callback Function
Called whenever a new frame is captured while streaming
Wnd: Application main window handle
VHdr: long pointer to VideoHdr struct containing captured
frame information
}
function VideoCallbackProc(WND :hWnd; VHdr:tVIDEOHDR):longint; stdcall;

fpVideoCallback := @VideoCallbackProc;
AVICapSM(WM_CAP_SET_CALLBACK_VIDEOSTREAM,0,longint(fpVideoCallback));

Якобы эта функция должна вызываться на каждом кадре . но она почемуто не вызывается. может кто знает почему?

но


 
AlexT1000 ©   (2003-09-04 15:22) [4]

И еще . может я чего не понимаю и это разные вещи но сейчас у меня стоит камера ,которая подключается к отдельной плате.
а Web-камера подключается к USB -порту?
будет ли данный вызов работать с WEb камерой или это только для камер с отдельными платами?

CapHwnd := CapCreateCaptureWindowA("My Capture Window", ws_child or WS_Visible,
CapWinX, CapWinY, 160, 120, Handle, 0);

проясните ситуацию, пожалуйста


 
pasha_676 ©   (2003-09-04 17:10) [5]

Все зависит от того, как может воспринимать система твое камеру, какие дрова и т.д.
Самый простой способ проверки на возможность работы через Windows API - запустить утилитку мелкомягких VidCap. Если она "видит" твою камеру - тады все окей. Так можно делать.
А вообще бросай API и попробуй покапаться со стороны DirectX. Сейчас у меня все работает через DSPack (www.progdigy.com). Однако если в составе к камере не идут WDM-дрова (как правило старые железки) - тогда дохлый номер.


 
Smok_er   (2003-10-04 13:03) [6]

Вроде DSPack работает только с DirectX 9.0 Или я не прав?


 
pasha_676 ©   (2003-10-06 09:51) [7]


> Или я не прав?

Читай у них страницу.


 
Smok_er   (2003-10-06 11:04) [8]

Ну прочитал и понял, что только с DirectX 9.0. Это так или я неправильно понял?


 
pasha_676 ©   (2003-10-06 14:11) [9]


> Это так или я неправильно понял?

Ты неправильно понял. Например там лежит версия 1.05.


 
Smok_er   (2003-10-06 14:36) [10]

У меня кстати так и не получилось откомпилить ни один пример, который идет в поставке с версией 2.31.
НА компе установлен DIrectX 9
Может знаешь в чем траблы? Вылетают ошибки в DirectShow9.pas :(


 
pasha_676 ©   (2003-10-06 15:22) [11]

Не знаю. Сейчас на 1.05 сижу. Но компилил. Работало. Вот только номер версии не помню (2 с хвостом).


 
Smok_er   (2003-10-06 15:52) [12]

Поставил себе 1.05
На первый взгляд возможностей конечно поменьше чем в TVideoGrabber. Кстати, у тебя есть документация нормальная к этому компоненту?


 
pasha_676 ©   (2003-10-06 17:53) [13]

Нет конечно. TVideoGraber не знаю что вообще. А 1.05 на самом деле обладает очень хорошими возможностями. Он почти вплотную близок к DirectShow. Во всяком случае потом с него без труда перешел на Direct(почти перешел, в связи с увольнением процесс затянулся).
Основная документация - DirectX SDK + примеры.


 
Smok_er   (2003-10-06 18:00) [14]

А есть возможность у 1.05 выводить надпись поверх изображения? Сохранять картинки в различных форматах?


 
misterix   (2003-10-06 18:13) [15]

AlexT1000

Да не мучайся ты. Поищи в инете, скорее всего на Тори, компонент
TVideoCap. Там все есть с примерами. Мы же Дельфи-программисты! Компоненты FOREVER!


 
Smok_er   (2003-10-06 18:23) [16]

Я его уже видел.
Там много чего дорабатывать надо, сырой он еще :(
TVideoGrabber - rulez, но не могу найти свежие исходники :(


 
pasha_676 ©   (2003-10-07 09:55) [17]


> А есть возможность у 1.05 выводить надпись поверх изображения

Если не через Direct то хоть на кавасе рисуй. Через директ пожалуй можно интересней замутить (сам не пробывал).


> Сохранять картинки в различных форматах?

Фильтр и компанент SampleGraber. Пример есть.


> TVideoGrabber - rulez, но не могу найти свежие исходники
> :(

Ага. Только не дает хороший контроль над графами. Во всяком случае на ряде девайсов он у меня не заработал. Промежду прочим DSPack тоже компанент и тоже с примерами.

Компанеты хороши для скорости разработки, для качества и взаимодействия с системой однако не фигово знать и API и Direct.


 
Smok_er   (2003-10-07 10:03) [18]

Блин, сейчас такое состояние, что хоть самому бери и пиши себе компонент...


 
pasha_676 ©   (2003-10-07 11:03) [19]


> Блин, сейчас такое состояние, что хоть самому бери и пиши
> себе компонент...

На самом деле в DirectShow все ужой сделано. Облекать все это в форму компанента (при наличии подробных описаний в SDK) нафиг не надо. На самом деле что надо - это написать статью с примерами на дельфине о том как это делать. Возможно надо остановиться на ключевых интерфейсах, а так же на интерфейсах ввода/вывода, настроек пинов фильтров и т.д. Возможно надо описать в трех вариантах - автоматическое построение графа, полуавтоматическое и ручное.
Что еще? А нуда. Как сграбить кадр изображения. Можно на примере SampleGraber фильтра.

Былоб время занялся бы этим. И сам бы голову в порядок привел и народу польза.


 
Smok_er   (2003-10-07 11:21) [20]

Ну так если самому время себе не выкраивать, так оно никогда в жизни не появится. А это было бы действительно неплохим подспорьем как для начинающих в DirectX, так и "продолжающих".


 
pasha_676 ©   (2003-10-07 11:25) [21]


> Ну так если самому время себе не выкраивать, так оно никогда
> в жизни не появится.

Вообще-то был не плохой шанс выбить из начальства время на переделку всех моих прог на чистый Direct. Тогда бы время появилось. Но сейчас поздно. Увольняюсь.


 
Smok_er   (2003-10-07 11:32) [22]

Ясно... А где можно скачать доки по DirectX, и по DirectShow в частности?


 
pasha_676 ©   (2003-10-07 11:42) [23]

Ну давай тебя нагружу :).

Дока по ДиректХ имеется на том же progdigy. Ее качаешь. Суть справка. Там открываешь раздел по ДиректШоу. там надо читать разделы по фильтрам, а так же приводяться примеры на Си (по видеовходу тоже есть). В принцыпе довольно много инфы и в ней надо копаться.
Могу еще прислать на мыло пример с коментариями по воспроизведению AVI через Direct. А самое основное - надо понять, что все это суть связанные кубики. Просто в зависимости от ситуации ты берешь нужные кубики и из них лепишь.

Т.е. Чтобы воспроизвести что бы то ни было надо:

1)создать граф фильтров
2) добавить туда кубики фильтров
3) при необходимости произвести настройки в фильтрах и в их контактах
4) при необходимости соединить фильтры связями
5) отрендерить
6) вывести в нужную часть экрана

Чтобы лучше это прочюйствовать рекомендю поюзать Microsoft GraphEdit. После того как я с ним разобрался, я на практике понял как это работает. Качать его там же на progdigy.


 
misterix   (2003-10-07 11:49) [24]

2Smok_er

Что значит сырой? Грабить грабит? Еще как. В битмап сохраняет? Запросто. Текст сверху можно нарисовать? А почему бы на битмапе текст не вывести?


 
pasha_676 ©   (2003-10-07 12:05) [25]


> Что значит сырой? Грабить грабит?

Хм. Давай скажем так. Не на всех девайсах у меня получалась с ним грабить. А c DSPack+не большие вкрапления DirectShow это получается. Не знаю как сейчас, но раньше этот компанет де факто просто строил автоматом фильтр от девайса в тупую. Не было возможности редактирования графа.


 
Smok_er   (2003-10-07 12:47) [26]

pasha_676 © (07.10.03 11:42) [23]
Да вот качаю некую инфу с progdigy.com.
Дело в том, что мне нужно именно под DirectX 8.

misterix (07.10.03 11:49) [24]
Не, у меня было пару багов...


 
pasha_676 ©   (2003-10-07 13:10) [27]


> Дело в том, что мне нужно именно под DirectX 8.

В основе своей не отличается абсолютно. Изменения в основном каснулись 3D. Для начального изучения подойдет однозначно. Там все такое же должно остаться.


 
Smok_er   (2003-10-07 13:45) [28]

Т.е. я могу написать прогу с использование 9-ой версии, а запустить потом на компе с 8-ой?
Интересно...


 
pasha_676 ©   (2003-10-07 14:59) [29]

Конечно можешь. Ты слышал о СОМ технологии? Только надо использовать интерфейсы, которые есть и там и там. Вообще, кстати почитай о СОМ - базовый принцып не сложен, а больше чем базовый принцып в этой задачи и не нужен.


 
Smok_er   (2003-10-07 15:22) [30]

Теперь ясно! Спасибо! Осталось только установить, у меня с этим траблы были.


 
KIE   (2003-10-12 23:17) [31]

А вообще вот дока по теме : rcorp.boom.ru/ Жаль что нашел я её, когда все уже написал ...


 
pasha_676 ©   (2003-10-13 09:34) [32]

Хорошая весЧЪ по VFW на АПИ, но все горе заключается в том, что многие производители уже практически не пишут дрова под VFW. WDM вытесняет.

Вот меннее фундаментальная, зато на дельфи :), по VFW

http://www.argc-argv.relc.com/1112_2001/video.php

И еще раз повторю - сейчас лучше отходить от VFW и сразу начинать писать под WDM (DirectShow).


 
Анонимщик ©   (2003-10-13 11:12) [33]

Ну что, получилось?
У меня, кстати, тоже под восьмим сначала не пошло.
Во-первых, пришлось пару строк (не помню каких) в исходниках закомментировать. Если не компилируются, напиши, где именно, посмотрю у себя.
Во-вторых, бардак был с DirectX-драйверами. Попробовал запустить на "чистой" машине с только что установленным 8-ым directX, и все пошло. Потом и у себя все вышло.
Напиши, будь добр, о проблемах, а то все равно когда-нибудь может вылезти, так чтобы быть готовым.



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

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

Наверх




Память: 0.55 MB
Время: 0.029 c
8-38975
Blacked
2003-10-14 01:37
2004.02.13
Как отследить окончание просмотра файла в TMediaPlayer?


3-38717
DelphiNew
2004-01-22 10:53
2004.02.13
Индексы


14-39041
Goida
2004-01-25 00:10
2004.02.13
Работа с электронной почтой


1-38884
MadGhost
2004-02-04 18:34
2004.02.13
как продолжить поиск в тексте функцией AnsiPos


3-38675
denis24
2004-01-24 10:55
2004.02.13
поиск в базе