Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Interagire con la webcam
Forum - C/C++ - Interagire con la webcam

Avatar
feddur (Normal User)
Pro


Messaggi: 200
Iscritto: 06/03/2008

Segnala al moderatore
Postato alle 18:39
Sabato, 16/08/2008
Salve a tutti, tempo fa vidi su internet un programma realizzato in C che interagiva con la webcam in modo da poter pilotare il mouse con un dito facendolo scorrere  vicino la cam, ora non chiedo aiuto per realizzare un programma simile ma solo per capire come posso prelevare l'immagine dalla cam e magari come posso confrontare i pixel dell'immagine.
Grazie.

PM Quote
Avatar
lorelapo (Ex-Member)
Expert


Messaggi: 355
Iscritto: 28/02/2007

Segnala al moderatore
Postato alle 20:27
Lunedì, 18/08/2008
1. In C bisognerebbe avere i driver della cam e o la libreria di astrazione che forniscono loro stessi o una lib più ampia che includa parecchi driver e funzioni molto semplici, più probabilmente per il C le troveresti per Linux, su windows forse solo per il C++ o linguaggi .NET e quindi qui per il C dovresti fare ricerche più intense.
2. Per una applicazione come il mouse mosso dal dito un semplice confronto non basterebbe dovresti adderstrare una rete neurale per identificare la posizione del dito e gli eventuali click.

Se ti serve aiuto chiedi pure.

PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 9:49
Giovedì, 21/08/2008
La webcam è gestita dalle librerie del sistema operativo, quindi non si parla di C ANSI...

comunque consiglio di dare un'occhiata a Beatrix nell'apposito modulo per catturare le immagini dalla webcam: http://www.pierotofy.it/pages/projects/project_136.html


Il mio blog: https://piero.dev
PM Quote
Avatar
lorelapo (Ex-Member)
Expert


Messaggi: 355
Iscritto: 28/02/2007

