FPGA图像算法.图像翻转实现思路

科技   2024-08-20 22:43   湖南  



图像课程,开发板-->淘宝店铺:胡狼FPGA   

咨询微信:MyWork666888      QQ交流群:543928922


图像翻转在像处理中是一个非常常见的操作,如手机相机的镜像功能,这个就是翻转的一种,这种翻转是已图像竖直中心线为对称轴,将图像左右像素点对调完成的,图像处理中称之为mirror;另一种是上下翻转,此种情况下是以水平中心线对称轴图像上下像素行对调完成的,图像处理里称之为flip。
说完了概念,我们来说说在FPGA里来如何实现mirror和flip,对于mirror,相对来说会比较简单,我们可以以行为单位进行处理,这里使用一个bram,由于需要对调左右像素点,而要实现像素对调,我们可以通过控制像素点写bram地址来实现,这里以一个clk处理一个pixel,分辨率1080p为例,只需要将像素按地址反向存储到bram就行,比如将第一个像素点存到bram的1919地址中,第二个存储到1918,以此类推,1920个点存储到地址0;为了处理的连续性,还需要进行乒乓操作,第二行以同样的思路存储到bram,只是存储地址从1920开始到3839结束。第一行存储结束后按0-1919的顺序读取数据,第二行结束按1920-3839顺序读取;第三行第四行按同样逻辑存储到0-1919和1920-3839地址中,循环反复,直到完成一帧数据的处理,这样就实现了图像的mirror操作。如果是一个clk多个pixel则需要注意,在写的bram的时候不仅需要将像素按顺序调换,还需要将一个周期内的多个像素点调换顺序。
mirror的实现需要借助bram和乒乓操作来实现,而flip的实现则更加简单一些,当然,前提是需要有DDR,因为flip是上下像素行的对调,无法用bram来存储一帧数据,这个对器件的bram资源要求太高了,而在有DDR的情况下,实现flip思路就很简单了,只需要控制数据行写DDR的地址就行了,比如第1行数据写到第1080行的地址空间里,比如第2数据写到第1079行的地址空间里,以此类推,即可完成图像的flip操作。
到此,mirror和flip的实现思路就都说完了,这里还需要说的就是flip实现是地址操作问题,推荐使用datamover进行操作,可以随意操作DDR地址,这个在狼哥的课程里也都有讲解,有兴趣的可以加文章前面的微信号咨询,图像翻转的逻辑狼哥也将会更新到现有的图像课程中,方便大家学习。

*******往期精彩文章列表********

FPGA图像算法.横条纹消除

FPGA图像算法.竖条纹消除术

2024功利性学习目录合集

Zynq系统化入门进阶详细教程

基于Zynq的图像处理入门课程

FPGA图像Canny四图拼接显示项目

FPGA之Mpsoc的VCU压缩解压demo

FPGA图像无极缩放.Demo2
FPGA图像算法.无极缩放
FPGA图像算法.导向滤波
狼板001PLUS上线,首发优惠进行中
点击上面链接查看详情



胡狼FPGA
专注FPGA开发,图像接口和图像算法开发,技术之余扯扯家常,让FPGA服务生活,让生活更美好
 最新文章