上次完成SparkRoad显示热成像数据到显示器上安路SparkRoad-V热成像数据采集与显示 ,因为显示器最小分辨率只能设计成640*480,热成像的分辨率是324*256不做插值只能在显示器上显示一小部分效果不是很好。这次把分辨率剪裁成320*240,然后4组图像拼接成一个640*480在显示器上显示,每组图像使用不同的调色板。
代码还是使用16_ov2640_sdram例程修改,因为没有做帖缓冲,运动的图像会有前后2张图像部分拼接的现象。这是我第一次做图像显示,没什么经验,4屏拼接是使用Sdram_Control_4Port实现,因为不知道怎么才能使用绝对地址读取SDRAM数据,我把FIFO设置成320*480,实现左侧两幅图像上下显示。然后再把数据复制一份,显示在右侧。显示器上半部分显示第n幅图像,下半部分会显示n+1幅图像,帖率会降低,最后相当于15fps。这么做不是很合理,不过我还没想出更好的解决办法,暂时看起来效果还可以。
因为这个计划是连接显示器在桌面上使用的,平时拍拍电路板对帧率要求不高,这种方式可以接受。剩下的工作我想调调SD卡,把热成像数据通过视频的方式录下来。不过我查了很多资料,都没找到合适的例程,有一部分是介绍使用SPI方式的,这种方式没法满足320*240*30fps的数据存储。后来找到一个Wishbone SD Card Controller IP,它是使用4线接口,不过这个Wishbone接口一直没太弄明白。
拼屏效果演示:
|