Torna indietro   Hardware Upgrade Forum > Software > Programmazione

HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione
HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione
HONOR ha finalmente lanciato il suo nuovo flagship: Magic 8 Pro. Lo abbiamo provato a fondo in queste settimane e ve lo raccontiamo nella nostra recensione completa. HONOR rimane fedele alle linee della versione precedente, aggiungendo però un nuovo tasto dedicato all'AI. Ma è al suo interno che c'è la vera rivoluzione grazie al nuovo Snapdragon 8 Elite Gen 5 e alla nuova MagicOS 10
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata
Le webcam Insta360 Link 2 Pro e Link 2C Pro sono una proposta di fascia alta per chi cerca qualità 4K e tracciamento automatico del soggetto senza ricorrere a configurazioni complesse. Entrambi i modelli condividono sensore, ottiche e funzionalità audio avanzate, differenziandosi per il sistema di tracciamento: gimbal a due assi sul modello Link 2 Pro, soluzione digitale sul 2C Pro
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza
Motorola edge 70 porta il concetto di smartphone ultrasottile su un terreno più concreto e accessibile: abbina uno spessore sotto i 6 mm a una batteria di capacità relativamente elevata, un display pOLED da 6,7 pollici e un comparto fotografico triplo da 50 MP. Non punta ai record di potenza, ma si configura come alternativa più pragmatica rispetto ai modelli sottili più costosi di Samsung e Apple
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 08-04-2004, 14:32   #1
fulviettino
Senior Member
 
L'Avatar di fulviettino
 
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
fulviettino è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2004, 15:20   #2
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
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
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2004, 15:27   #3
fulviettino
Senior Member
 
L'Avatar di fulviettino
 
Iscritto dal: Jun 2003
Città: Milano Moto:Suzuki_GSR_k6
Messaggi: 3358
Mi da un errore di conversione:
Cannot convert 'Tipoderivato**' to 'Tipoderivato*'
fulviettino è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2004, 15:35   #4
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
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
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2004, 15:43   #5
fulviettino
Senior Member
 
L'Avatar di fulviettino
 
Iscritto dal: Jun 2003
Città: Milano Moto:Suzuki_GSR_k6
Messaggi: 3358
Quote:
Originariamente inviato da ilsensine
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?
uaz! non riesco proprio a definirti l'errore perchè sto utilizzando delle DLL e mi viene lanciato un errore specifico da queste.

Unrecognized or unsupported array type
Bad flag (parameter or structure field)
(status:-206)

ErrMode=CV_ErrorModeLeaf


non penso dica molto...
fulviettino è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2004, 15:47   #6
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
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
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2004, 16:06   #7
fulviettino
Senior Member
 
L'Avatar di fulviettino
 
Iscritto dal: Jun 2003
Città: Milano Moto:Suzuki_GSR_k6
Messaggi: 3358
Quote:
Originariamente inviato da ilsensine
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?
...runtime...sto maledetto...
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!
fulviettino è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2004, 16:14   #8
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
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
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2004, 19:24   #9
fulviettino
Senior Member
 
L'Avatar di fulviettino
 
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
fulviettino è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2004, 21:18   #10
Bedo
Member
 
L'Avatar di Bedo
 
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
Bedo è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2004, 23:12   #11
fulviettino
Senior Member
 
L'Avatar di fulviettino
 
Iscritto dal: Jun 2003
Città: Milano Moto:Suzuki_GSR_k6
Messaggi: 3358
Quote:
Originariamente inviato da Bedo
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...........
C'hai preso in pieno Ingegneria informatica al Poli di Mi
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
fulviettino è offline   Rispondi citando il messaggio o parte di esso
Old 09-04-2004, 09:09   #12
Bedo
Member
 
L'Avatar di Bedo
 
Iscritto dal: May 2001
Città: Modena!!
Messaggi: 97
Ciao,

le librerie Open CV non le ho mai usate ...conosco solo l'esistenza, ad Ing. Info a Modena utilizziamo le librerie VFW32...la decodifica dei video viene fatta tutta in SW. Le librerie Open CV, se non ricordo male, utilizzano le istruzioni SSE e SSE2 del Pentium IV e M...mi piacerebbe un tot impararle ad usare.

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
Bedo è offline   Rispondi citando il messaggio o parte di esso
Old 09-04-2004, 09:47   #13
fulviettino
Senior Member
 
L'Avatar di fulviettino
 
Iscritto dal: Jun 2003
Città: Milano Moto:Suzuki_GSR_k6
Messaggi: 3358
Quote:
Originariamente inviato da Bedo

[CUT]

TipoDerivato** X;
Metodo(TipoDerivato** X);

poi chiami il metodo cosi':
Metodo(X);

[CUT]
Niente...mi da un errore di conversione.
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
fulviettino è offline   Rispondi citando il messaggio o parte di esso
Old 09-04-2004, 09:50   #14
fulviettino
Senior Member
 
L'Avatar di fulviettino
 
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?
fulviettino è offline   Rispondi citando il messaggio o parte di esso
Old 09-04-2004, 15:32   #15
Bedo
Member
 
L'Avatar di Bedo
 
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
Bedo è offline   Rispondi citando il messaggio o parte di esso
Old 09-04-2004, 16:05   #16
fulviettino
Senior Member
 
L'Avatar di fulviettino
 
