最近一段时间一直在研究基于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. RedHat Linux 安装oracle11g

    1.准备oracle安装文件Oracle11gR2包含两个文件linux_11gR2_database_1of2.zip和linux_11gR2_database_2of2.zip,将这两个文件通过S ...

  2. python--面向对象编程介绍

    暂不考虑开发场地等复杂的东西,我们先从人物角色下手, 角色很简单,就俩个,恐怖份子.警察,他们除了角色不同,其它基本都 一样,每个人都有生命值.武器等. 咱们先用非OOP的方式写出游戏的基本角色 引子 ...

  3. JavaScript实现搜索联想功能

    -.虽然Jquery已经有了一个完整的包 实现前端搜索联想功能,但是出于学习还是想了解一下实现此功能的原理性 回想起来 实现此功能很简单,1.前端输入字符串 文本改变 异步请求服务器 将返回的资料显示 ...

  4. Android进阶笔记20:Android手机屏幕坐标系

    1. 手机屏幕坐标系: 整个坐标系是以手机屏幕左上角为原点(0,0),如下:

  5. 测试 IE 浏览器兼容性 VirtualBox + modern.ie

    VirtualBox 是开源的虚拟机软件,常用的虚拟机软件还有 VMware / Hyper-V / Paralles Desktop . modern.ie 是微软官方提供的用于测试网页在各版本 I ...

  6. Androidstudio 点9图报错的问题

    在eclipse上.9图能够正常使用,但是到了Androidstudio上就报错无法引用,提示找不到.9图的问题.   解决方案: Androidstudio对.9图进行了更严格的定义, 1. 如果一 ...

  7. find中的 time 参数

    find手册中对time的解释:以 atime 为例: -atime n File was last accessed n*24 hours ago. When find figures out ho ...

  8. MyEclipse设置编码方式 转载【http://www.cnblogs.com/susuyu/archive/2012/06/27/2566062.html】

    1.windows->Preferences……打开"首选项"对话框,左侧导航树,导航到general->Workspace, 右侧Text file encoding ...

  9. 剑指Offer33 第一个只出现一次的字符

    /************************************************************************* > File Name: 33_FirstN ...

  10. 代码创建FlexibleSpaceBarButton(弹性空白)

    //1.创建toolbar左边的按钮,调用initWithTitle方法进行初始化 // UIBarButtonItem *extend = [[UIBarButtonItemalloc]initWi ...