直方图均衡化设计
直方图均衡:
个人理解:图像拍摄和采集过程中,出现偏亮或者偏暗,通过直方图均衡,达到亮度统一的效果,也就是增强对比度而不影响全局。
原理:
不懂。为什么通过这种方式可以达到均衡的效果。
公式:
第一步:统计各色度出现的次数。(直方图统计)
第二步:求和∑H(i);
第三步:乘以Dmax ;
第四步:除以图像所有像素。Area
关键点设置:
一、怎么对数据进行缓存
1、直接用bram缓存
2、用像素积宽度的寄存器对数据进行缓存。
3、im_buff[inBuff_datacounter];其中inBuff_datacounter在数据有效的时候进行加一操作。
二、怎么对数据进行统计判断。
直接设置灰度区间大小的统计寄存器。输入数是多少,对应统计寄存器的某一个寄存器。
例子:hist[in_data] = hist[in_data] +1;
三、怎么进行累加。
以Sum[in_data]为例:
设置一个in_dataCounter计数器。
当in_dataCounter < in_data;时,该计数器加一.
并让Sum[in_data] =Sum[in_data]+Sum[in_dataCounter]。
三:Dmax*Sum[in_data] / IW*row
以hist[in_data]为例:
Hist[in_data] =Dmax*Sum[in_data] / IW*row;
除法一般用移位寄存器实现。
四:输出
1、直接函数调用。(function)
2、用寄存器覆盖的方式实现函数调用。
OutData= (Sum[im_buff[inBuff_datacounter]]*Dmax)>>n(2^n=Iw*row)