一种基于Android平台的真菌毒素含量检测方法与流程

文档序号:16333316发布日期:2018-12-19 06:20阅读:206来源:国知局
一种基于Android平台的真菌毒素含量检测方法与流程

本发明涉及图像处理和软件开发技术领域,具体涉及一种真菌毒素含量检测方法。

背景技术

食品安全作为全球公共性卫生安全问题,直接关系民生。真菌毒素(mycotoxins)作为产毒真菌生长中的分泌物,是食品及农产品中的主要污染物之一。据联合国粮食农业组织(foodandagricultureorganizationoftheunitednations)的统计,世界各地每年被真菌毒素污染的谷物约占25%,其中2%受严重污染的农产品会因此丧失营养价值及经济价值,给整个粮食产业造成数百亿美元的巨大损失。

现阶段发现的真菌毒素有300余种,其中常见的种类有黄曲霉毒素(aflatoxins,afb1)、赭曲霉毒素(ochratoxin,ota)、玉米赤霉烯酮(zearalenone,zen)等。它们皆不易于溶于水,可溶于有机溶液,具有熔点高,化学性质相对稳定的理化性质。真菌毒素主要通过污染饲料、谷物、食物从而间接对人畜的健康造成危害。为了防止食品污染,对食品进行真菌毒素的检测至关重要。而目前传统的检测方法需要昂贵的仪器,并且操作繁琐,不能达到大批量即时便携检测的目的。

androidstudio是一款集成开发工具软件,在该平台上可以对基于android的项目进行开发调试,而且还拥有可视化布局编辑器,极大地方便了开发人员在应用开发过程中的可预览效果,方便及时进行调整和修改。

opencv是一个开放源代码的计算机视觉和机器学习软件库。由于具有高效率和轻量级的优势,常作为计算机视觉应用领域通用的设施,便于将机器感知应用于商品产业领域。



技术实现要素:

基于现有技术,本发明提出了一种基于android平台的真菌毒素含量检测方法,将食品安全检测与日常生活中常见的智能手机结合,以android开发技术、图像处理技术等为理论基础对毒素的荧光强度进行检测,得到真菌毒素含量,从而实现对食品中多种真菌毒素的同时检测。

本发明的一种基于android平台的真菌毒素含量检测方法,该方法包括以下步骤:

步骤一、利用生物技术对真菌毒素进行荧光标记,黄曲霉、赭曲霉和玉米赤霉烯酮这三种毒素分别被荧光标记成红、绿、蓝小球,用980nm波长的激光激发拍摄图像,拍照得到980图像;然后再用488nm波长的激光激发拍摄图像,拍照得到二抗标记的488图像,作为检测信号;

步骤二、对980图像依序进行以下处理:

(2-1)对980图像进行颜色分离,设定h、s、v三通道范围对图像的分离判断依据如下:

当满足100<h<124、43<s<255、46<v<255时,分离出红色小球;

当满足35<h<77、43<s<255、46<v<255时,分离出绿色小球;

当满足156<h<180、43<s<255、46<v<255时,分离出蓝色小球;

(2-2)对980图像颜色分离后图像进行灰度化处理,将原来的三通道图像变为单通道图像;

(2-3)对进行灰度处理后的图像进行噪声干扰的滤除处理,调用高斯滤波gaussianblur函数继续对图像进行滤波处理,高斯滤波gaussianblur函数表达式为:

其中,(u,v)表示图像的坐标值;σ表示标准差;

将灰度图像和高斯核函数进行卷积操作得到滤波处理后的图像;

(2-4)对经上述去噪处理后的图像进行二值化处理,即选用单阈值化方法将图像分割为只有0和1两个值的二值图像,分割为背景和待测物两个部分,灰度值判断公式如下:

其中,f(x,y)为灰度图像上(x,y)点处对应的灰度值,(x,y)为坐标值;t为图像阈值,根据图像由自适应阈值确定具体值,若该点灰度值大于选择的阈值t,则f(x,y)取1;若该点灰度值小于或等于选择的阈值t,则f(x,y)取0;

(2-5)利用开运算对经二值化处理后的图像进行去噪处理,表达式为:

open(a)=d(e(x))

