Tôi hoàn toàn mới với OpenCV. Tôi bắt đầu đọc Learing OpenCV một vài ngày trước và bây giờ tôi muốn làm một số xét nghiệm.OpenCV - cvPutText đang thêm tiếng ồn vào hình ảnh của tôi
Tôi muốn lập trình một người nói chuyện nghệ thuật ASCII. Tôi đã thực hiện phép lặp hình ảnh và các điểm ảnh được nhóm theo các ô vuông để tính toán từng độ sáng vùng để liên kết nó với một ký tự tương ứng. Vì vậy, bây giờ tôi cần phải biết làm thế nào sáng là một nhân vật để liên kết từng khu vực hình ảnh với một nhân vật. Ý tưởng của tôi là tạo một chương trình khác mang lại cho tôi độ sáng của một số ký tự. Cách tiếp cận như sau:
- Tạo một hình ảnh kích thước 100 * 100 (ví dụ) - nền đen và 1 kênh
- Vẽ nhân vật ở đâu đó trong nó màu trắng (cvPutText)
- iterate hình ảnh và đếm số lượng các điểm ảnh màu trắng
- Đồng hóa kết quả
tôi nghĩ rằng chương trình của tôi là ok, nhưng tôi nhận được kết quả kỳ lạ ... Chỉ cần để kiểm tra xem nó, tôi đang trưng bày những hình ảnh với nhau nhân vật và somethi ng lạ đang xảy ra. Hình ảnh cho thấy những gì tôi đang nói về.
Đây là mã tôi đang sử dụng:
...
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);
...
Tôi đang phát triển trên hệ điều hành MacOS Lion (nếu nó giúp ...). Cảm ơn bạn đã đọc (và giúp đỡ!).
Tôi đang sử dụng OpenCV 2.4 trên Ubuntu 12.04. Tôi đã thử đoạn mã của bạn, nhưng tôi không thấy sự cố khi hiển thị hình ảnh với ký tự. Chỉ cần tự hỏi nếu bạn làm bất kỳ thao tác hình ảnh sau cvPutText()? – zkan
Tôi nghĩ rằng cvCreateImage không khởi tạo hình ảnh, bạn đã thử cvSet (img, cvScalar (0,0,0)); ? – Milo
Cảm ơn sự giúp đỡ của bạn. Tôi không còn sử dụng OpenCV nữa nhưng tôi hy vọng có thời gian trong ngày để tiếp tục thử nghiệm với điều này. –