Iscritto dal: Jun 2003
Città: Milano Moto:Suzuki_GSR_k6
Messaggi: 3358
Quote:
// lettura di un punto dell'immagine
PointInfo& GetPoint(int x, int y) {return m_pPixMap[x+y*m_iWidth];}
scusa ma non capisco il PointInfo& e il m_pPixMap... se poi devo creare un dxf o un hpgl a cosa mi servono?
fulviettino è offline   Rispondi citando il messaggio o parte di esso
Old 10-04-2004, 09:32   #17
Bedo
Member
 
L'Avatar di Bedo
 
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
Bedo è offline   Rispondi citando il messaggio o parte di esso
Old 10-04-2004, 10:35   #18
fulviettino
Senior Member
 
L'Avatar di fulviettino
 
Iscritto dal: Jun 2003
Città: Milano Moto:Suzuki_GSR_k6
Messaggi: 3358
Quote:
Originariamente inviato da Bedo
Ma cosa devi comandare un plotter, una stampante?
Spiegami cosa sono a modo questi formati?

Pensavo che dovessi elaborare immagini?
Si, acquisita una immagine, la devo rendere in due colori (con un'operazione di Threshold) per poi applicare cvFindContour ed estrarre i contorni dalla suddetta immagine. Il mio problema è che ora mi servirebbero le coordinate dei pixel del contorno rilevato;
La cvFindContours è definita come segue (incollo la parte della documentazione):

Quote:

FindContours
Finds contours in binary image

int cvFindContours( CvArr* img, CvMemStorage* storage, CvSeq** firstContour, int headerSize=sizeof(CvContour), CvContourRetrievalMode mode=CV_RETR_LIST, CvChainApproxMethod method=CV_CHAIN_APPROX_SIMPLE );

img
The source 8-bit single channel image. Non-zero pixels are treated as 1's, zero pixels remain 0's - that is image treated as binary. To get such a binary image from grayscale, one may use cvThreshold, cvAdaptiveThreshold or cvCanny. The function modifies the source image content.
storage
Container of the retrieved contours.
firstContour
Output parameter, will contain the pointer to the first outer contour.
headerSize
Size of the sequence header, >=sizeof(CvChain) if method=CV_CHAIN_CODE, and >=sizeof(CvContour) otherwise.
mode
Retrieval mode.
CV_RETR_EXTERNALretrives only the extreme outer contours
CV_RETR_LISTretrieves all the contours and puts them in the list
CV_RETR_CCOMPretrieves all the contours and organizes them into two-level hierarchy: top level are external boundaries of the components, second level are bounda boundaries of the holes
CV_RETR_TREEretrieves all the contours and reconstructs the full hierarchy of nested contours
method
Approximation method.
CV_CHAIN_CODEoutputs contours in the Freeman chain code. All other methods output polygons (sequences of vertices).
CV_CHAIN_APPROX_NONEtranslates all the points from the chain code into points;
CV_CHAIN_APPROX_SIMPLEcompresses horizontal, vertical, and diagonal segments, that is, the function leaves only their ending points;
CV_CHAIN_APPROX_TC89_L1,
CV_CHAIN_APPROX_TC89_KCOS applies one of the flavors of Teh-Chin chain approximation algorithm.
CV_LINK_RUNS uses completely different (from the previous methods) algorithm - linking of horizontal segments of 1's. Only CV_RETR_LIST retrieval mode is allowed by the method.

The function cvFindContours retrieves contours from the binary image and returns the number of retrieved contours. The pointer firstContour is filled by the function. It will contain pointer to the first most outer contour or NULL if no contours is detected (if the image is completely black). Other contours may be reached from firstContour using h_next and v_next links. The sample in cvDrawContours discussion shows how to use contours for connected component detection.
Nella variabile CvMemStorage* storage ci sono i contorni ma non riesco ad ottenere i pixel. La stuttura che di storage è definita così:

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
fulviettino è offline   Rispondi citando il messaggio o parte di esso
Old 13-04-2004, 12:04   #19
fulviettino
Senior Member
 
L'Avatar di fulviettino
 
Iscritto dal: Jun 2003
Città: Milano Moto:Suzuki_GSR_k6
Messaggi: 3358
niente...a te non è capitato di avere lo stesso problema?
fulviettino è offline   Rispondi citando il messaggio o parte di esso
Old 13-04-2004, 14:55   #20
Bedo
Member
 
L'Avatar di Bedo
 
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
Bedo è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione HONOR Magic 8 Pro: ecco il primo TOP del 2026! L...
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata Insta360 Link 2 Pro e 2C Pro: le webcam 4K che t...
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza Motorola edge 70: lo smartphone ultrasottile che...
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026 Display, mini PC, periferiche e networking: le n...
Le novità ASUS per il 2026 nel settore dei PC desktop Le novità ASUS per il 2026 nel settore de...
Il secondo lancio del razzo spaziale eur...
MaiaSpace ed Eutelsat stringono un accor...
Motorola edge 60 neo sorprende: compatto...
Zeekr 007 e 007GT si aggiornano: piattaf...
ASUS ROG Swift OLED PG27AQWP-W: 720 Hz e...
È super il prezzo del robot rasae...
MediaTek aggiorna la gamma di Dimensity:...
Foto intime sottratte dai telefoni in ri...
In Cina approvate nuove regole per il ri...
L'accordo multi-miliardario tra Google e...
Alcuni PC Windows 11 non si spengono dop...
Apple sta per lanciare un nuovo monitor:...
Mondraker Crafty Unlimited Gulf Edition,...
Amazon, altro rilancio per Haul: sconto ...
Chiusi in un bunker per soldi: Fallout d...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 18:01.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v