(本系列只需要modelsim即可完成数字图像的处理,每个工程都搭建了全自动化的仿真环境,只需要双击top_tb.bat文件就可以完成整个的仿真,大大降低了初学者的门槛!!!!如需要该系列的工程文件请关注知识星球:成工fpga,https://t.zsxq.com/DMeqH,关注即送200GB学习资料,链接已置顶!)
上篇我们实现了一幅图像的直方图统计,并可以生成直方图的图片,其实很多图片,是可以把直方图叠加到原始图片上的,这样就更加直观了,如下所示。
所以本篇成工会带着大家实现直方图叠加的功能。其实有了统计的直方图数据,直方图的叠加功能非常容易实现。简单起见,我们先在Y图像上叠加直方图。
我们在img_process_pkt包的image_process类中新建一个hist_overlay的task,如下所示,将直方图的数据和绘制直方图的高度和宽度传递进来,直方图绘制在图像的左下角,如果想绘制在其它位置,大家可以自行进行对应的修改。
仿真文件tb_image_sim如下,将直方图叠加到Y通道图像上,然后绘制图片。
最后我们双击sim文件夹下的top_tb.bat文件,完成系统的自动化仿真。
打开img文件夹,可以看到叠加直方图后的图片。
功能实现了,但是看着图片都是感觉不太舒服,直方图黑色背景占的区域太大了,我们是不是可以去掉背景呢?当然可以了,我们在img_process_pkt包的image_process类中新建一个chnl_overlay的task,如下所示。
tb_image_sim文件中进行相应的修改,再双击sim文件夹下的top_tb.bat文件,完成系统的自动化仿真。打开img文件夹,新生成的图片如下,这样就是自然多了。
如果想把直方图叠加到RGB图片上应该如何操作呢?这个也很简单,将直方图分别叠加到RGB三个通道上,最后再画出来RGB图像即可,如下所示,可以设置直方图的颜色。
再双击sim文件夹下的top_tb.bat文件,完成系统的自动化仿真。打开img文件夹,新生成的图片如下。