一种字体检测方法技术

技术编号:28872996 阅读:22 留言:0更新日期:2021-06-15 23:06
本发明专利技术公开了一种字体检测方法其包括以下步骤:(1)创建字体库,读取大量字体文件,根据文件内包含的字符数据,生成各字符对应图案,所有字体组合成为字体库;(2)将字符对应的图案生成对比字符指纹;(3)将需检测的图片文字生成检测字符指纹;(4)将检测字符指纹与字体库中的对比字符指纹进行比对,得到最接近的字体。本发明专利技术通过引入字体指纹,将图片中的文字转化成字体指纹与字体库中的字体指纹比对,快速找出需检测的字体类型,准确率高,且效率快。

【技术实现步骤摘要】
一种字体检测方法
本专利技术属于字体检测
,具体涉及一种字体检测方法。
技术介绍
目前,一张图片中的字体主要是通过人工识别出为何种字体,需要通过多种字体相互对比才能判别出来,而且准确率低,效率慢;字体检测技术是根据所给出的文字图案,在字体库中查找到相对应的字体,主要应用于设计师等职业人群,为了快速识别图片中文字使用何种字体,急需提出一种字体识别技术。
技术实现思路
有鉴于此,本专利技术提出一种字体检测方法,能够快速识别图片中的字体,而且准确率高。为了达到目的,本专利技术提供的技术方案为:本专利技术涉及一种字体检测方法其包括以下步骤:(1)创建字体库,读取大量字体文件,根据文件内包含的字符数据,生成各字符对应图案,所有字体组合成为字体库;(2)将字符对应的图案生成对比字符指纹;(3)将需检测的图片文字生成检测字符指纹;(4)将检测字符指纹与字体库中的对比字符指纹进行比对,得到最接近的字体。优选地,所述的字体文件为ttf或otf格式文件优选地,所述生成对比字符指纹的具体步骤包括:(2.1)将带有字体的图案M转换为灰度图G;(2.2)通过计算全图像素值均值将灰度图G进行二值化处理,生成二维数组A;大于等于均值的像素点置为1,小于均值的像素点置为0,最终成为只有0和1的二值化二维数组;(2.3)将二维数组扩展为一维向量,得到对比字符指纹V。通过特定软件包(如Python可使用Pillow模块)可以将字体文件中的数据以图案显示,输入法根据用户输入的文字+字体文件在计算机上显示文字图案。生成对比字符指纹可节约存储成本,并且便于计算。一般图案数据都是KB级别,生成指纹后为B级别,降低了3个数量级。优选地,所述生成检测字符指纹的具体步骤包括:(3.1)圈选出需检测的图片M2中文字部分;(3.2)将文字部分转换为灰度图Mwg;(3.3)将灰度图通过OTSU算法进行二值化,得到二维数组A2;(3.4)根据二维数组A2边缘像素值生成文字部分的二维数组A3;(3.5)将二维数组A3扩展为一维向量,得到检测字符指纹V2。通过观测A2边缘像素值(边缘一般为背景而非文字部分),可确定二值化的A2数组中0、1的值是否设置正确。如果边缘像素值为0,则认为背景部分已被置0,文字部分已被置1如果边缘像素值为1,则认为OTSU算法设置错误,需要将A2中的所有0置为1,所有1置为0。二维数组A3是边缘像素值为1的数组。采用本专利技术提供的技术方案,与现有技术相比,具有如下有益效果:1、本专利技术通过引入字体指纹,将图片中的文字转化成字体指纹与字体库中的字体指纹比对,快速找出需检测的字体类型,准确率高,且效率快。2、本专利技术采用灰度图+OTSU算法+二值化的步骤对图片文字进行去背景噪声,正确提取字符本体,提高字体检测的正确率。3、本专利技术通过处理图片,将KB级别的图案数据,降维成B级别的一维向量,比对更加方便。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术方法的流程框图;图2为步骤二的流程框图;图3为步骤三的流程框图。具体实施方式为进一步了解本专利技术的内容,结合实施例对本专利技术作详细描述,以下实施例用于说明本专利技术,但不用来限制本专利技术的范围。如图1所示,本实施例涉及一种字体检测方法其包括以下步骤:(1)创建字体库,读取大量ttf或otf格式的字体文件,根据文件内包含的字符数据,生成各字符对应图案,所有字体组合成为字体库;(2)将字符对应的图案生成对比字符指纹;(3)将需检测的图片文字生成检测字符指纹;(4)将检测字符指纹与字体库中的对比字符指纹进行比对,得到最接近的字体。参照图2,所述生成对比字符指纹的具体步骤包括:(2.1)将带有字体的图案M转换为灰度图G,缩放灰度图G到合适大小;(2.2)通过计算全图像素值均值将灰度图G进行二值化处理,生成二维数组A;大于等于均值的像素点置为1,小于均值的像素点置为0,最终成为只有0和1的二值化二维数组;(2.3)将二维数组扩展为一维向量,得到对比字符指纹V。通过特定软件包(如Python可使用Pillow模块)可以将字体文件中的数据以图案显示,输入法根据用户输入的文字+字体文件在计算机上显示文字图案。生成对比字符指纹可节约存储成本,并且便于计算。一般图案数据都是KB级别,生成指纹后为B级别,降低了3个数量级。参照图3,所述生成检测字符指纹的具体步骤包括:(3.1)圈选出需检测的图片M2中文字部分Mw;(3.2)将文字部分Mw转换为灰度图Mwg;(3.3)将灰度图通过OTSU算法进行二值化,得到二维数组A2;(3.4)根据二维数组A2边缘像素值生成文字部分的二维数组A3;(3.5)将二维数组A3扩展为一维向量,得到检测字符指纹V2。通过观测A2边缘像素值(边缘一般为背景而非文字部分),可确定二值化的A2数组中0、1的值是否设置正确。如果边缘像素值为0,则认为背景部分已被置0,文字部分已被置1如果边缘像素值为1,则认为OTSU算法设置错误,需要将A2中的所有0置为1,所有1置为0。二维数组A3是边缘像素值为1的数组。在进行比对过程中,通过计算两个一维向量的汉明距离(2个向量进行异或运算,统计结果为1的数量),距离越小的表示向量越接近。本实施例基于3755个字体搭建字体库进行测试,发现给出的第1个结果就是正确答案的概率为76%,前五个结果中有正确答案的概率为89%,前十个结果中有正确答案的概率为97%。以上示意性的对本专利技术及其实施方式进行了描述,该描述没有限制性,附图中所示的也只是本专利技术的实施方案,实际的结构并不局限于此。所以本领域的普通技术人员受其启示,在不脱离本专利技术创造宗旨的情况下,不经创造性的设计出与该技术方案相似的结构方式及实施例,均应属于本专利技术的保护范围。本文档来自技高网...

【技术保护点】
1.一种字体检测方法,其特征在于,其包括以下步骤:/n(1)创建字体库,读取大量字体文件,根据文件内包含的字符数据,生成各字符对应图案,所有字体组合成为字体库;/n(2)将字符对应的图案生成对比字符指纹;/n(3)将需检测的图片文字生成检测字符指纹;/n(4)将检测字符指纹与字体库中的对比字符指纹进行比对,得到最接近的字体。/n

【技术特征摘要】
1.一种字体检测方法,其特征在于,其包括以下步骤:
(1)创建字体库,读取大量字体文件,根据文件内包含的字符数据,生成各字符对应图案,所有字体组合成为字体库;
(2)将字符对应的图案生成对比字符指纹;
(3)将需检测的图片文字生成检测字符指纹;
(4)将检测字符指纹与字体库中的对比字符指纹进行比对,得到最接近的字体。


2.根据权利要求1所述的字体检测方法,其特征在于,所述的字体文件为ttf或otf格式文件。


3.根据权利要求1所述的字体检测方法,其特征在于,所述生成对比字符指纹的具体步骤包括:
(2.1)将带有字体的图...

【专利技术属性】
技术研发人员:林俊
申请(专利权)人:杭州刀豆网络科技有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1