闲庭信步使用SV搭建图像测试平台:第二十二课——图像的直方图统计

  (本系列只需要modelsim即可完成数字图像的处理,每个工程都搭建了全自动化的仿真环境,只需要双击文件就可以完成整个的仿真,大大降低了初学者的门槛!!!!如需要该系列的工程文件请关注知识星球:成工fpga,关注即送200GB学习资料,链接已置顶!)

生活中到处用到统计,比如人口统计普查,政府和公司的各种调研,彩票站还有就是大学必不可少的一门数学课程——概率和统计。其实我们经常对自己的人生做做统计,对后续的人生还是很有参考价值的。

闲话少说,图像的直方图统计就是统计一副图像中0-255这256个数值各出现的次数,有了这个统计的数据,我们就可以得知一副图像中像素点集中的区域,对图像的特性就有了更加深入的理解,也可以为后面的直方图均衡做准备。

不同于FPGA可综合RTL的设计要考虑很多的问题,测试平台对图像的直方图统计屏蔽了所有的硬件细节,实现起来非常的简单。

我们在我们在img_process_pkt包的image_process类中新建一个hist的task,寥寥数行,最主要的就是1206行更加队列的地址对输入的数据进行统计。1201-1202行是队列的初始化,max和1210-1212行主要是将一副图像各个值的统计值归一化到0-norm_factor的区间。在可综合的RTL的设计中,尽量避免乘除法的运算,可以采用截断的方式大致对统计值进行归一化,在下个系列的教程中成工会教大家如何实现。

完成了直方图的统计,可以得到256个值,其实把直方图画出来才更加的直观,比如大家都熟悉的ps,就可以直接看一副图像的直方图,如下所示,右边可以看图像亮度的直方图,也可以看RGB各通道的直方图。

我们也要实现绘制直方图的功能,但是首先要把直方图相关的256个一维的数据扩展到二维的数据才能保存图片,所以我们在img_process_pkt包的image_process类中新建一个hist_img的task,实现了一维数据到二维图像数据的转换。

仿真文件tb_image_sim如下,现将RGB图像转换成YCbCr格式的数据,然后对图像的亮度Y进行直方图统计并归一化到0-255,然后将直方图的数据扩展成高度是300,宽度是256的二维数据,最后设置新图片的格式,画出直方图的图片。

最后我们双击sim文件夹下的top_tb.bat文件,完成系统的自动化仿真。

打开image文件夹,就可以看到保存的直方图图片,和ps软件对比一下,形状大体是一致的,当然大家也可以分别对RGB各种通道进行直方图的统计。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值