肖文东,马本学
(石河子大学机械电气工程学院,石河子832003)
基于OpenCV哈密瓜纹理特征的提取
肖文东,马本学
(石河子大学机械电气工程学院,石河子832003)
采用400~1000 nm高光谱成像仪获取哈密瓜高光谱图像,并选取哈密瓜纹理特征图像,在VC++6.0环境下利用开源计算机视觉库OpenCV进行编程,通过对图像的形态学去噪、平滑处理、消除背景以及二值化处理,获取哈密瓜纹理的二值化图像,实现了对哈密瓜高光谱图像纹理特征的提取。实验结果表明:该方法可以快速有效地实现哈密瓜纹理特征提取。
OpenCV;高光谱图像 ;哈密瓜;纹理
哈密瓜是新疆重要的瓜果之一。由于其经济价值高,是农民重要的增收途径之一。哈密瓜品质分级检测是影响哈密瓜品质及销售的重要环节,长期以来,哈密瓜的检测方法一直采用原始的人工分级,检测效率低、速度慢并且很难精确评价其品质,在一定程度上影响了哈密瓜市场上的竞争力[1]。
高光谱图像技术集成光谱分析和数字图像技术二者的优势,其光谱技术能检测哈密瓜的内部品质(糖度、坚实度及成熟度)等,图像技术又能全面反映哈密瓜的外在特征(表面缺陷、大小及网纹)等。所以高光谱图像技术能对哈密瓜的内外部特征进行全面分析。哈密瓜条带与网纹的整齐性以及网纹品种的网纹率是哈密瓜品质分级的重要指标[2]。因此,研究哈密瓜纹理特征提取具有重要意义。
OpenCV是由Intel公司面向应用程序开发者开发的开放式图像处理及计算机视觉函数库。与其它图像函数库相比,OpenCV是一种源码开放式的函数库,开发者可以自由地调用函数库中的相关处理函数。OpenCV中包含300多个处理函数[3-4],具备强大的图像和矩阵运算能力,可以大大减少开发者的编程工作量,有效提高开发效率和程序运行的可靠性。OpenCV实现了大量通用算法,涉及到图像处理、结构分析、运动检测、摄像机定标、三维重建以及机器学习等方面,并有较高的运行效率。
OpenCV作为开放的计算机视觉资源代码,提供了丰富的图像及计算机视觉处理函数,为数字图像处理、计算机视觉技术应用提供了极大的方便。目前,国内已有学者利用OpenCV实现了计算机视觉图像处理技术。王福斌等[5]利用OpenCV实现了对采集图像进行边缘检测及角点探测等技术;谢捷如等[6]利用OpenCV通过对苹果和橘子的外形特征的提取和分析,达到机器自动识别的目的;刘双喜等[7]在OpenCV环境下应用一种改进型粗糙集理论,实现了对棉花异性纤维图像特征提取。本文以哈密瓜为研究对象,采用高光谱图像分析技术,在高光谱成像仪采集哈密瓜图像的基础上,通过OpenCV来检测哈密瓜的纹理特征,为进一步利用高光谱图像技术检测哈密瓜的综合品质提供基础支持。
利用高光谱成像仪获取的哈密瓜高光谱图像可看成是一个拥有多个层面、按波段顺序叠合构成的图像立方体,所包含的数据量非常大。因此,需寻找最能表征哈密瓜纹理特征波长下的图像,压缩图像信息,以便于后续处理。经过多次图像处理,选择合理的数据处理算法[8-9],找到最能表征哈密瓜纹理的特征图像(图1)。
图1 哈密瓜纹理特征图像粉得率的影响Fig.1 Texture feature imaging of Hami melon
哈密瓜图像纹理特征提取技术主要有四个步骤:形态学去噪、平滑处理、去除背景以及阈值分割。
1.2.1 形态学去躁
数学形态学方法与其它空域、频域图像处理和分析方法相比具有一些明显优势,能有效滤除噪声的同时还能保留图像中的原有信息。图像形态学是一类位不变的并行图像处理,可对图像进行实时处理[10]。
形态学运算是针对二值图像的图像处理方法,基本的形态学运算是膨胀和腐蚀。膨胀和腐蚀不是互为逆运算,二者可以级联结合使用。在实际的图像处理过程中,常以各种组合的形式来使用膨胀和腐蚀。先对图像进行腐蚀然后膨胀其结果,称为开启运算。开启运算符为°,A用B来开启写作A°B,其定义为:A°B=(AΘB)⊕B。先对图像进行膨胀然后腐蚀其结果,称为闭合运算。闭合运算符为·,A用B来闭合写作A·B,其定义为:A·B=(AΘB)⊕B。对读入的图像分别进行了腐蚀、膨胀、开启运算和闭合运算。结果发现进行开启运算效果较好,它具有消除细小物体,在纤细处分离物体和平滑较大物体边界的作用。以达到弥合轮廓缺陷,去除毛刺,平滑轮廓,消除噪声等效果。
1.2.2 平滑处理
图像的平滑是一种实用的数字图像处理技术,主要目的是为了减少图像噪声。在获取哈密瓜高光谱图像时,由于输送装置以及周围环境的影响,会产生噪音,而通过平滑处理能够很好地减少噪音的影响,保证图像的清晰度。
中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术,中值滤波的基本原理是把数字图像或数字序列中一点的值用该点的一个临域中各点值的中值代替,让周围的像素值接近的真实值,从而消除孤立的噪声点。
1.2.3 去除背景
获取哈密瓜高光谱图像时,由于外部环境、相机的结构以及背景的选取等因素,获取图像的过程中往往会引入噪声。如果不有效去除这些噪声,将严重影响图像的主观质量,并对处理和分析图像也带来很大的视觉差异。选取的背景不同,对于结果分析造成一定的影响,因此要去除图像的背景。
去除图像背景中,为了便于处理及存储,通过对图像像素点的灰度值操作实现背景提取。基于高光谱成像仪获取的哈密瓜图像每个像素点在RGB空间是一个三维矢量,把RGB图像转换为灰度图像后估计图像背景,利用OpenCV函数库中的函数从原图像中减去背景图像,去除图像背景的影响。
1.2.4 阈值分割
阈值分割法是一种基于区域的图像分割技术,其基本原理是:设定不同的特征阈值,把图像像素点分为若干类。图像阈值化的目的是按照灰度级对像素集合进行划分,得到的每个子集形成一个与现实景物相对应的区域,各区域内部具有一致的属性,而相邻区域布局有这种一致属性。这样的划分可以通过从灰度级出发选取一个或多个阈值来实现。
OpenCV提供了两种阈值分割方法。一种是固定阈值分割cvThreshold,另一种是自适应阈值分割cvAdaptiveThreshold。要实现哈密瓜纹理特征提取,通过背景分割得到黑白二值图像。采用固定阈值分割cvThreshold方法,确定分割阈值,顺序读取图像各像素点灰度值并与阈值比较,凡大于等于阈值的用1代替,否则以0代替。
利用OpenCV提供强大的图像处理函数来对获取的哈密瓜高光谱图像进行一系列的处理分析,最后得到哈密瓜的纹理轮廓,工作流程图如图2所示。
图2 图像处理工作流程Fig.2 Image processing of work flow chart
从文件中读取图像的语句为:
要实现显示一幅图像,首先应创建窗口,然后再显示,实现的函数为:
其中,src是定义的窗口标题名称,PImage是读取的图像。当CV_WINDOW_AU TOSIZE参数为1时,表示窗口的大小会自动调整以适合被显示的图像;为0时则自动按上一次OpenCV使用的大小呈现窗口尺寸。
读取原图像以及转化为灰度图像如下图3所示。
图3 读取的原始图像及转化为灰度图像Fig.3 The original images and gray images
腐蚀和膨胀的函数分别为cvErode(src,dst,element,iterations)和cvDilate(src,dst,element,iterations),其中src为输入图像,dst为输出图像(dst可以为 src) ,element为结构元素,如果为NULL,则使用3×3的矩形结构元素,iterations为运算次数[11-12]。将腐蚀和膨胀级联结合使用以达到开、闭运算目的,OpenCV中使用如下函数实现操作:
采用开运算,先进行腐蚀再进行膨胀,其中p K-ernel为创建的结构元素,iterations为运算次数,设iterations=1。
平滑处理函数为:cvSmooth(src,dst,smoothtype,param1,pa2ram2,param3,param4) ,其中smoothtype标志采用的平滑处理方法,采用中值滤波,因此设置为CV_MEDIAN,对图像进行核大小param1×param1的中值滤波,设置param1=3,其余参数设置为0。
经处理后的图像如图4所示。
图4 去噪及平滑后的图像Fig.4 Image after denoising and smoothing
对平滑后的图像进行开、闭运算后发现,开运算对图像特征提取较好,故采用开运算。
估计背景图像的语句如下:
估计背景图像后,利用cvSub函数从原图像中减去背景,用法为:
其中,src1是第1个原数组,src2是第2个原数组,dst输出数组,mask操作覆盖面(8-bit单通道数组)。函数cvSub从一个数组减去别一个数组:dst(I)=src1(I)-src2(I),if mask(I)!=0除覆盖面外所有数组都必须有相同的类型,相同的大小(或ROI大小)。
经处理后的图像如图5所示。
图5 消除背景影响Fig.5 Image of eliminating background
阈值分割函数[13]为:
cvThreshold(src,dst,threshold,max_value,threshold_type),
其中threshold_type设置为CV_THRESH_B INARY,采用二值化滤波,threshold为阈值,max_value为最大值。当src(x,y)>threshold时,dst(x,y)=max_value,否则dst(x,y)=0。根据实际情况,经过多次实验,取 threshold=40,max_value=255。
经过阈值分割后的二值化图像如图6所示。
图6 二值化阈值分割提取纹理Fig.6 Segmentation for texture feature extraction
本文对获取的哈密瓜高光谱图像利用OpenCV强大的函数库,通过对图像的形态学去噪、平滑处理、消除图像背景以及二值化阈值分割等处理,得到了比较理想的哈密瓜的纹理图像,为水果的分级处理打下了良好的基础。同时,提出一种基于OpenCV的高光谱图像水果检测方法,该算法复杂度不高,并易于实现,加上OpenCV库设计高效率性,可以快捷地实现图像的处理;给出一些关键代码,可借鉴于其它同类水果检测中。
[1]李少昆,王崇桃.图像及机器视觉技术在作物科学中的应用进展[J].石河子大学学报:自然科学版,2002,6(1):79-86.
[2]全国原产地域产品标准化工作组.GB/T 23398-2009地理标志产品哈密瓜[S].北京:中国标准出版社,2009.
[3]Intel Corporation.Intel open source computer vision library reference Manual,2001.
[4]YU Qingcang,CHENG Harry H,CHENG Wayne W,et a1.CH OpenCV for Interactive Open Architecture Computer Vision[J].Advances in Engineering Software,2004.35(9):527-536.
[5]王福斌,李迎燕,刘杰,等.基于OpenCV的机器视觉图像处理技术实现[J].机械与电子,2010(6):54-57.
[6]谢捷如,王震.机器视觉试验平台的研究与开发[J].电子测量技术,2008,31(7):1-4.
[7]刘双喜,张馨,郑文秀,等.棉花异性纤维图像特征提取[J].农业机械学报,2010,41(3):158-162.
[8]赵杰文,刘建华,陈全胜,等.利用高光谱图像技术检测水果轻微损伤[J].农业机械学报,2008,39(1):106-109.
[9]田有文,李天来,张琳,等.高光谱图像技术诊断温室黄瓜病害的方法[J].农业工程学报,2010,26(5):202-206.
[10]马本学.基于数学形态学的香梨果梗提取方法[J].石河子大学学报:自然科学版,2008,26(5):636-638.
[11]左飞,万晋森,刘航.Visual C++数字图像处理开发入门与编程实践[M].北京:电子工业出版社,2008:550-584.
[12]陈胜勇,刘盛.基于OpenCV的计算机视觉技术实现[M].北京:科学出版社,2009:151-161.
[13]刘慧英,王小波.基于OpenCV的车辆轮廓检测[J].科学技术与工程.2010,10(12):2987-2991.
The Image Texture Extraction of Hami Melon Based on OpenCV
XIAO Wendong,MA Benxue
(College of Mechanical and Electrical Engineering,Shihezi University,Xinjiang 832003,China)
The hyper-spectral image of Hami melon was obtained and the image of Hami melon texture extraction was selectecl by using the hyper-spectral imaging system(400 nm and 1000 nm).Through morphology denoising,image smoothing,binary background eliminating and binaryzing processing based on VC++and the open source computer vision library OpenCV,the binary image of Hami melon texture was obtained.Then the Hami melon hyperspectral image texture feature extraction was realized in VC++6.0 programming environment.Experimental results show that the methods can achieve the Hami melon texture extraction effectively.
OpenCV;hyperspectral image;Hami melon;texture
TP391.41 < class="emphasis_bold">文献标识码:A
A
2010-09-09
北京大学对口支援石河子大学师资培养专项资金支持项目
肖文东(1985-),男,硕士研究生,专业研究方向:数字图像处理及模式识别;e-mail:xwd_shz@sina.com。
马本学(1970-),男,教授,从事农产品品质无损检测及装备研究;e-mail:mbx_shz@163.com。