设计专业所需网站,翔宇定制app下载,有那些专门做职业统计的网站,二次开发客户的话术目录 1) 前言2) freetype下载3) Demo3.1) 下载3.2) 编译3.3) 运行3.4) 结果3.5) 更详细的使用见目录中说明 4) 积少成多 1) 前言
最近在做图片、视频叠加文字#xff0c;要求支持中文#xff0c;基本原理是将图片或视频解码后叠加文字#xff0c;之后做图片或视频编码即可。… 目录 1) 前言2) freetype下载3) Demo3.1) 下载3.2) 编译3.3) 运行3.4) 结果3.5) 更详细的使用见目录中说明 4) 积少成多 1) 前言
最近在做图片、视频叠加文字要求支持中文基本原理是将图片或视频解码后叠加文字之后做图片或视频编码即可。项目中是使用OpenCV的文字叠加因为使用的版本不支持freetype所以在此记录下主要使用OpenCVfreetype的方式对原始数据的文字叠加。 2) freetype下载
链接: freetype master 编译部分在此不展开。
3) Demo
该demo基本满足需求支持选择字体类型文字大小设置颜色设置水平/垂直叠加增加下划线以及透明度等主要参考
struct FontProperty {int fontSize; // font size (pixel)double spaceRatio; // ratio of distance when meet a space, base on font sizedouble fontRatio; // ratio of distance between each character, base on font sizedouble fontRotateAngle; // rotate angledouble fontDiaphaneity; // merge ratiobool fontIsUnderline; // underlinebool fontIsVertical; // put text in vertical};3.1) 下载
master原链接:freetype_opencv
3.2) 编译
原链接代码编译不过去做部分修改和增加一些依赖即可build.sh为编译文件。链接:工程项目
g *.cpp -I freetype2/ -I /usr/include/opencv4/ ./libfreetype.a -L /usr/lib/aarch64-linux-gnu/ -lopencv_core -lopencv_highgui -lz -lopencv_imgproc -lopencv_imgcodecs
说明:
1)板端(用的Soc是NVIDIA的NANO)opencv使用的是4.5.4
2)目录中的libfreetype.a是已编译好的freetype静态库,理论上是aarch64的架构都可以使用
3)以上编译脚本的-I和-L部分根据自己的OpenCV实际安装情况做调整 当然也可以用cmake3.3) 运行
./a.out 0 /**0表示用的默认字体该字体有沟边效果其他字体输入123有不同的效果*/3.4) 结果 3.5) 更详细的使用见目录中说明
4) 积少成多
一般文字叠加的颜色和背景色尽量反色,即自动检测叠加坐标区域的背景色亮度通过灰度自适应。另外一种方案是对文字勾边这种方式更加简单。