全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
势必了解OpenCV在VC下的使用。我从网上下载了OpenCV 1.0,依步骤安装到“J:Program FilesOpenCV”目录下。在使用VC 6.0调用OpenCV之前,还需做如下配置:(1)运行VC 6.0,打开opencv/_make目录下的opencv.dsw文件 然后点击组建(Build)- 批组建(Batch Build)(编译大概几分钟)。(2)点击工具(Tools)-选项(Options)-目录(Directories)选项卡, 在Include files下添加: J:Program FilesOpenCVcvincludeJ:Program FilesOpenCVotherlibshighguiJ:Program FilesOpenCVcxcoreincludeJ:Program FilesOpenCVotherlibscvcaminclude(3)在Library files下添加 J:Program FilesOpenCVlib(4)在Source files下添加 J:Program FilesOpenCVcvsrcJ:Program FilesOpenCVcxcoresrcJ:Program FilesOpenCVcvauxsrcJ:Program FilesOpenCVotherlibshighguiJ:Program FilesOpenCVotherlibs_graphicssrc(5)|*谨记*|:每次建立工程,运行前在工程(Project)-设置(Settings)-连接(Link)选项卡-对象/库模块(Object/library modules) 中添加: cv.lib highgui.lib cxcore.lib cvcam.lib下面给出我所编写的一个简单的应用OpenCV的例子。(1)建立一个基于Dialog的MFC工程OpenCV_Dlg1,在头文件OpenCV_Dlg1Dlg.h中加入“#include ”,“#include ”宏命令语句。(2)添加Picture控件,ID号为IDC_SHOW_WINDOW,图像将显示在该控件中。(3)给COpenCV_Dlg1Dlg类添加成员变量IplImage * m_cvImage,属性为Public.并在构造函数COpenCV_Dlg1Dlg:COpenCV_Dlg1Dlg()中将其初始化为NULL,即添加“m_cvImage=NULL;”语句。(4)OpenCV有现成的函数cvShowImage()来显示图像,但用该函数显示图像是却是另外开辟了一个弹出窗口并在其中显示,为了在我们建立的Picture控件中显示图像,需在COpenCV_Dlg1Dlg类中添加成员函数void DrawPicToHDC(IplImage *img, UINT ID),属性设置为Public.DrawPicToHDC()函数代码为:/-void COpenCV_Dlg1Dlg:DrawPicToHDC(IplImage *img, UINT ID)CDC *pDC = GetDlgItem(ID)-GetDC();HDC hDC= pDC-GetSafeHdc();CRect rect;CWnd * pWnd;pWnd=GetDlgItem(ID);pWnd-SetWindowPos( NULL,0,0,img-width,img-height,SWP_NOZORDER | SWP_NOMOVE );pWnd-GetClientRect(&rect);CvvImage cimg;cimg.CopyOf(img);cimg.DrawToHDC(hDC,&rect);ReleaseDC(pDC);/=(5)添加Button按钮,ID号为IDC_READ_PIC,标题为“读图”,用于打开一幅图片。对该按钮添加消息响应函数OnReadPic():/-void COpenCV_Dlg1Dlg:OnReadPic()/ TODO: Add your control notification handler code hereCString Open_Filename;CFileDialog fDlg(TRUE,bmp,*.bmp,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,原始图像(*.bmp)|*.bmp|所有文件(*.*)|*.*|,NULL);if (fDlg.DoModal() = TRUE)Open_Filename = fDlg.GetFileName();if(m_cvImage)cvReleaseImage(&m_cvImage);m_cvImage = cvLoadImage(Open_Filename,1);if (m_cvImage=0)MessageBox(Reading Failed);elseDrawPicToHDC(m_cvImage, IDC_SHOW_WINDOW);/=至此,运行程序,当点击“读图”按钮时,会弹出对话框,提示用户选择需要读入的图片,“确定”后程序便会在Picture控件中将图片显示出来。(6)添加Edit控件,ID号为IDC_EDIT_TH,应用向导工具MFC ClassWizard给该ID添加int型的成员变量m_Th.通过Edit控件IDC_EDIT_TH,用户可以输入图像分割阈值,程序会将其自动更新到m_Th.(7)添加Button按钮,ID号为IDC_THRESHOLD,标题为“阈值分割”,点击它将对业已打开的图片做二值化分割。对该按钮添加消息响应函数OnThreshold():/-void COpenCV_Dlg1Dlg:OnThreshold()/ TODO: Add your control notification handler code hereUpdateData(TRUE);if (m_cvImage=NULL)MessageBox(NO Source Image Found!,Warning);elseIplImage* dst=cvCreateImage( cvSize(m_cvImage-width,m_cvImage-height), m_cvImage-depth, m_cvImage-nChannels );cvThreshold( m_cvImage, dst, m_Th, 255, CV_THRESH_BINARY);/原型:void cvThreshold( IplImage* src, IplImage* dst, float thresh, float maxvalue,CvThreshType type);cvNamedWindow(Threshold); /设置窗口名称cvShowImage(Threshold,dst); /显示图片cvWaitKey(0);/=至此,当点击“读图”按钮打开一幅图片,该图片将在Picture控件中显示;在Edit控件IDC_EDIT_TH中输入阈值,并点击“阈值分割”按钮,则对读入的图像做二值化处
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 数字化基建赋能实体经营:官网、小程序与定制开发的全域落地逻辑
- 2026年通信行业网络安全防护规范方案
- 个人职业发展规划写作
- 有声安全法解读讲解
- 2026年食品加工六月质量控制方案
- 《英语表语从句|系动词后从句结构》
- 第1章 反比例函数(单元自测-拔尖卷)(解析版)
- 《科普文阅读策略|术语理解与信息整合》
- 《欧洲西部答题规范指南|踩分点全梳理》
- 安全工作下阶段计划讲解
- 江苏省南通市海门中学2025-2026学年高一10月月考语文试题及答案
- 2026河北雄安新区安新县公共服务局招聘专项岗位人员200名模拟试卷及答案详解【名师系列】
- 2026年交管12123学法减分复习考试题库带答案(培优)
- 2026年湖北省高考生物试卷(含答案及解析)
- 肠外营养患者的口腔护理
- 临床科室绩效核算分配方案
- 2026年三北工程天空地一体化监测网络建设方案
- 2026年兴安职业技术学院单招职业适应性考试题库及答案详解(有一套)
- 2026年法律文书写作与审查考试及答案
- 安宁疗护人员培训制度
- 煤化工安全培训内容课件
评论
0/150
提交评论