自学OpenCV 入门级

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

《数字媒体技术基础》课程(04831800)(FundamentalofDigitalMediaTechnology)OpenCV自学材料田永鸿北京大学数字媒体研究所本科生核心专业课程:数字媒体技术基础(04831800)第一部分OpenCV概述基础结构与操作基本OpenCV程序与示例注:本讲义中部分代码来自OpenCV样例,部分代码来自《OpenCV教程——基础篇》,部分代码则从网上收集。2本科生核心专业课程:数字媒体技术基础(04831800)OpenCV概述OpenCV是Intel开源计算机视觉库。它由一系列C函数和少量C++类构成,实现了图像处理和计算机视觉方面的很多通用算法。OpenCV的特点拥有包括300多个C函数的跨平台的中、高层API跨平台:Windows,Linux免费(FREE):无论对非商业应用和商业应用速度快使用方便3本科生核心专业课程:数字媒体技术基础(04831800)4OpenCVstructureCXCOREbasicstructuresandalgoritms,XMLsupport,drawingfunctionsCVImageprocessingandvisionHighGUIGUI,ImageandVideoI/OMLMachineLearningalgorithmsCVCamvideostreamprocessing本科生核心专业课程:数字媒体技术基础(04831800)TheFunctionalityinPictures本科生核心专业课程:数字媒体技术基础(04831800)OpenCV的下载与安装1、下载地址2、VC6.0下的安装与配置参见3、.NET2003下的安装与配置参见本科生核心专业课程:数字媒体技术基础(04831800)ConfiguringMSVS.net2k3CreateaWin32ConsoleProjectMakeitanEmptyProjectbyselectingtheboxunderApplicationSettingsAprojectisinitiallycreatedbyselecting:File-New-ProjectCreatingtheProject本科生核心专业课程:数字媒体技术基础(04831800)ConfiguringMSVS.net2k3RightClicktheSourceFilesFolderundertheprojectname(Tutorialinthiscase)Add-AddnewItemCreatetheFirstFileSelectC++fileandgiveitanameCreatingafilemakesitpossibletosetAdditionalIncludeDirectivesintheC/C++paneundertheprojectproperties.本科生核心专业课程:数字媒体技术基础(04831800)ConfiguringMSVS.net2k3InordertobuildprojectsusingOpenCVtherequiredlibrariesanddirectivesmustbeincludedintheproject’spropertiesRightClickthenameoftheprojectandselectProperties(Tutorialinthiscase)OpenthePropertiesPane本科生核心专业课程:数字媒体技术基础(04831800)ConfiguringMSVS.net2k3UndertheC/C++tabselectGeneralSetAdditionalIncludeDirectivesSelecttheAdditionalIncludeDirectivesAddthefullpathtoeachofthefolderswhichcontain.hfilesrequiredtouseOpenCVBesuretoincludetrailing\C:\ProgramFiles\OpenCV\cvaux\include\C:\ProgramFiles\OpenCV\cxcore\include\C:\ProgramFiles\OpenCV\cv\include\C:\ProgramFiles\OpenCV\otherlibs\highgui\C:\ProgramFiles\OpenCV\otherlibs\cvcam\include\UtilizedDirectives本科生核心专业课程:数字媒体技术基础(04831800)ConfiguringMSVS.net2k3UndertheLinkertabselectInputSetAdditionalDependenciesSelecttheAdditionalDependenciesC:\ProgramFiles\OpenCV\lib\cv.libC:\ProgramFiles\OpenCV\lib\cvaux.libC:\ProgramFiles\OpenCV\lib\cxcore.libC:\ProgramFiles\OpenCV\lib\cvcam.libC:\ProgramFiles\OpenCV\lib\highgui.libUtilizedDependenciesAddthefullpathtoeachofthe.libfilesrequiredtouseOpenCVBesuretokeepthepathsinquotes本科生核心专业课程:数字媒体技术基础(04831800)TestingMSVS.net2k3Nowthattheenvironmentisconfigureditwouldbeagoodideatotestittomakesurethataprogramwillcorrectlybuildandrun.#includecv.h#includehighgui.h/*ThiswillpopupasmallboxwithHelloWorldasthetext.*/intmain(intargc,char**argv){//declarefortheheightandwidthoftheimageintheight=320;intwidth=240;//specifythepointtoplacethetextCvPointpt=cvPoint(height/4,width/2);//Createan8bit,3planeimageIplImage*hw=cvCreateImage(cvSize(height,width),8,3);//initializethefontCvFontfont;cvInitFont(&font,CV_FONT_HERSHEY_COMPLEX,1.0,1.0,0,1,CV_AA);//placethetextontheimageusingthefontcvPutText(hw,HelloWorld,pt,&font,CV_RGB(150,0,0));//createthewindowcontainercvNamedWindow(HelloWorld,0);//displaytheimageinthecontainercvShowImage(HelloWorld,hw);//holdtheoutputwindowscvWaitKey(0);return0;}TheenclosedcodecanbecutandpastedintothefilecreatedintheprojectspacetotestOpenCVTestingtheFirstProgram本科生核心专业课程:数字媒体技术基础(04831800)TestingMSVS.net2k3OutputofProgramTheprogramisbuiltbyselecting:Build-BuildSolutionOrbypressingF7BuildingtheProgramTheprogramisrunbyselecting:Debug-{Start||StartwithoutDebugging}OrbypressingF5orCtrl-F5RunningtheProgram本科生核心专业课程:数字媒体技术基础(04831800)OpenCV编码样式指南1、文件命名:有cv和cvaux库文件的命名必须服从于以下规则:所有的CV库文件名前缀为cv混合的C/C++接口头文件扩展名为.h纯C++接口头文件扩展名为.hpp实现文件扩展名为.cpp为了与POSIX兼容,文件名都以小写字符组成14本科生核心专业课程:数字媒体技术基础(04831800)OpenCV编码样式指南2、文件结构每个文件以BSD兼容的许可声明(模板在Contributors_BSD_Licsense.htm文件中可以找到)开头;一行最多90个字符,不包括行结束符不使用制表符缩进为4个空格符,所以制表符应该用1-4个空格替换(依据开始列确定)头文件必须使用保护宏,防止文件被重复包含。混合C/C++接口头文件用externC{}包含C语言定义。为了使预编译头机制在VisualC++中工作正常,源文件必须在其它头文件前包含precomp.h头文件。15本科生核心专业课程:数字媒体技术基础(04831800)OpenCV编码样式指南3、命名约定OpenCV中使用大小写混合样式来标识外部函数、数据类型和类方法。宏全部使用大写字符,词间用下划线分隔。所有的外部或内部名称,若在多个文件中可见,则必须含有前缀:外部函数使用前缀cv内部函数使用前缀Icv数据结构(C结构体、枚举、联合体、类)使用前缀Cv外部或某些内部宏使用前缀CV_内部宏使用前缀ICV_16本科生核心专业课程:数字媒体技术基础(04831800)OpenCV编码样式指南4、函数接口设计:为了保持库的一致性,以如下方式设计接口非常重要。函数接口元素包括:功能名称返回值参数类型参数顺序参数默认值函数功能必须定义良好并保持精简。函数应该容易镶入到使用其它OpenCV函数的不同处理过程。函数名称应该简单并能体现函数的功能。大多数函数名形式:cvActionName17本科生核心专业课程:数字媒体技术基础(04831800)18ASimpleOpenCVProgram1.#includecxcore.h2.#includehighgui.h3.#includemath.h4.intmain(intargc,char**argv){5.CvPointcenter;6.doublescale=-3;7.IplImage*image=argc==2?cvLoadImage(argv[1]):0;8.if(!image)return-1;9.center=cvPoint(image-width/2,image-height/2);10.for(inti=0;iimage-height;i++)11.for(intj=0;jimage-width;j++){12.doubledx=(double)(j-center.x)/center.x;13.doubledy=(double)(i-center.y)/center.y;1

1 / 116
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功