汉字字模提取技术
汉字字模提取技术

随着嵌 入式技术 的发展 , 各类智能 电子装置 日益增多 , 在这
pi t n o t f i e o oio vr t o n l p n il,o ot u eet ci e o s n l - l a o i e o t mps i o a aiy fo t e r cpe t f t fh r t nm t d dr a c i p n ov w n h c t n f e f f i i n o ot x a o h a et e c n l e. dt h o g s e o i
每个汉字 的字模生 成后 , 照区位码的顺序存储构成 点阵 阵 占 3 个 字 节 。 按 2 字库 文件 。使 用时需要打开字库文件 , 通过一定方法计算 出某 个汉 字字模 的存 储位置 ,然后从 该位置读 出若 干字节 的点 阵 数据 。
1计 算 区位 码 、 设 汉 字机 内码 的两 个 字 节 为 H L , H L 区码 q , 码 为 w , h位 h则
1 阵 字模 , 个 点 阵 由 2 6个 点 组 成 , 行 切 分 每 行 1 6点 每 5 按 6位 占
个 字 节 为 ( 6进 制 )0 07 4 FF 08 0A 。 1 :0 88 4 E5 05 O 8
2 计算汉字点阵数据存储位置偏移量 、
偏 移 量 是 指 字模 首 字 节距 离 文 件 头 的相 对 位 置 ,其 计 算原
一
个 n Xn的点阵字符 ,其生成方法就是 在一个具有 nXn 个小
汉字字模存储和提取的方法

汉字字模存储和提取的方法
汉字字模的存储和提取是汉字信息处理系统中的重要环节,常用的方法有以下几种:
1. 存储在程序存储器中:这是在程序不大或单片机无外部扩展数据存储区功能的情况下使用的方法。
2. 通过外扩的EEPROM存储汉字字模数据:采用哈佛结构的单片机,如8051单片机及其派生产品,程序存储器(ROM)和数据存储器(RAM)可分别寻址。
将提取的汉字字模数据存放在EPROM或EEPROM内,并设定该芯片的片选地址,只要知道某个汉字字模数据在该芯片的存储位置,通过程序计算出偏移地址,即可实现显示功能。
3. 使用外扩的EEPROM存储整个汉字库:某些高端单片机,如Motorola 的M68300系列32位单片机,寻址范围可达8M。
以上信息仅供参考,如有需要,建议查阅计算机科学和电子工程相关书籍或咨询专业人士。
基于Labview的汉字点阵字模提取

基于Labview的汉字点阵字模提取目录0前言 (2)1总体设计方案 (2)2软件设计2.1输入汉字个数符合要求跳出对话框设计 (4)2.2获取首字节位置设计 (4)2.3从HZK16中提取汉字字模的设计 (4)2.4前面板LE显示汉字的设计 (4)2.5前面板十六进制汉字字模 (5)3程序调试 (5)4参考文献 (7)5课设体会 (8)基于labview的汉字点阵字模提取苑庆爽沈阳航空航天大学自动化学院摘要:介绍了汉字字符的存储结构、编码方案和显示方式;并利用LabVIEW软件灵活、简便地从计算机的汉字库中提取汉字字模并转换为供单片机直接调用的十六进制字模数据.关键词:LabVIEW; 点阵字模; 文件I/ O0.前言LabVIEW(Laboratory Virtual Inst rument s En2gineering Workbench)是美国国家仪器公司创新软件产品,也是目前应用最广、发展最快、功能最强的图形化软件开发集成环境.使用这种语言编程时 ,基本不需要编写程序代码 ,而是“绘制”程序流程图.它提供了函数库和高级分析子VI ,用户只需调出对应的操作、功能、数据处理的节点,配置相关参数 ,连接好程序框图 ,就可完成相应的程序在虚拟仪器系统中,信号的获取与采集由以计算机为核心的硬件平台来完成,在这一平台上,调用不同功能的软件可构成不同功能的虚拟仪器,软件是根据不同的信号分析与处理技术编制的。
时至今日,信号的分析与处理方法很多,在设计虚拟仪器时,需要根据仪器的功能要求和所处理信号的实际情况选择合适的分析和处理方法。
在显示技术日益发展的今天,汉字点阵文件显示技术已经成熟,但是在单片机控制的标语指示、车站机场车次航线显示、银行汇率显示等系统中,使用汉字字库芯片并不经济.因此,可以利用计算机的汉字库文件,直接调用汉字库文件,然后提取字符字模,节约了硬件开支. LabVIEW 中功能强大的文件 I/ O 函数可以方便地提取二进制文件中指定起始位置、指定字节数的数据,并且其丰富的前面板资源可以形象逼真的显示提取的字符 ,特别适合汉字点阵字模提取程序的编写。
字模提取详细解读

