字体匹配.pdf

上传人:b*** 文档编号:1037210 上传时间:2018-03-27 格式:PDF 页数:17 大小:553.79KB
返回 下载 相关 举报
摘要
申请专利号:

CN201110315750.4

申请日:

2011.08.02

公开号:

CN102375883A

公开日:

2012.03.14

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 17/30申请日:20110802|||公开

IPC分类号:

G06F17/30

主分类号:

G06F17/30

申请人:

塞拉特姆股份有限公司

发明人:

B·Q·哈蒙德

地址:

美国俄勒冈州

优先权:

2010.08.02 US 12/848,246

专利代理机构:

北京市柳沈律师事务所 11105

代理人:

周少杰

PDF下载: PDF下载
内容摘要

提出了用于字体匹配的方法、计算机可读介质和装置。可以接收并处理字形。接收的字形的处理可以包括缩小字形、计算与字形关联的边界、并规格化字形。处理的字形可以与图像原型的库进行比较。该比较可以包括从一个或多个图像原型确定处理的字形的距离、排序确定的距离、并且基于确定的距离选择一个或多个图像原型。另外的技术可以用于提高与各种方法和算法关联的分辨率或者精确度。

权利要求书

1: 一种方法, 包括 : 接收字形 ; 将接收的字形缩小为预定义的格式 ; 规格化缩小的字形 ; 比较规格化的字形与多个图像原型 ; 以及 基于该规格化的字形与该多个图像原型的比较, 输出多个图像原型中的至少一个。
2: 根据权利要求 1 所述的方法, 其中将接收的字形缩小为预定义格式包括 : 将该接收 的字形缩小为 1 位深度位图格式。
3: 根据权利要求 1 所述的方法, 其中规格化缩小的字形包括 : 将该缩小的字形规格化 为预定义宽度和成比例高度。
4: 根据权利要求 3 所述的方法, 其中该多个图像原型中的每个规格化为该预定义宽 度。
5: 根据权利要求 1 所述的方法, 进一步包括 : 在库中存储该多个图像原型。
6: 根据权利要求 1 所述的方法, 其中该规格化的字形与该多个图像原型的比较包括 : 确定该规格化的字形的行数, 和该多个图像原型中选择的一个的行数 ; 对该规格化的字形的行数和该多个图像原型中选择的一个的行数的较少者, 异或 xor 该规格化的字形的像素与该多个图像原型中选择的一个的对应像素 ; 累计异或该规格化的字形的像素、 与该多个图像原型中选择的一个的对应像素的结 果; 对没有异或的该规格化的字形和该多个图像原型中选择的一个的每一行, 将对应于该 规格化的字形、 或该多个图像原型中选择的一个中像素 “开” 的数量的数, 加到该结果 ; 以及 保存加的结果。
7: 根据权利要求 6 所述的方法, 其中该规格化的字形和该多个图像原型的比较进一步 包括 : 确定在该多个图像原型中的至少第二选择的一个中的行数 ; 对该规格化的字形的行数、 和该多个图像原型中的至少第二选择的一个的行数的较小 者, 异或 xor 该规格化的字形的像素、 与该多个图像原型中的至少第二选择的一个的对应 像素 ; 累计异或该规格化的字形的像素、 与该多个图像原型中的至少第二选择的一个的对应 像素的至少第二结果 ; 对没有异或的该规格化的字形、 和该多个图像原型中的至少第二选择的一个中的每一 行, 将对应于该规格化的字形、 或该多个图像原型中的至少第二选择的一个中像素 “开” 的 数量的数, 加到该至少第二结果 ; 保存加的至少第二结果 ; 以及 确定该加的结果和该加的至少第二结果的最小值。
8: 根据权利要求 7 所述的方法, 其中该多个图像原型中至少一个的输出包括 : 输出对 应于确定的该加的结果和该加的至少第二结果的最小值的图像原型。
9: 根据权利要求 1 所述的方法, 进一步包括 : 2 计算与该接收的字形关联的边界, 其中该缩小的字形的规格化是基于计算的边界。
10: 一个或多个非暂时性计算机可读介质, 其具有存储在其上的指令, 其当通过一个或 多个计算机执行指令时, 使得该一个或多个计算机执行 : 接收字形 ; 将接收的字形缩小为预定义的格式 ; 规格化缩小的字形 ; 比较规格化的字形与多个图像原型 ; 以及 基于该规格化的字形与该多个图像原型的比较, 输出该多个图像原型中至少一个。
11: 根据权利要求 10 所述的一个或多个非暂时性计算机可读介质, 其中当通过一个或 多个计算机执行指令时, 指令使得一个或多个计算机执行 : 将该接收的字形缩小为 1 位深度位图格式。
12: 根据权利要求 10 所述的一个或多个非暂时性计算机可读介质, 其中当通过一个或 多个计算机执行指令时, 指令使得一个或多个计算机执行 : 将该缩小的字形规格化为预定义宽度和成比例高度。
13: 根据权利要求 10 所述的一个或多个非暂时性计算机可读介质, 其中当通过一个或 多个计算机执行指令时, 指令使得一个或多个计算机执行 : 确定该规格化的字形的行数, 和该多个图像原型中选择的一个的行数 ; 对该规格化的字形的行数、 和该多个图像原型中选择的一个的行数中的较小者, 异或 xor 该规格化的字形的像素与该多个图像原型中选择的一个的对应像素 ; 累计异或该规格化的字形的像素、 与该多个图像原型中选择的一个的对应像素的结 果; 对没有异或的该规格化的字形、 和该多个图像原型中选择的一个的每一行, 将对应于 该规格化的字形、 或该多个图像原型中选择的一个中像素 “开” 的数量的数, 加到该结果 ; 以 及 保存加的结果。
14: 根据权利要求 13 所述的一个或多个非暂时性计算机可读介质, 其中当通过一个或 多个计算机执行指令时, 指令使得一个或多个计算机执行 : 确定在该多个图像原型中的至少第二选择的一个中的行数 ; 对该规格化的字形的行数、 和该多个图像原型中至少第二选择的一个的行数的较小 者, 异或 xor 该规格化的字形的像素、 与该多个图像原型中至少第二选择的一个的对应像 素; 累计异或该规格化的字形的像素、 与该多个图像原型中至少第二选择的一个的对应像 素的至少第二结果 ; 对没有异或的该规格化的字形、 和该多个图像原型中至少第二选择的一个中的每一 行, 将对应于该规格化的字形、 或该多个图像原型中至少第二选择的一个中像素 “开” 的数 量的数, 加到该至少第二结果 ; 保存加的至少第二结果 ; 以及 确定该加的结果和该加的至少第二结果的最小值。 3
15: 一种装置, 包括 : 至少一个处理器 ; 以及 存储指令的存储器, 当通过至少一个处理器执行指令时, 使得该装置执行 : 接收字形 ; 将接收的字形缩小为预定义的格式 ; 规格化缩小的字形 ; 比较规格化的字形与多个图像原型 ; 以及 基于该规格化的字形与该多个图像原型的比较, 输出该多个图像原型中的至少一个。
16: 根据权利要求 15 所述的装置, 其中当通过至少一个处理器执行指令时, 指令使得 该装置执行 : 将该接收的字形缩小为 1 位深度位图格式。
17: 根据权利要求 15 所述的装置, 其中当通过至少一个处理器执行指令时, 指令使得 该装置执行 : 规格化缩小的字形为预定义宽度和成比例高度。
18: 根据权利要求 15 所述的装置, 其中当通过至少一个处理器执行指令时, 指令使得 该装置执行 : 旋转该规格化的字形 ; 以及 比较旋转的字形和多个图像原型。
19: 根据权利要求 15 所述的装置, 其中当通过至少一个处理器执行指令时, 指令使得 该装置执行 : 计算与该接收的字形关联的边界, 其中规格化该缩小的字形是基于计算的边界 ; 转变计算的边界一偏移量 ; 基于转变的边界规格化该缩小的字形 ; 比较基于转移的边界规格化的缩小的字形和多个图像原型 ; 基于比较确定从多个图像原型选择的、 最接近地匹配接收的字形的至少一个图像原 型; 以及 输出确定的至少一个图像原型。
20: 根据权利要求 15 所述的装置, 其中当通过至少一个处理器执行指令时, 指令使得 该装置执行 : 基于最近邻算法缩小接收的字形。

