论坛元老
 
- 积分
- 10653
- 金钱
- 10653
- 注册时间
- 2017-4-14
- 在线时间
- 2780 小时
|
发表于 2020-12-22 18:40:41
|
显示全部楼层
本帖最后由 nashui_sx 于 2020-12-22 18:43 编辑
你发送上传图像指令 会收到40032个数据 包含帧头 校验 数据,处理就好了,下面是matlab的代码 串口data.txt是把收到的全部数据放到txt里面了
- clc
- clear all
- tic
- %40032个数据 包含帧头 校验 数据
- data_all=textread('串口data.txt','%s');
- %转数值 串口处理不需要转 直接就是数值
- data_all=hex2dec(data_all);
- %数据默认是一帧128长度 288帧
- data_new=reshape(data_all,139,288)';%变形成288*139
- data=data_new(:,10:end-2); %舍弃前面的帧头 校验
- %一帧数据例子
- % 02下面还有数据
- % 00 82=130=128+2校验
- % E0开始为数据....7A 2D校验
- %EF 01 FF FF FF FF 02 00 82 E0 FF FF 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FE FE EF FF EF FF FF FE EE FE EE EE EE FF EE EE EE EE EE EE EE EE EE EE EE DD EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE FE EE EE EE FE EF FF EF EE EF FF FE FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 7A 2D
- %图像缓冲区 ImageBuffer 用于存放图像数据和模块内部图像处理使用。上传/下载图象时,图像格式为256╳288像素。
- %通过 UART口上传或下载图像时为了加快速度,只用到像素字节的高四位,即采用16级
- %灰度,每字节表示两个像素(高四位为一个像素,低四位为同一行下一相邻列的一个像素,
- %即将两个像素合成一个字节传送)。由于图象为 16个灰度等级,上传到PC进行显示时(对
- %应 BMP格式),应将灰度等级进行扩展(扩展为256级灰度,即 8bit位图格式)
- bmp=[];
- for i=1:1:288
- for j=1:1:128
- bmp(i,2*j-1) =fix(data(i,j)/16)*16;
- bmp(i,2*j ) =(data(i,j)-fix(data(i,j)/16)*16)*16;
- end
- end
- %转bmp的数据格式uint8
- bmp=uint8(bmp) ;
- %保存图片
- imwrite(bmp,'AAA.bmp','bmp')
- toc
- %%[X, map] = imread('Finger.bmp')
复制代码
|
|