0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FPGA上的图像处理算法集成与优化

FPGA设计论坛 来源:FPGA设计论坛 2025-02-14 13:46 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文详细介绍了多种图像处理技术,包括RG/GB单通道提取、亮度和对比度调整、图像反转、均值滤波、高斯滤波、图像锐化、中值滤波、阈值分割、边缘检测(Sobel算子)、图像膨胀与腐蚀、开运算与闭运算、Tophat形态学滤波、RAW8转RGB888、彩色图像均值滤波、Alpha背景叠加、直方图灰度拉伸算法以及自动白平衡算法。每种算法都提供了实现方法和相关公式,涵盖了图像处理的核心概念和技术。

1、RG/GB单通道提取,采用2x2阵列

其实现方法,用ram缓存两行图像数据,对缓存的数据进行间隔4个数据读取,以此一个固定的数据替换其余三个颜色值

2、亮度增加

其公式为:

Q = a * i + b

其中i为输入原像素值,a为调节对比度,b为调节亮度

实现方法为:只需将原像素值加上需要增加亮度的值即可(注:不要溢出)

3、对比度增加

其公式为:

Q = a * i +b

其中i为输入原像素值,a为调节对比度,b为调节亮度

实现方法:只需将原像素值乘上对比度值即可(注:不要溢出)

4、图像反转

其公式为:

Q = 255 - i;

其中i为原像素值

实现方法:将图像值的最大值减去原像素值

5、均值滤波

采用的3x3矩阵,先缓存三行图像数据,在对数据进行相加,取均值

3c91d37c-ea88-11ef-9310-92fbcf53809c.png

其除法部分可以转化移位运算:

实现过程:

1024 / 9 = 113;

则可以让其矩阵取和值乘以113,在进行右移10位,则得出需要均值

6、高斯滤波

3c9c0126-ea88-11ef-9310-92fbcf53809c.png

实现方法:

对所有的权值乘以1024,在将权值与矩阵像素相乘并累加和,并在按照10249=113的原理,让其和乘以113,在对其值进行右移20位,则该值就是要求的最终值

7、图像锐化

图像锐化,采用的是拉普拉斯算子,其算子模板如下:

3cb14d4c-ea88-11ef-9310-92fbcf53809c.png

采用第二个算子模板,其实现方法如下:

其实现方法:将算子模块中的值分成两部分,一部分是正值,另一部分是负值, 1、在将正值和负值进行比较,如果正值大于负值,则正值减去负值,在与p(4)像素加

2、在将正值和负值进行比较,如果正值小于负值,则负值减去正值,在p(4)像素值减去该值

8、中值滤波

其模型如下:

3cc67276-ea88-11ef-9310-92fbcf53809c.png

其实现方法:

设置9个cnt值做排序标识,让矩阵中的值对另外8个值进行比较,其中标识值为4的,就代表其值为中间值

9、阈值分割

其公式如下:

3cd9040e-ea88-11ef-9310-92fbcf53809c.png

设置阀值区间,当在这个阀值区间内,则该像素值转化为0输出,不在这个阀值区间内的像素则输出255或其他定义的值

10、边缘检测(sobel)

其sobel算子3x3模型如下:

3ce04818-ea88-11ef-9310-92fbcf53809c.png

公式部分补充:

得到gxy值后,根据设置的阀值,当大于该阀值,则该像素输出为16’01,否则为8’hff,将像素二值化

其实现过程:

1、将模板Gx分为正值和负值累加,当正值大于负值时,则正值减去负值,否则是负值减去正值

2、同理模板Gy也是如此,然后在得出的值分别进行平方,在进行累加求和

3、最后对该值进行开平方(开平方可用cordic算法转化sqrt,也可以调用ip核)

4、得到开平方的值进行与阀值比较,将像素二值化

11、图像膨胀

在sobel检测之下,其公式:

3cf19e92-ea88-11ef-9310-92fbcf53809c.png

求像素的最大值,进行输出

其矩阵模型为3x3

实现方法:

设置9个cnt值做排序标识,让矩阵中的值对另外8个值进行比较,其中标识值为8的,就代表其值为最大值

12、图像腐蚀

在sobel检测之下,其公式为:

3d007a98-ea88-11ef-9310-92fbcf53809c.png

求像素的最大值,进行输出

其矩阵模型为3x3

实现方法:

设置9个cnt值做排序标识,让矩阵中的值对另外8个值进行比较,其中标识值为0的,就代表其值为最小值

13、开运算

其原理过程是先腐蚀后膨胀的过程,其公式:

3d12ea20-ea88-11ef-9310-92fbcf53809c.png

其实现过程:

在矩阵3x3中:

1、先进行缓存3行像素点(640)

2、在对3行像素点安顺序各取三个值进行取最小值输出像素

3、将输出最小值的像素在进行缓存3行(640)

