最近一段时间一直在研究基于FPGA图像处理,乘着EEPW这个机会和大家交流一下,自己也顺便总结一下。主要是为了大家对用FPGA图像处理有个感性的认识,如果真要研究的话就得更加深入学习了。本人水平有限,如有错误,欢迎大家批评指正。

本文引用地址:http://www.eepw.com.cn/article/185312.htm

  基于软件的图像处理方法存在着一些局限性,尤其是计算速度和算法效率方面。所以大家很自然的就想到了FPGA作为嵌入式图像应用的平台。许多图像处理本身就是并行计算的,并且FPGA的编程硬件,本质上也是并行的。但是利用FPGA硬件进行图像处理存在很多的困难,需要学到很多的技巧。下面我介绍两几种比较基础的图像处理算法思想。

  单幅图像的点操作是图像处理中最简单的操作,输出值只取决于输入值,与位置无关,可以看作是一个函数的映射。从硬件实现的角度来说,最简单的方式就是通过一个实现函数的模块对输入的每个像素进行依次处理,也就是流水化处理。每个像素都是单独处理的,可以把图像分为若干部分,每个部分单独处理,所以点操作容易并行实现。点操作可作为读取图像和后续处理之间的一个桥梁。A:亮度调节;为了使图像变亮,可以增大输出像素值,可以通过加一个常量实现。类似地,变暗减小像素值。但是实际中,调节亮度要复杂的多,因为人的视觉系统是非线性的。B:对比度调节;图像的对比度受映射函数的斜率影响。斜率大于1增强,小于1则降低,可以通过乘以一个大于或者小于1的常数实现。C:同时调节亮度和对比度;一个简单的调节它们的点操作是:Q=aI+b=a(I+b’),a,b是控制亮度和对比度的任意常数。当Q超出范围怎么办?例如用8位表示像素值时,Q超出0~255,那么输出怎么办?默认情况下只取8位最低有效位并且忽略任何会导致值超出范围的溢出位。通常还需要进行饱和或者裁剪到极值效果会更好。

  直方图操作。使用直方图的图像处理有两个相关的主要步骤。第一步是建立直方图,第二步是从直方图中提取数据并用它来处理图像。A建立直方图:对每个像素值累计计数。通过计数器数组完成计算每个像素值出现的次数。这个方法的缺点是占用的硬件资源比较多,适合阈值后的直方图计算。可以使用双口存储器实现,可以大大减少逻辑资源的使用。B直方图均衡化(使用局部信息来分配那些在输出像素值的范围上具有大的计数值的输入值的像素来获得更平坦的直方图):实现直方图均衡化的映射是归一化累积直方图。直观地,如果输入点集合的计数值大于平均值,那么映射的斜率大于1,反之,小于1。

  局部滤波器。局部滤波器扩展点操作,以一个局部窗口内像素值的函数运算结果作为输出。窗口的大小、形状可以随意,但是一般都是采用奇数正方形的,我见过最多的就是3x3,5x5,7x7,这样的话中心就很容易确定。局部滤波器有去噪、边缘检测、边缘增强等。线性去噪有排序去噪,均值去噪,加权均值去噪等,边缘检测可以利用Prewitt,Sobel算子等,将这些算法在3x3窗口中实现,相对来说就比较容易了。也可以改进这些算法,是写小论文比较好的创新点。还有一些形态学滤波器,颜色滤波器,大致思想都一样,就是实现的时候算法改一下。

  我个人感觉基于FPGA的图像处理相对来说比较专业,比较难,同时这里面的知识也比较多,适合做研究。我最近看的一本书是《基于FPGA的嵌入式图像处理系统设计》,国外《Design for Embedded Image Processing on FPGAs》(作者Bailey)的翻译本,翻译水平一般,有些地方看中文版的看不懂,一看英文版的就明白了。我把英文版的电子文档上传到了eepw下载区。http://forum.eepw.com.cn/thread/243584/1。 初学者可以使用DSP Builder建立Simulink模型,然后它可以自动转换为VHDL或者verilog代码,然后再学习和修改那个代码,这样的话入门可以更快一点。如有错误,大家多多指正。