说明书


字体匹配

    【技术领域】
     本发明涉及字体匹配技术。背景技术 字体识别程序和算法目前被构造成以向字体提供器或者管理器提供关于用途模 式的指示。 例如, 可以收集并分析与字体关联的元数据, 以确定相对于一个或多个其它字体 集选择一个特定字体集有多频繁。 更通常地, 可以收集并分析元数据, 以确定相对于与另一 ( 计算 ) 特征的给定 ( 计算 ) 特征的选择频率。
     典型地, 字体提供器可以将名称关联特定样式字体。在排印中, Times New Roman 和 Arial 是字体的通常示例。与 Arial 字体中的字母 “a” 相比, Times New Roman 字体中 的字母 “a” 可以在样式上显得不同。如果足够频繁地使用特定类型或样式的字体, 用户可 以达到熟知该字体的水平。然而, 存在已经存在或者正在被创建的很多样式的字体。随着 字体选项数量的增加, 记起特定的字体名称或者识别特定的字体可能变得日益困难。
     发明内容 接下来呈现简化的概述以便提供本公开一些方面的基本理解。 该概述不是本公开 的广泛综述。 它既不是意图识别本公开的关键或者重要元素, 也不是描绘本公开的范围。 下 面的概述仅仅是以简化的形式呈现一些本公开的概念作为下面描述的序幕。
     本公开的各方面涉及库的创建和维护。在一些实施例中, 该库可以包含一个或多 个字体或字体字形的图像原型。在一个示例中, 图像原型可以包括单个字体字形 ( 例如, 对字体定义的单个字符 )。该图像原型可以以一个或多个格式在库中存储。例如, 位图格 式可以用于一些实施例。在一些实施例中, 对图像原型表现的位图可以具有 1 位深度。可 以在一些实施例中计算与原型图像关联的边界。此外或可替代地, 原型图像可以规格化 (normalize)。规格化可以导致具有预定宽度和 / 或高度的原型图像。例如, 库中所有图像 原型都可以具有相同的规格化宽度和 / 或高度。
     本公开的各方面可以进一步涉及将字形匹配到存储在库中的图像原型, 以识别该 字形所属的字体或者类似的字体。在一些实施例中, 接收的字形可以缩小为 1 位深度位图 格式。可以计算与接收的字形 ( 和 / 或当缩小为 1 位深度位图时的字形 ) 关联的边界。接 收的字形可以经历规格化。例如, 执行规格化可以导致接收的字形制作为预定义的宽度和 / 或高度。在一些实施例中, 可以执行在库中存储的一个或多个图像原型和 ( 格式化的、 规 格化的 ) 接收的字形之间的比较, 以确定一个或多个潜在的匹配字体候选。执行的比较可 以包括计算在 ( 格式化的、 规格化的 ) 接收的字形和存储在库中一个或多个图像原型之间 的误差或距离分数。
     其它细节和特征还将在随后的部分中描述。
     附图说明本公开用权利要求书中的特性指出。 当完整浏览本公开时, 包括同此提供的附图, 本公开的特征将变得更加明显。
     在附图中, 这里的一些特征通过示例的方式, 而不是限制的方式来图示, 在附图 中, 相同的参考数字指示相似的元件。
     图 1 图示了可以实施本公开的一个或多个方面的示例系统。
     图 2 图示了可以实施本公开的一个或多个方面的示例网络环境。
     图 3-5 图示了根据在此描述的一个或多个方面的一个或多个方法。
     图 6 图示了根据本公开的一个或多个方面的图像原型和字形。 具体实施方式
     在下面各种图示的实施例的描述中, 参考构成实施例一部分的附图, 并且其中通 过图示方式示出, 可以实践本公开的各方面的各种实施例。要理解, 可以利用其它实施例, 并且可以进行结构和功能的修改, 而不背离本公开的范围。
     注意, 接下来的描述中讨论了元件之间的各种连接。注意, 这些连接是一般性的, 并且除非另有说明, 可以是直接或者间接的、 有线或者无线的, 并且说明书无意在这个方面 进行限制。 图 1 图示了可以实施本公开的一个或多个方面的示例系统。在一个或多个配置 中, 这里描述的一个或多个方面可以实施为计算机程序、 和 / 或与计算机 100 一起使用和 / 或存储在存储器 113 中的计算机程序的组合。计算机 100 代表一般计算设备, 例如, 桌面型 计算机、 膝上型计算机、 笔记本计算机、 网络服务器、 便携计算设备、 个人数字助理、 智能电 话、 移动电话、 分布计算网络设备, 和 / 或其它设备, 其具有必需的组件和 / 或能力用以如这 里所述地操作, 由此根据本公开的一个或多个图示方面配置为专用设备。计算机 100 可以 包括中央处理单元或其它处理器 103, RAM 或其它易失性存储器 105, ROM 或其它引导存储器 107, 通过其计算机 100 可以连接到广域网和 / 或局域网 ( 例如, 因特网、 LAN、 WAN、 PAN 等 ) 的网络接口 109( 例如以太网、 无线网络接口、 调制解调器等 ), 输入 / 输出端口 111( 例如, 键盘、 鼠标、 监视器、 打印机、 USB 端口, 串行端口、 并行端口、 IEEE 1394/ 火线端口等 ), 以及 非易失性存储器 113( 例如, 固定盘、 光盘、 全息存储器、 可移动存储介质、 闪存驱动器等 )。 计算机 100 可以在存储器 113 中存储各种程序、 指令、 应用和数据, 包含但不限于操作系统 软件 115、 字体小服务程序 (servlet)117( 例如, 一个或多个插件和 / 或这里描述的其它字 体软件 )、 数据 119( 例如, 文档、 文件和这里描述的其它数据 )、 以及字体数据库 121( 例如, 一个或多个字体文件和 / 或这里描述的其它文件 )。
     本公开的一个或多个方面可以体现在计算机可用数据、 和 / 或计算机可执行指令 中, 如在一个或多个程序模块中, 由一个或多个计算机或其它设备执行, 以表现用于输出在 诸如显示器或打印机的设备上的一个或多个字体。 通常, 程序模块包含例程、 程序、 对象、 组 件、 数据结构等, 其在计算机或其它数据处理设备中由一个或多个处理器执行时, 执行特定 任务或者实施特定的抽象数据类型。计算机可执行指令可以存储在计算机可读介质上, 如 硬盘、 光盘、 可移除存储介质、 固态存储器、 RAM 等。如将所认识到的, 可以如各种实施例中 希望地组合或者分布程序模块的功能。此外, 功能可以全部或者部分地体现在固件或者硬 件等同物上, 如集成电路、 现场可编程门阵列 (FPGA) 等。特定的数据结构可以用于更加有
     效地实施本公开的一个或多个方面, 并且这样的数据结构预期在这里描述的计算机可执行 指令、 和计算机可用数据的范围内。
     图 2 图示了可以实施本公开的一个或多个方面的示例网络环境 200。 网络环境 200 可以包括一个或多个计算机, 如 web 开发者计算机 205、 web 用户计算机 210、 web 域服务器 220、 小服务程序主机 225 和字体服务器 230。 此外, 网络环境 200 可以包含一个或多个局域 网 (“LAN” ) 和 / 或一个或多个广域网 (“WAN” , 例如, 因特网 215)。
     根据一个或多个方面, web 开发者计算机 205 可以是在设计或者开发网站、 和/或 级联样式表 (“CCS” ) 代码中, 由网站开发者或者其它用户使用的计算机。CSS 是一种样式 表语言, 通过其可以控制和 / 或修改诸如网页的结构化文档的一个或多个式样参数。例如, 用户可以使用 CSS 定义要显示在网页中的文本的字体和字体式样。因此, 不是必须直接在 每个网页中复制和 / 或包括字体或字体式样编码, 而是网页可以引用或者调用相关 CSS。 如 果多个网页使用相同的字体或字体式样、 以及其它定义在 CSS 中的式样属性, 那么它们可 以使用相同的 CSS。
     web 用户计算机 210 可以是在浏览因特网 215 上的一个或多个网站和网页中, 由 web 用户使用的计算机。web 域服务器 220 可以是计算机, 其中存储一个或多个网站和 / 或 CSS 代码, 和 / 或从该计算机响应远程请求, 服务一个或多个网站和 / 或 CSS 代码。小服务 程序主机 225 可以是计算机, 其中根据这里进一步描述的一个或多个方面, 存储一个或多 个字体请求处理和 / 或字体服务计算机程序和 / 或脚本。字体服务器 230 可以是计算机, 其中根据这里进一步描述的一个或多个方面, 存储一个或多个字体和 / 或一个或多个字体 数据库。 例如, 网站开发者可以使用 web 开发者计算机 205, 设计并开发包括 CSS 代码的网 站。随后, 网站开发者可以经由因特网 215 上载网站 / 网页到 web 域服务器 220。可替代地 或此外, 网站开发者或其它用户可以从开发者计算机 205 在域名服务器 220 上, 远程地开发 网站 / 网页。此后, web 用户可以使用 web 用户计算机 210 经由因特网 215 访问网站 / 网 页。在访问网站或网页并执行其中包含的 CSS 代码中, 用户可以触发字体请求。作为触发 字体请求的结果, web 用户计算机 210、 和 / 或 web 域服务器 220 可以发送字体请求到小服 务程序主机 225。该字体请求可以包括字体请求服务器地址、 客户标识符、 安全令牌、 字体 名称、 字体文件名称、 和 / 或上述组合。响应于接收字体请求, 小服务程序主机 225 可以处 理字体请求, 其可以包括解析字体请求, 估计字体请求服务器地址、 客户标识符、 安全令牌、 和 / 或字体名称或字体文件名称。如果小服务程序主机 225 确定该字体请求是无效的或者 未授权的, 小服务程序主机 225 可以不采取任何进一步的动作, 或者小服务程序主机可以 传送拒绝该字体请求的消息, 或者另外提供一些其它相似的响应。 另一方面, 如果小服务程 序主机 225 确定字体请求是有效的和 / 或授权的, 小服务程序主机 225 可以从字体服务器 230, 请求对应于字体请求的一个或多个字体。响应于这样的请求, 字体服务器 230 可以发 送对应于字体请求的一个或多个字体到小服务程序主机 225、 web 域服务器 220、 和 / 或 web 用户计算机 210。 此外或者可替代地, 响应于从字体服务器 230 接收对应于字体请求的一个 或多个字体, 小服务程序主机 225 可以发送对应于字体请求的一个或多个字体到 web 域服 务器 220、 和 / 或 web 用户计算机 210。此后, 响应于接收对应于字体请求的一个或多个字 体, web 用户计算机 210 可以显示和 / 或打印有一个或多个接收的字体的网站。
     虽然网络环境 200 描述为包括适于执行各种功能的各种计算机, 但是应当理解, 系统可以修改为包括更多或者更少数目的计算机, 这些计算机可以单独或者组合使用以提 供相同的功能。 例如, 单个计算机可以用于执行描述的所有功能, 并且一个或多个用户可以 通过一个或多个终端和 / 或用户接口与单个计算机交互。在另一示例中, 第一计算机可以 用于执行 web 开发者计算机 205 和 web 用户计算机 210 的所有功能, 并且第二计算机可以 用于执行 web 域服务器 220、 小服务程序主机 225 和字体服务器 230 的所有功能。
     图 3 图示了根据本公开的一个或多个方面的方法, 通过该方法可以创建和维护 库。该库可以包括一个或多个数据库, 该数据库可以包括在或者耦合到一个或多个计算平 台 ( 例如, 以上结合图 1 和图 2 描述的计算实体的任意组合 )。在步骤 302 中, 可以接收图 像原型 ( 或更具体地, 可以接收对应于要产生原型的一个或多个字形的信息或数据 )。 图像 原型可以使用一个或多个通信介质或协议接收为数据文件。可替代地或此外, 图像原型的 接收可以包括选择地在一个或多个计算机创建图像原型的步骤。 图像原型可以对应于要添 加到库的字体类型, 并可以包括一个或多个代表符号、 字符、 数字等的字形。
     在步骤 308 中, 接收的图像原型可以表现或转换为一个或多个格式。例如, 接收的 图像原型可以转换为位图格式。不同于或者除了位图的格式可以在一些实施例中使用。 在步骤 314 中, 图像原型可以经历缩小处理。 例如, 可以使用 1 位深度位图缩小。 从 彩色图像到 1 位深度图像的缩小可以由实体提供, 如与主机操作系统关联的图形服务 ( 例 如 )。缩小处理可以用于帮助下面结合图 4 描述的比较。
     在步骤 320 中, 可以计算与图像原型关联的边界。边界可以用于确定图像原型的 大小或范围。例如, 在文本文档的环境中, 计算的边界可以用于确定第一个字形 ( 例如, 字 符 ) 哪里结束和第二字形 ( 例如, 数字 ) 哪里开始, 第一和第二字形哪里相邻、 接续或相互 靠近。在一个特定示例中, 系统可以执行图像分析以识别字形的最左像素、 最右像素、 最顶 像素和最底像素。计算的边界也可以用于帮助如结合步骤 326 描述的规格化处理。
     在步骤 326 中, 可以关于图像原型进行规格化处理。在一些实施例中, 规格化可以 包括将图像原型规格化为预定义的宽度和高度。例如, 宽度可以是 128 像素。其它值 ( 例 如, 32、 64、 256 等 ) 可以用于一些实施例中的 ( 像素 ) 宽度。在一些实施例中, 规格化可以 发生在长度或者高度维度, 并且宽度可以成比例地缩放。结合步骤 320 计算的边界可以用 于获得缩小后图像原型中的比例。
     在步骤 332 中, 图像原型可以存储在上述一个或多个操作之后的库中。
     在一些实施例中, 字形的子集可以经历以上结合图 3 描述的操作。在那些实施例 中, 剩余的字形或者可以丢弃, 或者可以经历图 3 的一个或多个步骤, 但是分配给结合步骤 332 的临时存储。 在一些实施例中, 可以期望向图像原型中不同的字形提供不同的处理。 例 如, 不同处理可以用于在存储器 / 存储容量和 / 或处理资源和 / 或电源容量 ( 例如, 诸如在 电池供电设备中 ) 受限制的实施例。在那些实施例中, 各种准则可以用于确定存储哪些字 形。 例如, 可以存储预期频繁使用的字形 ( 例如, 元音或者标点 ), 然而那些没有预期为频繁 使用的字形可以或者丢弃, 或者分配给临时存储。
     图 4 的方法可以结合图 3 的方法使用, 以将接收的字形匹配到一个或多个图像原 型。在步骤 404 中, 可以接收要分析的字形。字形可以经由一个或多个计算实体 ( 例如, 图 1 和 2 所示的一个或多个计算实体 ) 接收。字形可以作为扫描图像 ( 例如, 复写或传真 )、
     电子邮件、 ( 文本 ) 消息, 作为文件或者文档等接收。
     在步骤 410 中, 接收的字形可以转换为一个或多个格式。例如, 步骤 410 的转换可 以对应于结合图 3 的步骤 308 执行的转换。因此, 在与步骤 308 关联的转换承担生成位图 的实施例中, 步骤 410 可以包括生成步骤 404 中接收的字形的位图。
     在步骤 416 中, 可以缩小接收的字形。例如, 步骤 416 的缩小可以对应于结合图 3 的步骤 314 执行的缩小。因此, 在与步骤 314 关联的缩小导致 1 位深度的位图的实施例中, 步骤 416 可以包括将接收字形的位图缩小到 1 位深度。
     步骤 422 中, 可以计算与接收的字形关联的边界。计算的边界可以用于确定接收 字形的大小或者范围。计算的边界也可以用于帮助如结合步骤 428 描述的规格化处理。
     在步骤 428 中, 可以关于接收的字形进行规格化处理。在一些实施例中, 规格化可 以包括将接收的字形规格化为预定义的宽度和 / 或成比例的高度。例如, 预定义宽度可以 是 128 像素。其它值 ( 例如, 32、 64、 256 等 ) 可以在一些实施例中用于 ( 像素 ) 宽度。在一 些实施例中, 规格化可以发生于长度或者高度维度, 并且宽度可以成比例地缩放。 在一个示 例中, 预定义宽度和高度可以匹配库中存储的图像原型的预定义高度和宽度。 结合步骤 422 计算的边界可以用于获得缩小后的图像原型的比例。在一些实施例中, 步骤 428 的规格化 可以对应于结合图 3 的步骤 326 进行的规格化, 以便帮助下面结合步骤 434 描述的比较。
     在步骤 434 中, 结合图 3 的步骤 332, 比较发生在接收的字形 ( 接着结合步骤 404-428 执行的处理 )、 和库中存储的一个或多个图像原型之间。在一些实施例中, 可以在 步骤 440 中输出一个或多个图像原型。图 5 示出和下面描述的说明性算法可以用于执行图 4 的步骤 434 和 440 的比较与输出。
     步骤 1 : 对于选择的存储在库中的图像原型, 设置第一变量 ( 此后称为 error_ accumularor) 为零。error_accumularor 可以提供选择的图像原型和接收的字形间的误差 或者距离分数。
     步骤 2 : 设置第二变量 ( 此后称为 min_num_rows) 等于选择的图像原型行数和接 收字形的行数中的较小者。
     步骤 3 : 对于达到 min_num_rows 的每一行, 异或 (xor) 接收的字形与选择的图像 原型, 并累计 ( 例如, 加 ) 异或的输出是 “1” 或者 “真” 的位的计数到 error_accumularor。 结合该步骤执行的 xor 函数, 可以对应于在接收的字形和选择的图像原型之间的逐像素 xor 操作, 其中对接收的字形和选择的图像原型的每个像素的值 “1” 或者 “真” 对应于 “开” 或者 “黑” 的像素, 并且对接收的字形和选择的图像原型的每个像素的值 “0” 或者 “假” 对 应于 “关” 或者 “白” 的像素。
     步骤 4 : 对于超过结合步骤 3 比较的行的每行, 在或者接收的字形或者选择的图像 原型 ( 无论哪个有较大数量的行 ) 中, 计数在行中置位的位的数量 ( 例如, 使用灰度图像, 图像中的位是黑色或者存在的位的数量 ), 添加计数到 error_accumularor。
     步骤 5 : 保存 error_accumularor 值作为选择的图像原型的分数。
     步骤 6 : 确定是否已经计分所有候选图像原型, 对存储在库中的每个候选图像原 型重复步骤 1-5。候选的图像原型可以包括所有存储在库中的图像原型, 或者其子集。
     步骤 7 : 排序结合步骤 5 存储的分数, 因此获得对候选图像原型的分数的排序列 表。步骤 8 : 确定排序分数中最低的对应于最接近地匹配接收字形的图像原型。在一 些实施例中, 可以输出最接近匹配接收字形的图像原型。输出可以包括一个或多个适于在 显示设备 ( 例如, 计算机监视器 ) 上显示的显示屏、 电子邮件、 文本消息、 文档、 音频消息等。
     图 6 图示了以上结合图 5 描述的步骤 1-5 的可视表示。在图 6 中, 图像原型示出 为有三行和三列并且粗略地呈 “X” 型。接收的字形, 可能已经经历与图 4 关联的处理, 可以 具有四行和三列。因此, 行的最小数 ( 如图 5 的步骤 2 所确定的 ) 是三, 对应于图像原型的 三行。根据图 5 的步骤 3, 在图像原型和接收的字形之间的像素方面的 xor 操作可以对三 行的每行发生, 并且该结果示出在图 6 的 xor 结果部分的第一个三行中, 其中 xor 结果的行 #1 列 #3 中的阴影块反映 “开” 或者 “黑” 的图像原型中的对应像素, 以及 “关” 或者 “白” 的 接收的字形中的对应像素。因此, 基于 xor 操作, error_accumularor 可以具有完成图 5 的 步骤 3 之后的值。根据图 5 的步骤 4, 在接收的字形中像素是 “开” 或者 “黑” 的第四行的像 素, 可以求和或者加。这通过 xor 结果的行 #4 列 #2 中像素的阴影反映在图 6 中, 该结果跟 踪在行 #4 列 #2 中接收字形中为 “开” 或者 “黑” 的对应像素。因此, 会结合图 5 的步骤 4 以 1 递增 error_accumularor, 导致图 5 的步骤 4 完成后 error_accumularor 的值为 2。这个 为 2 的 error_accumularor 值可以对这个特定的图像原型, 结合图 5 的步骤 5 保存。 可以对任何额外的候选图像原型 ( 未在图 6 中示出 ), 重复上面结合图 6 描述的处 理 ( 结合图 5 的步骤 6), 以便确定对图 6 示出的接收字形, 哪个候选图像原型具有最低分数 ( 结合图 5 的步骤 7 和 8)。
     图 6 中所示的表示是说明性的。 在一些实施例中, 可以使用不同的图像原型和 / 或 字形。例如, 图 6 中所示图像原型和字形的宽度对应于用于图示简化目的的三个像素。在 一些实施例中, 可以使用其它维数。
     在一些实施例中, 上述方法和架构的变形是可能的。例如, 在一些实施例中, 可以 进行图 3 和图 4 所示的方法的多种途径, 以便获得 “最适合” 结果或者以便提高或改进精度。
     在一些实施例中, 可以调整或修改与图 3 的步骤 320 关联的边界、 和 / 或与图 4 的 步骤 422 关联的边界的计算 ( 例如, 递增、 递减等 )。这样的调整可以解决图像原型和接收 字形之一相对于另一个的转变或者偏斜。 可以通过对一个或多个计算的边界加或减偏移值 进行调整。 在一些实施例中, 可以通过使计算的边界乘以不是 1 的数来调整计算的边界 ( 其 中小于 1 的数将趋于缩短计算的边界, 并且大于 1 的数将趋于扩展计算的边界 )。
     在一些实施例中, 可以修改或者变更与位深度缩小关联的技术 ( 例如, 图 3 的步骤 314 和图 4 的步骤 416)。例如, 当将位图缩小为图像时, 代替使用 50%阈值技术 ( 其中如果 一位是黑被当做 “开” , 并且如果是白被当做 “关” ), 可以使用不同的阈值。例如, 在一些实 施例中可以使用 75%的阈值, 以补偿在现实世界环境中可能遇见的打印 / 墨水颜色和 / 或 纸张问题 ( 例如, 机械问题 )。不同的阈值可以用于细调接收字形中的哪些位是 “开” 或者 “关” 。
     在一些实施例中, 可以使用最近邻算法, 选择地结合缩小步骤。例如, 位值或者对 给定像素的分配可以是接收字形中的对应位置、 和对应位置的相邻位置两者的函数。以这 种方式, 可以有效地采用过滤算法, 并且过滤算法可以用于提供在接收字形中的过渡点上 的平均或者平滑效应。
     在一些实施例中, 在应用图 4 所示的算法中可以转变 ( 例如, 旋转 ) 接收的字形。
     这样的转变 ( 例如, 旋转 ) 可以用于补偿在生成字形中的机械或者人工误差。例如, 如果字 形作为扫描处理的结果生成, 可以对接收的字形执行旋转以补偿扫描字形时字形的无意旋 转。
     在一些实施例中, 结合图 5 的步骤 8 确定的最低分数将对应于被使用的图像原型。 在一些实施例中, 使用另一分数代替最低分数是有利的。 例如, 如果在一些实施例中最低分 数和第二最低分数之间的差别小于阈值, 视听提示可以呈现对应于最低和第二最低分数的 图像原型, 并且可以请求用户选择图像原型中的一个。
     在一些实施例中, 可以在确定使用哪个图像原型中考虑许可期限。例如, 结合图 5( 步骤 8) 的最低分数可以对应于具有繁重的、 和难以负担的许可期限的图像原型, 而第二 最低分数可以对应于具更有利的许可期限的图像原型。在那些实施例中, 如果两个图像原 型之间的许可期限的差别大于阈值, 可以使用对应于第二最低分数的图像原型。
     除了其它准则, 上面描述的准则 ( 阈值、 许可期限等的使用 ), 可以在一些实施例 中使用以打破分数之间的平局 (tie)。
     尽管不要求, 但是本领域普通技术人员将认识到, 这里描述的各个方面可以具体 化为方法、 装置、 或者存储计算机可执行指令的一个或多个计算机可读介质。因此, 那些方 面可以采用如下的形式 : 完全硬件实施例, 完全软件实施例, 完全固件实施例, 或者以任意 组合组合软件、 硬件和固件的方面的实施例。 此外, 如这里描述的表示数据或事件的各种信 号可以通过诸如金属线、 光纤和 / 或无线传输介质 ( 例如, 空气和 / 或空间 ) 的信号传导介 质, 以光、 和 / 或电磁波传播的形式, 在源和目的地之间传送。通常, 一个或多个计算机可读 介质可以包含一个或多个暂时和 / 或者非暂时计算机可读介质。 如这里所描述的, 各种方法和动作可以跨一个或多个计算机服务器和一个或多个 网络操作。功能可以以任何方式分布, 或者可以位于单个计算设备 ( 例如, 服务器、 客户端 计算机等 ) 中。如这里所讨论的, 技术可以用于将接收的字形匹配到一个或多个候选图像 原型。
     如这里所描述的, 方法的动作和处理可以联系到特定的机器或装置。 例如, 如这里 所描述的, 用户计算机、 服务器等可以在本公开的各种实施例中使用, 以将接收的字形匹配 到一个或多个候选图像原型。更一般地, 一个或多个计算机可以包括一个或多个处理器和 存储指令的存储器, 当执行指令时, 执行这里描述的方法的动作和处理。而且, 这里描述的 方法的动作和处理可以执行多种功能, 包括将物品 ( 例如, 接收的字形 ) 变换为不同的状态 或事物 ( 例如, 具有与一个或多个图像原型关联的特性或属性的表现或显示的字形 )。
     本公开的各方面根据其图示的实施例已经进行了描述。对本领域普通技术人员, 从阅读本公开, 将出现在权利要求的范围和精神之内的许多的其它实施例、 修改和变形。 例 如, 本领域普通技术人员将认识到在图示的附图中图示的步骤可以以不同于列举的顺序执 行, 并且根据本公开的各方面, 图示的一个或多个步骤可以是可选择的。
    