4、在对这3行像素点安顺序各取三个值,进行取最大值,输出像素值,则该算法完成

14、闭运算

其原理过程是先膨胀后腐蚀的过程,其公式:

3d1d35b6-ea88-11ef-9310-92fbcf53809c.png

其实现过程:

在矩阵3x3中:

5、先进行缓存3行像素点(640)

6、在对3行像素点安顺序各取三个值进行取最大值输出像素

7、将输出最大值的像素在进行缓存3行(640)

8、在对这3行像素点安顺序各取三个值,进行取最小值,输出像素值,则该算法完成

15、Tophat 形态学滤波

其公式为:

3d2ef6f2-ea88-11ef-9310-92fbcf53809c.png

矩阵为:3x3

工作原理是,先对3x3像素矩阵进行开运算,比较值取p(4),当p(4)>=open(p(i))时,则Gxy = p(4) - open(p(i)),否则Gxy = 0 或者其他定义值

16、RAW8转RGB888

选取矩阵:2x2

Cmos像机结构:GB/RG

3d3efb10-ea88-11ef-9310-92fbcf53809c.png

以G2为基准点,则该公式为:

3d506c38-ea88-11ef-9310-92fbcf53809c.png

则实现方法:

1、先缓存2行数据(640)

2、各读取2个数据

3、对值进行分配为:

偶数行偶数列、偶数行奇数列、奇数行偶数列、奇数行奇数列

4、输出各组8位颜色

17、彩色图形进行均值滤波

矩阵:3x3

先将RAW8转RGB888三原色输出,然后在对其每个原色进行缓存3行,在进行取和输出,该和值乘(1024/9)113值,最后将该值进行右移10位,则是最终像素输出

18、Alpha 背景叠加

其效果实现是出现背景半透明状态

公式为:

3d582392-ea88-11ef-9310-92fbcf53809c.png

19、直方图灰度拉伸算法

矩阵:2x2

3d69c200-ea88-11ef-9310-92fbcf53809c.png

实现方法:

缓存2个小于255的数,为最小值;缓存2个大于0的数为最大值;进行比较,用最大值减去最小值。做为查找表的标号;255/(B-A)部分做成查找表e

最后g(x,y)= e * (f(x,y)-min值)

20、白/晚自动曝光与增益算法

3d842f50-ea88-11ef-9310-92fbcf53809c.png

21、自动白平衡算法

百平衡算法有:灰度世界法、完美反射法、动态阀值法

现实现方法为:灰度世界法

原理:灰度世界法(Gray World)是以灰度世界的假设为基础的,假设一张图片具有大量的色彩变化,RGB 三分量的平均值趋于同一个灰度值 K。下面给出 K 的计算方法。

则公式为:

3d9683c6-ea88-11ef-9310-92fbcf53809c.png

实现思路:

1、由于MT9V011摄像机有4个通道,将一帧的图像数据按照奇偶行列将4个通道进行分配累加取和

2、在对4个通道的数据进行取平均值,并且要除以4,每个通道的数据占一帧图像的四分之一

3、在将4个通道的数据累加取和,并对其进行取平均值K

4、将4个通道的数据,都进行取倒数的查找表s

5、输出最终值:

R = R(原)ks

G= G(原)ks

B = B(原)ks

原文:

https://blog.csdn.net/qq_39633876

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1655

    文章

    22282

    浏览量

    630059
  • 图像处理
    +关注

    关注

    28

    文章

    1340

    浏览量

    59163
  • 算法
    +关注

    关注

    23

    文章

    4760

    浏览量

    97123

原文标题:FPGA图像处理算法整合

