猫虎的 发表于 2026-1-18 17:29:55

请教一下字模出来的GB2312数组怎么和区位码对应上

如题,我用咱么软件生成的16*16大小的GB2312字库,怎么和GB2312的区位码对应上,

比如我生成“啊”这个字在数组的1410位,然而单片机里我试着串口发送“啊”,得到的数据是B0 A1




又看到GB2312的“啊”的区位码是1601,


我想知道这个串口接收到的B0 A1和咱们字库生成的1410还有GB2312描述的1601,他们之间的关系
请懂的兄弟不吝赐教,这两天想用STC8H8K64U控制滑台做一个写毛笔字的机器

ercircle 发表于 2026-1-18 18:11:56


选的纯数据模式没有索引要自己维护索引,选下面这个自动生成

DebugLab 发表于 2026-1-18 18:54:26

试一下最简单的办法,直接减掉OFFSET,看看串口收到汉字直接减掉0xAB1F能不能找到这个字的像素数据

验证最后一个汉字,发现上述方法验证不通过,改为全部汉字字库,验证还是不通过,索引不是连续的,第一个字到最后一个字串口数据差了将近两万,而汉字只有六千多个

使用AI工具分析该问题



根据AI工具的说明验证


验证通过
算法如下
Offset=(HighByte-0xA1)*94+(LowByte-0xA1);

QQ624353765 发表于 2026-1-19 07:48:38

用这款软件取模,里面有详细编程教程 https://b23.tv/q3T277m

猫虎的 发表于 2026-1-19 08:16:30

ercircle 发表于 2026-1-18 18:11
选的纯数据模式没有索引要自己维护索引,选下面这个自动生成

这样的话,总共几千个字,占内存不说,检索起来也浪费时间

猫虎的 发表于 2026-1-19 08:26:48

DebugLab 发表于 2026-1-18 18:54
试一下最简单的办法,直接减掉OFFSET,看看串口收到汉字直接减掉0xAB1F能不能找到这个字的像素数据

验证最 ...
厉害呀大佬,赞一个!
就是Offset=(HighByte-0xA1)*94+(LowByte-0xA1);

猫虎的 发表于 2026-1-19 08:50:39

现在汉字的像素得到了,新的问题来了,怎么转化为毛笔的笔画呢,
总不能让毛笔一行一行的扫描画点,那也显得太傻了,
这时候是不是得用AI算法,处理图像,生成笔画,这又是个难题,64K的内存能放下这样的算法不{:4_167:}

猫虎的 发表于 2026-1-19 09:01:38

以前参加智能车竞赛时,我参加的是光电组,128点的线阵CCD,实际程序写的有点类似类似避障,先对像素点暗值进行二极化,得到黑和白
通过检测左边和右边线阵点的黑点的数量来判断车的姿态,通过线阵点的变化率判断前路弯道的弯曲率,并没有用到图像处理,
当时还有个摄像头组,他们是程序比较庞大,是不是就用到了图像处理,把整幅图的像素点转化为赛车的行驶路径,
小S弯直接直行过去,大S弯也能切边行驶,不知道他们的程序能否借鉴,来实现汉字的像素点转化成写字机的笔画

DebugLab 发表于 2026-1-19 09:58:15

猫虎的 发表于 2026-1-19 09:01
以前参加智能车竞赛时,我参加的是光电组,128点的线阵CCD,实际程序写的有点类似类似避障,先对像素点暗值 ...
笔画必须是G代码,像素数据用不了
G代码说明(以3D打印机用为例):
https://marlinfw.org/meta/gcode/

猫虎的 发表于 2026-1-19 10:12:49

DebugLab 发表于 2026-1-19 09:58
笔画必须是G代码,像素数据用不了
G代码说明(以3D打印机用为例):
https://marlinfw.org/meta/gcode/

想用G代码,还必须得有个上位机来产生G代码
页: [1] 2
查看完整版本: 请教一下字模出来的GB2312数组怎么和区位码对应上