![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
FPGA图像处理
black_pigeon
想要成为一个FPGA工程师
展开
-
FPGA图像处理----卷积窗口求累加和
求解累加和的意义 在对图像进行卷积处理的时候,经常会使用到卷积操作,对应到FPGA中就是乘加操作。其中在相加这个阶段,对于某些算子,需要将卷积窗口中的数据全部相加,例如Sobel,均值滤波等。若是3x3的卷积运算,那么在求和阶段是比较简单的,但是,若卷积算子是5x5,7x7乃至更大的时候,为了满足FPGA处理的时序的要求,不要在一个时钟周期执行过多的加法运算。因此,考虑一种更加通用且更容易满足时序要求的方法来求累加和是有极大的益处的。程序设计`timescale 1ns / 1psmodule原创 2020-07-18 09:54:28 · 1493 阅读 · 0 评论 -
FPGA图像处理基础----实现缓存卷积窗口
像素行与像素窗口 一幅图像是由一个个像素点构成的,对于一幅480*272大小的图片来说,其宽度是480,高度是272。在使用FPGA进行图像处理时,最关键的就是使用FPGA内部的存储资源对像素行进行缓存与变换。由于在图像处理过程中,经常会使用到卷积,因此需要对图像进行开窗,然后将开窗得到的局部图像与卷积核进行卷积,从而完成处理。 图像数据一般按照一定的格式和时序进行传输,在我进行实验的时候,处理图像时,让其以VGA的时序来进行工作,这样能够为我处理行缓存提供便利。基于FIFO的行缓存结构 在原创 2020-07-16 20:25:15 · 5699 阅读 · 4 评论 -
FPGA图像处理基础----cordic算法原理以及实现(1)
Cordic算法的基本原理 在FPGA中实现开根号正余弦这种操作是比较难实现的。FPGA的特性决定了其较难处理浮点类型的数据。但是通过Cordic算法可以使得FPGA能够来处理这种开根号和正余弦的计算。 使用坐标的旋转能够比较直观地表现出这一算法的实现原理。我也是在参考了两位前辈的博客,再结合《基于FPGA的数字图像处理》这本书上的知识,来理解和学习这一算法。这两位的博客写的通俗易懂。1.基于FPGA的Cordic算法实现2.CORDIC算法的FPGA实现1.选择模式下的实现 在下图中有原创 2020-07-11 14:17:23 · 3963 阅读 · 0 评论 -
FPGA图像处理基础----直方图均衡化
啥是直方图均衡化 直方图均衡化,通过一种灰度映射使输入图像经过转换后,在每一灰度级上都有相近似的输出图像,输出的灰度值是均匀的。经过这样处理的图像具有较高的对比对和较大的动态范围。 对于离散的灰度级,直方图均衡化有如下关系: 其中Db是转换过后的像素的灰度值,Dmax是输入图像经过直方图统计后得到的最大的灰度值,A0是一幅图像面积,也就是所有的像素值H(i)是灰度级的各级的统计结果。Da是当前像素的灰度级。 直方图均衡化就的作用就是,对于当前的输入像素,需要首先求出小于当前像素灰度值的所有原创 2020-07-08 20:12:06 · 4337 阅读 · 1 评论 -
FPGA图像处理基础----直方图统计
直方图统计的原理 直方图统计从数学上来说,是对图像中的像素点进行统计。图像直方图统计常用于统计灰度图像,表示图像中各个灰度级出现的次数或者概率。统计直方图的实现采用C/C++或者其他高级语言实现十分简单,单采用FPGA来实现直方图的统计就稍显麻烦。若使用Xilinx和Altera的FPGA芯片,可以使用HLS来进行图像的加速处理。但这暂时不是我的重点。用C语言实现直方图统计:unsigned int histoBuffer[256];for(int idxCol = 0; idxCol <原创 2020-07-06 20:18:01 · 6084 阅读 · 5 评论