文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    多场景智能拍摄实战:摄像头模块集成与调试指南!

    、高效的多场景智能拍摄系统。 一、演示功能概述   摄像头拍照功能通过光学传感器与图像处理算法,实现将现实场景转化为数字图像数据的技术。它允许设备捕捉静态画面,并支持实时预览、参数调节及后期
    的头像 发表于 11-21 17:58 71次阅读
    多场景智能拍摄实战:摄像头模块<b class='flag-5'>集成</b>与调试指南!

    基于FPGA的CLAHE图像增强算法设计

    CLAHE图像增强算法又称为对比度有限的自适应直方图均衡算法,其算法原理是通过有限的调整图像局部对比度来增强有效信号和抑制噪声信号。
    的头像 发表于 10-15 10:14 379次阅读
    基于<b class='flag-5'>FPGA</b>的CLAHE<b class='flag-5'>图像</b>增强<b class='flag-5'>算法</b>设计

    中科亿海微Link-Sea-H6A图像处理套件

    实现摄像头接入、图像处理算法、显示输出等功能。开发套件集成FLASH、EEPROM、SDRAM、按键、LED灯等外设,其中SDRAM板载两片,每片容量为16M
    的头像 发表于 09-29 15:49 402次阅读
    中科亿海微Link-Sea-H6A<b class='flag-5'>图像</b><b class='flag-5'>处理</b>套件

    图像传感器实际是如何工作的

    FPGA 广泛应用于各种图像处理应用,包括医疗和科学成像、空间成像、汽车和国防领域。
    的头像 发表于 09-06 09:54 985次阅读
    <b class='flag-5'>图像</b>传感器实际<b class='flag-5'>上</b>是如何工作的

    【 VPX638】青翼凌云科技基于KU115 FPGA+C6678 DSP的6U VPX双FMC接口通用信号处理平台

    (XCKU115)作为主处理器,完成复杂的数据采集、回放以及数据预处理。采用1片TI的多核浮点运算DSP TMS320C6678来完成信号处理算法
    的头像 发表于 09-01 13:42 435次阅读
    【 VPX638】青翼凌云科技基于KU115 <b class='flag-5'>FPGA</b>+C6678 DSP的6U VPX双FMC接口通用信号<b class='flag-5'>处理</b>平台

    友思特方案 | FPGA 加持,友思特图像采集卡高速预处理助力视觉系统运行提速增效

    图像处理图像处理关键中间环节,通过优化传感器到主机的数据传输处理为后续减负。其
    的头像 发表于 08-20 09:18 593次阅读
    友思特方案 | <b class='flag-5'>FPGA</b> 加持,友思特<b class='flag-5'>图像</b>采集卡高速预<b class='flag-5'>处理</b>助力视觉系统运行提速增效

    FPGA 加持,友思特图像采集卡高速预处理助力视觉系统运行提速增效

    图像处理图像处理关键环节,可优化数据传输、减轻主机负担,其算法可在
    的头像 发表于 08-13 17:41 770次阅读
    <b class='flag-5'>FPGA</b> 加持,友思特<b class='flag-5'>图像</b>采集卡高速预<b class='flag-5'>处理</b>助力视觉系统运行提速增效

    基于FPGA的压缩算法加速实现

    本设计中,计划实现对文件的压缩及解压,同时优化压缩中所涉及的信号处理和计算密集型功能,实现对其的加速处理。本设计的最终目标是证明在充分并行化的硬件体系结构 FPGA
    的头像 发表于 07-10 11:09 2071次阅读
    基于<b class='flag-5'>FPGA</b>的压缩<b class='flag-5'>算法</b>加速实现

    进群免费领FPGA学习资料!数字信号处理、傅里叶变换与FPGA开发等

    ~ 01、数字信号处理FPGA实现 旨在讲解前端数字信号处理算法的高效实现。首先概述了当前的FPGA技术、器件以及用于设计最先进DSP系统的工具。阐述了计算机
    发表于 04-07 16:41

    处理合成孔径雷达图像的极坐标算法基础

    电子发烧友网站提供《处理合成孔径雷达图像的极坐标算法基础.pdf》资料免费下载
    发表于 03-06 17:59 0次下载

    DLPC7540EVM是否支持自定义的图像处理算法,以及如何进行算法的移植?

    是否支持自定义的图像处理算法,以及如何进行算法的移植?
    发表于 02-17 08:25

    FPGA图像处理基础----实现缓存卷积窗口

    像素行与像素窗口 一幅图像是由一个个像素点构成的,对于一幅480*272大小的图片来说,其宽度是480,高度是272。在使用FPGA进行图像处理时,最关键的就是使用
    的头像 发表于 02-07 10:43 1411次阅读
    <b class='flag-5'>FPGA</b><b class='flag-5'>图像</b><b class='flag-5'>处理</b>基础----实现缓存卷积窗口

    FPGA在AI方面有哪些应用

    提供了强有力的支持。 一、FPGA 在深度学习中的应用 深度学习是 AI 的重要分支,涉及海量的数据运算。FPGA 能够针对深度学习算法中的卷积、池化等核心运算进行硬件加速优化。例如,
    的头像 发表于 01-06 17:37 2085次阅读

    基于FPGA实现图像直方图设计

    简单,单采用FPGA来实现直方图的统计就稍显麻烦。若使用Xilinx和Altera的FPGA芯片,可以使用HLS来进行图像的加速处理。但这暂时不是我的重点。 用C语言实现直方图统计:u
    的头像 发表于 12-24 10:24 1195次阅读
    基于<b class='flag-5'>FPGA</b>实现<b class='flag-5'>图像</b>直方图设计

    图像高斯滤波的原理及FPGA实现思路

    1.概念 高斯分布 图像滤波之高斯滤波介绍 图像处理算法|高斯滤波 高斯滤波(Gaussian filter)包含很多种,包括低通、高通、带通等,在图像上说的高斯滤波通常是指的高斯模糊
    的头像 发表于 12-07 09:12 2584次阅读
    <b class='flag-5'>图像</b>高斯滤波的原理及<b class='flag-5'>FPGA</b>实现思路