


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、(一) opencv 的安装1. 下载最新版 opencv beta 5, 网址为color=#800080 m2. 下载完毕后直接点击安装。安装完毕后打开 _make 文件夹下的.dsw(vc6)或.sln(),点击project 下的 batch build,留意你的机子是 32 位的话,选重全部的win32debug 和 release(不要选择 64 位的),点击 rebuild。这样,所需要的库文件就生成了。下一步,要建你自己的文件。(ps:opencv beta 5 有一个bug,建立的时候需要改一个注释注错了的文件)3. 打开vc6 或 ,新建一工程(win32console,
2、win32project, mfc 都可以,取决于你的习惯)4. 配置你自己的工程对于 vc6: project à settings àall configurationsc/c+标签àcategory 中选择prepreocessor à additional include directories 项,输入以“,”分开的相对路径(留意相对路径的格式与你的opencv 文件夹与你的工程文件夹相对位置有关),如我的工程建立在opencv 的名目下,则我可以这样设置相对路径:.cvauxinclude,.cxcoreinclude,.cvinclude,
3、.otherlibshighgui, .otherlibscvcaminclude ;固然,也可以输入确定路径如 c:program filesopencvcvincludelink 标签 à category 中选择 general àobject/library modules, 输入以空格分开的cvd.lib highguid.lib cvauxd.lib cxcored.lib cvcamd.liblink 标签 à category 中选择 input àobject/library modules, 输入以空格分开的cvd.lib highg
4、uid.lib cvauxd.lib cxcored.lib cvcamd.liblink 标签 à category 中选择 input àadditional library path, 输入包含lib 库的相对路径或确定路径,我的工程相对路径设置为 .lib设置完以上点击确定。对于v: projectàpropertiesàall configurationsc/c+àadditional include directories à 每行分开的相对路径或确定路径,如我的工程里这样设置.cvinclude.cvauxinclude
5、.highguiinclude.otherlibshighgui.otherlibscv camincludelinker à general àadditional library directories: .liblinkeràinputàadditional dependencies: cv.lib cxcore.libcvaux.libcvcam.lib highgui.lib (每行一个)设置完以上点击确定。5. 加入opencv 的工程到你的工程里并设置依靠关系vc6: projectàinsert project into wor
6、kspace àcvcv.dsp同样加入cvaux.dsp, cxcore.dsp, highgui.dspprojectàdependencies: cv 选择 cxcore; cvaux 选择cv,cxcore; highgui 选择cxcore; 你的工程选择全部v fileàadd project à existing projectàcvcv.vcproj同样加入cvaux.vcproj, cxcore.vcproj, highgui.vcproj在 solution explorer 中,鼠标右击 solution your pro
7、ject (5 projects)àproperties 中设置依靠关同,同vc6(二)opencv 简洁使用入门这样就配置成功了,你可以使用opencv 里。下面简洁介绍一些opencv 简洁的图像操作的例子。挂念初学者入门。在使用时,只要把头文件包括进来就可以直接使用了。#include “cv.h”#include “highgui.h” (具体每个库中的内容,可参阅opencv 手册)1. 打开图像/打开图像文件,成功返回 iplimage*图像指针,否则返回 null iplimage* winapi imgfileopen()iplimage* pimg = 0; /声明
8、 iplimage 指针cstring filename = “;/窗口对话窗体的文件属性static char szfilter = “图像文件格式(*.bmp) |*.bmp|jpg file format (*.jpg)|*.jpg|tif file format(*.tif) |*.tif|“;/打开文件对话窗口cfiledialog opendlg( true, null, null/*lastfilepath*/, ofn_hidereadonly | ofn_explorer, szfilter, null );opendlg.m_ofn.lpstrtitle = “open b
9、mp,jpg and tif files“;/从文件对话窗口中打开图像if(opendlg.domodal()=idok)filename = opendlg.getpathname(); /获得文件名elsereturn null;/图像文件成功打开pimg = cvloadimage(filename, 0);/返回 return pimg;2. 假如把上面打开的图像显示出来,则可以这样调用:iplimage* popenimg = imgfileopen(); /打开图像cstring srcwinlabel = “source image”;/窗体 titleif(popenimg)/
10、假如成功打开则显示cvnamedwindow(srcwinlabel, 1); /创建窗体cvshowimage(srcwinlabel, popenimg); /显示图像cvwaitkey(0);/等待按键cvreleaseimage(&popenimg); cvdestroywindow( srcwinlabel );/销毁窗口3. 一些常用操作如角点检测:bool winapi findcorner(iplimage* srcimg1, double qualitylevel, double mindistance)/定义循环变得与检测角点数量 inti, cornercount
11、= max_corners;/定义iplimage 指针图像iplimage* eigimage1 = 0;iplimage* tempimage1 = 0; iplimage* smoothimg1 = 0; iplimage* grayimg1 = 0;/初始化,安排空间/浮点格式eigimage1= cvcreateimage(cvgetsize(srcimg1), ipl_depth_32f, 1); tempimage1 = cvcreateimage(cvgetsize(srcimg1), ipl_depth_32f, 1);/灰度单通道格式smoothimg1 = cvcreat
12、eimage(cvgetsize(srcimg1), ipl_depth_8u, 1); grayimg1= cvcreateimage(cvgetsize(srcimg1), ipl_depth_8u, 1);/格式转换:转换成灰度图像if(srcimg1->nchannels !=1)cvcvtcolor(srcimg1, grayimg1, cv_bgr2gray);elsecvcopy(srcimg1, grayimg1);/启用高斯滤波,平滑图像/cvsmooth(grayimg1,smoothimg1,cv_gaussian, 9, 9);cvcopy(grayimg1, s
13、moothimg1); /不平滑时把图像 copy 到 smoothimg1,以便后面处理/角点cvgoodfeaturestotrack(smoothimg1, eigimage1, tempimage1, corners, &cornercount, qualitylevel, mindistance, 0);/子像素极角点cvfindcornersubpix(smoothimg1, corners, cornercount, cvsize(5,5), cvsize(-1,-1), cvtermcriteria(cv_termcrit_iter|cv_termcrit_eps, 1
14、00, 0.1) );/ draw circles at each corner location in the gray image and/ print out a list the corners画出全部角点if(cornercount > 0)for (i=0; i<cornercount; i+)cvcircle(srcimg1, cvpoint(int)(cornersi.x), (int)(cornersi.y), 6, cv_rgb(255,0,0), 2, cv_aa, 0);/创建窗体,以便显示标记出角点的图像cvnamedwindow( “corners of
15、 image“, 1);/显示标记图像cvshowimage( “corners of image“, srcimg1 );/等待按键cvwaitkey(0);/销毁窗体 cvdestroywindow(“corners of image“);/释放空间cvreleaseimage(&eigimage1);cvreleaseimage(&tempimage1); cvreleaseimage(&smoothimg1); cvreleaseimage(&grayimg1);/showimg1/返回return true;4. hough 变换检测圆bool win
16、api houghcircle(iplimage* img)if(img = null)return false;iplimage* gray = cvcreateimage( cvgetsize(img), 8, 1 ); cvmemstorage* storage = cvcreatememstorage(0);/转换成灰度图像if(img->nchannels != 1)cvcvtcolor( img, gray, cv_bgr2gray ); elsecvcopy(img, gray);/平滑化cvsmooth( gray, gray, cv_gaussian, 9, 9 );/
17、 hough 变换求圆/ cvseq* circles = cvhoughcircles( gray, storage, cv_hough_gradient, 2, gray->height/4, 200, 100 );cvseq* circles = cvhoughcircles( gray, storage, cv_hough_gradient, 2, gray->height/4, 250, 55 );/ 画出识别出的圆int i;for( i = 0; i < circles->total; i+ )float* p = (float*)cvgetseqelem
18、( circles, i );cvcircle( img, cvpoint(cvround(p0),cvround(p1), cvround(p2), cv_rgb(255,0,0), 3, 8, 0 );/cvcircle( img, cvpoint(cvround(p0),cvround(p1), 100, cv_rgb(255,0,0), 3, 8,0 );/ 窗体显示cvnamedwindow(“win“, 1);/ 画像表示cvshowimage(“win“, img);/ 等待按键cvwaitkey(0);/ 释放cvreleaseimage(&img); cvreleas
19、eimage(&gray); cvdestroywindow(“win“);return true;5. 再比如轮廓检测/求轮廓/ int levels = 3;/cvseq* contours = 0;/ iplimage* imgcontour;/ int upper= 80;int lower= 10;cvmemstorage * storagecontours;void on_trackbarcontour(int pos)/定义变量iplimage* cnt_img;cvseq* _contours; int _levels;/安排空间、初始化cnt_img = cvcrea
20、teimage( cvgetsize(imgcontour), 8, 3 );_contours = contours;_levels = levels - 3; cvzero( cnt_img );/画轮廓cvdrawcontours( cnt_img, _contours, cv_rgb(255,0,0), cv_rgb(0,255,0),_levels, 1, cv_aa, cvpoint(0,0) );/显示轮廓图像cvshowimage( “contours“, cnt_img );/释放空间cvreleaseimage( &cnt_img );void winapi fin
21、dcontour( iplimage* pimg )/定义指针变量cvmemstorage* storage;iplimage* img;/初始化安排空间storage = cvcreatememstorage(0);img = cvcreateimage( cvgetsize(pimg), ipl_depth_8u, 1 ); imgcontour = cvcreateimage(cvgetsize(pimg), ipl_depth_8u, 3);/copy 图像,便于on_trackbarcontour 中操作cvcopy(pimg, imgcontour);/转换成灰度图像if(pimg
22、->nchannels != 1)cvcvtcolor(pimg, img, cv_bgr2gray);elsecvcopy(pimg, img);/边缘提取cvcanny(img, img, (float)33, (float)33*3, 3);/0.0, 100, 5);/阈值分割/cvthreshold( img, img, 150, 255, cv_thresh_binary );/创建窗体显示要操作的图像cvnamedwindow( “image“, 1 ); cvshowimage( “image“, img );/找轮廓/cv_retr_external,cv_chain_approx_simplecvfindcontours( img, storage, &contours, sizeof(cv
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025合同制员工待遇详解
- 八年级道德与法治上册 第四单元 人身权、受教育权:美好生活最相关 第7课 伴我们一生的权利 第2框 过有尊严的生活教学设计 鲁人版六三制001
- 2024秋九年级英语上册 Module 11 Photos Unit 1 He's the boy who won the photo competition last year教学设计(新版)外研版
- 列车抛物测试题及答案
- 客户穿行测试题及答案
- 新交通法试题及答案
- 全面解析文化产业管理证书考试试题及答案
- 2021年大班科学活动纸站起来了教案反思
- 文化产业管理考试的例题解析与技巧试题及答案
- 四年级数学上册 数学好玩第1课时 滴水实验教学设计 北师大版
- (高清版)DB32∕T 2770-2015 活性炭纤维通 用技术要求与测试方法
- 文学作品的跨媒介研究-洞察分析
- 手术室护士入科汇报
- 2025年中考语文复习之小题狂练300题(选择题):文学常识(20题)
- 2024年中级消防员职业鉴定考前必刷必练题库500题(含真题、必会题)
- 天津医科大学眼科医院招聘笔试真题2023
- 精神科患者首次风险评估单
- 医院培训课件:《外科手术部位感染预防与控制》
- 幼儿园小班主题《春天的小花园》课件
- 消防救援队清洁用品配送服务投标方案(技术方案)
- 【MOOC】中央银行学-江西师范大学 中国大学慕课MOOC答案
评论
0/150
提交评论