Segnala al moderatore
Postato alle 1:12
Sabato, 23/08/2008
ho fatto una ricerca su intertnet e ho scoperto che tu parli di hand tracking (molto simile all'headtracking usato per la visione 3d), potresti fare ricerche in questo senso esistono già librerie pronte per quello che dici tu.

PM Quote
Avatar
feddur (Normal User)
Pro


Messaggi: 200
Iscritto: 06/03/2008

Segnala al moderatore
Postato alle 21:27
Domenica, 31/08/2008
Testo quotato

Postato originariamente da pierotofy:

La webcam è gestita dalle librerie del sistema operativo, quindi non si parla di C ANSI...

comunque consiglio di dare un'occhiata a Beatrix nell'apposito modulo per catturare le immagini dalla webcam: http://www.pierotofy.it/pages/projects/project_136.html



Grazie per il link, veramente utile.
Non riesco pero' a compilare la funzione della webcam.

Codice sorgente - presumibilmente C++

  1. #include <windows.h>
  2. #include <vfw.h>
  3. #include "Webcam.h"
  4.  
  5. #include "CxImage/xfile.h"
  6. #include "CxImage/ximabmp.h"
  7. #include "CxImage/ximajpg.h"
  8. #include "CxImage/ximage.h"
  9.  
  10.  
  11. bool GetWebcamPicture(){
  12.  
  13.         //Cattura l'immagine dalla webcam e la salva su disco in formato bmp
  14.         HWND hwnd = capCreateCaptureWindow ("Explorer", WS_ICONIC, 0, 0, 200, 200, NULL, 0);
  15.         if(!capDriverConnect (hwnd, 0)) return false;
  16.         if(!capGrabFrameNoStop(hwnd)) return false;
  17.         if(!capFileSaveDIB(hwnd, WEBCAMPICTUREBMPFILE)) return false;
  18.  
  19.         //Converte in jpg
  20.         CxImage image;
  21.         image.Load(WEBCAMPICTUREBMPFILE, CXIMAGE_FORMAT_BMP);
  22.         if (image.IsValid()){
  23.                 image.SetJpegQuality(100);
  24.                 image.Save(WEBCAMPICTUREJPGFILE,CXIMAGE_FORMAT_JPG);
  25.         }else return false;
  26.        
  27.         //Cancella il bmp
  28.         DeleteFile(WEBCAMPICTUREBMPFILE);
  29.  
  30.         //Disconnette il driver
  31.         capDriverDisconnect(hwnd);
  32.  
  33.         //Chiude la finestra...
  34.         CloseWindow(hwnd);
  35.  
  36.         return true;
  37. }



come dovrei fare per utilizzare la funzione?
grazie.

PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 16:33
Lunedì, 01/09/2008
"Non riesco"...

Che errori ti ritorna il compilatore? Che ambiente di sviluppo stai usando?

Quando si chiede aiuto bisogna fornire queste informazioni... sempre.


Il mio blog: https://piero.dev
PM Quote
Avatar
feddur (Normal User)
Pro


Messaggi: 200
Iscritto: 06/03/2008

Segnala al moderatore
Postato alle 15:04
Venerdì, 05/09/2008
Testo quotato

Postato originariamente da pierotofy:

"Non riesco"...

Che errori ti ritorna il compilatore? Che ambiente di sviluppo stai usando?

Quando si chiede aiuto bisogna fornire queste informazioni... sempre.



scusami il ritardo ma non ho proprio avuto tempo..
Uso Dev-C++ su XP.

Questi sono gli errori che mi tornano:
C:\Documents and Settings\Fede\Desktop\webcmm\Webcam.cpp:5:27: CxImage/xfile.h: No such file or directory
C:\Documents and Settings\Fede\Desktop\webcmm\Webcam.cpp:6:29: CxImage/ximabmp.h: No such file or directory
C:\Documents and Settings\Fede\Desktop\webcmm\Webcam.cpp:7:29: CxImage/ximajpg.h: No such file or directory
C:\Documents and Settings\Fede\Desktop\webcmm\Webcam.cpp:8:28: CxImage/ximage.h: No such file or directory
C:\Documents and Settings\Fede\Desktop\webcmm\Webcam.cpp: In function `bool GetWebcamPicture()':
C:\Documents and Settings\Fede\Desktop\webcmm\Webcam.cpp:16: error: `capCreateCaptureWindow' undeclared (first use this function)
C:\Documents and Settings\Fede\Desktop\webcmm\Webcam.cpp:16: error: (Each undeclared identifier is reported only once for each function it appears in.)
C:\Documents and Settings\Fede\Desktop\webcmm\Webcam.cpp:17: error: `capDriverConnect' undeclared (first use this function)

C:\Documents and Settings\Fede\Desktop\webcmm\Webcam.cpp:18: error: `capGrabFrameNoStop' undeclared (first use this function)
C:\Documents and Settings\Fede\Desktop\webcmm\Webcam.cpp:19: error: `capFileSaveDIB' undeclared (first use this function)
C:\Documents and Settings\Fede\Desktop\webcmm\Webcam.cpp:22: error: `CxImage' undeclared (first use this function)
C:\Documents and Settings\Fede\Desktop\webcmm\Webcam.cpp:22: error: expected `;' before "image"
C:\Documents and Settings\Fede\Desktop\webcmm\Webcam.cpp:23: error: `image' undeclared (first use this function)
C:\Documents and Settings\Fede\Desktop\webcmm\Webcam.cpp:23: error: `CXIMAGE_FORMAT_BMP' undeclared (first use this function)

C:\Documents and Settings\Fede\Desktop\webcmm\Webcam.cpp:26: error: `CXIMAGE_FORMAT_JPG' undeclared (first use this function)
C:\Documents and Settings\Fede\Desktop\webcmm\Webcam.cpp:33: error: `capDriverDisconnect' undeclared (first use this function)

PM Quote