实验结果处理
R 255 X 255 x 0.33333
G 255 Y 255 y 0.33333
表5-5 白度基准值的各项参数
B 255 Z 255 z 0.33333
由式(4-9)可知样品亮度,联合表5-1以及
表5-2可得样本图像1和样本图像2的亮度值分别如下表5-6所示(数据与表5-1&表5-2相对应):
面粉样品图像1 亮度Y 185.772 190.772 190.632 139.918 面粉样品图像2 134.69 87.832 表5-6 面粉样品图像1、2的亮度值
根据前文所述,按照标准我们将氧化镁板亮度值记作
。此
,按照标准可知
将用作为100%白度线性基准,由于零亮度对应零白度,得到亮度
得到,结果如下表
白度线性转换关系,则面粉样品白度可有公式5-7所示:
面粉样品图像1 面粉样品图像2 BD 0.728518 0.748125 0.747576 0.548698 0.528196 - 29 -
实验结果处理
0.344439 表5-7 面粉样品的白度
5.2 面粉麸星的归一化算法
第四章的4.2所介绍将麸星从面粉图像中识别出来只是完成了工作的第一步,因为此时识别出来的只是被判别为属于麸星的一系列像素点,而在面粉图像中,一个麸星的面积往往包含几个甚至几十个像素点。所以,接下来的问题就是如何对这些像素点进行分类,找出归属于同一个麸星的像素点然后才能统计出麸星的数量。本文在对这些属于麸星的像素点进行归一化处理时,将介绍最适合的一种编程算法,即“圆心赋零”法。首先,根据4.2.4节所述的方法找出符合麸星点判别条件的所有像素点的坐标并存储到专用的数组中(横坐标和纵坐标分别存在两个数组);然后,以数组(横坐标和纵坐标同时使用)的第一个点为起始点(即“圆心”),逐个判断数组后面的坐标是否有起始点周围邻域的点,如果有,则停止检测并将“圆心,,赋零,接着再以第二个点为起始点继续检测,如此这般一直到全部检测完毕。
但这其中还存在一个问题——如何判定哪些点是“圆心“周围的点,由于数组中存放的是像素点的坐标值,因此采用邻域判别法进行判断即可。例如:起始点为(3,3),那么我们只需看数组中剩下的坐标值中是否有(2,2),(2,3),(2,4),(3,2),(3,4),(4,2),(4,3),(4,4)即可(根据大量检测试验,判断“原点\周围24邻域的点已够用,如果想提高精度可扩大范围),如果有,即存在周围的点,反之则不存在,如图5-3方像素点的坐标值,其余全部为零,那么最后只需重新扫描数组统计其中不为零的点的个数即为麸星的个数。
- 30 -
实验结果处理
图5-3 邻域判别模板
除此之外,还有一点需要注意,拍摄的图像中,会因为一些外界因素,出现非麸星的“干扰点”,这些“干扰点\会使得检测出的麸星个数存在误差。通过大量的实验数据分析可知,一般一个麸星点只包括几个到几十个像素点,而“干扰点”往往包括很多像素点,因此可利用麸星面积远小于“干扰点\的面积来判断出这些“干扰点\并将它们去除,最终得到准确的麸星个数。在计算麸星面积时本文采用的是“圆心统计\法,即以一个点为圆心,统计出有多少个其周围邻域内的点。首先,在统计麸星个数的同时将横坐标数组和纵坐标数组中不为零的数统一存放在两个新的数组中;然后,以新的数组中的第一个点为“圆心\点,逐个判断原来的数组(存放所有麸星像素点的数组)中的点是否为“圆心\周围邻域的点,如果是则累加;接着再以新的数组中的第二个点为“圆心\继续检测,直到所有的麸星面积都统计完毕。在这个过程中仍需使用上述的那个判别子程序,不过判断范围要扩大到“圆心”周围的25邻域(根据具体情况范围可自定)。计算麸星个数和面积的同时,如果有需要还可计算出麸星面积的百分比、麸星位置等数据。
根据3.1.3节可知本文实验所选用的CCD摄像头的像素尺寸为摄得到的面粉麸星检测样品的RGB图像的参数信息如下表:
尺寸
宽 2046像素
高 1536像素
水平分辨率 96dpi
垂直分辨率 96dpi
。拍
表5-8 面粉麸星检测样品图像参数
- 31 -
实验结果处理
图5-4 面粉麸星检测样品的RGB图像
本文选取图5-4中的麸星之一用来测量麸星面积,截图如下:
图5-5 面粉麸星RGB图
- 32 -