Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.12.2009, 22:36   #1
BleStaR
Форумчанин
 
Регистрация: 25.09.2009
Сообщений: 234
По умолчанию Видео с веб камер

Доброе время суток!

Пишу курсовую, надо получить видео с веб камер. Нашел в инете код
Код:
#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::BitBtn1Click(TObject *Sender)
{
  hWndC = capCreateCaptureWindow ( "",
			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);
}
//---------------------------------------------------------------------------
Если не трудно объясните что тут происходит, ибо я запутался...:
1)capCreateCaptureWindow - создания окна видеозахвата, параметры (имя, видимость, ...размеры..., ??, идентификатор) - не знаю для чего предпоследний, и как влияет последний параметр.
2)capDriverConnect - конект к камере, почему второй параметр от 0 до 9, и за что он отвечает?
3)capGrabFrame - получить картинку с камеры, это понятно
4)capEditCopy- а вот для чего, что и куда копируем не понятно.
5)Можно ли полученную картинку представить в другом виде, а не в числе типа int. И как это сделать?(просто в будущем придется его в MJPEG переводить)

P.S. Работаю на ноутбуке, данный код встроенную камеру распознает, а вот купленую USB - камеру не видит. Почему и как это исправить?
BleStaR вне форума Ответить с цитированием
Старый 06.12.2009, 12:40   #2
BleStaR
Форумчанин
 
Регистрация: 25.09.2009
Сообщений: 234
По умолчанию

Да не поверю что бы ни кто не знал таких фукнции!!! Трудно подсказать???
BleStaR вне форума Ответить с цитированием
Старый 06.12.2009, 14:25   #3
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Цитата:
Работаю на ноутбуке, данный код встроенную камеру распознает, а вот купленую USB - камеру не видит. Почему и как это исправить?
он будет распознавать и купленную... просто по-умолчанию драйвер подключается к текущей камере, а таковой является встроенная (которая тоже usb)... вам нужно выбрать внешнюю usb за default в настройках... (вспомните, в skype такой выбор имеется)

еще почитайте
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 07.12.2009, 21:31   #4
BleStaR
Форумчанин
 
Регистрация: 25.09.2009
Сообщений: 234
По умолчанию

Подключение к камере происходит в этой строчке(я так понимаю):
capDriverConnect (hWndC, 0);
Значит можно подключиться и ко второй камере аналогичным способом, пусть даже она будет не default'овская. В help'e говориться что второй параметр это индекс камеры, и изменяется он от 0 до 9(не знаю почему). прогонял варианты и безуспешно. Что то нужно менять либо в объявлнении окна видеозахвата, либо в функции подключения(так как ни чего более в этой строчке ни используется). Вот правда не могу понять что надо поменять... Есть варианты?
BleStaR вне форума Ответить с цитированием
Старый 08.12.2009, 09:30   #5
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

гляньте в генофонд JLCVideo (основан на том же avicap32), там вроде был выбор камеры...

еще совет, гораздо удобнее для доступа к камерам использовать directshow, например тут есть пример такого доступа через dspack с выбором подключенных устройств видеозахвата из списка.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation

Последний раз редактировалось raxp; 08.12.2009 в 10:07.
raxp вне форума Ответить с цитированием
Старый 18.12.2009, 21:23   #6
BleStaR
Форумчанин
 
Регистрация: 25.09.2009
Сообщений: 234
По умолчанию

еще вопросик касательно приведенного мной выше кода...
Там используется такой объект как ClipBoard - это буфер обмена... прога получает изображение с камеры и помещает в буфер... далее в функции
LoadFromClipboardFormat(CF_BITMAP, pCB->GetAsHandle(CF_BITMAP), 0);
я показываю изображение из буфера в Image для этого ипользую хендл (или дескриптор котоый она возвращает для этого объекта).
Вопрос как мне извлечь мое изображение из буфера и сохранить ,ЖЕлательно в формате JPEG). Это нужно для того что бы можно было передовать изображение по сети, ибо передача хендела ничего не даст!!!
Итак:
1)как извлечь картинку из буфера?
2)как ее сохранить в каком нибудь объекте?
3)как представить его в формате JPEG?
BleStaR вне форума Ответить с цитированием
Старый 10.02.2010, 16:31   #7
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...работа с буфером обмена 1 2
...смысла помещать в буфер обмена не вижу, потери времени
...преобразовать в jpg
...сохранить можно файлом, а зачем объект? оно и так в памяти.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Веб бровсер xakkkkker Работа с сетью в Delphi 6 17.02.2009 10:35
Веб-страница pplfil9 HTML и CSS 3 29.10.2008 16:02