毕业论文

打赏
当前位置: 毕业论文 > 自动化 >

OpenCV图像处理的膛口火焰测量系统设计+文献综述(3)

时间:2017-03-02 22:18来源:毕业论文
OpenCV的一个目标是构建一个简单易用的计算机视觉框架,以帮助开发人员更便捷地设计更复杂的计算机视觉相关应用程序。OpenCV包含的函数有500多个,覆盖


    OpenCV的一个目标是构建一个简单易用的计算机视觉框架,以帮助开发人员更便捷地设计更复杂的计算机视觉相关应用程序。OpenCV包含的函数有500多个,覆盖了计算机视觉的许多应用领域,如工厂产品检测,医学成像,信息安全,用户界面,摄像机标定,立体视觉和机器人等。它采用优化的C代码编写,能够充分利用多核处理器的优势。
    本文采用的是OpenCV2.1版本, 包括以下几个模块, 其具体功能是:
    CV模块: 主要的OpenCV函数, 包括图像处理、机构分析、运动分析与对象跟踪、模式识别、照相机定标和三文重建等;
    CVAUX模块: 辅助的(实验性的) OpenCV函数;
    CXCORE模块: 数据结构与线性代数支持;
    ML模块: 机器学习库, 是一些用于分类、回归和数据聚类的类和函数;
    HIGHGUI模块: 图像界面函数, 主要提供了图形用户窗口GUI, 图像视频I/O, 系统调用函数等。
2. 3 软件流程图
    为了实现的火焰提取,第一步要正确读入视频了解视频的格式等;第二步需要对视频文件进行处理,主要是从视频文件中将火焰区域叠加得到一幅彩色图像,便于我们提取最大的火焰轮廓;第三步对叠加图像进行滤波降噪;第四步对叠加图像进行灰度变换;第五步对灰度图像进行增强;第优尔步对增强的灰度图像进行形态学处理;第七步采用大津法求出最佳的分割阀值,以此阀值为分割值对图像进行二值化处理,得到火焰区域;第八步对提取到得轮廓进行参数分析,计算出最大轮廓的周长面积。整体方案的流程图如图3:
图3 整体方案的流程图
3  系统模块设计
    由于在第2章第3节中我们已经给出了软件模块的流程图,本章将对各个模块进行一个详细的介绍。
3. 1 视频帧提取
     为了提取火焰区域,首先我们要正确读入视频文件,将该文件在窗口中显示出
来。OpenCV中提供了函数cvCreateFileCapture()对视频文件进行导入。接着采用函
数cvQueryFrame()访问该视频文件。为了可以直观的看到视频的内容,需要对其进行
窗口显示。在此需要运用函数cvNameWindow()和cvShowImage(),cvNameWindow()
是一个高层调用接口,由HighGUI库提供 ,它用于在屏幕上创建一个窗口,将被显示
的视频图像包含于该窗口中。cvShowImage()用于在上述创建的窗口中显示已加载的
视频图像。在此要提一下2个比较重要的函数。cvReleaseImage()和cvDestroyWindow()
用于释放所占用的内存[8-9]。相关程序如下:
CvCapture * pCap=cvCreateFileCapture("F:\\bysj\\project\\b\\Debug\\tim.avi");    
    IplImage* pFrame=NULL;
    pFrame=cvQueryFrame(pCap);
    if(pFrame==NULL)
        return 0;
cvShowImage("video",pFrame);
cvReleaseCapture(&pCap);
cvDestroyWindow("video");
其中pCap为定义的视频文件名称,pFrame为目标视频文件名称。
3. 2 图像叠加
   本文中的图像叠加是根据对比每帧图像相同像素点位置的像素值,取得各位置像
素的最大值并把它保存下来,按照各自位置重新组合到到新的图片中。图像叠加的流
程图如图4  图4 图像叠加
图像叠加的程序代码如下:
IplImage* pYuv=cvCreateImage(cvGetSize(pFrame),pFrame->depth,3);
            cvCvtColor(pFrame,pYuv,CV_BGR2YCrCb);
            IplImage* pYubDst=cvCreateImage(cvGetSize(pFrame),pFrame->depth,3); OpenCV图像处理的膛口火焰测量系统设计+文献综述(3):http://www.youerw.com/zidonghua/lunwen_3668.html
------分隔线----------------------------
推荐内容