基于OpenCV识别火焰技术-DOI:10.19392/https://www.sodocs.net/doc/8d15979293.htmlki.1671-7341.201819025基于OpenCV识别火焰技术吴蔓蔓山东省青岛市黄岛区山东科技大学一山东青岛一266510摘一要:OpenCV(OpenSourceComputerVisionLibrary)是一个跨平台的开源计算机视觉库,可以在运行Linux二Windows等操作系统上运行三它由一些C语言函数组成,包含了图像处理及计算机视觉算法三本文主要工作是视频中的火焰识别,通过背景相减算法分离火焰和目标图像,基于阈值分割图像,再进行形态学去噪,最后通过RGB和HIS算法,识别判定火焰三利用OpenCV,在VS2017平台上实现了摄像机视频中火焰的检测三关键词:OpenCV;火焰识别;机器视觉1研究背景与意义随着人工智能的迅速发展,机器视觉越来越受到重视,比如火焰识别二人脸识别等等三中国的机器视觉技术发展迅速,应用范围渗透到了国民经济的各个行业三其主要原因是因为中国是世界主要的加工制造和应用中心之一,随着工业技术的日益精湛和工业标准的不断提高,机器视觉技术在我国也在不断发展壮大,同时人们也对机器视觉的发展加大了重视三在消防领域,火焰识别发挥着至关重要的作用,如果机器能自动识别火焰并自行灭火,必定能减少人员伤亡和财产损失三OpenCV给我们提供了相当不错的函数库,通过OpenCV可以实现火焰识别功能,可以检测静态图片中的火焰,还可以检测实时视频中的火焰,同时在视频检测的基础上推广到了摄像头实时检测三2OpenCV机器视觉的介绍通俗来讲,机器视觉就是用机器代替人眼的功能来实现相应的系统功能三机器视觉通过图像摄取装置(分CMOS和CCD两种)将已被摄取目标转换成数字图像信号,同时传送给专用的数字图像处理系统,从而得到被摄目标的图像形态信息,根据像素分布和颜色二亮度等图像信息,转变成数字图像信号,图像系统对这些数字信号进行各种算法运算来抽取目标的相应特征,进而根据识别的结果来控制现场的设备运行动作三机器视觉系统最大的特点就是提高生产系统的灵活性,增加自动化程度三在一些不适合人工作业的危险工作环境中或者人类视觉难以满足要求的场合,机器视觉可以用来来替代人工视觉三同时,在大批量高强度重复性工业生产过程中,利用机器视觉可以极大提高生产的工作效率和自动化的程度三OpenCV提供了丰富的大量的视觉处理算法,而且这些算法绝大部分利用C语言编写,同时OpenCV是开源库,处理地很恰当,不需要额外添加新的外部函数或工具支持就可以直接编译链接生成可执行程序,所以也有人用来做算法移植,OpenCV的代码还有一个很使用的特性就是,只要进行简单的改造就可以应用到DSP系统和ARM嵌入式系统中三OpenCV一直致力于现实世界的实时检测应用,通过优化的C语言程序的编写对其执行速度带来了很大的提升,并且可以购买Intel的IPP高性能多媒体函数库(IntegratedPerformancePrimitives)达到更快的处理速度三3OpenCV识别火焰设计3.1设计原理利用OpenCV有强大的图像处理功能,可以从摄像机获取图像,然而普通的RGB图形并不能很好的反映出图像的亮度色度等图像特征,首先把图像转换成灰度图像,灰度图像可以展示出图像的亮度色度等图像特征三背景相减适合检测运动的物体,这里使用帧差法进行背景相减来检测视频中的火焰,可以检测到运动物体的边缘三上面通过背景相减得到了目标前景图,再利用阈值分割方法,通过设定适当的阈值,删除一些过高或过低的像素点三将原图二值化后,通过图像形态学算法,对图像进行滤波去噪处理以便分割出较清晰明确的火焰,膨胀和开运算是图像形态学中最基本的操作方法,通过这两种操作可以消除噪声从而得到想要的图像三判定火焰还可以通过RGB颜色模型来判定,火焰都有一定的颜色规律,将火焰分成R二G二B三个通道,即红色分量二绿色分量和蓝色分量,对火焰图像来说,红色分量和蓝色分量较大,任何火焰像素必须满足以下公式:R(x,y)?Rt(1)R(x,y)>G(x,y)>B(x,y)(2)公式(1)中的Rt是红的分量应该满足的阈值三R(x,y)二G(x,y)二B(x,y)分别是某个像素点(x,y)上的红色分量二绿色分量和蓝色分量三如果目标图像满足以上公式则基本判定是火焰目标,然而火焰图像还包括许多其他图像特征,为了更准确地判定火焰目标,我们可以将RGB颜色模型与其他判定模型进行...