本发明涉及一种烟草检测技术,尤其涉及一种基于python+opencv的六边形中空滤棒快速检测方法。
背景技术:
目前业内对于沟槽滤棒的检测比较多,但对于细支和超细支六边形中空滤棒的检测相对较少,例如董浩、洪深求等人提出醋纤沟槽滤棒特征参数测定方法,《烟草科技》,2010(4):5-8,是通过计算图像的内外轮廓来求出沟槽孔的特征参数,但其采用的是c++和vc++6.0架构开发,研发时长久,对于后期维护和改进并不方便。
针对车间目前外购的细支和超细支六边形滤棒,想要进一步研究六边形中空部分的大小、面积、规整度以及偏心距离等等相关参数对香烟降焦的相关作用,必须要有一套比较有效的测量方法,使得研究人员可以快速的获取六边形中空部位的相关参数。并且由于目前车间对外购的细支和超细支六边形中空滤棒缺乏相关的检测标准和检测设备,所以该检测方法在推动卷包车间的六边形中空滤棒的生产和检测标准制定以及检测设备研发等方面,也存在较为突出重要的意义。
技术实现要素:
为了解决上述的技术问题,本发明的目的是提供一种基于python+opencv的六边形中空滤棒快速检测方法。该方法不仅可以有效检测,并且采用的是python+opencv架构,程序可以实现跨平台调用,支持windows、ios、android以及树莓派、dsp和arm等硬件平台,由于python是一种轻量化设计的脚本语言,研发时长短,开发成本低廉,代码阅读性好,十分便于后期维护更新以及代码重新编写,因为支持的硬件平台较多,后续设备研发时的硬件选择空间较大。
为了实现上述的目的,本发明采用了以下的技术方案:
基于python+opencv的六边形中空滤棒快速检测方法,该方法包括以下的步骤:
1)采用opencv自带的videocapture和read方法调用工业显微镜,获取实时的图像,并完成图像截取;
2)使用cvtcolor、threshold和medianblur方法进行图像的灰度化,二值化以及中值滤波处理,完成图像的预处理操作,得到预处理图像;
3)使用findcontours方法寻找图像的内外轮廓,由于依然存在较多的无法去除的小面积连通域,并且因为内外轮廓的面积较大,通过设定面积阈值的方法,获取面积较大的两个轮廓,即为内外轮廓;
4)完成轮廓提取后,即可进行对轮廓相关参数的检测,利用opencv自带的相关算法,得出内外轮廓的面积,形心位置,以及周长参数,并对相关参数进行标注;
5)采用图像的像素标定软件和摄像头标定板,对像素的大小与实际尺寸进行换算;
6)利用已提取出的内轮廓,计算hu矩,并与标准正六边形进行相关度匹配,计算其相似度。
本发明由于采用了上述的技术方案,采用python+opencv的架构,原理在于python属于脚本程序,编程复杂度低,上手简单,并且其计算效率、编程效率和开发效率都很高,而opencv是目前使用较多的开源图像处理库,内置了大量的图像处理算法,免去了二次开发的成本和时间。目前较常见的系统和硬件平台大多可以有效的支持两者的运行,因此对后续设备研发,硬件的选择也较为丰富。
本发明提出了针对细支和超细支六边形中空滤棒快速检测方法,不仅可以有效检测,并且采用的是python+opencv架构,程序可以实现跨平台调用,支持windows、ios、android以及树莓派、dsp和arm等硬件平台,由于python是一种轻量化设计的脚本语言,研发时长短,开发成本低廉,代码阅读性好,十分便于后期维护更新以及代码重新编写,因为支持的硬件平台较多,后续设备研发时的硬件选择空间较大。
按照上述方法可以快速获取六边形中空滤棒的相关参数,可以帮助实验室工作人员完善目前车间亟待解决的六边形滤棒检测标准和相关计量化工作,并且可以加速日后的检测设备研发,推进车间对外购的细支和超细支六边形滤棒的检测工作。
附图说明
图1位原图。
图2位预处理后的图像。
图3为经过处理后,对内外轮廓,内外轮廓的形心位置进行标注后的图像。
图4,显示的是所需要的各项参数值。
图5为标准正六边形。
具体实施方式
下面结合附图对本发明的具体实施方式做一个详细的说明。
硬件部分采用500万像素放大倍数可调的工业用显微镜以及光亮可调的环形led光源以及一台32位或64位计算机。计算机须安装python以及opencv,软件版本必须匹配才可以使用,比如python使用3.x版本,opencv也最好使用3以上版本,其次需安装numpy库,配合较为复杂的矩阵运算。(以上软件均为开源软件)
该方法包括以下的步骤:
1,采用opencv自带的videocapture和read方法调用工业显微镜,获取实时的图像,并完成图像截取,如图1所示。
2,使用cvtcolor、threshold、medianblur方法进行图像的灰度化,二值化以及中值滤波处理,完成图像的预处理操作,得到预处理图像。对有部分小面积连通域可以选择去除也可以不去除,并不影响后续的轮廓提取。
3,使用findcontours方法寻找图像的内外轮廓,由于依然存在较多的无法去除的小面积连通域,并且因为内外轮廓的面积较大,因此我们通过设定面积阈值的方法,可以获取面积较大的两个轮廓,即为内外轮廓。
4,完成轮廓提取后,即可进行对轮廓相关参数的检测,利用opencv自带的相关算法,我们可以得出内外轮廓的面积,形心位置,以及周长等参数,也可以使用自定义的参数计算方法进行计算获取相关参数,并对相关参数进行标注如图3所示。
5,采用图像的像素标定软件和摄像头标定板,对像素的大小与实际尺寸进行换算。
6,利用已提取出的内轮廓,我们可以计算其hu矩,并与图5所示的标准正六边形进行相关度匹配,计算其相似度。