【注】该项目是我们团队参加2019届全国大学生FPGA大赛的作品,系统主要实现视频任意角度旋转。该项目最终晋级决赛,并获得紫光同创企业特别奖。该系列文章介绍我们团队的作品。关注公众号“数字积木”对话框回复 FPGA2019 ,即可获得该项目的工程源代码,详细的文档说明,MATLAB仿真代码。
第一部分 设计概述 (Design Introduction)
1.1 设计目的
随着各类图像旋转算法的层出不穷,图像旋转逐渐成为近年来各类赛事的热门赛 题。然而在基于 FPGA 的图像旋转设计方面,可行的方案较少。因此,我们本次采用了国产紫光同创的 PGL22G 这块开发板进行图像旋转方案的设计,制作成了一个完整的具有快速处理,实时显示的系统。本作品从图像旋转这一经典的问题出发,采用 CORDIC(Coordinate Rotation Digital Computer)算法,结合图传技术,实时显示技术,以 FPGA 作为核心处理器,通 过自制的上位机软件实现软件对硬件的精确控制,达到对摄像头采集的图像进行实时旋 转并且显示的目的,并且可以通过上位机对旋转后的图像进行显示模式,灰度阈值的设定。本设计的核心思路为:在图像旋转设计中,插入一个图像旋转模块。将从摄像头缓存的图像先读取出来,组合成一帧旋转的图像后再写入 ddr 中,再由显示驱动模块读取进行显示。
1.2 设计要求
PGL22G DDR CMOS Sensor HDMI TX
功能描述:系统主要实现视频任意角度旋转(360°,最小角度 1°)
- 1、CMOS Sensor 将图像以 DVP/MIPI 信号形式传到 FPGA;
- 2、FPGA 通过外部控制,实现任意角度(精度 1 度)旋转控制;外部控制可自己选择, 如 UART、12C、GPIO、按键等;
- 3、FPGA 内部接 DDR 控制器,实现图像旋转缓存;
- 4、图像旋转处理完成后,通过 HDMI 输出到显示器显示。
1.3 作品效果
我们团队的作品不仅实现了比赛预定的视频图像旋转的功能,同时我们团队还另外 完成了视频图像的平移,简单缩放,灰度显示,黑白显示等功能。
原图 (正常显示)
1,顺时针旋转 22 度
2,顺时针旋转 90 度
3,顺时针旋转 270 度
4,顺时针旋转 341 度
缩放模式
灰度模式
黑白模式
欢迎关注,更精彩的内容等着你!