其中,x为被测图像,a为被测图像的每一像素点,d()为膨胀运算函数,e()为腐蚀运算函数;该表达式是先执行腐蚀运算,通过减小图像中的像素面积来消除图像中待测小球的所有边界点,去除噪声点的干扰;再膨胀执行膨胀运算,通过增大图像中的像素面积来合并所有与被测物接触的背景点,以使得到的待测物小球完整,避免小球中间出现孔洞;

腐蚀运算表达式为:

膨胀运算表达式为:

其中,b为扫描图像每个像素点的3×3结构元素,用结构元素与二值图像进行与操作,ba为结构元素b平移距离a后的下一个像素点区域,a与b的交集为a被b腐蚀的区域;a与b的并集为a被b膨胀的区域;

(2-6)分别对红、绿、蓝小球的二值图像进行连通域的提取;通过调用findcontours函数对分离颜色通道后的二值图像进行连通域提取,该函数输出的contours参数为连通域位置,调用drawcontours函数画出连通域具体位置。得到红、绿、蓝小球的连通域位置记为red、green、blue;

步骤三、对488图像进行以下处理:

(3-1)与步骤(2-4)同样的方式进行二值化处理和与步骤(2-5)同样的方式进行去除噪声处理;

(3-2)对488图像也进行hsv处理,其中所得v通道的亮度值即为小球在图像中的亮度平均值;用488图像与red、green、blue作与运算从而实现不同颜色的连通域匹配,得到三种不同毒素的亮度值,由亮度值与浓度值间的关系,间接得到三种不同真菌毒素的浓度值;最终,ota、zen、afb1的亮度值x与浓度值y间满足:488图像显示红、绿、蓝三种小球的亮度信息值,

ota:y=10-0.12839x+14.59849(ng/ml)

zen:y=10-0.03131x+14.59849(ng/ml)

afb1:y=10-0.0784x+9.7425(ng/ml)

与相比,本发明具有以下优点:

1、能够实现对不同种类的真菌毒素进行同时检测;

2、能够提高运算速度,有利于缩短运算时间。

附图标记

图1为本发明的一种基于android平台的真菌毒素含量检测方法流程图;

图2为传统的rgb颜色分离得到的图像模拟区域图,(a)原图、(b)红色小球检测图、(c)绿色小球检测图、(d)蓝色小球检测图;

图3为本发明hsv分离得到的图像模拟区域图,(a)原图、(b)红色小球检测图、(c)绿色小球检测图、(d)蓝色小球检测图;

图4为形态学运算的腐蚀过程模拟示意图;

图5为形态学运算的膨胀过程模拟示意图;

图6是亮度与浓度值间的线性关系图。

具体实施方式

本发明通过拍照得到毒素图像后,以android开发技术、图像处理技术等为理论基础对毒素的荧光强度进行检测,通过相应的荧光强度和毒素间的线性关系,得到真菌毒素含量,从而实现对食品中多种真菌毒素的同时检测。故本设计先后对图像进行了灰度化处理、高斯低通滤波、二值化、开运算、提取连通域操作。

下面将结合附图对本发明的实施方式作进一步的详细描述。

如图1所示,为本发明的一种基于android平台的真菌毒素含量检测方法流程图。具体包括以下步骤:

步骤一、利用生物技术对真菌毒素进行荧光标记,将待测物滴到玻璃片上并在显微镜下观察,此时黄曲霉、赭曲霉和玉米赤霉烯酮这三种毒素分别被荧光标记成红、绿、蓝小球,用980nm波长的激光激发拍摄图像,拍照得到980图像;然后再用488nm波长的激光激发拍摄图像,拍照得到二抗(一种蛋白质,在488nm激光激发下能发光)标记的488图像,作为检测信号;

步骤二、对980图像依序进行以下处理:

2-1、对980图像用hsv分离颜色,在六角椎体模型颜色空间hsv中,h(hue)代表色调,范围为0~2π;s(saturation)代表图像的饱和度,即颜色接近光谱色的程度;v(value)代表亮度,范围为0(黑)~100(白):先调用opencv中imgproc模块的color_bgr2hsv将rgb图像转化为hsv图像,然后设定h、s、v三通道范围对图像进行颜色分离,经过试验验证:

当满足100<h<124、43<s<255、46<v<255时,分离出红色小球;

当满足35<h<77、43<s<255、46<v<255时,分离出绿色小球;

当满足156<h<180、43<s<255、46<v<255时,分离出蓝色小球;

