FPGA的HDMI字符显示,图像采集叠加时钟显示 话不多说先上测试效果图: 输入OV5640摄像头720P的图像,降采样后输出1080P的HDMI图像,在此基础上叠加字符: 首先介绍一下原理: 视频中叠加字符,实质就是在视频的某个区域中,将某些像素点替换颜色,比如:
在这个16X32的像素区域中,将“1”字型的像素点颜色替换为红色,其他像素点保持原来的图像像素,那么在视频中就会显示出“1”。 那么问题来了,想要做到字符叠加,必须解决三个问题: 1、字符哪里来?比如“1”的字型; 2、字符在图像中显示的位置如何确定?即显示位置算法是什么? 3、字符在图像中特定位置显示的逻辑,即怎么替换字符字型的像素点颜色? 带着这三个问题,我们一一解答。 1、字符哪里来? 使用字模提取软件,比如PCtoLCD,使用就不多说了,推荐去看正点原子的达芬奇Pro之FPGA开发指南。代码中设置了一个二维数组,如下:
数组在系统上电复位期间回写入字符。具体看我的代码吧,这里说不清楚。 2、字符在图像中显示的位置如何确定? 这就需要结合你的点阵字符的大小了,比如你是32X32的还是16X16的或者是48X48的,代码中会宏定义每个字符块的显示起始坐标,显示长和宽等,如下:
其中,固定字符的显示区域逻辑是这样的:
动态字符(也就是递增的时钟)的显示区域逻辑是这样的:
由于逻辑比较复杂,这里实在说不清楚,还是找我要代码,详细看代码吧。 3、字符在图像中特定位置显示的逻辑,即怎么替换字符字型的像素点颜色? 这里的逻辑性就更强了,直接看代码:
最后:整个源代码并未给出,可以私,我也可以给你适当的技术支持,教你怎么写。
FPGA的HDMI字符显示,图像采集叠加时钟显示
关注
打赏