Sono completamente nuovo con OpenCV. Ho iniziato a leggere Learing OpenCV alcuni giorni fa e ora mi piacerebbe fare alcuni test.OpenCV - cvPutText aggiunge rumore alle mie immagini
Volevo programmare un conversatore di arte ASCII. Ho eseguito l'iterazione dell'immagine e raggruppato i pixel per quadrati per calcolare la luminosità di ogni regione per associarla a un rispettivo personaggio. Quindi ora ho bisogno di sapere quanto è brillante un personaggio per collegare ogni regione dell'immagine a un personaggio. La mia idea era di creare un altro programma che mi desse la luminosità di alcuni personaggi. L'approccio è il seguente:
- creare un'immagine di dimensioni 100 * 100 (per esempio) - sfondo nero e 1 canale
- disegnare il personaggio da qualche parte in esso di colore bianco (cvPutText)
- Itera la immagini e contare il numero di pixel bianchi
- normalizzare il risultato
Penso che il mio programma è ok, ma sto ottenendo risultati strani ... solo per verificare, io sono la visualizzazione delle immagini con ogni carattere e somethi ng strano sta succedendo. L'immagine mostra di cosa sto parlando.
Questo è il codice che sto usando:
...
char c = 'a'; //or whatever
IplImage *img = cvCreateImage(cvSize(150, 150), IPL_DEPTH_8U, 1);
char buffer[7];
sprintf(buffer, "%c", c);
CvFont font;
cvInitFont(&font, CV_FONT_HERSHEY_SIMPLEX, 0.5, 0.5);
cvPutText(img, buffer, cvPoint(2, 15), &font, cvScalar(255));
//iteration to calculate brightness will go here
cvNamedWindow(buffer);
cvShowImage(buffer, img);
cvMoveWindow(buffer, 50*(c-first), 20);
...
sto sviluppando su MacOS Lion (se aiuta ...). Grazie per aver letto (e aiutato!).
Sto usando OpenCV 2.4 su Ubuntu 12.04. Ho provato il tuo snippet di codice, ma non ho visto il problema nel visualizzare l'immagine con il personaggio. Mi chiedo se fai qualche manipolazione di immagini dopo cvPutText()? – zkan
Penso che cvCreateImage non inizializzi l'immagine, hai provato cvSet (img, cvScalar (0,0,0)); ? – Milo
Grazie per il vostro aiuto. Non sto più usando OpenCV, ma spero di avere un giorno di tempo per continuare a sperimentare. –