Jestem całkowicie nowy z OpenCV. Kilka dni temu zacząłem czytać Learing OpenCV, a teraz chciałbym zrobić kilka testów.OpenCV - cvPutText dodaje szum do moich obrazów
Chciałem zaprogramować konwersator sztuki ASCII. Wykonałem iterację obrazu i pogrupowałem piksele za pomocą kwadratów, aby obliczyć jasność każdego regionu, aby powiązać go z odpowiednią postacią. Więc teraz muszę wiedzieć, jak jasna jest postać, aby połączyć każdy region obrazu z postacią. Mój pomysł polegał na stworzeniu innego programu, który zapewni mi jasność niektórych postaci. Podejście to w następujący sposób:
- Utwórz obraz o rozmiarze 100 x 100 (na przykład) - czarnym tle i 1 kanał
- narysować postać gdzieś w nim w kolorze białym (cvPutText)
- iteracyjne obraz i policzyć liczbę białych pikseli
- znormalizować wynik
myślę, że mój program jest ok, ale ja dostaję dziwne wyniki ... Żeby to sprawdzić, ja wyświetlania obrazów z każdego charakter i coś dzieje się dziwne. Obraz pokazuje, o czym mówię.
Jest to kod używam:
...
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);
...
Zajmuję na MacOS Lion (czy to pomaga ...). Dziękuję za przeczytanie (i pomoc!).
Używam OpenCV 2.4 na Ubuntu 12.04. Wypróbowałem Twój fragment kodu, ale nie widziałem problemu z wyświetleniem obrazu z postacią. Zastanawiam się tylko, czy wykonujesz jakąkolwiek manipulację obrazem po cvPutText()? – zkan
Myślę, że cvCreateImage nie inicjalizuje obrazu, czy próbowałeś cvSet (img, cvScalar (0,0,0)); ? – Milo
Dzięki za pomoc. Nie używam już OpenCV, ale mam nadzieję, że pewnego dnia będę miał czas na eksperymentowanie z tym. –