【vc++精品源码栏目提醒】:网学会员在vc++精品源码频道为大家收集整理了“基于OpenCv的多画面窗口设计 【论文】_5581 - 其它论文“提供大家参考,希望对大家有所帮助!
论文:基于OpenCv的多画面窗口设计 论文网 本文作者尚春林 李松华 颜巾惠请您在阅读本文时尊重作者版权。
摘要: 详细介绍计算机视觉类库OpenCV在VC开发环境下的配置并以实例方式阐述该环境下多视频窗口的分割、视频载入和显示以及利用OpenCV类库进行图像处理等问题。
关键词: 图像处理计算机视觉OpenCvVC0 引言 近年来计算机视觉和图像处理技术广泛地应用于交通、医疗、航天、军事等诸多领域OpenCvOpen Source Computer Vision Library作为近年来出现并得到广泛应用的计算机视觉编程工具是由Intel公司资助的开源计算机视觉库可用于开发实时的图像处理、计算机视觉以及模式识别程序。
它由一系列的C函数和少量C 类构成可以在VC环境下使用使用方便功能强大可以缩短相关程序的开发周期而且由于其代码的开源性使程序开发者可以阅读很多关键算法的源代码极大方便了图像和视频处理研究者进行二次开发推动了OpenCv在计算机图像处理领域的广泛应用。
1 OpenCv在VC环境中的设置 在用VC 开发的项目中使用OpenCV前正确安装OpenCV时必须选中AddOpenCvbin to the system PATH将OpenCvbin加入系统变量1并在自己开发的应用程序中正确设置和连接。
为使VC 6.0中文版在编译OpenCv程序时能够快速找到头文件和库文件首先选择菜单“工具|选择”选择对话框中的“目录”标签在“显示目录为”下拉列表框中选择Include files在“路径”列表框中添加相对路径:??cxcoreinclude、??cvinclude、??cvauxinclude、??otherlibshighgui、??otherlibscvcaminclude其次选择“显示目录为”下拉列表框中的Library files在“路径”列表框中添加相对路径:??lib最后选择“显示目录为”下拉列表框中的Executable files在“路径”列表框中添加相对路径:??bin1。
配置完毕后 OpenCv库就已经链接到当前创建的项目中即可在项目中方便地使用OpenCV所提供的库函数进行图像处理。
2 基于OpenCv的实例探讨 2.1 六画面窗口软件实现 下面通过实例详细阐述:① VC 6.0实现六分屏窗口的分割② 利用OpenCv作为开放的数字图像处理和计算机视觉软件平台在六个分屏窗口中实现视频图像的载入和显示。
2.1.1 六分屏窗口分割 需要在主框架类CMainFrame建立一个CSplitterWnd的对象m_wndSplitter六个派生自CScrollView类的CView类例如CVideo1View???? CVideo6View。
其所用到的静态拆分窗口技术用到两个CSplitterWnd类的成员函数:BOOL CreateStatic CWnd pParentWnd int nRows in nColsDWORD dwStyle WS_CHILD WS_VISIBLEUINT nID AFX_IDW_PANE_FIRST 第一个参数代表此拆分窗口的父窗口第二和第三个参数代表横列和纵行的个数第四个参数是窗口风格默认为WS_CHILD WS_VISIBLE第五个参数代表此窗口的ID起始值virtual BOOL CreateView int row int col CruntimeClass pViewClassSIZE sizeInit CCreateContext pContext 第一和第二个参数代表窗口的标号从0算起每一横列分屏窗口的标号ID值由每一横列第一个分屏窗口的ID值依次写出即可第三个参数是View 类的CRuntimeClass指针利用RUNTIME_CLASS宏取此指针第四个参数是窗口的初始大小由CSizex y设置其中x是窗口宽度y是窗口高度单位是像素第五参数是CCreateContext 指针只要将OnCreateClient 获得的第二个参数依次照写就行了2。
在2×3分屏窗口分割时在第一横列的三个分屏窗口大小分别由CSize480400、CSize480400、CSize0400设置而CSize0400中的0并不是代表第三个窗口宽度是0像素0代表的是第三个分屏窗口的宽度是窗口总宽度减去左边两个分屏窗口的宽度在第二横列的三个分屏窗口大小分别由CSize4800、CSize4800、CSize00设置这三个分屏窗口的高度0代表的是窗口总高度减去第一横列窗口的高度并不是第二横列的三个窗口的高度为0而第三个分屏窗口中的CSize00中的0宽度同理代表的是第二横列中的窗口总宽度减去前两个窗口的宽度程序进行中如果需要窗口的大小只要在OnDraw函数中写上RECT rc