基于FPGA的图像处理之直方图均衡.docx
《基于FPGA的图像处理之直方图均衡.docx》由会员分享,可在线阅读,更多相关《基于FPGA的图像处理之直方图均衡.docx(6页珍藏版)》请在第一文库网上搜索。
1、基于FPGA的图像处理之直方图均衡最近一直在用FPGA调图像处理相关的算法,主要是集中在图像增强和增晰方面。现在来介绍一个复杂度不高,但确实也还比较好用的图像增强算法-直方图均衡。直方图均衡的作用,上面也说了,是图像增强,那是增强什么呢?是增强图像的对比度。先来看下在Mat1ab中实现直方图均衡的效果吧。彩色图灰度图A方图均衡化图片比较随意,直接对电脑桌面截了一张图,大家应该能有一个直观的感受,知道直方图均衡的作用和效果了吧!直方图均衡在对一些低照度图像增晰、去雾处理等应用场景,效果还是挺不错的。对于直方图均衡的实现步骤,在网上一搜一大把,大部分讲的都是用MatIab或者箍宣的代码实现。那我们
2、也先来结合Mat1ab代码来介绍一下直方图均衡的实现步骤,之后再说说用FPGA是怎么做的。%第一步统计每个像素值出现次数count=zeros(1,256);fori=1:Rforj=1:Ccount(1,fx(i,j)+1)=count(1,fx(i,j)+1)+1;endend第一步,是对于一整幅图像进行像素值统计,当然咱们这是对灰度图像进行直方图均衡,所以统计的像素值大小范围是0-255o这一步是统计0-255这256个像素点的值,在整幅图像中出现的次数。%第二步统计每个像素值出现的概率,得到概率直方图T=zeros(1,256);T=doub1e(T);count=doub1e(cou
3、nt);fori=1:256T(1,i)二count(1,i)/(R*C);%R和C为图像长和宽end第二步,将像素点统计出来的出现次数除以图像的总像素点,计算出各个灰度值出现的概率。%第三步求累计概率,得到累计直方图fori=2:256T(1,i)=T(1,i-1)+T(1,i);end第三步,单看代码,似乎不太好理解,这一步算的累计概率是怎么算的呢?第1个结果,像素值为O的概率+像素值为1的概率;第2个结果,像素值为O的概率+像素值为1的概率+像素值为2的概率;。第255个结果,像素值为O的概率+像素值为1的概率+像素值为2的概率+.+像素值为255的概率。其实就是等于1。其实这一步,总共
4、会得出256个结果,还要算上像素值为O的概率,因为在第二步中已经算出来了单个像素点的概率,所以就没有再次算了,f。循环里面写的就是2-256了。%第四步完善映射函数fori=1:256T(1,i)=T(1,i)*255;end第四步,是完善映射函数。从原图到直方图均衡化之后的图像,之间肯定存在一个函数f(x),类似的img_out=f(img_in)。也就是从原图进行直方图均衡需要有一个函数表示他们之间的关系。而这一步就是完善这个函数,其实就是对第三步得出的累计概率分布结果*255o注意,这个映射函数其实是一个离散值,总共有256个值。%第五步完成每个像素点的映射fy=doub1e(fx);f
5、ori=1:Rforj=1:Cfy(i,j)=T(1,fy(i,j)+1);endend这是最后一步了,把原图经过第四步的映射函数,得到直方图均衡化之后的图像结果。这一步,给大家再解释一下,其实就是把输入图像的像素值,作为映射函数这个一维数组相应元素的下标,去找到对应下标元素的值。并把这个值作为直方图均衡化的结果输出。对于直方图均衡的处理,从流程上来看,其实是很简单的。当然对于有些书,会给你列出一堆的公式。作为一个毕业多年的老油条,对那些公式早就不敏感了。所以在文章里面,就直接开门见山的给大家说步骤了,这也算是对那些也像我这种对数学公式早已不感冒的朋友的一份爱惜吧!对于原理部分,贴着Mat1a
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA 图像 处理 直方图 均衡