Работа с юсб веб камерами
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Работа с юсб веб камерами - 2007-05-29 12:42:31.226666
|
|
|
T
Сообщений: 1100
Оценки: 0
Присоединился: 2006-01-14 00:15:36
|
Как работать с ЮСБ веб камерой(камерами), на вижуал с++, желательно не при помощи Винапи, а на прямую получая данные из юсб порта.
|
|
|
RE: Работа с юсб веб камерами - 2007-05-29 16:55:30.510000
|
|
|
halkfild
Сообщений: 286
Оценки: 0
Присоединился: 2006-11-27 18:26:36.310000
|
ну.. я под билдером получал так
//---------------------------------------------------------------------------
#include <vcl.h>
#include <vfw.h>
#include <Clipbrd.hpp>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "CSPIN"
#pragma resource "*.dfm"
TForm1 *Form1;
TClipboard *pCB;
HWND hWndC;
Graphics::TBitmap *Buffer;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
pCB = Clipboard ();
Buffer = new Graphics::TBitmap;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
hWndC = capCreateCaptureWindow ("", WS_CHILD, this->Left, this->Top, this->Width, this->Height, this->Handle, 11011);
capDriverConnect (hWndC, 0);
Timer1->Interval = cseTime->Value;
Timer1->Enabled = true;
Canvas->Pen->Width = 4;
Canvas->Pen->Color = clRed;
Caption = IntToStr (Buffer->Width) + " : " + IntToStr (Buffer->Height);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
capGrabFrame (hWndC);
if (capEditCopy (hWndC)) {
Buffer->LoadFromClipboardFormat(CF_BITMAP, pCB->GetAsHandle (CF_BITMAP), 0);
// Canvas->Draw (10, 10, Buffer);
int Hmin;
int x = 10, y = 10;
int z=0;
for (int j = 0; j < Buffer->Height; j++) {
for (int i = 0; i < Buffer->Width; i++) {
if (i == 0 && j == 0) Hmin = (int) Buffer->Canvas->Pixels[j][i];
else if (Hmin < (int) Buffer->Canvas->Pixels[j][i]) {
Hmin = (int) Buffer->Canvas->Pixels[j][i];
x = j;
y = i;
z++;
//Buffer->Canvas->Pen->Color=0x0000ff00;
//Buffer->Canvas->Ellipse(10 + j, 10 + i, j + 20, i + 20);
}
}
}
Caption = IntToStr (Buffer->Width) + " : " + IntToStr (Buffer->Height)+ " - " + IntToStr (x) + " : " + IntToStr (y);
Buffer->Canvas->Pen->Color=0x000000ff;
Buffer->Canvas->Pen->Style=psSolid;
Buffer->Canvas->Ellipse(10 + x, 10 + y, x + 20, y + 20);
Canvas->Draw (10, 10, Buffer);
Label1->Caption= "точек одинокавых: " + IntToStr(z) + " цвет точки: " + IntToStr(Hmin);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
capDriverDisconnect (hWndC);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
capDriverDisconnect (hWndC);
}
//---------------------------------------------------------------------------
кинул код на быструю руку с модуля.. что-то не ясно спрашивай..
|
|
|
RE: Работа с юсб веб камерами - 2007-05-30 21:36:01.250000
|
|
|
T
Сообщений: 1100
Оценки: 0
Присоединился: 2006-01-14 00:15:36
|
в си++ я неочень шарю, и билдера нету, я это в с++ закинул, он пишет, что 0 эрорс, 0 варнингс, но и кент экзкут програм, я понял,что это лиш модуль обращение, поэтому прошу код его применения.
|
|
|
|
|