Soy completamente nuevo con OpenCV. Empecé a leer Learing OpenCV hace unos días y ahora me gustaría hacer algunas pruebas.OpenCV - cvPutText agrega ruido a mis imágenes
Quería programar un conversor artístico de ASCII. He hecho la iteración de la imagen y he agrupado píxeles por cuadrados para calcular el brillo de cada región para asociarla a un personaje respectivo. Así que ahora necesito saber qué tan brillante es un personaje para vincular cada región de imagen a un personaje. Mi idea era hacer otro programa que me diera el brillo de algunos personajes. El enfoque es el siguiente:
- crear una imagen de tamaño 100 * 100 (por ejemplo) - fondo negro y 1 canal
- Dibuje el carácter en algún lugar en el color blanco (cvPutText)
- Iterar el imagen y contar el número de píxeles blancos
- normalizar el resultado
creo que mi programa no está mal, pero estoy consiguiendo resultados extraños ... sólo para verlo, estoy mostrando las imágenes con cada uno personaje y somethi ng extraño está sucediendo. La imagen muestra de lo que estoy hablando.
Este es el código que estoy utilizando:
...
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);
...
estoy desarrollando en MacOS León (si ayuda ...). Gracias por leer (y ayudar!).
Estoy usando OpenCV 2.4 en Ubuntu 12.04. Probé el fragmento de código, pero no vi el problema al mostrar la imagen con el personaje. ¿Te preguntas si haces alguna manipulación de imagen después de cvPutText()? – zkan
Creo que cvCreateImage no inicializa la imagen, ¿has probado cvSet (img, cvScalar (0,0,0)); ? – Milo
Gracias por su ayuda. No estoy usando OpenCV por más tiempo, pero espero tener tiempo algún día para seguir experimentando con esto. –