基于OpenCV的煤泥浮选尾矿图片采样分析

2016-01-19 12:34
选煤技术 2016年3期
关键词:灰分像素点尾矿

高 鹏

(1.中煤科工集团唐山研究院有限公司,河北 唐山 063012;2.华北理工大学 电气工程学院,河北 唐山 063009;3.河北省煤炭洗选工程技术研究中心,河北 唐山 063012)

计算机视觉是一个迅速发展的领域,摄像机价格不断降低且功能越来越强、计算能力的普及和视觉算法的日臻成熟都带动了该领域的发展。OpenCV(计算机视觉库)在计算机视觉的发展中扮演着重要的角色,该视觉库使数千名研究人员在视觉领域能够获得更高的生产力[1]。传统的浮选尾矿在线检测主要集中在γ射线检测法和光电式测灰法两种方法。近年来,随着图像识别技术的发展,利用计算机视觉分析煤泥浮选尾矿图片的灰度,再根据经验公式推导出对应的尾矿灰分的方法正在逐步兴起。

包玉奇[2]等人提出以灰度值子区间的像素点分布构成建立特征向量,对尾矿灰分进行识别的方法,使特征敏感度得到一定程度的增强,尾矿识别精度提高比较明显;但该研究所用样本是在实验室配制的,缺少现场工业性试验的验证。王晓坤[3]等人研制的浮选尾矿灰分在线检测装置,解决了浮选尾矿灰分无法直接测量的难题,克服了人工采制化带来的化验误差大、实时性差、劳动强度大、工序繁琐的缺点,减小了工艺指标控制的调整时间;但该装置采用原始图像灰度值比对方法来检测尾矿灰分,误差干扰偏大,仅适用于环境不复杂的工况条件。工业现场利用计算机视觉技术分析尾矿灰分,其中的关键环节是如何合理地剔除光照不均和化学流变产生的泡沫噪点影响。文章重点分析了如何在算法中消除这类因素的不良影响,从而得到更客观的、可用于计算分析的尾矿图片。

1 硬件与软件平台

(1)硬件平台。煤泥浮选尾矿图片采样分析系统的硬件平台主要包括工控机、USB视频采集卡、工业CCD相机。在实际操作过程中,可根据试验需要选择合适的硬件设备。

(2)软件平台。在综合考虑的基础上,利用USB视频采集卡,结合VS2010平台开发浮选尾矿图片采样分析系统。图像处理算法库选择OpenCV,其包含了一系列C函数和少量C++函数,能够实现图像处理和计算机视觉方面的很多通用算法。它拥有包括300多个C/C++函数的跨平台的中、高层API,无需依赖其他的外部库,通过调用OpenCV算法库,即可在前人已完成的成熟算法基础上迅速开展自己的工作。OpenCV作为一个基本的计算机视觉、图像处理和模式识别的开源项目,可以直接用于很多领域,是二次开发的理想工具[4]。

OpenCV库拥有的显著优点为:独立于操作系统、硬件及图形管理器,可以跨平台操作;无论是非商业应用还是商业应用,都无需付费;计算速度快,使用方便;可扩展性好,包括底层和高层的应用开发包;图像/视频载入、保存及获取模块具有通用性。

2 系统功能

该系统的首要功能是定时采集图片,即根据设定的时间间隔对特定对象拍照;其次是剔除干扰,包括光源反光和气泡反光造成的干扰;再次是按照设定的时间存储图片,图片依据采集时间命名;最后是记录采集时得到的灰度数据,根据内部建立的公式将其转换成尾矿灰分数据并输出。系统检测流程框图如图1所示。

图1 系统检测流程框图

3 程序的实现

程序开头是加载必要的头文件。头文件作为一种包含功能函数、数据接口声明的载体文件,主要用于保存程序的声明,而定义文件用于保存程序的实现。程序中的头文件主要包括“highgui.h”、“cv.h”、“cxcore.h”、“windows.h”、“atltime.h”、“cvaux.h” 等。该程序的加载头文件如图2所示。

图2 加载头文件

在安装好USB视频采集卡驱动后,需在程序中指定采集的图片来源。该采集卡属于外部来源,故设置为“CAM(1)”,对应的源程序为 “CvCapture *capture=cvCaptureFromCAM(1);”。 接下来是创建采样窗口,程序中设置了4个显示窗口,分别为“原图”、“灰度图”、“灰度分布图”、“二值图”,该步的操作主要包括定义字符串变量“const char”,设置窗口名称 “cvNamedWindow”,设置窗口大小 “cvResizeWindow”,排布窗口位置 “cvMoveWindow”。显示窗口设置如图3所示。

图3 显示窗口设置

