英文字体识别

由于英文字符较少,所以英文字体远多于中文字体,而且很多字体之间的差异非常细微,所以查找英文字体比 中文字体要困难。有两个网站可以试试,但是效果不敢恭维,这两个网站分别是 WhatTheFontWhat Font is.

直接把包含英文字符的图片上传到网站,按照提示操作即可。包含字符的图片要尽可能大一些,识别的效果才会比较准确。

中文字体识别

有两个不错的字体在线识别网站,一个是 likefont,另外一个是求字体

两个网站使用方法类似,个人感觉 likefont 的效果更好。直接将包含字体的图片上传到网站,网站将会智能识别图片中包含的字符,如果智能识别的结果不理想,可以使用下面的“手动拼字”模式。在“手动拼字”模式下,一个字符可能被分成了多个图像,拖动图片把属于一个字的图像合并,直到拼成一个字,为了识别准确,可以多拼几个字,然后再所拼的字下方填入该字符图像对应的真实字符(只能填写一个字符,注意简体 or 繁体)。

然后网站会根据字符的图像,从网站的数据库中找出与所给的字体图像相似的字体,并且会给出相似度的评分(见下图),非常不错。

处理背景前景区分度不高的图片

这两个网站对输入的图片都有要求,如果字体的颜色和背景的颜色不易区分,或者背景的颜色太过嘈杂,字体识别将无法工作,如果输入一张不符合要求的图片,求字体网站直接提示图片不符合要求,likefont 则没有任何反应。例如对于下面的图片,

字体识别将不能工作,我们需要将背景和前景(即实际的字符)分得更清楚。

解决办法

可以使用这个网站的图像分割技术,把图像的前景背景分割开来,从而获得更加清晰的字体图像。

首先输入一张图片,然后直接用鼠标在前景上点击,标记一些前景点1,为了标注准确,可以更改 pen size。

标记完成之后,点击 run,算法将会计算前景与背景,生成二值化的黑白分割图像。

点击 “Marker” 会显示之前标记的 marker,点击 “Segmentation result”,显示的是分割以后的结果,如下图所示:

最后把分割后的图像输入字体识别网站,能够得到比较好的字体识别结果:

参考


  1. 这一步很重要,分割算法将利用标记的前景点来寻找所有前景像素,理论上标记的点越多,标记的越准确,分割的结果越好。