字体匹配.pdf_第1页
第1页 / 共17页
字体匹配.pdf_第2页
第2页 / 共17页
字体匹配.pdf_第3页
第3页 / 共17页
点击查看更多>>
资源描述

《字体匹配.pdf》由会员分享,可在线阅读,更多相关《字体匹配.pdf(17页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN102375883A43申请公布日20120314CN102375883ACN102375883A21申请号201110315750422申请日2011080212/848,24620100802USG06F17/3020060171申请人塞拉特姆股份有限公司地址美国俄勒冈州72发明人BQ哈蒙德74专利代理机构北京市柳沈律师事务所11105代理人周少杰54发明名称字体匹配57摘要提出了用于字体匹配的方法、计算机可读介质和装置。可以接收并处理字形。接收的字形的处理可以包括缩小字形、计算与字形关联的边界、并规格化字形。处理的字形可以与图像原型的库进行比较。该比较可以包括从一个或多。

2、个图像原型确定处理的字形的距离、排序确定的距离、并且基于确定的距离选择一个或多个图像原型。另外的技术可以用于提高与各种方法和算法关联的分辨率或者精确度。30优先权数据51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书3页说明书7页附图6页CN102375890A1/3页21一种方法,包括接收字形;将接收的字形缩小为预定义的格式;规格化缩小的字形;比较规格化的字形与多个图像原型;以及基于该规格化的字形与该多个图像原型的比较,输出多个图像原型中的至少一个。2根据权利要求1所述的方法,其中将接收的字形缩小为预定义格式包括将该接收的字形缩小为1位深度位图格式。3根据权利要求1所述。

3、的方法,其中规格化缩小的字形包括将该缩小的字形规格化为预定义宽度和成比例高度。4根据权利要求3所述的方法,其中该多个图像原型中的每个规格化为该预定义宽度。5根据权利要求1所述的方法,进一步包括在库中存储该多个图像原型。6根据权利要求1所述的方法,其中该规格化的字形与该多个图像原型的比较包括确定该规格化的字形的行数,和该多个图像原型中选择的一个的行数;对该规格化的字形的行数和该多个图像原型中选择的一个的行数的较少者,异或XOR该规格化的字形的像素与该多个图像原型中选择的一个的对应像素;累计异或该规格化的字形的像素、与该多个图像原型中选择的一个的对应像素的结果;对没有异或的该规格化的字形和该多个图。

4、像原型中选择的一个的每一行,将对应于该规格化的字形、或该多个图像原型中选择的一个中像素“开”的数量的数,加到该结果;以及保存加的结果。7根据权利要求6所述的方法,其中该规格化的字形和该多个图像原型的比较进一步包括确定在该多个图像原型中的至少第二选择的一个中的行数;对该规格化的字形的行数、和该多个图像原型中的至少第二选择的一个的行数的较小者,异或XOR该规格化的字形的像素、与该多个图像原型中的至少第二选择的一个的对应像素;累计异或该规格化的字形的像素、与该多个图像原型中的至少第二选择的一个的对应像素的至少第二结果;对没有异或的该规格化的字形、和该多个图像原型中的至少第二选择的一个中的每一行,将对。

5、应于该规格化的字形、或该多个图像原型中的至少第二选择的一个中像素“开”的数量的数,加到该至少第二结果;保存加的至少第二结果;以及确定该加的结果和该加的至少第二结果的最小值。8根据权利要求7所述的方法,其中该多个图像原型中至少一个的输出包括输出对应于确定的该加的结果和该加的至少第二结果的最小值的图像原型。9根据权利要求1所述的方法,进一步包括权利要求书CN102375883ACN102375890A2/3页3计算与该接收的字形关联的边界,其中该缩小的字形的规格化是基于计算的边界。10一个或多个非暂时性计算机可读介质,其具有存储在其上的指令,其当通过一个或多个计算机执行指令时,使得该一个或多个计算。

6、机执行接收字形;将接收的字形缩小为预定义的格式;规格化缩小的字形;比较规格化的字形与多个图像原型;以及基于该规格化的字形与该多个图像原型的比较,输出该多个图像原型中至少一个。11根据权利要求10所述的一个或多个非暂时性计算机可读介质,其中当通过一个或多个计算机执行指令时,指令使得一个或多个计算机执行将该接收的字形缩小为1位深度位图格式。12根据权利要求10所述的一个或多个非暂时性计算机可读介质,其中当通过一个或多个计算机执行指令时,指令使得一个或多个计算机执行将该缩小的字形规格化为预定义宽度和成比例高度。13根据权利要求10所述的一个或多个非暂时性计算机可读介质,其中当通过一个或多个计算机执行。

7、指令时,指令使得一个或多个计算机执行确定该规格化的字形的行数,和该多个图像原型中选择的一个的行数;对该规格化的字形的行数、和该多个图像原型中选择的一个的行数中的较小者,异或XOR该规格化的字形的像素与该多个图像原型中选择的一个的对应像素;累计异或该规格化的字形的像素、与该多个图像原型中选择的一个的对应像素的结果;对没有异或的该规格化的字形、和该多个图像原型中选择的一个的每一行,将对应于该规格化的字形、或该多个图像原型中选择的一个中像素“开”的数量的数,加到该结果;以及保存加的结果。14根据权利要求13所述的一个或多个非暂时性计算机可读介质,其中当通过一个或多个计算机执行指令时,指令使得一个或多。

8、个计算机执行确定在该多个图像原型中的至少第二选择的一个中的行数;对该规格化的字形的行数、和该多个图像原型中至少第二选择的一个的行数的较小者,异或XOR该规格化的字形的像素、与该多个图像原型中至少第二选择的一个的对应像素;累计异或该规格化的字形的像素、与该多个图像原型中至少第二选择的一个的对应像素的至少第二结果;对没有异或的该规格化的字形、和该多个图像原型中至少第二选择的一个中的每一行,将对应于该规格化的字形、或该多个图像原型中至少第二选择的一个中像素“开”的数量的数,加到该至少第二结果;保存加的至少第二结果;以及确定该加的结果和该加的至少第二结果的最小值。权利要求书CN102375883ACN。

9、102375890A3/3页415一种装置,包括至少一个处理器;以及存储指令的存储器,当通过至少一个处理器执行指令时,使得该装置执行接收字形;将接收的字形缩小为预定义的格式;规格化缩小的字形;比较规格化的字形与多个图像原型;以及基于该规格化的字形与该多个图像原型的比较,输出该多个图像原型中的至少一个。16根据权利要求15所述的装置,其中当通过至少一个处理器执行指令时,指令使得该装置执行将该接收的字形缩小为1位深度位图格式。17根据权利要求15所述的装置,其中当通过至少一个处理器执行指令时,指令使得该装置执行规格化缩小的字形为预定义宽度和成比例高度。18根据权利要求15所述的装置,其中当通过至少。

10、一个处理器执行指令时,指令使得该装置执行旋转该规格化的字形;以及比较旋转的字形和多个图像原型。19根据权利要求15所述的装置,其中当通过至少一个处理器执行指令时,指令使得该装置执行计算与该接收的字形关联的边界,其中规格化该缩小的字形是基于计算的边界;转变计算的边界一偏移量;基于转变的边界规格化该缩小的字形;比较基于转移的边界规格化的缩小的字形和多个图像原型;基于比较确定从多个图像原型选择的、最接近地匹配接收的字形的至少一个图像原型;以及输出确定的至少一个图像原型。20根据权利要求15所述的装置,其中当通过至少一个处理器执行指令时,指令使得该装置执行基于最近邻算法缩小接收的字形。权利要求书CN1。

11、02375883ACN102375890A1/7页5字体匹配技术领域0001本发明涉及字体匹配技术。背景技术0002字体识别程序和算法目前被构造成以向字体提供器或者管理器提供关于用途模式的指示。例如,可以收集并分析与字体关联的元数据,以确定相对于一个或多个其它字体集选择一个特定字体集有多频繁。更通常地,可以收集并分析元数据,以确定相对于与另一计算特征的给定计算特征的选择频率。0003典型地,字体提供器可以将名称关联特定样式字体。在排印中,TIMESNEWROMAN和ARIAL是字体的通常示例。与ARIAL字体中的字母“A”相比,TIMESNEWROMAN字体中的字母“A”可以在样式上显得不同。。

12、如果足够频繁地使用特定类型或样式的字体,用户可以达到熟知该字体的水平。然而,存在已经存在或者正在被创建的很多样式的字体。随着字体选项数量的增加,记起特定的字体名称或者识别特定的字体可能变得日益困难。发明内容0004接下来呈现简化的概述以便提供本公开一些方面的基本理解。该概述不是本公开的广泛综述。它既不是意图识别本公开的关键或者重要元素,也不是描绘本公开的范围。下面的概述仅仅是以简化的形式呈现一些本公开的概念作为下面描述的序幕。0005本公开的各方面涉及库的创建和维护。在一些实施例中,该库可以包含一个或多个字体或字体字形的图像原型。在一个示例中,图像原型可以包括单个字体字形例如,对字体定义的单个。

13、字符。该图像原型可以以一个或多个格式在库中存储。例如,位图格式可以用于一些实施例。在一些实施例中,对图像原型表现的位图可以具有1位深度。可以在一些实施例中计算与原型图像关联的边界。此外或可替代地,原型图像可以规格化NORMALIZE。规格化可以导致具有预定宽度和/或高度的原型图像。例如,库中所有图像原型都可以具有相同的规格化宽度和/或高度。0006本公开的各方面可以进一步涉及将字形匹配到存储在库中的图像原型,以识别该字形所属的字体或者类似的字体。在一些实施例中,接收的字形可以缩小为1位深度位图格式。可以计算与接收的字形和/或当缩小为1位深度位图时的字形关联的边界。接收的字形可以经历规格化。例如。

14、,执行规格化可以导致接收的字形制作为预定义的宽度和/或高度。在一些实施例中,可以执行在库中存储的一个或多个图像原型和格式化的、规格化的接收的字形之间的比较,以确定一个或多个潜在的匹配字体候选。执行的比较可以包括计算在格式化的、规格化的接收的字形和存储在库中一个或多个图像原型之间的误差或距离分数。0007其它细节和特征还将在随后的部分中描述。附图说明说明书CN102375883ACN102375890A2/7页60008本公开用权利要求书中的特性指出。当完整浏览本公开时,包括同此提供的附图,本公开的特征将变得更加明显。0009在附图中,这里的一些特征通过示例的方式,而不是限制的方式来图示,在附图。

15、中,相同的参考数字指示相似的元件。0010图1图示了可以实施本公开的一个或多个方面的示例系统。0011图2图示了可以实施本公开的一个或多个方面的示例网络环境。0012图35图示了根据在此描述的一个或多个方面的一个或多个方法。0013图6图示了根据本公开的一个或多个方面的图像原型和字形。具体实施方式0014在下面各种图示的实施例的描述中,参考构成实施例一部分的附图,并且其中通过图示方式示出,可以实践本公开的各方面的各种实施例。要理解,可以利用其它实施例,并且可以进行结构和功能的修改,而不背离本公开的范围。0015注意,接下来的描述中讨论了元件之间的各种连接。注意,这些连接是一般性的,并且除非另有。

16、说明,可以是直接或者间接的、有线或者无线的,并且说明书无意在这个方面进行限制。0016图1图示了可以实施本公开的一个或多个方面的示例系统。在一个或多个配置中,这里描述的一个或多个方面可以实施为计算机程序、和/或与计算机100一起使用和/或存储在存储器113中的计算机程序的组合。计算机100代表一般计算设备,例如,桌面型计算机、膝上型计算机、笔记本计算机、网络服务器、便携计算设备、个人数字助理、智能电话、移动电话、分布计算网络设备,和/或其它设备,其具有必需的组件和/或能力用以如这里所述地操作,由此根据本公开的一个或多个图示方面配置为专用设备。计算机100可以包括中央处理单元或其它处理器103,。

17、RAM或其它易失性存储器105,ROM或其它引导存储器107,通过其计算机100可以连接到广域网和/或局域网例如,因特网、LAN、WAN、PAN等的网络接口109例如以太网、无线网络接口、调制解调器等,输入/输出端口111例如,键盘、鼠标、监视器、打印机、USB端口,串行端口、并行端口、IEEE1394/火线端口等,以及非易失性存储器113例如,固定盘、光盘、全息存储器、可移动存储介质、闪存驱动器等。计算机100可以在存储器113中存储各种程序、指令、应用和数据,包含但不限于操作系统软件115、字体小服务程序SERVLET117例如,一个或多个插件和/或这里描述的其它字体软件、数据119例如,。

18、文档、文件和这里描述的其它数据、以及字体数据库121例如,一个或多个字体文件和/或这里描述的其它文件。0017本公开的一个或多个方面可以体现在计算机可用数据、和/或计算机可执行指令中,如在一个或多个程序模块中,由一个或多个计算机或其它设备执行,以表现用于输出在诸如显示器或打印机的设备上的一个或多个字体。通常,程序模块包含例程、程序、对象、组件、数据结构等,其在计算机或其它数据处理设备中由一个或多个处理器执行时,执行特定任务或者实施特定的抽象数据类型。计算机可执行指令可以存储在计算机可读介质上,如硬盘、光盘、可移除存储介质、固态存储器、RAM等。如将所认识到的,可以如各种实施例中希望地组合或者分。

19、布程序模块的功能。此外,功能可以全部或者部分地体现在固件或者硬件等同物上,如集成电路、现场可编程门阵列FPGA等。特定的数据结构可以用于更加有说明书CN102375883ACN102375890A3/7页7效地实施本公开的一个或多个方面,并且这样的数据结构预期在这里描述的计算机可执行指令、和计算机可用数据的范围内。0018图2图示了可以实施本公开的一个或多个方面的示例网络环境200。网络环境200可以包括一个或多个计算机,如WEB开发者计算机205、WEB用户计算机210、WEB域服务器220、小服务程序主机225和字体服务器230。此外,网络环境200可以包含一个或多个局域网“LAN”和/或。

20、一个或多个广域网“WAN”,例如,因特网215。0019根据一个或多个方面,WEB开发者计算机205可以是在设计或者开发网站、和/或级联样式表“CCS”代码中,由网站开发者或者其它用户使用的计算机。CSS是一种样式表语言,通过其可以控制和/或修改诸如网页的结构化文档的一个或多个式样参数。例如,用户可以使用CSS定义要显示在网页中的文本的字体和字体式样。因此,不是必须直接在每个网页中复制和/或包括字体或字体式样编码,而是网页可以引用或者调用相关CSS。如果多个网页使用相同的字体或字体式样、以及其它定义在CSS中的式样属性,那么它们可以使用相同的CSS。0020WEB用户计算机210可以是在浏览因。

21、特网215上的一个或多个网站和网页中,由WEB用户使用的计算机。WEB域服务器220可以是计算机,其中存储一个或多个网站和/或CSS代码,和/或从该计算机响应远程请求,服务一个或多个网站和/或CSS代码。小服务程序主机225可以是计算机,其中根据这里进一步描述的一个或多个方面,存储一个或多个字体请求处理和/或字体服务计算机程序和/或脚本。字体服务器230可以是计算机,其中根据这里进一步描述的一个或多个方面,存储一个或多个字体和/或一个或多个字体数据库。0021例如,网站开发者可以使用WEB开发者计算机205,设计并开发包括CSS代码的网站。随后,网站开发者可以经由因特网215上载网站/网页到W。

22、EB域服务器220。可替代地或此外,网站开发者或其它用户可以从开发者计算机205在域名服务器220上,远程地开发网站/网页。此后,WEB用户可以使用WEB用户计算机210经由因特网215访问网站/网页。在访问网站或网页并执行其中包含的CSS代码中,用户可以触发字体请求。作为触发字体请求的结果,WEB用户计算机210、和/或WEB域服务器220可以发送字体请求到小服务程序主机225。该字体请求可以包括字体请求服务器地址、客户标识符、安全令牌、字体名称、字体文件名称、和/或上述组合。响应于接收字体请求,小服务程序主机225可以处理字体请求,其可以包括解析字体请求,估计字体请求服务器地址、客户标识符。

23、、安全令牌、和/或字体名称或字体文件名称。如果小服务程序主机225确定该字体请求是无效的或者未授权的,小服务程序主机225可以不采取任何进一步的动作,或者小服务程序主机可以传送拒绝该字体请求的消息,或者另外提供一些其它相似的响应。另一方面,如果小服务程序主机225确定字体请求是有效的和/或授权的,小服务程序主机225可以从字体服务器230,请求对应于字体请求的一个或多个字体。响应于这样的请求,字体服务器230可以发送对应于字体请求的一个或多个字体到小服务程序主机225、WEB域服务器220、和/或WEB用户计算机210。此外或者可替代地,响应于从字体服务器230接收对应于字体请求的一个或多个字。

24、体,小服务程序主机225可以发送对应于字体请求的一个或多个字体到WEB域服务器220、和/或WEB用户计算机210。此后,响应于接收对应于字体请求的一个或多个字体,WEB用户计算机210可以显示和/或打印有一个或多个接收的字体的网站。说明书CN102375883ACN102375890A4/7页80022虽然网络环境200描述为包括适于执行各种功能的各种计算机,但是应当理解,系统可以修改为包括更多或者更少数目的计算机,这些计算机可以单独或者组合使用以提供相同的功能。例如,单个计算机可以用于执行描述的所有功能,并且一个或多个用户可以通过一个或多个终端和/或用户接口与单个计算机交互。在另一示例中,。

25、第一计算机可以用于执行WEB开发者计算机205和WEB用户计算机210的所有功能,并且第二计算机可以用于执行WEB域服务器220、小服务程序主机225和字体服务器230的所有功能。0023图3图示了根据本公开的一个或多个方面的方法,通过该方法可以创建和维护库。该库可以包括一个或多个数据库,该数据库可以包括在或者耦合到一个或多个计算平台例如,以上结合图1和图2描述的计算实体的任意组合。在步骤302中,可以接收图像原型或更具体地,可以接收对应于要产生原型的一个或多个字形的信息或数据。图像原型可以使用一个或多个通信介质或协议接收为数据文件。可替代地或此外,图像原型的接收可以包括选择地在一个或多个计算。

26、机创建图像原型的步骤。图像原型可以对应于要添加到库的字体类型,并可以包括一个或多个代表符号、字符、数字等的字形。0024在步骤308中,接收的图像原型可以表现或转换为一个或多个格式。例如,接收的图像原型可以转换为位图格式。不同于或者除了位图的格式可以在一些实施例中使用。0025在步骤314中,图像原型可以经历缩小处理。例如,可以使用1位深度位图缩小。从彩色图像到1位深度图像的缩小可以由实体提供,如与主机操作系统关联的图形服务例如。缩小处理可以用于帮助下面结合图4描述的比较。0026在步骤320中,可以计算与图像原型关联的边界。边界可以用于确定图像原型的大小或范围。例如,在文本文档的环境中,计算。

27、的边界可以用于确定第一个字形例如,字符哪里结束和第二字形例如,数字哪里开始,第一和第二字形哪里相邻、接续或相互靠近。在一个特定示例中,系统可以执行图像分析以识别字形的最左像素、最右像素、最顶像素和最底像素。计算的边界也可以用于帮助如结合步骤326描述的规格化处理。0027在步骤326中,可以关于图像原型进行规格化处理。在一些实施例中,规格化可以包括将图像原型规格化为预定义的宽度和高度。例如,宽度可以是128像素。其它值例如,32、64、256等可以用于一些实施例中的像素宽度。在一些实施例中,规格化可以发生在长度或者高度维度,并且宽度可以成比例地缩放。结合步骤320计算的边界可以用于获得缩小后图。

28、像原型中的比例。0028在步骤332中,图像原型可以存储在上述一个或多个操作之后的库中。0029在一些实施例中,字形的子集可以经历以上结合图3描述的操作。在那些实施例中,剩余的字形或者可以丢弃,或者可以经历图3的一个或多个步骤,但是分配给结合步骤332的临时存储。在一些实施例中,可以期望向图像原型中不同的字形提供不同的处理。例如,不同处理可以用于在存储器/存储容量和/或处理资源和/或电源容量例如,诸如在电池供电设备中受限制的实施例。在那些实施例中,各种准则可以用于确定存储哪些字形。例如,可以存储预期频繁使用的字形例如,元音或者标点,然而那些没有预期为频繁使用的字形可以或者丢弃,或者分配给临时存。

29、储。0030图4的方法可以结合图3的方法使用,以将接收的字形匹配到一个或多个图像原型。在步骤404中,可以接收要分析的字形。字形可以经由一个或多个计算实体例如,图1和2所示的一个或多个计算实体接收。字形可以作为扫描图像例如,复写或传真、说明书CN102375883ACN102375890A5/7页9电子邮件、文本消息,作为文件或者文档等接收。0031在步骤410中,接收的字形可以转换为一个或多个格式。例如,步骤410的转换可以对应于结合图3的步骤308执行的转换。因此,在与步骤308关联的转换承担生成位图的实施例中,步骤410可以包括生成步骤404中接收的字形的位图。0032在步骤416中,可。

30、以缩小接收的字形。例如,步骤416的缩小可以对应于结合图3的步骤314执行的缩小。因此,在与步骤314关联的缩小导致1位深度的位图的实施例中,步骤416可以包括将接收字形的位图缩小到1位深度。0033步骤422中,可以计算与接收的字形关联的边界。计算的边界可以用于确定接收字形的大小或者范围。计算的边界也可以用于帮助如结合步骤428描述的规格化处理。0034在步骤428中,可以关于接收的字形进行规格化处理。在一些实施例中,规格化可以包括将接收的字形规格化为预定义的宽度和/或成比例的高度。例如,预定义宽度可以是128像素。其它值例如,32、64、256等可以在一些实施例中用于像素宽度。在一些实施例。

31、中,规格化可以发生于长度或者高度维度,并且宽度可以成比例地缩放。在一个示例中,预定义宽度和高度可以匹配库中存储的图像原型的预定义高度和宽度。结合步骤422计算的边界可以用于获得缩小后的图像原型的比例。在一些实施例中,步骤428的规格化可以对应于结合图3的步骤326进行的规格化,以便帮助下面结合步骤434描述的比较。0035在步骤434中,结合图3的步骤332,比较发生在接收的字形接着结合步骤404428执行的处理、和库中存储的一个或多个图像原型之间。在一些实施例中,可以在步骤440中输出一个或多个图像原型。图5示出和下面描述的说明性算法可以用于执行图4的步骤434和440的比较与输出。0036。

32、步骤1对于选择的存储在库中的图像原型,设置第一变量此后称为ERROR_ACCUMULAROR为零。ERROR_ACCUMULAROR可以提供选择的图像原型和接收的字形间的误差或者距离分数。0037步骤2设置第二变量此后称为MIN_NUM_ROWS等于选择的图像原型行数和接收字形的行数中的较小者。0038步骤3对于达到MIN_NUM_ROWS的每一行,异或XOR接收的字形与选择的图像原型,并累计例如,加异或的输出是“1”或者“真”的位的计数到ERROR_ACCUMULAROR。结合该步骤执行的XOR函数,可以对应于在接收的字形和选择的图像原型之间的逐像素XOR操作,其中对接收的字形和选择的图像原。

33、型的每个像素的值“1”或者“真”对应于“开”或者“黑”的像素,并且对接收的字形和选择的图像原型的每个像素的值“0”或者“假”对应于“关”或者“白”的像素。0039步骤4对于超过结合步骤3比较的行的每行,在或者接收的字形或者选择的图像原型无论哪个有较大数量的行中,计数在行中置位的位的数量例如,使用灰度图像,图像中的位是黑色或者存在的位的数量,添加计数到ERROR_ACCUMULAROR。0040步骤5保存ERROR_ACCUMULAROR值作为选择的图像原型的分数。0041步骤6确定是否已经计分所有候选图像原型,对存储在库中的每个候选图像原型重复步骤15。候选的图像原型可以包括所有存储在库中的图。

34、像原型,或者其子集。0042步骤7排序结合步骤5存储的分数,因此获得对候选图像原型的分数的排序列表。说明书CN102375883ACN102375890A6/7页100043步骤8确定排序分数中最低的对应于最接近地匹配接收字形的图像原型。在一些实施例中,可以输出最接近匹配接收字形的图像原型。输出可以包括一个或多个适于在显示设备例如,计算机监视器上显示的显示屏、电子邮件、文本消息、文档、音频消息等。0044图6图示了以上结合图5描述的步骤15的可视表示。在图6中,图像原型示出为有三行和三列并且粗略地呈“X”型。接收的字形,可能已经经历与图4关联的处理,可以具有四行和三列。因此,行的最小数如图5的。

35、步骤2所确定的是三,对应于图像原型的三行。根据图5的步骤3,在图像原型和接收的字形之间的像素方面的XOR操作可以对三行的每行发生,并且该结果示出在图6的XOR结果部分的第一个三行中,其中XOR结果的行1列3中的阴影块反映“开”或者“黑”的图像原型中的对应像素,以及“关”或者“白”的接收的字形中的对应像素。因此,基于XOR操作,ERROR_ACCUMULAROR可以具有完成图5的步骤3之后的值。根据图5的步骤4,在接收的字形中像素是“开”或者“黑”的第四行的像素,可以求和或者加。这通过XOR结果的行4列2中像素的阴影反映在图6中,该结果跟踪在行4列2中接收字形中为“开”或者“黑”的对应像素。因此。

36、,会结合图5的步骤4以1递增ERROR_ACCUMULAROR,导致图5的步骤4完成后ERROR_ACCUMULAROR的值为2。这个为2的ERROR_ACCUMULAROR值可以对这个特定的图像原型,结合图5的步骤5保存。0045可以对任何额外的候选图像原型未在图6中示出,重复上面结合图6描述的处理结合图5的步骤6,以便确定对图6示出的接收字形,哪个候选图像原型具有最低分数结合图5的步骤7和8。0046图6中所示的表示是说明性的。在一些实施例中,可以使用不同的图像原型和/或字形。例如,图6中所示图像原型和字形的宽度对应于用于图示简化目的的三个像素。在一些实施例中,可以使用其它维数。0047在。

37、一些实施例中,上述方法和架构的变形是可能的。例如,在一些实施例中,可以进行图3和图4所示的方法的多种途径,以便获得“最适合”结果或者以便提高或改进精度。0048在一些实施例中,可以调整或修改与图3的步骤320关联的边界、和/或与图4的步骤422关联的边界的计算例如,递增、递减等。这样的调整可以解决图像原型和接收字形之一相对于另一个的转变或者偏斜。可以通过对一个或多个计算的边界加或减偏移值进行调整。在一些实施例中,可以通过使计算的边界乘以不是1的数来调整计算的边界其中小于1的数将趋于缩短计算的边界,并且大于1的数将趋于扩展计算的边界。0049在一些实施例中,可以修改或者变更与位深度缩小关联的技术。

38、例如,图3的步骤314和图4的步骤416。例如,当将位图缩小为图像时,代替使用50阈值技术其中如果一位是黑被当做“开”,并且如果是白被当做“关”,可以使用不同的阈值。例如,在一些实施例中可以使用75的阈值,以补偿在现实世界环境中可能遇见的打印/墨水颜色和/或纸张问题例如,机械问题。不同的阈值可以用于细调接收字形中的哪些位是“开”或者“关”。0050在一些实施例中,可以使用最近邻算法,选择地结合缩小步骤。例如,位值或者对给定像素的分配可以是接收字形中的对应位置、和对应位置的相邻位置两者的函数。以这种方式,可以有效地采用过滤算法,并且过滤算法可以用于提供在接收字形中的过渡点上的平均或者平滑效应。0。

39、051在一些实施例中,在应用图4所示的算法中可以转变例如,旋转接收的字形。说明书CN102375883ACN102375890A7/7页11这样的转变例如,旋转可以用于补偿在生成字形中的机械或者人工误差。例如,如果字形作为扫描处理的结果生成,可以对接收的字形执行旋转以补偿扫描字形时字形的无意旋转。0052在一些实施例中,结合图5的步骤8确定的最低分数将对应于被使用的图像原型。在一些实施例中,使用另一分数代替最低分数是有利的。例如,如果在一些实施例中最低分数和第二最低分数之间的差别小于阈值,视听提示可以呈现对应于最低和第二最低分数的图像原型,并且可以请求用户选择图像原型中的一个。0053在一些实。

40、施例中,可以在确定使用哪个图像原型中考虑许可期限。例如,结合图5步骤8的最低分数可以对应于具有繁重的、和难以负担的许可期限的图像原型,而第二最低分数可以对应于具更有利的许可期限的图像原型。在那些实施例中,如果两个图像原型之间的许可期限的差别大于阈值,可以使用对应于第二最低分数的图像原型。0054除了其它准则,上面描述的准则阈值、许可期限等的使用,可以在一些实施例中使用以打破分数之间的平局TIE。0055尽管不要求,但是本领域普通技术人员将认识到,这里描述的各个方面可以具体化为方法、装置、或者存储计算机可执行指令的一个或多个计算机可读介质。因此,那些方面可以采用如下的形式完全硬件实施例,完全软件。

41、实施例,完全固件实施例,或者以任意组合组合软件、硬件和固件的方面的实施例。此外,如这里描述的表示数据或事件的各种信号可以通过诸如金属线、光纤和/或无线传输介质例如,空气和/或空间的信号传导介质,以光、和/或电磁波传播的形式,在源和目的地之间传送。通常,一个或多个计算机可读介质可以包含一个或多个暂时和/或者非暂时计算机可读介质。0056如这里所描述的,各种方法和动作可以跨一个或多个计算机服务器和一个或多个网络操作。功能可以以任何方式分布,或者可以位于单个计算设备例如,服务器、客户端计算机等中。如这里所讨论的,技术可以用于将接收的字形匹配到一个或多个候选图像原型。0057如这里所描述的,方法的动作。

42、和处理可以联系到特定的机器或装置。例如,如这里所描述的,用户计算机、服务器等可以在本公开的各种实施例中使用,以将接收的字形匹配到一个或多个候选图像原型。更一般地,一个或多个计算机可以包括一个或多个处理器和存储指令的存储器,当执行指令时,执行这里描述的方法的动作和处理。而且,这里描述的方法的动作和处理可以执行多种功能,包括将物品例如,接收的字形变换为不同的状态或事物例如,具有与一个或多个图像原型关联的特性或属性的表现或显示的字形。0058本公开的各方面根据其图示的实施例已经进行了描述。对本领域普通技术人员,从阅读本公开,将出现在权利要求的范围和精神之内的许多的其它实施例、修改和变形。例如,本领域。

43、普通技术人员将认识到在图示的附图中图示的步骤可以以不同于列举的顺序执行,并且根据本公开的各方面,图示的一个或多个步骤可以是可选择的。说明书CN102375883ACN102375890A1/6页12图1说明书附图CN102375883ACN102375890A2/6页13图2说明书附图CN102375883ACN102375890A3/6页14图3说明书附图CN102375883ACN102375890A4/6页15图4说明书附图CN102375883ACN102375890A5/6页16图5说明书附图CN102375883ACN102375890A6/6页17图6说明书附图CN102375883A。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1