Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    [C++] Problema nella chiamata a funzione inserimento didascalia

    Ciao a tutti,

    sto utilizzando la funzione seguente in un main. La richiamo più volte, dopo la prima chiamata, il buffer non si svuota e mi conserva i testi (variabile didascalia) delle chiamate precedenti.

    Ecco la funzione:

    codice:
    static void labelOnWindow(IplImage* tmp_f, char* didascalia)
    {
    	CvFont font0;
    	cvInitFont(&font0, CV_FONT_HERSHEY_SIMPLEX, 0.7,
    			0.7, 0, 1, CV_AA);
    	// char text0[12];
    	char text0[30];
    	sprintf ( text0, didascalia);
    	cvPutText(tmp_f, text0, cvPoint(10, 230),
    			&font0, cvScalar(255, 255, 255, 0));
    	// text0 = NULL;
    	// *didascalia = NULL;
    }
    Idee? Suggerimenti?

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    225
    c' è qualche motivo per non scriverla così ?
    codice:
    static void labelOnWindow(IplImage* tmp_f, char* didascalia)
    {
    	CvFont font0;
    	cvInitFont(&font0, CV_FONT_HERSHEY_SIMPLEX, 0.7,
    			0.7, 0, 1, CV_AA);
    	cvPutText(tmp_f, didascalia, cvPoint(10, 230),
    			&font0, cvScalar(255, 255, 255, 0));
    }

  3. #3
    No, ma il problema non si é risolto... Help!

    Le 6 immagini sulle quali scrivo la label le metto in una macroimmagine che le dispone 3 in una fila, 3 in'ultra...

    Non essendo le immagini a sovrapporsi, ma solo le didascalie, il metodo di disposizione per file non c'entra.
    E' un problema di quel metodo li.


  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Cosa vuoi dire? Chiarisci il problema.

    Dici che chiami più volte la funzione ... come?

    Che intendi con "pulire" la variabile "didascalia"?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Informatica...

    Programmazione...

    Chiamata di funzioni...




    Allora, c'è questa funzione che chiamo più volte da un metodo main, così:


    codice:
    ... 
    labelOnWindow(immagine1, "Immagine 1"); 
    labelOnWindow(immagine2, "Immagine 2");
    labelOnWindow(immagine3, "Immagine 3"); 
    labelOnWindow(immagine4, "Immagine 4"); 
    labelOnWindow(immagine5, "Immagine 5"); 
    labelOnWindow(immagine6, "Immagine 6"); 
    ... 
    labelOnWindow(immagine10000000000, "Immagine 10000000000");
    ...
    Dopo la prima chiamata, con le successive chiamate alla funzione (sempre labelOnWindow, eh?) i testi si sovrappongono.

    Ecco perché, nella mia umile intuizione, ho pensato che rimanesse in qualche variabile il valore.

    Spero ora sia più chiaro.

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da sonoftheland
    Informatica...

    Programmazione...

    Chiamata di funzioni...
    Divertente ...

    Dopo la prima chiamata, con le successive chiamate alla funzione (sempre labelOnWindow, eh?) i testi si sovrappongono.
    E' solo un problema di sovrapposizione sullo schermo? La cvPutText scrive senza cancellare lo sfondo (diciamo in "transparent mode") ? Magari posta una immagine ...

    Ecco perché, nella mia umile intuizione, ho pensato che rimanesse in qualche variabile il valore.
    No, non ha senso. Fra l'altro non ha neanche senso utilizzare la text0 dato che già hai la stringa in ingresso (didascalia).
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Ecco in attachment uno screenshot del problema...
    Immagini allegate Immagini allegate

  8. #8
    Fra l'altro non ha neanche senso utilizzare la text0 dato che già hai la stringa in ingresso (didascalia).
    Si, infatti ho modificato la funzione come suggeriva anche sebaldar:
    codice:
    static void labelOnWindow(IplImage* tmp_f, char* didascalia) 
    { 	
    CvFont font0; 	
    cvInitFont(&font0, CV_FONT_HERSHEY_SIMPLEX, 0.7, 0.7, 0, 1, CV_AA); 	
    cvPutText(tmp_f, didascalia, cvPoint(10, 230), &font0, cvScalar(255, 255, 255, 0)); 
    }

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da sonoftheland
    Ecco in attachment uno screenshot del problema...
    E' quindi solamente un problema di visualizzazione determinato dal fatto che, quando scrivi la seconda stringa, la prima non è stata eliminata.

    Quindi, prima di scrivere una seconda stringa, devi prima riposizionare l'immagine di sfondo.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    codice:
     
    Quindi, prima di scrivere una seconda stringa, devi prima riposizionare l'immagine di sfondo.
    Riposizionare in che senso? L'immagine globale viene costruita "incollandoci" le 6 immagini, dove ognuna ha all'interno la propria label.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.