点阵汉字的字模读取与显示

一:串口传输练习

1:实验目的

将两台笔记本电脑,借助 usb转rs232 模块和杜邦线,建立起串口连接。然后用串口助手等工具软件(带文件传输功能)将一台笔记本上的一个大文件(图片、视频和压缩包软件)传输到另外一台电脑,预算文件大小、波特率和传输时间三者之间的关系,并对比实际传输时间。

2:实验器材

两台电脑(这里与@狗都不写系列共同完成);
杜邦线若干;
TTL转USB串口两个;

3:连接注意

1.两条线的TXD与RXD反接;
2.两者连接的电压应该相同。

4:结果

在这里插入图片描述

5.验证

文件大小为13245;
波特率为115200bps
预计时间为:11.51s
实际时间为:12s
结论:传输时有时延

二:点阵汉字的字模读取与显示

1.基本知识

(1)机内码

机内码是汉字在计算机内部使用的代码,就好像是汉字代号,方便计算机识别储存。
国内使用最多的其实是国标码,两者转化关系:机内码是将国标码的每个字节都加上128,即将两个字节的最高位由0改1。

(2)区位码编码规则

GB2312就像一个仓库,共收录6763个汉字,其中一级汉字3755个,二级汉字3008个。就像仓库储存东西会分门别类放置。GB2312对所收汉字进行了“分区”处理,每区含有94个汉字/符号;
这样的分区放置被称为区位码;
储存规则:01-09区为特殊符号10-15区为用户自定义符号区(未编码)16-55区为一级汉字,按拼音排序56-87区为二级汉字,按部首/笔画排序88-94区为用户自定义汉字区(未编码);
2字节编码,高位为0xA1-0xF7,低位为0xA1-0xFE
汉字区域,高位为0xB0-0xF7,低位为0xA1-0xFE
特殊符号,高位为0xA1-0xA9,低位为0xA1-0xFE

国标码 = 区位码 + 2020H;
机内码 = 国标码 + 8080H;

(3)字形数据存储格式

正如在仓库储存东西,会有箱装、听装、盒装、袋装的形式。汉字在电脑中储存也是有一定格式的,下面我们会初步去了解它的格式。

Ⅰ.点阵字库储存

汉字在电脑中是属于图形。
所以每个字节的每个位都代表一个汉字的一个点,每个汉字都是由一个矩形的点阵组成,0代表没有,1代表有点,将0和1分别用不同颜色画出,就形成了一个汉字。
这样的存储称为点阵字库存储。
常用的点阵字库存储有1212, 1414, 16*16三种字库。

Ⅱ.16*16点阵字库

这里介绍一种基础字库:
对于1616的矩阵来说,它所需要的位数共是1616=256个位,每个字节为8位,因此,每个汉字都需要用256/8=32个字节来表示。

即每两个字节代表一行的16个点,共需要16行,显示汉字时,只需一次性读取32个字节,并将每两个字节为一行打印出来,即可形成一个汉字。
在这里插入图片描述

2.Ubuntu下调用opencv库编程显示图片和学号姓名

创建一个文件夹test里面放一张照片1.jpg、ASCio816.zf、HZKf2424.hz
在这里插入图片描述
自己创建一个logo.txt
在这里插入图片描述
代码:

#include<iostream>
#include<opencv/cv.h>
#include"opencv2/opencv.hpp"
#include<opencv/cxcore.h>
#include<opencv/highgui.h>
#include<math.h>
using namespace cv;
using namespace std;

void paint_chinese(Mat& image,int x_offset,int y_offset,unsigned long offset);
void paint_ascii(Mat& image,int x_offset,int y_offset,unsigned long offset);
void put_text_to_image(int x_offset,int y_offset,String image_path,char* logo_path);

int main(){
   
    String image_path="/home/test/1.jpg";
    char* logo_path=(char*)"/home/test/logo.txt";
    put_text_to_image(450,
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值