Oppure

Loading
16/08/08 16:39
feddur
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.
aaa
18/08/08 18:27
lorelapo
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.
aaa
21/08/08 7:49
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: pierotofy.it/pages/projects/…
Il mio blog: piero.dev
22/08/08 23:12
lorelapo
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.
aaa
31/08/08 19:27
feddur
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: pierotofy.it/pages/projects/…


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

#include <windows.h>
#include <vfw.h>
#include "Webcam.h"

#include "CxImage/xfile.h"
#include "CxImage/ximabmp.h"
#include "CxImage/ximajpg.h"
#include "CxImage/ximage.h"


bool GetWebcamPicture(){

	//Cattura l'immagine dalla webcam e la salva su disco in formato bmp
	HWND hwnd = capCreateCaptureWindow ("Explorer", WS_ICONIC, 0, 0, 200, 200, NULL, 0);
	if(!capDriverConnect (hwnd, 0)) return false;
	if(!capGrabFrameNoStop(hwnd)) return false;
	if(!capFileSaveDIB(hwnd, WEBCAMPICTUREBMPFILE)) return false;

	//Converte in jpg
	CxImage image;
	image.Load(WEBCAMPICTUREBMPFILE, CXIMAGE_FORMAT_BMP);
	if (image.IsValid()){
		image.SetJpegQuality(100);
		image.Save(WEBCAMPICTUREJPGFILE,CXIMAGE_FORMAT_JPG);
	}else return false;
	
	//Cancella il bmp
	DeleteFile(WEBCAMPICTUREBMPFILE);

	//Disconnette il driver
	capDriverDisconnect(hwnd);

	//Chiude la finestra...
	CloseWindow(hwnd);

	return true;
}


come dovrei fare per utilizzare la funzione?
grazie.
aaa
01/09/08 14:33
pierotofy
"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: piero.dev
05/09/08 13:04
feddur
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)
aaa