基于FPGA的图像镜像
图像镜像,一种较为常见的图像处理操作,分为水平镜像、垂直镜像、对角镜像。水平镜像即处理后的图像与原图像关于垂直线对称,垂直镜像为处理后的图像与
原图像关于水平线对称,对角镜像则关于对角线对称。
关于低分辨率的图像,直接使用BRAM缓存,然后按照对称的关系取出即可,而高分辨率的图像则需要要到DDR缓存。本文主要讲述1080P分辨率的图像镜像,选用
DDR3缓存,使用的仍然是XILINX K7开发板。
起初,我是将图像先缓存至DDR中,然后再按照对应的位置关系取出。后来发现实现对角镜像时逻辑极为复杂,便放弃该方案。后来根据对角镜像可以由水平镜像和
垂直镜像组合而来,将图像镜像分为两部分:水平镜像、垂直镜像,结构如图1所示。其中,水平镜像使用BRAM实现,垂直镜像使用DDR3实现。

图1 图像镜像结构
水平镜像,即图像行的位置调转,行首变成行末,行末变成行尾。在FPGA中可选用两个bram乒乓操作,也可选择一个真双口BRAM同时读写,实现
思路一致,即:先写入一行有效图像数据,然后开启读,根据是否水平镜像读取已经存入的一行数据,如果需要水平镜像则逆序读bram,否则顺序读。关键
代码如下所示:
if(neg_vid_data_valid_image)begin//一行有效数据写完
state_bram_ctrl<=BRAM_WR_RD;//读写同时进行
bram0_addra<=bram0_part2_addr;
line_length<=bram0_addra;
bram0_eab<=1'b1;
bram0_addrb<=bram_reverse_flag? (bram0_addra+'d1):'d0;//1-1920为有效数据段
bram_init_done<=1'b1;
end
垂直镜像,即原图像列的位置翻转,列首变成列尾,列尾变成列首。对于高分辨的图像只能选用DDR缓存,即在图像已经缓存至DDR一帧的基础上开启读操作,行内顺序,列内逆序读。
而对角镜像,则是水平镜像和垂直镜像的组合,所以需同时开启水平镜像以及垂直镜像使能,通过两个部分的处理以得到最终结果。最后实现的效果如下图所示:

图2 原图像

图3 垂直镜像

图4 对角镜像

图5 水平镜像
基于FPGA的图像镜像的更多相关文章
- 基于FPGA的图像开发平台 其他摄像头附件说明(OV5642 OV9655)
基于FPGA的图像开发平台 其他摄像头附件说明 FPGA_VIP_V101 编者 奇迹再现 个人博客 http://www.cnblogs.com/ccjt/ 联系邮箱 Shenyae86@163.c ...
- 基于 FPGA 的图像边缘检测
本文主要内容是实现图像的边缘检测功能 目录 mif文件的制作 调用 ip 核生成rom以及在 questasim 仿真注意问题 灰度处理 均值滤波:重点是3*3 像素阵列的生成 sobel边缘检测 图 ...
- 基于FPGA的图像去噪
目录 结构图 其中FPGA 控制模块为核心,通过它实现视频图像数据的获取.缓存.处理和控制各模块间通讯[1].由CCD 相机对目标成像,高速图像数据由camera link 实时传输[2],经信号转换 ...
- 基于FPGA的线阵CCD图像测量系统研究——笔记
本文是对基于FPGA的线阵CCD图像测量系统研究(作者:高尚)的阅读笔记 第一章绪论 1. 读读看 读了前面的摘要依然没有看懂作者要做什么.接着往下读....终于看到了一个字眼“基于机器视觉的图像测量 ...
- 基于FPGA的Uart接收图像数据至VGA显示
系统框图 前面我们设计了基于FPGA的静态图片显示,接下来我们来做做基于FPGA的动态图片显示,本实验内容为:由PC端上位机软件通过串口发送一幅图像数据至FPGA,FPGA内部将图像数据存储,最后扫描 ...
- 基于FPGA的线阵CCD实时图像采集系统
基于FPGA的线阵CCD实时图像采集系统 2015年微型机与应用第13期 作者:章金敏,张 菁,陈梦苇2016/2/8 20:52:00 关键词: 实时采集 电荷耦合器件 现场可编程逻辑器件 信号处理 ...
- 基于FPGA的RGB图像转灰度图像算法实现
一.前言 最近学习牟新刚编著<基于FPGA的数字图像处理原理及应用>的第六章直方图操作,由于需要将捕获的图像转换为灰度图像,因此在之前代码的基础上加入了RGB图像转灰度图像的算法实现. 2 ...
- 基于FPGA的OLED真彩色动态图像显示的实现
源:基于FPGA的OLED真彩色动态图像显示的实现 作为第3代显示器,有机电致发光器件(Organic Light Emitting Diode,OLED)由于其主动发光.响应快.高亮度.全视角.直流 ...
- 基于FPGA的均值滤波算法的实现
前面实现了基于FPGA的彩色图像转灰度处理,减小了图像的体积,但是其中还是存在许多噪声,会影响图像的边缘检测,所以这一篇就要消除这些噪声,基于灰度图像进行图像的滤波处理,为图像的边缘检测做好夯实基础. ...
随机推荐
- .Net Core Api发布时报502.5 [The Application process failed to Start]问题的解决原因
碰到这样的错误,在网上找了很久很久.我自己在部署的时候已经把Core 部署需要的环境包在服务器安装好了.还会报这个错,然后在网上找的安装了一个系统补丁包!安装之后还是不行.最后我把服务器重启了一 ...
- GraphX编程指南
GraphX编程指南 概述 入门 属性图 属性图示例 图算子 算子摘要列表 属性算子 结构化算子 Join算子 最近邻聚集 汇总消息(aggregateMessages) Map Reduce三元 ...
- IPv6 与 IPv4现状
IPv6 与 IPv4现状 一.概述 (1) IPv4可提供bai4,294,967,296个地址,IPv6将原来的32位地址空间增大du到128位,数目是zhi2的128次方.能够对地球上每平方米d ...
- GitHub标星125k!阿里技术官用3个月总结出的24万字Java面试笔记
最近收到一位粉丝的回馈! 这位粉丝已经成功入职阿里了小编很是羡慕啊! 今天就把这份30w字Java面试笔记给大家分享出来,说来也巧这份资料也是由一位阿里技术官整理出来的这算不算是"搬起石头砸 ...
- 会点自动化就要25k? 现在年轻人这么浮躁吗
面试中一问元素定位就对答如流.一问实际项目框架如何搭建就避重就轻.含糊其辞,这样的自动化实战能力也能拿25K?静待下文: 一.为什么现在自动化测试工资那么高呢? 结合现在的职场环境与企业用人需求,自动 ...
- MySQL 全文索引实现一个简单版搜索引擎
前言 只有Innodb和myisam存储引擎能用全文索引(innodb支持全文索引是从mysql5.6开始的) char.varchar.text类型字段能创建全文索引(fulltext index ...
- asp.net core配合vue实现后端验证码逻辑
概述 网上的前端验证码逻辑总感觉不安全,验证码建议还是使用后端配合验证. 如果产品确定可以上网的话,就可以使用腾讯,百度等第三方验证,对接方便.但是产品可能内网部署,就必须自己写了. 本文章就是基于这 ...
- Mybati-Plus的用法 记录
参考文件下载地址: https://files.cnblogs.com/files/bulter/MyBatis-Plus.zip --------------------------------- ...
- 从谭浩强的《C语言程序设计》到《电容应用分析精粹》
不记得具体从什么时候开始(反正很多年前的事了)的,不少人都陆续批评过谭浩强的<C语言程序设计>,各方面都有扒过.例如,与实践脱节,很多例子在不同编译器上运行是错误的,代码风格糟糕等等方面. ...
- MySql:CentOS7安装mysql后无法启动服务报错,(需要更新yum源)
首先:需要更新你的yum源,保证yum源最新. 1.安装: yum install -y mariadb-server 2.启动maria DB服务: systemctl start mariadb. ...