#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)
返回所有元素都设置为 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 矩阵。) |
text | 要绘制的文本字符串。 |
org | 图像中文本字符串的左下角/左上角。 |
fontHeight | 以像素为单位的绘制字体大小。 |
color | 文本颜色。 |
thickness | 用于绘制文本的线条粗细。如果为负值,则填充字形。否则,字形将以该粗细绘制。 |
line_type | 线条类型。有关详细信息,请参阅 line。 |
bottomLeftOrigin | 如果为 true,则图像数据的原点位于左下角。否则,它位于左上角。 |
◆ setSplitNumber()
virtual void cv::freetype::FreeType2::setSplitNumber |
( |
int |
num | ) |
|
|
纯虚 |
从贝塞尔曲线到直线设置分割数量。
该函数 setSplitNumber 用于设置将贝塞尔曲线分割成直线的分割点数量。如果要绘制大型字形,较大的值更好。如果要绘制小型字形,较小的值更好。
- 参数
-
此类的文档是从以下文件生成的