#include <opencv2/freetype.hpp>
|
virtual Size | getTextSize (const String &text, int fontHeight, int thickness, int *baseLine)=0 |
| 计算文本字符串的宽度和高度。
|
|
virtual void | loadFontData (char *pBuf, size_t bufSize, int idx)=0 |
| 加载字体数据。
|
|
virtual void | loadFontData (String fontFileName, int idx)=0 |
| 加载字体数据。
|
|
virtual void | putText (InputOutputArray img, const String &text, Point org, int fontHeight, Scalar color, int thickness, int line_type, bool bottomLeftOrigin)=0 |
| 绘制文本字符串。
|
|
virtual void | setSplitNumber (int num)=0 |
| 设置贝塞尔曲线到直线的分割点数。
|
|
| Algorithm () |
|
virtual | ~Algorithm () |
|
virtual void | clear () |
| 清除算法状态。
|
|
virtual bool | empty () const |
| 如果Algorithm为空(例如,在开始时或读取不成功后),则返回true。
|
|
virtual String | getDefaultName () const |
|
virtual void | read (const FileNode &fn) |
| 从文件存储中读取算法参数。
|
|
virtual void | save (const String &filename) const |
|
void | write (const Ptr< FileStorage > &fs, const String &name=String()) const |
|
virtual void | write (FileStorage &fs) const |
| 将算法参数存储到文件存储中。
|
|
void | write (FileStorage &fs, const String &name) const |
|
◆ getTextSize()
virtual Size cv::freetype::FreeType2::getTextSize |
( |
const String & | text, |
|
|
int | fontHeight, |
|
|
int | thickness, |
|
|
int * | baseLine ) |
|
纯虚函数 |
计算文本字符串的宽度和高度。
getTextSize 函数计算并返回包含指定文本的框的近似大小。也就是说,以下代码呈现一些文本、其周围的紧密框和基线:
String text =
"Funny text inside the box";
int fontHeight = 60;
int thickness = -1;
int baseline=0;
ft2->loadFontData( "./mplus-1p-regular.ttf", 0 );
Size textSize = ft2->getTextSize(text,
fontHeight,
thickness,
&baseline);
if(thickness > 0){
baseline += thickness;
}
(img.rows + textSize.
height) / 2);
ft2->putText(img, text, textOrg, fontHeight,
static Scalar_< double > all(double v0)
用于指定图像或矩形大小的模板类。
定义 types.hpp:335
_Tp height
高度
定义 types.hpp:363
_Tp width
宽度
定义 types.hpp:362
Point2i Point
定义 types.hpp:209
std::string String
定义 cvstd.hpp:151
std::shared_ptr< _Tp > Ptr
定义 cvstd_wrapper.hpp:23
#define CV_8UC3
定义 interface.h:90
Ptr< FreeType2 > createFreeType2()
创建 FreeType2 实例。
void rectangle(InputOutputArray img, Point pt1, Point pt2, const Scalar &color, int thickness=1, int lineType=LINE_8, int shift=0)
绘制一个简单的、粗的或填充的右上角矩形。
void line(InputOutputArray img, Point pt1, Point pt2, const Scalar &color, int thickness=1, int lineType=LINE_8, int shift=0)
绘制连接两点的线段。
@ LINE_8
8连线
定义 imgproc.hpp:893
- 参数
-
| text | 输入文本字符串。 |
| fontHeight | 以像素为单位的绘制字体大小。 |
| thickness | 用于渲染文本的线条粗细。详情请参见 putText。 |
[输出] | baseLine | 相对于最底部文本点的基线 y 坐标。 |
- 返回值
- 包含指定文本的框的大小。
- 参见
- cv::putText
◆ loadFontData() [1/2]
virtual void cv::freetype::FreeType2::loadFontData |
( |
char * | pBuf, |
|
|
size_t | bufSize, |
|
|
int | idx ) |
|
纯虚函数 |
加载字体数据。
loadFontData 函数从内存加载字体数据。数据不会被复制,用户需要确保数据至少存在与FreeType2相同的生命周期。在FreeType2对象销毁后,可以安全地释放缓冲区。
- 参数
-
pBuf | 指向包含字体数据的缓冲区的指针 |
bufSize | 缓冲区大小 |
idx | face_index 用于在一个文件中选择字体。 |
◆ loadFontData() [2/2]
virtual void cv::freetype::FreeType2::loadFontData |
( |
String | fontFileName, |
|
|
int | idx ) |
|
纯虚函数 |
加载字体数据。
loadFontData 函数从文件加载字体数据。
- 参数
-
fontFileName | 字体文件名 |
idx | face_index 用于在一个文件中选择字体。 |
◆ putText()
virtual void cv::freetype::FreeType2::putText |
( |
InputOutputArray | img, |
|
|
const String & | text, |
|
|
Point | org, |
|
|
int | fontHeight, |
|
|
Scalar | color, |
|
|
int | thickness, |
|
|
int | line_type, |
|
|
bool | bottomLeftOrigin ) |
|
纯虚函数 |
绘制文本字符串。
putText 函数在图像中渲染指定的文本字符串。无法使用指定字体渲染的符号将替换为“豆腐块”或不绘制。
- 参数
-
img | 图像。(仅支持 8UC1/8UC3/8UC4 2D mat)。 |
text | 要绘制的文本字符串。 |
org | 图像中文本字符串的左下/左上角。 |
fontHeight | 以像素为单位的绘制字体大小。 |
color | 文本颜色。 |
thickness | 用于绘制文本的线条粗细,如果为负数,则填充字形。否则,字形将以此粗细绘制。 |
line_type | 线条类型。详情请参见 line。 |
bottomLeftOrigin | 如果为真,则图像数据原点位于左下角。否则,位于左上角。 |
◆ setSplitNumber()
virtual void cv::freetype::FreeType2::setSplitNumber |
( |
int | num | ) |
|
|
纯虚函数 |
设置贝塞尔曲线到直线的分割点数。
setSplitNumber 函数设置从贝塞尔曲线到线的分割点数。如果要绘制大型字形,则较大的值更好。如果要绘制小型字形,则较小的值更好。
- 参数
-
此类的文档是从以下文件生成的: