|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jun 2003
Città: Milano Moto:Suzuki_GSR_k6
Messaggi: 3358
|
PROBLEMA CON DOPPIO PUNTATORE
Ciao a tutti,
non riesco a far funzionare un metodo. Il problema è il tipo del parametro che gli passo; per spiegarmi meglio scrivo due righe di codice. TipoDerivato* X; Metodo(TipoDerivato** X); Nella prima riga viene definita la variabile X (come puntatore di tipo "Tipoderivato"); la seconda riga corrisponde ad un metodo che come parametro ha bisogno di un "Tipoderivato**". Chiamando il metodo così: Metodo(&X); non funziona...qualcuno saprebbe illuminarmi? Thankss |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Se X non è un puntatore, &X è un semplice puntatore all'oggetto. Il problema lo puoi aggirare così:
TipoDerivato* pX = &X; Metodo(&pX); Tecnicamente è corretto, ma dovresti controllare cosa ci fa il metodo con un puntatore a un puntatore, e perché non gli basta un puntatore normale -- potrebbe non essere quello che ti aspetti.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jun 2003
Città: Milano Moto:Suzuki_GSR_k6
Messaggi: 3358
|
Mi da un errore di conversione:
Cannot convert 'Tipoderivato**' to 'Tipoderivato*' |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Ah sì avevo letto male, X è di tipo "TipoDerivato *".
Il tuo codice dovrebbe funizonare, a meno che X non è qualcosa di strano (tipo "this"). Che errore ti viene dato?
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Jun 2003
Città: Milano Moto:Suzuki_GSR_k6
Messaggi: 3358
|
Quote:
Unrecognized or unsupported array type Bad flag (parameter or structure field) (status:-206) ErrMode=CV_ErrorModeLeaf non penso dica molto... |
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Ah boh formalmente il codice è corretto, non ho idea di come vengano gestite in una dll queste cose. L'errore è di compilazione o di runtime? Stai forse lavorando su diavolerie quali com e activex?
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Jun 2003
Città: Milano Moto:Suzuki_GSR_k6
Messaggi: 3358
|
Quote:
Sto lavorando con librerie opencv per comunicare con webcam...vedo se ci sono altre vie per fare ciò che devo ciao ciao grazie lo stesso! |
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Se devi acquisire, puoi usare DirectX o v4w. Non è il mio campo, però.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Jun 2003
Città: Milano Moto:Suzuki_GSR_k6
Messaggi: 3358
|
grazie per il consiglio, terrò presente. Ora però mi servono quelle librerie perchè oltre all'acquisizione mi permettono anche di elaborare l'immagine
ciauuu |
|
|
|
|
|
#10 |
|
Member
Iscritto dal: May 2001
Città: Modena!!
Messaggi: 97
|
Hai provato cosi':
TipoDerivato** X; Metodo(TipoDerivato** X); poi chiami il metodo cosi': Metodo(X); ciao, ho visto che fai elaborazioni su immagini e utilizzi le librerie intel Open CV...immagino che fai Ingegneria Informatica a Milano...vero? Io ho appena finito la Tesina per Elaborazioni d'immagini presso ing. di Modena, se hai bisogno fammi un fischio.... Ciao...........
__________________
<<Mi piace semplicemente guidare l'auto, lasciando che sia lei a condurmi ovunque. E questo significa accettare tutte le possibili alternative.>> Prof.Dr.Ing.h.c. Ferdinand Porsche CLIO COMMUNITY |
|
|
|
|
|
#11 | |
|
Senior Member
Iscritto dal: Jun 2003
Città: Milano Moto:Suzuki_GSR_k6
Messaggi: 3358
|
Quote:
Conosci le Open CV? Beh allora mi sa che ti assillerò un pò Domani mattina provo a chiamare la funzione come mi hai suggerito, poi se non riesco a risolvere alcuni problemi te li presento molto volentieri! Bene sono contento di non essere l'unico malato che usa e/o conosce queste librerie! Fin'ora avevo solo trovato un forum su yahoo, proprio delle opencv ma nessuno mi calcolava! Domani mi faccio risentire su questi schermi! Ciauuu |
|
|
|
|
|
|
#12 |
|
Member
Iscritto dal: May 2001
Città: Modena!!
Messaggi: 97
|
Ciao,
le librerie Open CV non le ho mai usate Comunque per farti un'idea di cosa facciamo a Modena, ti racconto la mia tesina che ho realizzato con altri due compagni di corso: Oggetto: Realizzare un Traffic Surveillance : cioe' contare gli oggetti in movimento in un video stradale e poi classificarli in Persone, Auto, Camion. Tecniche usate : Selective background, Labeling, Stampa delle Bounding Box e baricentro degli oggetti, Tracking, Classificatore statistico...Rete neurale non avevamo voglia... A Milano cosa fate? Teniamoci in contatto...ciao
__________________
<<Mi piace semplicemente guidare l'auto, lasciando che sia lei a condurmi ovunque. E questo significa accettare tutte le possibili alternative.>> Prof.Dr.Ing.h.c. Ferdinand Porsche CLIO COMMUNITY |
|
|
|
|
|
#13 | |
|
Senior Member
Iscritto dal: Jun 2003
Città: Milano Moto:Suzuki_GSR_k6
Messaggi: 3358
|
Quote:
In effetti ora noto una cosa: la chiamata Metodo(&X) funziona solo che il problema sta alla fine del programma; In sostanza, devo acquisire un frame da una webcam e quel "Metodo" (cvReleaseCapture) servirebbe per spegnere la telecamera. Questa si spegne ma il programma lancia un errore...probabilmente non dealloco le variabili che ho precedentemente allocato... Queste sono le operazioni che faccio: CvCapture* capture;//puntatore al frame acquisito dalla webcam IplImage* GotImage;//immagine del frame catturato capture = cvCaptureFromCAM(-1);//alloca e inizializza la stuttura CvCapture per leggere dalla webcam GotImage = cvQueryFrame(capture);//cattura un frame dalla cam e restituisce un pointer all'immagine catturata cvReleaseCapture( &capture );//spegne la webcam senza usare il cvreleasecapture, chiudendo il programma, questo rimane in esecuzione usando il cvreleasecapture quando chiudo visualizzo un errore |
|
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Jun 2003
Città: Milano Moto:Suzuki_GSR_k6
Messaggi: 3358
|
Ecco!
Usavo il releasecapture troppo presto! dato che visualizzo l'immagine catturata in una finestra dovevo chiamarlo dopo la chiusura di questa! OK Ora il problema sarà la vettorializzazione dell'immagine...pensi sia difficile passare da bmp a dxf o hpgl? Oppure, ancora meglio, da bmp a codici ISO? |
|
|
|
|
|
#15 |
|
Member
Iscritto dal: May 2001
Città: Modena!!
Messaggi: 97
|
CvCapture* capture;//puntatore al frame acquisito dalla webcam
IplImage* GotImage;//immagine del frame catturato capture = cvCaptureFromCAM(-1);//alloca e inizializza la stuttura CvCapture per leggere dalla webcam GotImage = cvQueryFrame(capture);//cattura un frame dalla cam e restituisce un pointer all'immagine catturata Se GotImage e' un puntatotore all'imagine BMP del frame acquisito da WebCam e' impossibile che non esistano metodi che permettono di leggere la dimensione x e y dell' immagine(se no dovresti usare il BITMAPINFOHEADER) e poi puoi creare alcuni metodi tipo : // lettura di un punto dell'immagine PointInfo& GetPoint(int x, int y) {return m_pPixMap[x+y*m_iWidth];} // lettura di un punto dell'immagine PointInfo& GetPoint(int i) { return m_pPixMap[i];} // settaggio del valore di un punto bool SetPoint(int x, int y, PointInfo Value){ m_pPixMap[x+y*m_iWidth]=Value; return TRUE; } // settaggio del valore di un punto bool SetPoint(int i, PointInfo Value){ m_pPixMap[i]=Value; return TRUE; } // lettura del puntatore alla pixmap interna PointInfo *GetPixMap() { return m_pPixMap;} Dove m_iWidth e m_Height sono le dimensioni dell'immagine BMP... ciao
__________________
<<Mi piace semplicemente guidare l'auto, lasciando che sia lei a condurmi ovunque. E questo significa accettare tutte le possibili alternative.>> Prof.Dr.Ing.h.c. Ferdinand Porsche CLIO COMMUNITY |
|
|
|
|
|
#16 | |
|
Senior Member
Iscritto dal: Jun 2003
Città: Milano Moto:Suzuki_GSR_k6
Messaggi: 3358
|
Quote:
|
|
|
|
|
|
|
#17 |
|
Member
Iscritto dal: May 2001
Città: Modena!!
Messaggi: 97
|
Ma cosa devi comandare un plotter, una stampante?
Spiegami cosa sono a modo questi formati? Pensavo che dovessi elaborare immagini?
__________________
<<Mi piace semplicemente guidare l'auto, lasciando che sia lei a condurmi ovunque. E questo significa accettare tutte le possibili alternative.>> Prof.Dr.Ing.h.c. Ferdinand Porsche CLIO COMMUNITY |
|
|
|
|
|
#18 | ||
|
Senior Member
Iscritto dal: Jun 2003
Città: Milano Moto:Suzuki_GSR_k6
Messaggi: 3358
|
Quote:
La cvFindContours è definita come segue (incollo la parte della documentazione): Quote:
typedef struct CvMemStorage { struct CvMemBlock* bottom;/* first allocated block */ struct CvMemBlock* top; /* the current memory block - top of the stack */ struct CvMemStorage* parent; /* borrows new blocks from */ int block_size; /* block size */ int free_space; /* free space in the top block (in bytes) */ } CvMemStorage; Mi sto leggendo bene tutta la documentazione, e sto cercando alcuni esempi, te lo chiedevo nel caso tu avessi già affrontato un problema simile. Ciaoo |
||
|
|
|
|
|
#19 |
|
Senior Member
Iscritto dal: Jun 2003
Città: Milano Moto:Suzuki_GSR_k6
Messaggi: 3358
|
niente...a te non è capitato di avere lo stesso problema?
|
|
|
|
|
|
#20 |
|
Member
Iscritto dal: May 2001
Città: Modena!!
Messaggi: 97
|
Ciao,
scusa per il ritardo.... Ho visto che hai postato "l'universo"...... Fossi in te implementerei un Sobel, al max un Canny... automaticamente hai i punti di edge che desideri.
__________________
<<Mi piace semplicemente guidare l'auto, lasciando che sia lei a condurmi ovunque. E questo significa accettare tutte le possibili alternative.>> Prof.Dr.Ing.h.c. Ferdinand Porsche CLIO COMMUNITY |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:09.



















