OpenCV:在图像上显示文本信息

2025-04-21 02:30:21

1、初始化字体结构-cvInitFontcvInitFont初始化字体结构体,字体结构体可以被传宕蜉窑煜递到文字显示函数中。函数原型:void c即枢潋雳vInitFont( CvFont* font, //被初始化的字体结构体int font_face, //字体名称标识符double hscale,//字体宽度double vscale, //字体高度double shear=0,//字体斜度int thickness=1, //字体笔划的粗细程度int line_type=8 ); //字体笔划的类型参数:hscale:字体宽度。如果等于1.0f,字符的宽度是最初的字体宽度。如果等于0.5f,字符的宽度是最初的字体宽度的一半。vscale:字体高度。如果等于1.0f,字符的高度是最初的字体高度。如果等于0.5f,字符的高度是最初的字体高度的一半。shear:字体的斜度。当值为0时 ,字符不倾斜;当值为1.0f时,字体倾斜≈45度,等等。厚度让字母着重显示。函数cvLine用于绘制字母。thickness:字体笔划的粗细程度。line_type:字体笔划的类型。

OpenCV:在图像上显示文本信息

2、cvPutText():使用给定的字体和颜色在图像上显示文本字符串这些显示的文本由感兴趣矩形包围着。函数原型:void cvPutText(CvArr* img,//待绘制图像const char* text,//显示的字符串CvPoint org,//第一个字母左下角的坐标const CvFont* font,//指向字体结构的指针CvScalar color );//文本的颜色.

OpenCV:在图像上显示文本信息

3、结合cvInitFont和cvPutTe垓矗梅吒xt在图像上显示文本的方法:#include <opencv2\opencv.hpp>#inc造婷用痃lude <opencv2\highgui\highgui.hpp>#include <opencv2\core\core.hpp>using namespace std;using namespace cv;int main(){IplImage* OriginImage=cvLoadImage("raw.jpg",1);CvFont font;cvInitFont(&font,CV_FONT_HERSHEY_COMPLEX,1.0,1.0,0,2,8);cvPutText(OriginImage,"Hello every one!",cvPoint(OriginImage->width/2-100,OriginImage->height/2),&font,cvScalar(255,0,0));cvShowImage("show",OriginImage);cvWaitKey(0);return 0;}

OpenCV:在图像上显示文本信息
OpenCV:在图像上显示文本信息

4、getTextSize():获取待绘制文本框的大小,以方便放置文本框函数原型:Size getTextSize(const string& text, //带设置的字符串文本Point origin, //文本框左下角int fontFace, //字符串字体double fontScale,int thickness, //字体笔划的粗细程度int* baseLine);

OpenCV:在图像上显示文本信息

5、putText():在图像中绘制文本信息函数原型:void putText(Mat& img, // 待绘制的图像const string& text, // 待绘制的文字Point origin, // 文本框的左下角int fontFace, // 字体 (如cv::FONT_HERSHEY_PLAIN)double fontScale, // 尺寸因子,值越大文字越大Scalar color, // 线条的颜色(RGB)int thickness = 1, // 线条宽度int lineType = 8, // 线型(4邻域或8邻域,默认8邻域)bool bottomLeftOrigin = false // true='origin at lower left');

OpenCV:在图像上显示文本信息

6、getTextS坡纠课柩ize()和putText()结合的应用:程序:int main(){ //创建空白图用于绘制文字 Mat image = cv::Mat::zeros(cv::Size(640, 480), CV_8UC3); //设置蓝色背景 image.setTo(cv::Scalar(100, 0, 0)); //设置绘制文本的相关参数 string text = "Hello World!"; int font_face = cv::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, cv::Scalar(0, 255, 255), thickness, 8, 0); //显示绘制解果 imshow("image", image); waitKey(0); return 0;}

OpenCV:在图像上显示文本信息
OpenCV:在图像上显示文本信息
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