OpenCV  4.10.0
开源计算机视觉
正在加载...
正在搜索...
无匹配项
公有成员函数 | 所有成员列表
cv::freetype::FreeType2 类参考abstract

#include <opencv2/freetype.hpp>

cv::freetype::FreeType2 的协作图

公有成员函数

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
 从贝塞尔曲线到直线设置分割数量。
 
- 继承自 cv::Algorithm 的公有成员函数
 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
 

其他继承成员

- 继承自 cv::Algorithm 的静态公有成员函数
template<typename _Tp >
static Ptr< _Tpload (const String &filename, const String &objname=String())
 从文件中加载算法。
 
template<typename _Tp >
static Ptr< _TploadFromString (const String &strModel, const String &objname=String())
 从字符串中加载算法。
 
template<typename _Tp >
static Ptr< _Tpread (const FileNode &fn)
 从文件节点读取算法。
 
- 继承自 cv::Algorithm 的受保护成员函数
void writeFormat (FileStorage &fs) 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 linestyle = LINE_8;
Mat img(600, 800, CV_8UC3, Scalar::all(0));
int baseline=0;
ft2->loadFontData( "./mplus-1p-regular.ttf", 0 );
Size textSize = ft2->getTextSize(text,
fontHeight,
thickness,
&baseline);
if(thickness > 0){
baseline += thickness;
}
// 居中显示文本
Point textOrg((img.cols - textSize.width) / 2,
(img.rows + textSize.height) / 2);
// 绘制框
rectangle(img, textOrg + Point(0, baseline),
textOrg + Point(textSize.width, -textSize.height),
Scalar(0,255,0),1,8);
// ... 然后首先绘制基线
line(img, textOrg + Point(0, thickness),
textOrg + Point(textSize.width, thickness),
Scalar(0, 0, 255),1,8);
// 然后放置文本本身
ft2->putText(img, text, textOrg, fontHeight,
Scalar::all(255), thickness, linestyle, true );
n 维稠密数组类
定义 mat.hpp:812
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 用于设置将贝塞尔曲线分割成直线的分割点数量。如果要绘制大型字形,较大的值更好。如果要绘制小型字形,较小的值更好。

参数
num从贝塞尔曲线到直线的分割点数

此类的文档是从以下文件生成的