1.功能要求:

输入图像大小为 256256。在clk时钟下进行 55均值滤波之后的结果。

难点分析,主要是时序分析和边界对齐等问题。

2.模块划分:

模块一:行数据的统计。图像数据中的行数据流在时钟下输出,每五个像素点计算一个累计和。

模块二:列数据的统计。对于模块一的输出数据流,在该模块中通过shift_ram ip核进行输出,输出的是5行数据流。

模块三:对于结果进行均值处理。主要实现的功能是累加和除以模板像素点。

模块一的设计:

该模块重点就是统计每一行中对应模板参数个数的像素和。最为常见的一种方法就是将数据进行连续的打拍,然后求和,但是这种方式消耗的加法器和寄存器较多,时钟开销为三个clk。

本文采用的是利用另外一种求和方法,对于连续的数据流而言,五个数求和的运算在操作是仅仅只是首和尾的两个数进行改变,中间的3个数仍然参与运算。所以可以得到如下的算法:

该算法的硬件结构为:

我在实现过程中,将最开始的四个数都进行直接求和操作。

 //功能实现3、数据求和always@(posedge clk )beginif(din_vaild==1'b1 && din_vaild_r[KSZ]==1'b0)sum<=sum+data_in;else if(din_vaild==1'b1 && din_vaild_r[KSZ]==1'b1)sum<=sum+diff;elsesum<={16{1'b0}};end

模块二设计:

模块二设计的过程中,我采用的是移位寄存器的方式实现。将每一个行的求和结果依次缓存进移位寄存器中,这里需要申请4个移位寄存器,寄存器的长度为每行数据的输出长度。赛灵思提供了相应的ip核,具体如下:

在设计中,主要是长度和选择,其次,就是需要将4个寄存器都串联起来,在程序中的实现方法就是首尾相连。具体如下:

//功能实现,将4个shift_ram 级联起来shift_ram uut1(.clk (  clk     ), .ce  (  ce1     ), .d   (  sum_1d  ), .q   (  row2    ));   shift_ram uut2(.clk   (  clk     ), .d     (   row2   ),.ce    (   ce1    ),.q     (   row3   ));shift_ram uut3(.clk   (   clk    ), .d     (   row3   ),.ce    (   ce1    ),.q     (   row4   ));shift_ram uut4(.clk   (  clk     ), .d     (  row4    ),.ce    (  ce1     ),.q     (  row5   ));

模块设计三:

该模块的设计没有太大难度,重点在于对于除法运算的理解,在fpga中进行除法运算,一种方法是使用ip核,但是这种方法比较麻烦,输出结果中既包含了余数,也包含了商,并且输出结果较输入数据有一段时间的延时,具体可以参看相关资料。我在设计除法模块时主要采用的是数据移位的办法。具体如下:

计算过程中需要对数据进行处理:

在这个模块的实现过程中,重点实现除法,放大之后再缩小,使用左右移位进行除法运算,移位操作不需要延时,先算分子,再算分母。

具体代码如下:

//功能实现1、右移10位always@(posedge clk or negedge reset_n)beginif(!reset_n)beginsum_1<=16'd0;sum_2<=16'd0;sum_3<=8'd0;sum_4<=8'd0;sum_5<=8'd0;sum_6<=8'd0;sum_7<=8'd0;sum_8<=8'd0;endelse if(dout_vaild2)begin              sum_1<=sum<<5;sum_2<=sum<<3;sum_3<=sum>>1;sum_4<=sum>>2;sum_5<=sum>>3;sum_6<=sum>>4;sum_7<=sum>>6;sum_8<=sum>>7;endend

以上就是实现均值滤波的整个思路(非喜勿喷)。

3.思考与总结:

1.在实现过程中,主要是对于算法的理解,对于实际要求并没有太多的实现。比如图像大小,在实际应用中应该较大(1024*1024),我看移位寄存器的最大缓存长度为1088,感觉1024的图像实现也可以使用这种思路。

2.在实现过程中,对于数据的对齐操作比较晕,就只会数据打拍。并且以上的方法在实现过程中,结果并不包含边缘部分,即上下左右2行的数据。对于这点数据的处理不知道怎么处理,网上有说边缘不处理,直接输出,另外还有就是利用图像的镜像处理,扩充边界,突然想到卷积神经网络中的padding,哈哈。

3.没有实现板级验证,没有结合vga驱动显示看看具体效果。(以后在弄吧)

