OpenCV绘图之字体和文字
来源:互联网 发布:阿里云主机绑定域名 编辑:程序博客网 时间:2024/04/29 12:04
在OpenCV中输出文本是比较方便吧,有一个问题就是获取字体有那么一点麻烦,需要调用函数来实现其赋值,作为字体参数,而输出文本只需要设置字体,文本输出位置,文本的颜色,文本字符串,显示文本的图像这几个参数.
下面说一下输出文本的函数:
void cvPutText{ CvArr * img, const char* text, CvPoint origin, const CvFont * font, CvScalar color
};
const CvFont * font 参数是通过cvInitFont()函数来实现的.
下面是cvInitFont函数的原型声明:
CvFont * cvInitFont( CvFont * font, int font_face, double hscale, double vscale, int thickness = 1, int line_type = 8);
关于font_face参数:
CV_FONT_HERSHEY_SIMPLEX - 正常大小无衬线字体.
CV_FONT_HERSHEY_PLAIN -
CV_FONT_HERSHEY_DUPLEX -
CV_FONT_HERSHEY_COMPLEX -
CV_FONT_HERSHEY_TRIPLEX -
CV_FONT_HERSHEY_COMPLEX_SMALL -
CV_FONT_HERSHEY_SCRIPT_SIMPLEX -
CV_FONT_HERSHEY_SCRIPT_COMPLEX -
参数能够由一个值和可选择的 CV_FONT_ITALIC 字体标记合成。就是斜体字.
参数vscale,和hscale分别表示行高、和字体宽度,当其值被设为1.0时,就为默认值,当其值被设为0.5时,就为原默认值的一半,shear参数表示字体的倾斜程度,当其值为0时,表示字体不倾斜,当其值为1时,文字倾斜45度.
下面是使用函数的一个实例:
/* OpenCV之显示文本函数的应用实例 */#include <highgui.h>#include <cv.h>int main(){ /* 创建一个空图 */ CvSize size = cvSize(400, 400); IplImage * testImage = cvCreateImage(size, IPL_DEPTH_8U, 3); /* 对图像数据域的矩阵进行赋值得到一副空白图 */ for(int y = 0; y < testImage->height; y++){ unsigned char * Pout = (unsigned char *)(testImage->imageData + y * testImage->widthStep); for(int x = 0; x < testImage->width; x++){ Pout[3 * x + 0] = 255; Pout[3 * x + 1] = 255;/* 使图像呈现白色 */ Pout[3 * x + 2] = 255; } } /* 定义要显示的内容 */ char * text = new char[20]; text = "Hello, world";/* 文本字符串1*/ char * text_last = new char[60]; text_last = "Copyright @3blog.csdn.net/yinkailin. All Rights Reserved.";/* 文本字符串2 */ /* 定义要显示文字的位置、颜色和字体 */ CvPoint point1 = cvPoint(50, 50); CvPoint point2 = cvPoint(80, 80);/* 设置字体在图片中出现的位置 */ CvPoint point3 = cvPoint(110, 110); CvPoint point4 = cvPoint(10, 370); CvScalar color = cvScalar(10, 10, 210);/* 设置字体的颜色 */ CvFont font1, font2, font3, font4;/* 定义一些设置字体的变量 */ /* 使用cvInitFont函数为上述结构体赋值 */ cvInitFont(&font1, CV_FONT_HERSHEY_SCRIPT_SIMPLEX, 0.5, 1.0, 0); cvInitFont(&font2, CV_FONT_HERSHEY_COMPLEX, 0.5, 1.0, 0); cvInitFont(&font3, CV_FONT_HERSHEY_SIMPLEX, 0.5, 1.0, 0); cvInitFont(&font4, CV_FONT_HERSHEY_SCRIPT_COMPLEX, 0.5, 1.0, 0); cvPutText(testImage, text, point1, &font1, color); cvPutText(testImage, text, point2, &font2, color); cvPutText(testImage, text, point3, &font3, color);/* 将相应格式的字体显示在图片相应的位置 */ cvPutText(testImage, text_last, point4, &font4, color); cvNamedWindow("PutText"); cvShowImage("PutText", testImage);/* 创建图片并显示文本 */ cvWaitKey(0); /* 释放相关资源 */ cvReleaseImage(&testImage); cvDestroyAllWindows(); return 0;}
程序的运行结果如下:
。。。。。。。。。。。。。。。。。。。。。。。。。
- OpenCV绘图之字体和文字
- opencv文字和字体
- opencv文字和字体
- opencv文字和字体
- 用opencv实现绘图和文字输出。。。。
- OpenCV基础几何绘图和文字输出
- opencv文字和字体(转载)
- OpenCV之core 模块. 核心功能(2)基本绘图 随机数发生器&绘制文字 离散傅立叶变换 输入输出XML和YAML文件 与 OpenCV 1 同时使用
- opencv之绘图
- OpenCV之基本绘图
- OpenCV之基本绘图
- OpenCV之基本绘图
- 文字和字体
- 字体和文字
- HTML5绘图之文字旋转
- 【openCV入门之三】数据结构和绘图函数
- windows程序设计 文字和字体
- canvas之二绘图绘图详解曲线,文字,高级应用
- Java基础 之强引用(Strong Reference)、软引用(Soft Reference)、弱引用(WeakReference)、虚引用(Phantom Reference)
- CentOS 中增加新的工作区
- 建立简单的服务器端程序
- 曾经的“战友”!
- 关于路由的一点理解,还有编址
- OpenCV绘图之字体和文字
- 棋盘覆盖问题的算法实现
- 使用GCD(转)
- UML学习之:类图
- JBoss 系列十一:JBoss Cluster Framework Demo 介绍
- 设计模式-单例模式应用场景
- CCNA日记--OSPF配置
- POJ3723 Conscription , 最大权森林问题 ->最小生成树问题
- templete_find_cc