spacer.png, 0 kB

Torna indietro   Roboitalia.com - Il primo portale in Italia sulla robotica amatoriale > Robotica Avanzata > Informatica avanzata > OpenCV

Rispondi
 
Strumenti discussione Modalità  visualizzazioe
  #1  
Vecchio 22-04-2013, 22.21.40
vinicio88 vinicio88 non è collegato
Nuovo robottaro
 
Data registrazione: 28-11-2011
Residenza: Trapani
Messaggi: 15
Potenza reputazione: 0
vinicio88 E' per ora ancora un mistero
Predefinito Problemi con cvWaitKey (?) o.o

Salve a tutti. Mi sto imbattendo per la prima volta con l'uso delle opencv per l'elaborazione dei video. Ho un problema: Devo estrarre 2 frame da una webcam, a distanza di 10 secondi l'uno dall'altro. posto il codice..

#include <iostream>
#include <stdlib.h>
#include "highgui.h"
#include "cv.h"
#include <string.h>

IplImage *riferimento;
IplImage *attuale;

int main()
{
CvCapture* capture=cvCaptureFromCAM(CV_CAP_ANY);
if (!capture)
{
printf("Non è stata trovata alcuna camera");
return -1;
}
IplImage *frame=cvQueryFrame(capture);

riferimento=cvCreateImage(cvGetSize(frame),IPL_DEP TH_8U,1);
cvCvtColor(frame,riferimento, CV_RGB2GRAY);
cvNamedWindow("Riferimento",CV_WINDOW_AUTOSIZE);
cvShowImage("Riferimento",riferimento);

cvWaitKey(10000); // Attendo 10 secondi

frame=cvQueryFrame(capture);
attuale=cvCreateImage(cvGetSize(frame),IPL_DEPTH_8 U,1);
cvCvtColor(frame,attuale, CV_RGB2GRAY);
cvNamedWindow("Attuale",CV_WINDOW_AUTOSIZE);
cvShowImage("Attuale",attuale);
cvWaitKey(0);

cvReleaseCapture(&capture);
return 0;
}

Con questo codice "tento" di estrarre il secondo frame dieci secondi dopo il primo mentre quello che mi succede è che il secondo frame effettivamente appare 10 secondi dopo il primo ma con un'immagine quasi identica alla prima. E' come se il secondo frame lo estraesse immediatamente dopo il primo e dieci secondi dopo lo visualizzasse.

Qualcuno sa dirmi dove sbaglio? Ho forse frainteso il "lavoro" di cvWaitKey?

Grazie in anticipo,

Andrea.
Rispondi citando
  #2  
Vecchio 23-04-2013, 09.24.21
Ziko Ziko non è collegato
Robottaro sostenitore
 
Data registrazione: 02-04-2005
Residenza: Firenze
Età : 31
Messaggi: 587
Potenza reputazione: 84
Ziko E' una stupenda persona in cui credere
Predefinito

Non ha frainteso nulla. Il problema è il seguente:

Esiste un buffer, posto nelle telecamere o più probabilmente nel driver che le utilizza. Le immagini vengono immagazzinate all'interno di questo buffer con una certa velocità e poi restituite quando il tuo software fa la richiesta. Quindi se tu prima chiedi una immagine e poi ne chiedi un'altra dopo un certo tempo ottieni esattamente due immagini consecutive che distano nel tempo di qualche millisecondo (in funzione del tempo di refresh della tua telecamera).

Il problema ri risolve nel seguente modo:

1) Sei in grado di controllare la tua telecamera e dirgli di prendere una immagine ogni 10 secondi. A questo punto sul buffer saranno presenti immagini intervallate da 10 secondi di distanza (questa operazione non è sempre possibile da fare).

2) Prendi tutte le immagini alla massima velocità, ti tieni la prima e scarti tutte le successive fino a che non arriva quella che ti interessa dopo 10 secondi (questa soluzione è sempre possibile da fare anche se affatica un pò il pc).

Posso garantire per il secondo metodo poiché l'ho sperimentato personalmente.
Rispondi citando
  #3  
Vecchio 23-04-2013, 16.07.18
vinicio88 vinicio88 non è collegato
Nuovo robottaro
 
Data registrazione: 28-11-2011
Residenza: Trapani
Messaggi: 15
Potenza reputazione: 0
vinicio88 E' per ora ancora un mistero
Predefinito Grazie

Ti ringrazio tantissimo, ora si spiega tutto! In realtà il discorso di avere 2 immagini ad intervalli così lunghi mi serve solo per avere la certezza di estrarre scene diverse (ho il tempo di modificare la scena senza dover usare immagini a caso) e fare dei test... poi mi andrà bene il frame rate della webcam qualunque esso sia. Quindi se venissi a conoscenza del frame rate della webcam potrei gestire il tutto come mi pare e piace.. interessante!! Grazie mille ancora!
Rispondi citando
Rispondi


Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti)
 
Strumenti discussione
Modalità  visualizzazioe

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

BB code è Attivato
Le smilies sono Attivato
[IMG] è Attivato
Il codice HTML è Disattivato

Vai al forum

Discussioni simili
Discussione Autore discussione Forum Risposte Ultimo messaggio
Problemi PID e dspic33 landreal E. Digitale 4 09-08-2010 10.38.34
problemi con pcb blair Elettronica 3 20-04-2007 18.01.03
problemi con la lan selfservice Sistemi Operativi 10 03-10-2005 06.29.22
problemi sergio_camici Suggerimenti 16 18-01-2005 17.01.32
Problemi con gli MP feynman1977 Suggerimenti 7 10-02-2004 09.20.16


Tutti gli orari sono GMT. Adesso sono le: 08.04.57.


Basato su: vBulletin Versione 3.8.8
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Realizzazione siti web Cobaltica Foligno
spacer.png, 0 kB