如图2所示,为传统基于rgb颜色分离得到的图像模拟区域图,分离出的红绿蓝小球不仅形态上不完整,而且亮度上也较暗。

如图3所示,为本发明分离得到的图像模拟区域图,分离得到的小球形态上更完整,而且亮度上与原图也无太大差异,更利于后期对图像的处理。

2-2、通过调用opencv中imgproc模块中的color_bgra2gray实现980图像颜色分离后图像的灰度化处理,将原来的三通道图像变为单通道图像;

2-3、图像灰度化后仍存在着噪声干扰,调用opencv中的高斯滤波gaussianblur函数继续对图像进行滤波处理,抑制图像的噪声,高斯滤波器是一类根据高斯函数的形状来选择对应权值的线性平滑滤波器,它一般适用于处理服从正态分布的噪声,本步骤的二维高斯函数表达式为:

其中,(u,v)表示图像的坐标值;σ表示标准差;

将灰度图像和高斯核函数进行卷积操作得到滤波处理后的图像;

2-4、对经上述去噪处理后的图像进行二值化处理,即选用单阈值化方法将图像分割分为背景和待测物两个部分,阈值选择采用最大类间方差法(otsu'smethod,otsu),通过计算背景和待测物两者间的类间方差值,当类间方差值为最大时所对应的灰度值为最佳阈值t;灰度值判断公式如下:

其中,f(x,y)为灰度图像上(x,y)点处对应的灰度值,(x,y)为坐标值;t为图像阈值,根据图像由自适应阈值确定具体值,若该点灰度值大于选择的阈值t,则f(x,y)取1;若该点灰度值小于或等于选择的阈值t,则f(x,y)取0,将图像分割为只有0和1两个值的二值图像;

2-5、对经二值化处理后的图像进行去噪处理:经前述步骤至步骤五处理后的图像中的待测小球可能出现错判孔洞、边缘不平滑和背景中仍散布着部分小噪声点等情况,为了避免这种现象对后期结果的影响;开运算可以达到消除小物体,在纤细处分离物体,平滑较大物体的边界同时不明显改变其面积的作用。本步骤选取形态学运算对图像进行去噪处理,形态学运算中最基础的运算是腐蚀和膨胀。

如图4所示,腐蚀运算通过减小图像中的像素面积来消除待测物的所有边界点,以此去除噪声点的干扰,表达式为:

如图5所示,膨胀运算通过增大图像中的像素面积来合并所有与被测物接触的背景点,以此填补孔洞,表达式为:

其中,a为被处理图像,b为结构元素,ba为结构元素b平移距离a后的结果,a与b的交集为a被b腐蚀的区域;a与b的并集为a被b膨胀的区域;假设w为图像的宽,h为图像的高(w<h),a取值满足3<a<w-3。

对同一幅图像先膨胀再腐蚀称为闭运算,以此平滑轮廓、填充样本内比结构元素还小的洞并连接狭窄缺口,表达式为:

close(x)=e(d(x))(5)

若对图像先腐蚀再膨胀称为开运算,它除了也具有平滑边缘的作用外,还能消除标记的小球周围突出的细小毛刺部分、分离两个小球间狭小的连接,表达式为:

open(x)=d(e(x))(6)

其中,x为被测图像,d()为膨胀运算函数,e()为腐蚀运算函数。

根据980灰度处理后的图像特点,选用开运算对图像进行去噪处理,调用opencv的imgproc模块中的getstructuringelement和morphologyex函数即可实现图像开运算;

接着分别对红、绿、蓝小球的二值图像进行连通域的提取,调用opencv中的findcontours和drawcontours函数分别提取出不同毒素的位置;

步骤三、对488图像进行以下处理:

488图像显示红、绿、蓝三种小球的亮度信息值,对488图像进行和980图像一样的二值化处理去除噪声以缩短运算时间后,对488图像也进行hsv处理,通过提取h通道的亮度值计算不同小球在图像中的亮度平均值;通过与980图像不同颜色的连通域匹配,得到三种不同毒素的亮度值。

如图6所示,由亮度值与浓度值间的关系,间接得到三种不同真菌毒素的浓度值。最终,ota、zen、afb1的亮度值x与浓度值y间满足:

ota:y=10-0.12839x+14.59849(ng/ml)(7)

zen:y=10-0.03131x+14.59849(ng/ml)(8)

afb1:y=10-0.0784x+9.7425(ng/ml)(9)

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1