[0046] 以下结合附图对本发明作进一步说明。
[0047] 如图1所示,一种基于计算机视觉的pH试纸检测方法,具体如下:
[0048] 步骤1、利用CCD面阵相机采集pH试纸的彩色图像如图2所示,对采集到的彩色图像通过灰度世界法做白平衡处理。经过白平衡处理后的图片更加趋向于自然光下的图片。灰
度世界法是白平衡中最常用的算法,在pH试纸检测中,灰度世界法也是白平衡处理中稳定
性好的算法之一,将输入RGB彩色图像拆成R、G和B三个通道,得到单通道的R、 G、B图像。将
R、G、B图像分别定义为Gk(x,y),k=1,2,3。G1(x,y)为R(红色)通道图像;G2(x,y)为G(绿色)
通道图像;G3(x,y)为B(蓝色)通道图像。
[0049] 利用各通道的平均值获取各通道的增益,再将增益返回到对应的通道中,得到增益后 R、G、B图像G′k(x,y)如式(1)所示,k=1,2,3。
[0050]
[0051] 式(1)中,m、n分别为图像Gk(x,y)的行数、列数,m·n是图像gi(x,y)的像素点个数;P表示的是图像的R、G、B三个分量的平均值趋于同一个灰度,这里的P定义为各通道最大值
的一半,即P=128。
[0052] 之后,将增益后R、G、B图像G′k(x,y)合并为单张的三通道图片T[f(x,y)]。
[0053] 步骤2、如图3所示,背景确定的情况下,需要在HSV空间下提取感兴趣的区域,利用白平衡后的图片T[f(x,y)]从RGB空间立方体模型转化为HSV空间锥型模型,得到图片T[f
(x,y)]的各像素色度H值、饱和度S、透明度V,具体过程如下。
[0054] 计算图片T[f(x,y)]中各像素点的R、G、B三通道中的最大像素值 maxij=max(Rij,Gij,Bij)。计算图片T[f(x,y)]中各像素点的R、G、B三通道中的最小像素值minij=min(Rij,
Gij,Bij)。计算图片T[f(x,y)]中各像素点的像素极差△x,ij=maxij‑minij。 i=1,2,…,m;j
=1,2,…,n;max(Rij,Gij,Bij)为Rij、Gij、Bij中的最大值;min(Rij,Gij,Bij)为Rij、Gij、Bij中的
最小值;Rij为坐标(i,j)像素点的R通道像素值;Gij为坐标(i,j)像素点的G通道像素值;Bij
为坐标(i,j)像素点的B通道像素值。
[0055] 计算坐标(i,j)像素点的透明度Vij=maxij;坐标(i,j)像素点的饱和度Sij=△x,ij/maxij;若maxij为R通道中的像素值;则坐标(i,j)像素点的色度 若
maxij为G 通道中的像素值,则坐标(i,j)像素点的色度 若maxij为B通
道中的像素值,则坐标(i,j)像素点的色度
[0056] 背景确定为白色、黑色、灰色,试纸的颜色为黄色。白色、黑色、灰色和黄色在HSV 模型下对应H、S和V范围如下表(1)。
[0057] 颜色 黑 灰 白 黄H 0~180 0~180 0~180 98~101
S 0~255 0~43 0~30 43~255
V 0~46 46~220 221~225 46~255
[0058] 表(1)白色、黑色、灰色、黄色在HSV空间下对应的HSV值
[0059] 将图片T[f(x,y)]中H、S、V符合白色、灰色、黄色的像素点均转化为黑色;得到统一h
的背景。从而获得去背景图像T[f(x,y)]如图3所示。
[0060] 步骤3、如图4所示,利用二值形态学的方法将去背景图像Th[f(x,y)]中对应的背景区域(黑色区域)像素点置为0,前景像素点(非黑色区域)置为1(置为白色,在RGB 模型下
为(255,255,255)),得到二值图。并对二值图进行腐蚀和膨胀。腐蚀、膨胀后得到去毛刺二
值图T′[f(x,y)]。
[0061] 腐蚀过程如图5所示,A为使用背景元素填充集合形成一个矩阵阵列,该阵列中,背景元素为白色方块组成,所有阴影方块组成一个集合,每个阴影方块是集合的一个元素; B
为结构元素,结构元素由呈十字形排列的五个像素点组成。结构元素的原点位置结构元素
的中心位置(图5中B部分的黑圆点);C为腐蚀后的二值图。让B在A上运行,以便B的原点访问
集合的每一个元素,从而创建一个新的集合。B的原点映射到集合上每个元素时,如果B被集
合完全包围,则将该位置标记为新集合的一个成员,所有成员组合起来形成C中图像阴影的
集合。
[0062] 将腐蚀后的图片进行膨胀,膨胀可以增强目标图像的连通域。膨胀过程如图6所示, A为使用背景元素填充集合形成一个矩阵阵列,该阵列中,背景元素为白色方块组成,
所有阴影方块组成一个集合,每个阴影方块是集合的一个元素;B为结构元素,其黑圆点表
示原点;C为膨胀后的二值图。膨胀操作的结构元素与腐蚀操作的结构元素完全相同。让 B
在A上运行,以便B的原点访问集合的每一个元素,从而创建一个新的集合。B的原点映射到
集合上每个元素时,则将B覆盖的所有位置标记为新集合的成员,所有成员组合起来形成C
中图像阴影的集合。
[0063] 步骤4、利用基于梯度的Sobel算子检测方法对去毛刺二值图T′[f(x,y)]的目标区域进行轮廓提取,进而找到兴趣区域的边缘。
[0064] 基于梯度的Sobel算子检测方法具体如下:
[0065] 4‑1.在边缘检测之前,确定使用3*3的卷积核,卷积核分为x方向和y方向上的卷积核,其两个方向的卷积核模板如下:
[0066] X方向上的卷积核模板 Y方向上的卷积核模板
[0067] 4‑2.使用Sobel算子分别计算x方向和y方向上的边缘轮廓。
[0068] 用去毛刺二值图T′[f(x,y)]上除边缘的一圈像素点之外的所有像素点分别作为目标像素点进行X方向轮廓检测和Y方向轮廓检测。
[0069] 对目标像素点进行X方向轮廓检测和Y方向轮廓检测的方法如下:以目标像素点 t′(x,y)为中心的九宫格图像矩阵作为目标像素矩阵。将目标像素矩阵与X方向上的卷积核
模板SX点乘(矩阵点乘,得到数量积),得到目标像素的X向检测值zX(x,y)。将目标像素矩阵
与Y方向上的卷积核模板SY点乘,得到目标像素的Y向检测值zY(x,y)。
[0070] 根据各像素点对应的X向检测值zX(x,y)和Y向检测值zY(x,y),建立轮廓图像 Z(x,y)。轮廓图像上坐标为(x,y)的像素点的像素值
[0071] 步骤5、找到轮廓图像Z′(x,y)中面积最大的轮廓和面积最大轮廓的中心坐标。
[0072] 5‑1.提取轮廓图像Z′(x,y)中最大的轮廓,将轮廓图像Z′(x,y)中除最大轮廓外的其他区域均改为黑色,得到轮廓图像Z′(x,y)。
[0073] 5‑2.计算轮廓图像Z′(x,y)的x向一阶矩m10如式(2)所示,y向一阶矩如式(3)所示。
[0074]
[0075]
[0076] 5‑3.计算轮廓图像Z′(x,y)中的轮廓中心坐标 其中,m00为轮廓图像|S′x,y|中轮廓的面积,即
[0077] 步骤6、以步骤5所得的轮廓中心坐标 作为中心点在去背景图像Th[f(x,y)]中确定目标区域;目标区域呈矩形,长度为2c+1,宽度为2r+1,5≤c≤10;5≤r≤10。
[0078] 具体为:目标区域的左上角坐标为 左下角坐标为 右上角坐标为 右下角坐标为
[0079] 步骤7、输出步骤6所得的目标区域在HSV空间模型下H通道像素的平均值;将该平均值与pH试纸比色卡各颜色条在HSV空间模型下的H值对比,确定被测试剂的pH值。
[0080] pH试纸比色卡在HSV空间模型下H的值如表(2):
[0081] Ph 1 2 3 4 5 6 7 8 9 10 11 12 13 14H 128.661 120.984 111.027 104.784 99.904 96.524 94.033 84.797 53.287 3.792 5.670 167.031 155.641 150.798 [0082] 表(2)比色卡在HSV空间模型下H的值。