做了几天,也算是给自己一个结果吧。
基本思路:视频->单帧图像->二值化->提取图像边沿->提取边沿坐标->换算成电压对应值
示波器设置为XY模式,600pts,由于图片的(0,0)是左上角,所以把Y轴反相打开。
由于我这里用的单片机内部DA,而且参考电压直接用的电源电压,所以有些不稳定,另外如果将边沿坐标提取为欧拉回路则效果会更好,但是两线间的阴影会消失。
直接观看效果比视频要好很多,模拟示波器效果比数字示波器好很多。
源码下载(MK60D10 MDK5.16)
文件格式:
0xffff为每帧帧头
紧接着两个字节的为本帧数据点数比如下面2b00则本帧数据点数为002b->43,要注意,由于使用的是12位AD,每个X坐标占用16位,就是2字节,则XY坐标一共占用43*2*2个字节
之后为本帧数据,首先为X坐标数据,低8字节在前,每个X坐标2字节,然后为对应的Y坐标,X坐标数量必定=Y坐标数量
下一个0xffff是下一帧的帧头
例:
ffff 2b00 f00f f00f f00f f00f f00f e80f e80f e80f e80f e00f e00f e00f e00f d80f d80f d80f d80f d00f d00f d00f d00f c80f c80f c80f c00f c00f c00f c00f b80f b80f b80f b00f b00f b00f b00f b80f c00f c80f d00f d80f e00f e80f f00f d506 e006 ea06 f506 0007 0a07 1507 2007 2a07 3507 4007 4a07 5507 6007 6a07
7507 8007 8a07 9507 a007 aa07 b507 c007 ca07 d507 e007 ea07 f507 0008 0a08 1508 2008 2a08 3508 4008 4008 4008 4a08 4a08 4a08 4a08 5508 5508 ffff …………
帧头 长度 X数据 Y数据
发表回复