/*打开字库文件 asc16*/ if((ASC=fopen("asc16","rb"))==NULL){ printf("Can't open asc,Please add it?"); getch(); exit(0); } offset = *(c)*16+1; fseek(ASC,offset,SEEK_SET); fread(buff, 16, 1, ASC); /*通过 ascii 码算出偏移量*/ /*将文件指针移动到偏移量的位置*/ /*从偏移量的位置读取32个字节*/
英文字模的信息,我们就先得到这个字符的 ASCII 码。 以得到字符"A"的字模信息为例: 假如我们要得到的字母 A 的字模信息,我们得到"A"的 ASCII 值为 65,我们就 可以算出字符"A"的字模信息在 ASC16文件中的偏移量=(65*16)+1=1041字 节(注意这个数字,我们将在后面用程序进行验证),我们只需要从 ASC16文件 中1041字节开始读取16个字节就可以得到 "A"的字模信息了。
#include "stdio.h"
/********************************** * 得到英文字符的字模信息,存入数组 * 参数:
* *
*c:要得到字模信息的字符指针 buffer[]:存储得到字模信息的数组
* 无返回值 ***********************************/ void getAscCode(char *c,char buff[]) { unsigned long offset; FILE *ASC;
基于VB实现的的汉字点阵字模的提取方法

起始位置=7X[内 4 内 2 ( 码高字节一11 X 十( 码低字节一11] 6) 9 6) () 4 在不同的2 点阵字库中, 4 各种非汉字符号的存放方式不一样. 有的省去了 1 个区, 前 5 并将这 1个 5
F n(0 o t7 )
F n (1 o t7 )
F n (0 F n ( 1 o t3 ) o t3 )
F n( ) o t5
图1 点阵字库中字模的存储方式 1 6
圈2 点阵字库中字模的存储方式 2 4
由汉字或符号的区位码可以唯一确定其在点阵字库中的起始位置, 计算方法如下:
〔 收稿日 20-1-2; 期〕03 2 3[ 修改稿收到日 20-0-2 期〕04 2 0
' 得到机 内码
然后, 将得到的机内码转化为十六进制, 再分别取得其高位和低位字节
s Q Ma t u =Mi( e ( t e ) 2 r d x i N i ,, H n Ma 1 )
iQ M =" H &sQ M n ua & Ma We d He ( t e n Ma , ) 3 ,
Gti a i(B m pd CutP i)将来自 Bt hi a, on, t : e tP s t Bm w I s B 位图的 二进制位复制到一个缓冲区 3 用〔0 ; 在A I P浏览器加人以 上两个A I 数及BT A 结构后, P函 IM P 就可在程序中 引用这两个函 数了.
() 5
3 其体应用实例
下面以1 1 X 点阵字库为例 给出利用 VsaB s 语言提取字模的实现方法. 6 6 i l i u ac 首先, 求得汉字的机内码:
itah d= A cs E cWod r nE cWo s(t ah r) r
Windows矢量字体字模的提取

[[ 位 图 的 宽 度 不 是 j 的 整 数 倍 "
[[ 所 以 只 需 要 h7"[j " ‘ 个 字 节 来 存 储 字 模 [[ 将 字 模 数 组 全 置 d
" 提取字模
提 取 字 模 要 用 到 的 是 Q"%F7I"# 函 数 " 定 义 为 9&h&e !
TS)QSX, 结 构 的 指 针 ! 具 体 定 义 为 VQSX, :-/?G/ " Q%#G+#("-/gGH:SXO, TS)QSX, ! Y1Y>L # 代 码 如 下 %
VQSX, ;X/&Q%#GE:-/?G/Q%#G+#("-/gGHaY%[>%#GL )
至 此 字 体 创 建 就 完 成 了 # 直 接 调 用 O/Y/GSij/gG 函 数 就
武汉大学电子信息学院 !"#$$%&’
摘 要 ! 利 用 !"#$%&’ 提 供 的 丰 富 的 字 体 库 ! 调 用 !"#() *+, 函 数 ! 将 矢 量 汉 字 文 本 转 化 为 位
图 ! 以提取汉字字模 ! 用于电子系统的信息显示 " 关键词 ! !"#-%&’ 矢量字体 !"#() *+, 函数 汉字字模 位图
在 yEVF;C*W 消 息 中 " 调 用 Q"%k7G- ) )K2E j 的 整 数 倍 " 所 以 [[ 只 需 要 h7"[j 个 字 节 来 存 储 字 模
浅谈汉字特征字母及其提取规则

浅谈汉字特征字母及其提取规那么所谓特征字母,是指那些最能表征汉字轮廓特点的汉字字母。
人们看到一个汉字时,一般首先注意到的是它的轮廓特征,然后才是它的局部细节。
这就是汉字的认知规律。
从图形识别的角度来看,汉字认知更加注重轮廓性和整体性,字形的细微变化并不会给汉字认知造成多大影响。
因此,特征字母一定是构成汉字轮廓的汉字字母。
研究发现:人们通常是从汉字左上角开始,沿着顺时针方向扫描汉字轮廓的〔见以下列图〕。
因此,最能表征汉字轮廓特点的特征字母,首先是构成汉字左上角的汉字字母,其次是构成汉字右上角的汉字字母,再次是构成汉字右下角的汉字字母,最后是构成汉字左下角的汉字字母。
对于左右构造的汉字来说:左上角特征字母通常就是字首首字母〔第一个字母〕;右上角特征字母通常就是字身首字母;右下角特征字母通常就是字身末字母〔最后一个字母〕;左下角特征字母通常就是字首末字母〔见以下列图〕。
因此,左右构造汉字的特征字母依次是字首首字母、字身首字母、字身末字母和字首末字母。
对于上下构造的汉字来说:左上角特征字母通常就是字首首字母;右下角特征字母通常就是字身末字母;右上角特征字母有时是字首首字母〔如“京〞字〕,有时是字首末字母〔如“简〞字〕,有时是中间字母〔如“雪〞字〕,难以确定;左下角特征字母有时是字身首字母〔如“苡〞字〕,有时是字身末字母〔如“全〞字〕,有时是中间字母〔如“罢〞字〕,同样难以确定。
对于多数上下构造的汉字来说,人们通过一次扫描还无法辨识出汉字,还要进展第二次扫描,即扫描字身左上角和右上角,扫描的角度较第一次要小些。
字身左上角特征字母通常就是字首首字母,而字身右上角特征字母的位置那么难以确定〔见以下列图〕。
因此,上下构造汉字的特征字母依次是字首首字母,字身末字母和字身首字母。
正因为上下构造汉字的辨识需要进展两次扫描,所以,人们辨识上下构造汉字所花费的时间要比辨识左右构造汉字要多些;正因为上下构造汉字的特征字母为3个,比左右构造汉字的特征字母数量少1个,所以,人们对上下构造汉字辨识的错误率比上下构造汉字要高些。
原理——汉字字模提取技术

随着嵌入式技术的发展, 各类智能电子装置日益增多, 在这 些电子装置中经常需要显示汉字, 如各类由 LED 点阵组成的电子 广告牌与液晶显示屏。LED 点阵显示屏与液晶显示屏都是 以 “点 位 点 亮 ”的 方 式 显 示 , 因 此 在 显 示 汉 字 时 必 须 通 过 某 些 技 术 手 段 获得反映汉字字型点阵数据的汉字字模, 在工程应用中都是借助 个 人 计 算 机 上 的 各 种 字 库 文 件 获 得 汉 字 字 模 。目 前 广 泛 应 用 的 字 库有三类: 点阵字库、矢量字库与 TrueType 字库, 本文将分析各类 字库的组成结构与字模提取技术。
图1 (1)计 算 区 位 码 设汉字机内码的两个字节为 HHLL, 区码 qh, 位码为 wh, 则 有: qh=HH- 0xa0 wh=LL- 0xa0 (2)计 算 汉 字 点 阵 数 据 存 储 位 置 偏 移 量 偏移量是指字模首字节距离文件头的相对位置, 其计算原理 是求出被检索汉字之前的汉字个数再乘每个汉字所占的字节数。 1 个 n×n 点阵字符所占字节数等于 n×n÷8, 如 16×16 点阵占 32 个
1计算区位码设汉字机内码的两个字节为hhll区码qh位码为wh则qhhh0xa0whll0xa02计算汉字点阵数据存储位置偏移量偏移量是指字模首字节距离文件头的相对位置其计算原理是求出被检索汉字之前的汉字个数再乘每个汉字所占的字节数
本栏目责任编辑: 谢媛媛
开发研究与设计技术
汉字字模提取技术
张呈祥 ( 北京信息职业技术学院 自动化工程系, 北京 100016)
参考文献: [1]吴海辉.TrueType 字体技术的研究分析与应用.电脑知识与 技 术 ,2007.1. [2]徐雨明,蒋盛益.UCDOS 曲线轮廓字库的分析.衡阳师范学 院 学 报 ,2000.6. [3]Microsoft Corp.Font and Text Functions.Platform SDK Doc- umentation,MSDN Library- October,2001.