Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Захват видео с Веб камеры, Захват видео с Веб камеры 
V
    Опции темы
VasRip
Дата 16.3.2015, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 16.9.2006
Где: РоссийскаяХохлянд ия

Репутация: нет
Всего: нет



Код подключения к Веб камере
Код


#include <vcl.h>
#include <vfw.h>
#include <Windows.h>
#include <Clipbrd.hpp>

#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
HWND hWndC;
TClipboard *pCB = Clipboard();
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    hWndC = capCreateCaptureWindowA("", WS_CHILD, this->Left, this->Top, this->Width, this->Height, this->Handle, 11011);

    capDriverConnect(hWndC, 0);
    Timer1->Enabled = true;

}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{

capGrabFrame(hWndC);

if (capEditCopy(hWndC)){
    Image1->Picture->LoadFromClipboardFormat(CF_BITMAP, pCB->GetAsHandle(CF_BITMAP),0);}

}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
capDriverDisconnect(hWndC);
}





В камере идет непрерывный  поток. Чтобы вырвать кадр из потока что нужно сделать?
Ну вот в виндовом приложение можно видео поток совать в элемент 
Image1->Picture->LoadFromClipboardFormat(CF_BITMAP, pCB->GetAsHandle(CF_BITMAP),0);
И уже из элемента вытянуть кадр просто сделав снимок с того что в элементы. 
А Именно программно можно сделать что-то с потоком чтобы вернулся всего 1 снимок?

PM MAIL   Вверх
xvr
Дата 16.3.2015, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Video Capture по умолчанию сливает захваченный поток в файл (см тут), но можно и покадрово вручную.
Для этого надо отключить слив в файл - см тут
Это макрос capCaptureSequenceNoFile для отключения файла и макрос capSetCallbackOnVideoStream для установки callback функции на перехват каждого кадра


Это сообщение отредактировал(а) xvr - 16.3.2015, 16:14
PM MAIL   Вверх
VasRip
Дата 17.3.2015, 08:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 16.9.2006
Где: РоссийскаяХохлянд ия

Репутация: нет
Всего: нет



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

нашел

    capDriverConnect(hWndC, 0);

    capGetVideoFormat(hWndC, &bmInfo, sizeof(bmInfo));
    bmInfo.bmiHeader.biWidth = 160;
    bmInfo.bmiHeader.biHeight = 120;
    bmInfo.bmiHeader.biSizeImage = 160 * 120 * 2;
    capSetVideoFormat(hWndC, &bmInfo, sizeof(bmInfo));

Это сообщение отредактировал(а) VasRip - 17.3.2015, 15:00
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0841 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.