在接下来的while循环中,利用OpenCV自带的CV_BGR2GRAY函数命令,将彩色图片转换为灰度图片,再通过CV_THRESH_BINARY函数将灰度图片转换为二值图片,二值图片转换时阈值暂定为185。阈值处理的操作过程是通过算法生成一个阈值,如果图像中某像素的灰度值小于该阈值,则将该像素的灰度设置为0或255,否则灰度值设置为255或0[5]。图片色彩转换设置如图4所示。

图4 图片色彩转换设置

接下来是以时间为名称保存灰度图片和二值图片,定义时间字符串变量,命名图片格式,读取系统时钟,此时分别用到了GetLocalTime(&sysTime)、GetCurrentTime()、cvSaveImage三个函数。保存图片设置如图5所示。

在算法实现环节,首先是定义灰度图中的总灰度值为M0,总像素点数为N0;二值化后的图片总灰度值为M1,白色像素点的个数N1。由于二值化后的图片总灰度值均是由白色像素点组成,假设每一个干扰气泡或反光点的灰度值近似为255,故可求出干扰点个数,即N1=M1/255。原始图片剔除干扰后的真实灰度值为(M0-M1),有效像素点为(N0-N1);真实的平均灰度即为(M0-M1)/(N0-N1);最后通过“ofstream ofs”函数将采样结果存入EXCEL表格。程序实现过程如图6所示。

利用Sleep函数设定采样间隔时间,通过cout在windows控制台按照设定时间输出采样结果,并销毁窗口,释放内存,最终跳出循环。

4 输出结果与分析

程序运行后的界面输出如图7所示。左侧上方是windows控制台的输出,按照采样日期和时间分别输出原始灰度值、剔除气泡和反光后的灰度值、总像素点个数、噪点像素点个数。右侧为实时输出的采样图片,其中左上角是相机采集的原始图片,右上角是经过转换的灰度图片(灰阶图),左下角是灰度分布图,右下角是二值图。灰度分布图可以反映图象中每种灰度值出现的频率,其横坐标是灰度级,纵坐标是该灰度级出现的频率。

图6 程序实现过程

图7 程序运行界面

从灰度图片可以看出,在浮选尾矿流过闸板位置时出现一个小“瀑布”,该位置最易形成反光干扰;浮选尾矿槽的边缘出现了一些堆积气泡,也容易造成反光干扰。通过二值图中亮点的计算,能够将最终灰度图中的反光和气泡干扰滤掉。

将不同时刻的原始灰度值和修正灰度值与化验灰分值进行比较,生成的对比曲线如图8所示。其中,灰度值范围在0~255之间,灰分值区间在0~100%之间,坐标轴的横坐标代表采样次数,纵坐标分别为灰度均值和尾矿灰分百分数。

由图8可知:剔除气泡、反光干扰后,图片的灰度值与化验所得灰分值的对应关系更加明显。

图8 原始灰度值与修正灰度值及化验灰分曲线

5 结语

为了改进浮选尾矿的采样分析算法,以煤泥浮选尾矿图片为研究对象,基于OpenCV开源的计算机视觉函数库、USB视频采集卡、VS2010平台开发出浮选尾矿图片采样分析系统。该系统能够有效剔除采样过程中的光照和气泡干扰,使图片中数据的客观性、真实性得到显著提高,这为验证图片灰度与浮选尾矿灰分的关系提供了可靠的解决方案。

[1] BRADSKI G,KAEHLER A.学习OpenCV[M].于仕琪,刘瑞祯,译.北京:清华大学出版社,2009:XV.

[2] 包玉奇,杨洁明.基于机器视觉的浮选尾矿灰分检测[J].煤炭技术, 2015, 34(9):313-316.

[3] 王晓坤,张卫军,高 鹏,等. 一种浮选尾矿灰分在线检测装置:201320375280.5[P]. 2013-11-20.

[4] 陈胜勇,刘 盛.基于OpenCV的计算机视觉技术实现[M]. 北京:科学出版社,2008:8.

[5] 杨淑莹.VC++图像处理程序设计[M].北京:清华大学出版社,2005:58.

猜你喜欢
灰分像素点尾矿
基于灰分回控的智能密度控制系统在寨崖底选煤厂的应用
灰分在线检测对选煤智能化建设作用的思考
煅烧高镁磷尾矿制备硫氧镁胶凝材料
基于单种煤成焦灰分预测焦炭灰分的研究及应用
《固体矿产尾矿分类》等3项行业标准于2021年6月1日起实施
不同重量僵蚕总灰分含量的比较研究
基于局部相似性的特征匹配筛选算法
某金矿重选尾矿回收金、铜的工艺研究
基于5×5邻域像素点相关性的划痕修复算法
铁尾矿资源的研究与应用