图像处理---《在图片上打印文字 putText()》
图像处理---《在图片上打印文字 putText()》
目的:想在处理之后的图像上打印输出结果。
方法: (1)只在图像上打印 数字、字母的话:
1.Mat格式的图像,可以使用opencv自带的putText()。
2.IPLImage格式的图像,可以使用自带的cvInitFont和cvPutText函数。
(2)在图像上打印 汉字的话,可以使用FreeType库。
FreeType库是一个完全免费(开源)的、高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件。
/* 作者:WP @20190626 功能:opencv在图片中写入文字 说明: (1)只在图像上打印 数字、字母的话: 1.Mat格式的图像,可以使用opencv自带的putText。 2.IPLImage格式的图像,可以使用自带的cvInitFont和cvPutText函数。 (2)在图像上打印 汉字的话,可以使用FreeType库。 FreeType库是一个完全免费(开源)的、高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件。 */ #include <iostream> #include "opencv2/opencv.hpp" using namespace std; using namespace cv; //--------------------------------Mat格式的图像,可以使用opencv自带的putText()函数--------------------------------------- int main( ) { //Mat image = Mat::zeros(Size(640, 480), CV_8UC3); // 创建空白图用于绘制文字 //image.setTo(Scalar(100, 0, 0)); //设置蓝色背景 Mat image = imread("D:\\005_test_4\\testImg\\road_6.png",1); // 最后显示,1---原图,0---灰度图 //设置绘制文本的相关参数 string text = "JILIN UNIVERSITY"; int font_face = FONT_HERSHEY_COMPLEX; double font_scale = 2; int thickness = 2; int baseline; //获取文本框的长宽 Size text_size = getTextSize(text, font_face, font_scale, thickness, &baseline); //将文本框居中绘制 Point origin; origin.x = image.cols / 2 - text_size.width / 2; origin.y = image.rows / 2 + text_size.height / 2; putText(image, text, origin, font_face, font_scale, Scalar(0, 255, 255), thickness, 8, 0); putText(image, "This image is clear.", Point(50, 100), FONT_HERSHEY_SIMPLEX, 1, Scalar(0,0,255), 4, 8); //显示绘制结果 imshow("image", image); waitKey(0); return 0; }
【. . . . . .本博客仅作个人生活、工作、学习等的日常记录。说明: (1) 内容有参考其他博主、网页等,有因“懒”直接粘贴来,会备注出处。若遇雷同,或忘备注,并无故意抄袭之意,请诸“原主”谅解,很感谢您的辛勤"笔记"可供本人参考学习。 (2) 如遇同行,有参考学习者,因个人学识有限,不保证所写内容完全正确。您对本博文有任何的意见或建议,欢迎留言,感谢指正。 (3) 若您认为本主的全博客还不错,可以点击关注,便于互相学习。 (4) 感谢您的阅读,希望对您有一定的帮助。欢迎转载或分享,但请注明出处,谢谢。. . . . . .】
【作者: Carole0904 ; 出处: https://www.cnblogs.com/carle-09/ 】