创龙教仪-木江鹏 · 6月25日 · 广东

DSP教学实验箱操作教程_数字图像处理:5-5 灰度图像直方图

一、实验目的

学习直方图统计的原理,掌握图像的读取方法,并实现灰度图像的直方图统计结果。

二、实验原理

灰度直方图

灰度直方图是关于灰度级分布的函数,是对图像中灰度级分布的统计。它是将数字图像中的所有像素,按照灰度值的大小,统计其出现的频率。因此灰度直方图是灰度

级的函数,它表示图像中具有某种灰度级的像素的个数,反映了图像中某种灰度出现的频率。

直方图是用来整理计量值的观测数据,分析其分布状态的统计方法,用于对总体的分布特征进行推断。直方图的作用如下:

(1)检验数据分布的类型,分析数据是否服从正态分布,判断数据有无异常;

(2)与产品规格界限做比较,可直观地判断分布中心是否偏离规格中心,以确定是否需要调整并求出其调整量;还可判断数据分布的散差(分布范围)是否满足规格范围的要求,以确定是否采取缩小散差的技术性措施;

(3)用于进行过程能力调查和不合格品率估计;

(4)客观地反映操作者的技术水平和主观努力程度。

从概率的观点来理解,灰度出现的频率可看作其出现的概率,这样直方图就对应于概率密度函数pdf(probability density function),而概率分布函数就是直方图的累积和,即概率密度函数的积分。也可以直接从代表每种灰度的象素数目的直方图来观察。

image.png

image.png

灰度直方图的计算是很简单的,依据定义,若图象具有L(通常 L=256,即 8 位灰度级)

级灰度,则大小为MxN 的灰度图象 f(x,y)的灰度直方图 hist[0…L-1]可用如下计算获得:

(1)初始化 hist[k]=0 ; k=0,…,L-1

(2)统计 hist[f(x,y)]++ ; x, y =0,…,M-1, 0,…,N-1

(3)标准化 hist[f(x,y)]/=M*N

程序设计

程序流程设计中首先要读取工程目录下的BMP图像,接着进行直方图统计,最后保存统计结果。

image.png

视频分析与视觉库

VLIB 是一个TI 的软件库,可加速视频分析开发并将性能提高多达 10 倍。VLIB 是针对 C6x DSP 内核优化的可扩展库。包括的40 多个内核的集合可以实现背景建模与减法、对象特征提取、追踪与识别和低级像素处理。

包括适用于C64x+、C674x 和 C66x 处理器的 Windows 和 Linux 安装可执行文件。每个可执行文件安装一个组件包存储库、一个文档目录、一个 Eclipse 插件目录和一个扩展的组件目录结构,其中包含组件库、头文件和测试示例。

TMS320C6748处理器使用的是vlib_c674x_3_3_2_0。

本实验中的直方图统计算法是基于TI提供的视频分析与视觉库完成的。 VLIB 包含可以实现背景建模与减法、对象特征提取、追踪与识别和低级像素处理的40多个内核。 调用这些例程可加速视频分析开发并将性能提高多达 10 倍。实验中使用的是vlib_c674x_3_3_2_0。

将VLIB安装到CCS5.5 的安装路径,安装完成后会有相应的文件夹出现。源码所在路径:\vlib_c674x_3_3_2_0\packages\ti\vlib\src
image.png

实验源码

初始化缓存

使用 VLIB 的库来为直方图计算进行缓存初始化。使用时,直接调用“VLIB_histogram_1D_Init_U8.h”文件 即可。

API 接口

VLIB_histogram_1D_Init_U8(const uint8_t *restrict binEdges,const int32_t numBins,

uint8_t *restrict histArray);

程序使用 VLIB 的库来进行灰度直方图统计前的缓存初始化,调用的程序源码和使用说明可以安装VLIB后查看。调用的初始化函数中,第一个参数是直方图的边界值,第二个参数是直方图的区间数。第三个参数是内部使用的缓冲器。

image.png

直方图计算

使用 VLIB 的库来从 8 位无符号整数数组计算直方图。使用时,直接调用“VLIB_histogram_1D_U8.h”文件 即可。

API 接口

VLIB_histogram_1D_U8(const uint8_t restrict X, const int32_t numX,const int32_t numBins,const uint16_t binWeight,const uint8_t restrict histArray,uint16_t restrict H1,uint16_t restrict H2,uint16_t restrict H3,uint16_t restrict H);

程序使用 VLIB 的库来进行灰度直方图统计,调用的程序源码和使用说明可以安装VLIB后查看。调用的直方图统计函数中,第一个参数是输入图像的数组,第二个参数是输入图像数组的元素个数。第三个参数是直方图的区间数。第四个参数是直方图中该区域的像素增量。第五个参数是指向内部使用的缓冲器。第六~第八个参数是指向内部使用的数组。第九个参数是用来保存直方图计算结果的数组。

image.png

三、操作现象

本实验所需硬件为实验板、仿真器和电源。

image.png

硬件连接

(1)连接仿真器和电脑的USB接口,

(2)将拨码开关拨到DEBUG模式01111,连接实验箱电源,拨动电源开关上电。

image.png

软件操作

导入工程,选择Demo文件夹下的对应工程

编译工程,生成可执行文件

将CCS连接实验箱并加载程序

程序加载完成后点击运行程序

运行程序后,CCS的Console窗口会打印相关信息。

稍等片刻后,处理完成,程序执行完成后会在断点处停下。

可以通过CCS 的图像显示窗口查看原始灰度图像。

点击工具,选择图像分析工具。在弹出的Image 窗口中右击鼠标,在弹出的菜单栏中选择"Import Properties",选择工程目录下的HIST.txt 配置文件,选择后等待图片加载,加载完成后显示原图片。

  1. txt 配置文件是提前配置好的图像属性,在 Properties 属性可看到 HIST.txt 文件的设置参数。

点击CCS 菜单"Tools->Graph->Single Time",在弹出的界面中设置相关参数,可查看直方图计算的结果。

点击"Window->Show View->Expressions",输入 H 变量,可观察 H 变量的数值。

实验结束后,点击红色按钮退出CCS与实验箱的连接,最后实验箱断电即可。

image.png

推荐阅读
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息