Tôi đang sử dụng opencv 2.1. Trong mã của tôi, tôi có một vài hình ảnh được lưu trữ như các đối tượng Mat khởi tạo như thế này:Cách che phủ văn bản trên ảnh khi làm việc với cv :: Loại Mat
Mat img1 = imread("img/stuff.pgm", CV_LOAD_IMAGE_GRAYSCALE);
tôi có thể hiển thị chúng đúng cách sử dụng imshow() sau khi hoạt động ma trận của tôi được thực hiện. Bây giờ tôi muốn thêm một số văn bản trên hình ảnh để mô tả những gì đã xảy ra. Nhìn vào tài liệu có vẻ như cvPutText()
sẽ là hàm tôi cần. Nhưng khi tôi thử một cái gì đó như thế này:
cvPutText(result, "Differencing the two images.", cvPoint(30,30), &font, GREEN);
tôi nhận được lỗi biên dịch sau: error: cannot convert ‘cv::Mat’ to ‘CvArr*’ for argument ‘1’ to ‘void cvPutText(CvArr*, const char*, CvPoint, const CvFont*, CvScalar)’
gì tôi cần phải làm để có thể thêm một số văn bản khi hiển thị hình ảnh này?
Thật không may, điều này chỉ hoạt động cho các ký tự ASCII… Nếu ai đó có giải pháp tốt hơn, tôi sẽ lấy nó! –
@ Eliyahu-Shmuel đó là 'putText' không phải là 'PutText'. Tôi sử dụng nó như vậy 'cv :: putText' – nmante
Nó không in tôi bất cứ điều gì trên hình ảnh của tôi. mã của tôi: Mat fre = imread ("1.jpg", 0); \t putText (fre, "Differencing the two images.", CvPoint (30, 30), \t \t FONT_HERSHEY_COMPLEX_SMALL, 0,8, cvScalar (200, 200, 250), 1, CV_AA); –