基于fpga的均值滤波相关推荐

  1. 基于FPGA的引导滤波并行加速实现

    前面一篇文章中,已经详细的分析了引导滤波的理论,公式的推导,以及和双边滤波的对比分析,即在边缘的处理上双边滤波会引起人为的黑/白边.我们已经知道何博士引导滤波的优秀之处,那么本篇文章,我带你推演,如何 ...

  2. 【图像去噪】基于matlab高斯+均值+中值+双边滤波图像去噪【含Matlab源码 1872期】

    ⛄一.高斯+均值+中值+双边滤波图像去噪简介 1 数字图像去噪技术简述 1.1 研究背景及目的 图像是人类认识世界的第一视角,我们可以通过图像获得比较真实的信息和直观的结果.但实际上,在产生和传输过程 ...

  3. 【图像去噪】基于非局部均值(NLM)滤波图像去噪含Matlab源码

    1 简介 图像在获取和传输过程中,不可避免地受到外部和内部的干扰,常常因为各种因素的影响而被加入很多噪声,这十分严重的影响了人们对传输后图像信息的读取.因此通过一定方法将被噪声污染的图像进行去噪处理一 ...

  4. FPGA图像处理_中值滤波、均值滤波、极值滤波

    FPGA实现图像滤波(中值滤波.均值滤波.极值滤波) 前言 一.滤波原理 二.FPGA上Verilog实现步骤 1.图像周围填0 2.数据延迟 3.数据处理 总结 前言 首先介绍滤波原理,再附上ver ...

  5. 【图像去噪】基于matlab GUI均值+中值滤波图像去噪(含PNSR)【含Matlab源码 372期】

    ⛄一.图像去噪及滤波简介 1 图像去噪 1.1 图像噪声定义 噪声是干扰图像视觉效果的重要因素,图像去噪是指减少图像中噪声的过程.噪声分类有三种:加性噪声,乘性噪声和量化噪声.我们用f(x,y)表示图 ...

  6. 【论文阅读】改进的基于均值滤波的单幅图像去雾算法研究

    改进的基于均值滤波的单幅图像去雾算法研究 吴延海,张婧,陈康 西安科技大学 学报, 2016 本文是在<基于单幅图像的快速去雾>基础上进行改进.主要改进有以下几点: 对<基于单幅图像 ...

  7. 基于MATLAB的图像平滑滤波降噪(去噪)系统(通信毕业设计)(中值滤波,维纳滤波,小波降噪,均值滤波,椒盐噪声)

    基于MATLAB GUI的平滑滤波降噪系统设计 此系统可以作为毕业设计,可以尝试在此基础上稍微可以加一些其他方法. 此系统设计了GUI界面,首先点击打开图像来导入图像,再加入不同的噪声,用多种方法来降 ...

  8. 【图像去噪】基于matlab多种自适应均值滤波图像去噪【含Matlab 1843期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[图像去噪]基于matlab多种自适应均值滤波图像去噪[含Matlab 1843期] (https://download.csdn.net ...

  9. 基于FPGA的音频信号的FIR滤波(Matlab+Modelsim验证)

    1 设计内容 本设计是基于FPGA的音频信号FIR低通滤波,根据要求,采用Matlab对WAV音频文件进行读取和添加噪声信号.FFT分析.FIR滤波处理,并分析滤波的效果.通过Matlab的分析验证滤 ...

最新文章

  1. 《jQuery UI 开发指南》——1.3 什么是CSS主题
  2. Nginx配置中一个不起眼字符/的巨大作用,失之毫厘谬以千里
  3. Java IDE——Eclipse下载与安装
  4. javaio流_万字长文+思维导图帮你梳理 Java IO 流,还学不会你来打我(值得收藏)...
  5. java消费者模式_基于Java 生产者消费者模式(详细分析)
  6. BeetleX之Websocket服务使用
  7. 现代浏览器工作原理(一)
  8. 智能算法浅介----模拟退火,遗传算法,禁忌搜索,神经网络等
  9. 人脸数据库收集——深度学习
  10. 声纹识别demo_BirdSongDemo 一款基于鸟叫声识别的通用鸟类识别软件LilyBirdSong 联合开发网 - pudn.com...
  11. 查询跟电脑直连设备的ip
  12. 光盘/硬盘“无法复制:数据错误(循环冗余检查)”的解决方案
  13. 2015 iMac如何绕过TMP安装Windows11(不用Parallels虚拟机实现macOS与Windows11双系统)
  14. 计世资讯:用户对大数据安全分析需求逐渐迫切
  15. -bash: ifconfig: command not found
  16. jquery和JavaScript之间的联系和区别
  17. 阻尼效果总结(顶部图片放大效果)
  18. 把一个人的特点写具体作文_五年级下册第五单元同步作文《把一个人的特点写具体》范文4篇...
  19. WebSocket 获取客户端的IP
  20. 黑马程序员-MyBatis 框架-最全入门笔记、阿伟看了都得说真大、真细、真全!!!

热门文章

  1. 客观认识植物乳杆菌 (L. plantarum) 及其健康益处
  2. 图片透明代码html5,javascript – 透明图像背景html5画布
  3. 恶俗评论敏感词过滤 (可直接拿去用,动态热更新)
  4. java小游戏-扫雷游戏
  5. 设备调试伺服一周脉冲数设置参考
  6. visual 常用快快捷键
  7. 《Linux运维总结:服务器重启后无法识别挂载硬盘》
  8. 【郝斌老师数据结构学习笔记 day 3】
  9. 未找到章程文件HTML,项目章程的主要内容不包括( )。 - 信管网
  10. 配置网络拓扑图测试软件,某网络拓扑图如下所示,三台路由器上均运行RIPv1协议,路由协议配置完成后,测试 - 信管网...