
|

30-11-2010, 16.17.24
|
Nuovo robottaro
|
|
Data registrazione: 30-11-2010
Residenza: pavia
Messaggi: 10
Potenza reputazione: 0
|
|
Hand Gesture Recognition
Ciao a tutti!
sto da poco sviluppando un programma usando le OpenCV che ha come scopo quello di riconoscere dei movimenti della mano e in base a questi effettuare delle azioni (es scrolling, zoom) sostituendo così alcune funzioni della tastiera o del mouse...
avrei bisogno i codici per eseguire i comandi di page up e page down (come i relativi tasti della tastiera...) e anche per eseguire Ctrl + e Ctrl - per eseguire zoom, qualcuno può aiutarmi???
|

30-11-2010, 18.01.22
|
 |
Administrator
|
|
Data registrazione: 23-05-2002
Residenza: Binasco (MI)
Età : 58
Messaggi: 2,665
Potenza reputazione: 317
|
|
mmmmm in quale SO?
__________________
ciao
Sergio
---
Hai deciso di costruire un robot? Bene...
Cominciamo dalle brutte notizie: non e' facile...
|

30-11-2010, 18.56.51
|
Nuovo robottaro
|
|
Data registrazione: 30-11-2010
Residenza: pavia
Messaggi: 10
Potenza reputazione: 0
|
|
sto usando windows 7
|

01-12-2010, 06.24.15
|
 |
Administrator
|
|
Data registrazione: 23-05-2002
Residenza: Binasco (MI)
Età : 58
Messaggi: 2,665
Potenza reputazione: 317
|
|
__________________
ciao
Sergio
---
Hai deciso di costruire un robot? Bene...
Cominciamo dalle brutte notizie: non e' facile...
|

02-12-2010, 09.25.32
|
Nuovo robottaro
|
|
Data registrazione: 30-11-2010
Residenza: pavia
Messaggi: 10
Potenza reputazione: 0
|
|
grazie mille per l'aiuto!! il keybd_event() sembra fare al caso mio...a quanto ho capito simula la pressione dei tasti....ho provato l'esempio sulla pagina che mi hai linkato
Codice:
// press DOWN "Alt-Tab"
keybd_event(VK_MENU, 0, 0, 0);
keybd_event(VK_TAB, 0, 0, 0);
::Sleep(1000);
// stop pressing "Alt-Tab"
keybd_event(VK_MENU, 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_TAB, 0, KEYEVENTF_KEYUP, 0);
e funziona benissimo...tuttavia se uso lo stesso codice usando però i tasti che interessano a me VK_CONTROL e VK_ADD (per fare lo zoom) non funziona e anzi mi incasina il computer: i tasti non rispondono + alle loro funzioni...dove sbaglio???
|

02-12-2010, 11.55.32
|
 |
Robottaro sostenitore
|
|
Data registrazione: 08-10-2008
Residenza: Roma
Messaggi: 785
Potenza reputazione: 199
|
|
Ciao...
Molto spesso lo standard della tastiera è differente, in questo caso devi verificare se la libreria è impostata sulla tastiera americana. Io ho riscontrato delle differenze anche con la stessa tastiera italiana, se usavo quella del notebook o quella del pc desktop...
Comunque se cerchi sempre su codeproject o in generale su google, troverai molto materiale, cerca la parola chiave "Keylogger".
|

03-12-2010, 08.44.23
|
Nuovo robottaro
|
|
Data registrazione: 30-11-2010
Residenza: pavia
Messaggi: 10
Potenza reputazione: 0
|
|
ciao grazie...ho provato a guardare com'era impostata la tastiera e a cambiare la tipologia (da italiana a americana) ma non è cambiato nulla purtroppo....
per quanto riguarda i keylogger mi pare di aver capito che registrano tutto quello che viene digitato su tastiera, ma io ho bisogno di simulare la pressione di certi tasti, non di leggere cosa viene scritto su di essa, per questo il keybd_event() sembra fare al caso mio...ma con la combinazione di tasti (Ctrl +) da me richiesta non funziona
|

03-12-2010, 09.24.47
|
Nuovo robottaro
|
|
Data registrazione: 30-11-2010
Residenza: pavia
Messaggi: 10
Potenza reputazione: 0
|
|
annche con SendKeys non ho avuto fortuna...ho scaricato il pacchetto contenente il codice sorgente e ho inserito l'header "SendKeys.h" nel mio progetto ma ho un errore quando compilo...
l'argomento di tipo "const char*" è incompatibile con il parametro di tipo "LPCTSTR" relativo alla stringa "Hello World"
Codice:
// OpenCV_Helloworld2.cpp : definisce il punto di ingresso dell'applicazione console.
//
#include "stdafx.h"
#include <cv.h>
#include <highgui.h>
#include <cxcore.h>
#include <stdio.h>
#include "winuser.h"
#include "SendKeys.h"
int main( int argc, char** argv ) {
IplImage* img;
char key = getchar();
CSendKeys sk;
if(key=='q'){
sk.SendKeys("Hello world!");
}
}
|

07-12-2010, 09.12.29
|
Nuovo robottaro
|
|
Data registrazione: 30-11-2010
Residenza: pavia
Messaggi: 10
Potenza reputazione: 0
|
|
risolti i problemi con keybd_event(), ora funziona tutto 
ora avrei bisogno che qualcuno mi spieghi come funziona la variabile points, inizialmente definita come un array...
Codice:
CvPoint2D32f* points[2] = {0,0};
char *status = (char*)cvAlloc(count);
points[0] = (CvPoint2D32f*)cvAlloc(count*sizeof(points[0][0]));
points[1] = (CvPoint2D32f*)cvAlloc(count*sizeof(points[0][0]));
...
points[1][0] = cvPointTo32f(xc);
cvFindCornerSubPix( frameGray, points[1], count,cvSize(win_size,win_size), cvSize(-1,-1),cvTermCriteria(CV_TERMCRIT_ITER|CV_TERMCRIT_EPS,20,0.03));
points[0][0].x = points[1][0].x;
points[0][0].y = points[1][0].y;
perchè le 2 parentesi quadre nella seconda parte di codice???
|

07-12-2010, 09.25.55
|
 |
Administrator
|
|
Data registrazione: 23-05-2002
Residenza: Binasco (MI)
Età : 58
Messaggi: 2,665
Potenza reputazione: 317
|
|
Perché nella prima parte del codice allochi un array per ogni elemento dell'array points, in pratica hai creato una matrice.
__________________
ciao
Sergio
---
Hai deciso di costruire un robot? Bene...
Cominciamo dalle brutte notizie: non e' facile...
|
Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti)
|
|
Strumenti discussione |
|
Modalità visualizzazioe |
Modalità lineare
|
Regole di scrittura
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
Il codice HTML è Disattivato
|
|
|
Tutti gli orari sono GMT. Adesso sono le: 03.35.43.
Realizzazione siti web Cobaltica Foligno
|

|