FPGA的图像处理技术,你知道多少?的更多相关文章

  1. FPGA的图像处理技术

    最近一段时间一直在研究基于FPGA的图像处理,乘着EEPW这个机会和大家交流一下,自己也顺便总结一下.主要是为了大家对用FPGA做图像处理有个感性的认识,如果真要研究的话就得更加深入学习了.本人水平有 ...

  2. FPGA与数字图像处理技术

    数字图像处理方法的重要性源于两个主要应用领域: 改善图像信息以便解释. 为存储.传输和表示而对图像数据进行处理,以便于机器自动理解. 图像处理(image processing): 用计算机对图像进行 ...

  3. HTML5图形图像处理技术研究

    摘要:图形图像处理平台大部分是传统的C/S架构的桌面应用程序,维护困难,共享性差,而B/S架构的Web程序具有易维护.易共享的优点.本文研究了基于HTML5的Web图形图像处理技术,用HTML5实现了 ...

  4. GDI+图形图像处理技术中Pen和Brush的简单使用和简单图形的绘制(C#)

    1.Graphics Graphics对象是GDI+绘图表面,因此在Windows窗体应用程序中要使用GDI+创建绘图,必须要先创建Graphics.在给窗体注册一个Paint事件后,Graphics ...

  5. FPGA与图像处理

    用FPGA做图像处理最关键的一点优势就是:FPGA能进行实时流水线运算,能达到最高的实时性.因此在一些对实时性要求非常高的应用领域,做图像处理基本就只能用FPGA.例如在一些分选设备中图像处理基本上用 ...

  6. 数字图像处理技术在TWaver可视化中的应用

    数字图像处理(Digital Image Processing)又称为计算机图像处理,它是指将图像信号转换成数字信号并利用计算机对其进行处理的过程.常用的图像处理方法有图像增强.复原.编码.压缩等,数 ...

  7. php图形图像处理技术

    图形图像处理技术,gd库的强大支持,PHP的图像可以是PHP的强项,PHP图形化类库,jpgraph是一款非常好用的强大的图形处理工具. 在PHP中加载GD库 gd官方网址下载: http://www ...

  8. GDI+图形图像处理技术——GDIPlus绘图基础

    GDI+概述 GDI在windows中定义为Graphis Device interface,及图形设备接口,是Windows API(application Programming Interfac ...

  9. 基于Qt的图像处理技术和算法

    https://blog.csdn.net/silangquan/article/details/41008183

随机推荐

  1. Java_Shell多线程

    #!/bin/bash source ~/.bashrc fun(){ echo "fun is begin.timeNum:$timeNum" local timeNum=$ s ...

  2. linux man使用方法 和centos安装中文man包 --转

    http://blog.chinaunix.net/uid-25100840-id-302308.html 这两天学习<linux设备驱动程序开发详解>中的异步通知,其中有一个fcntl( ...

  3. Java连接mysql数据库并进行内容查询

    最近用框架做了几个项目,感觉当初底层的东西有点忘了,写一个JDBC的简单的连接代码来熟悉回顾一下,也希望对刚接触的新手能有所帮助.这也是我的第一篇随笔,废话不多说,直接上代码: public Conn ...

  4. [转]poll技术

    poll()函数:这个函数是某些Unix系统提供的用于执行与select()函数同等功能的函数,下面是这个函数的声明: #include <poll.h> int poll(struct ...

  5. spring工作机制

    Hibernate.struts,还差一个spring 就一起发出去.. spring工作机制及为什么要用? 1.springmvc请所有的请求都提交给DispatcherServlet,它会委托应用 ...

  6. Oracle 常用命令大全

    一.如何有效地利用数据字典 ORACLE的数据字典是数据库的重要组成部分之一,它随着数据库的产生而产生, 随着数据库的变化而变化, 体现为sys用户下的一些表和视图.数据字典名称是大写的英文字符. 数 ...

  7. Bash中的位置参数和特殊参数

    #Bash中的位置参数和特殊参数 #Bash中的位置参数是由0以外的一个或多个数字表示的参数.#位置参数是当Shell或Shell函数被引用时由Shell或Shell函数的参数赋值,并且可以使用Bas ...

  8. 对象(类)的封装方式(面向对象的js基本知识)

    上一个月一直忙于项目,没写过笔记,今天稍微空下来了一点 前几天在写项目的时候关于怎么去封装每一个组件的时候思考到几种方式,这里总结一下: 1.构造函数方式(类似java写类的方式):把所有的属性和方法 ...

  9. sgu 185 最短路建网络流

    题目:给出一个图,从图中找出两条最短路,使得边不重复. 分析:既然是最短路,那么,两条路径上的所有节点的入边(s,x).出边(x,e)必定是最优的,即 dis[x] = dis[s]+edge_dis ...

  10. 使用开源库MagicalRecord操作CoreData

      1. 将 MagicalRecord 文件夹拖入到工程文件中,引入 CoreData.frame 框架 2. 在 .pch 文件中引入头文件 CoreData+MagicalRecord.h 注: ...