ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:18.97KB ,
资源ID:9045808      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9045808.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(OpenCV的安装.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

OpenCV的安装.docx

1、OpenCV的安装(一) openCV的安装1. 下载最新版 openCV Beta 5, 网址为 color=#8000802. 下载完毕后直接点击安装。安装完毕后打开 _make文件夹下的.dsw(vc6)或.sln(),点击project下的batch build,注意你的机子是32位的话,选重所有的win32Debug 和 Release(不要选择64位的),点击 Rebuild。这样,所需要的库文件就生成了。下一步,要建你自己的文件。(PS:openCV Beta 5有一个bug,建立的时候需要改一个注释注错了的文件)3. 打开vc6或,新建一工程(win32console, win

2、32project, MFC都可以,取决于你的习惯)4. 配置你自己的工程对于vc6: project settings all configurations C/C+标签Category中选择Prepreocessor Additional include directories项,输入以“,”分开的相对路径(注意相对路径的格式与你的openCV文件夹与你的工程文件夹相对位置有关),如我的工程建立在OpenCV的目录下,则我可以这样设置相对路径: .cvauxinclude,.cxcoreinclude,.cvinclude,.otherlibshighgui, .otherlibscvca

3、minclude ; 当然,也可以输入绝对路径如 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 highguid.lib cvauxd.lib cxcored.lib cvcamd.libLink标签 Category中选择Input

4、 Additional Library path, 输入包含lib库的相对路径或绝对路径,我的工程相对路径设置为 .lib设置完以上点击确定。对于V: projectpropertiesall configurationsC/C+Additional Include Directories 每行分开的相对路径或绝对路径,如我的工程里这样设置.cvinclude .cvauxinclude .highguiinclude .otherlibshighgui .otherlibscvcamincludeLinker General Additional library directories: .

5、libLinkerInputAdditional Dependencies: cv.lib cxcore.lib cvaux.lib cvcam.lib highgui.lib (每行一个)设置完以上点击确定。5加入openCV的工程到你的工程里并设置依赖关系 vc6: ProjectInsert project into workspace cvcv.dsp同样加入cvaux.dsp, cxcore.dsp, highgui.dspProjectDependencies: cv选择cxcore; cvaux选择cv,cxcore; highgui选择cxcore; 你的工程选择所有 V Fi

6、leAdd project Existing projectcvcv.vcproj同样加入cvaux.vcproj, cxcore.vcproj, highgui.vcproj在Solution Explorer中,鼠标右击 Solution your project (5 projects)properties中设置依赖关同,同vc6(二)openCV简单使用入门这样就配置成功了,你可以使用openCV里。下面简单介绍一些openCV简单的图像操作的例子。帮助初学者入门。在使用时,只要把头文件包括进来就可以直接使用了。#include “cv.h” #include “highgui.h”

7、(具体每个库中的内容,可参阅openCV手册)1 打开图像 /打开图像文件,成功返回IplImage*图像指针,否则返回NULL/.IplImage* WINAPI imgFileOpen() IplImage* pImg = 0; /声明IplImage指针 CString fileName = ; /窗口对话窗体的文件属性 static char szFilter = 图像文件格式(*.bmp) |*.bmp|JPG file format (*.jpg)|*.jpg|TIF file format(*.tif) |*.tif|; /打开文件对话窗口 CFileDialog OpenDlg

8、( TRUE, NULL, NULL/*LastFilePath*/, OFN_HIDEREADONLY | OFN_EXPLORER, szFilter, NULL ); OpenDlg.m_ofn.lpstrTitle = Open BMP,JPG and TIF Files; /从文件对话窗口中打开图像 if(OpenDlg.DoModal()=IDOK) fileName = OpenDlg.GetPathName(); /获得文件名 else return NULL; /图像文件成功打开 pImg = cvLoadImage(fileName, 0); /返回 return pImg

9、;2. 如果把上面打开的图像显示出来,则可以这样调用: IplImage* pOpenImg = imgFileOpen(); /打开图像 Cstring srcWinLabel = “source image”;/窗体title if(pOpenImg)/如果成功打开则显示 cvNamedWindow(srcWinLabel, 1); /创建窗体 cvShowImage(srcWinLabel, pOpenImg); /显示图像 cvWaitKey(0); /等待按键 cvReleaseImage(&pOpenImg); cvDestroyWindow( srcWinLabel );/销毁窗

10、口 3. 一些常用操作如角点检测:BOOL WINAPI FindCorner(IplImage* srcImg1, double qualityLevel, double minDistance) /定义循环变得与检测角点数量 int i, cornerCount = max_corners; /定义IplImage指针图像 IplImage* eigImage1 = 0; IplImage* tempImage1 = 0; IplImage* smoothImg1 = 0; IplImage* grayImg1 = 0; /初始化,分配空间 /浮点格式 eigImage1 = cvCrea

11、teImage(cvGetSize(srcImg1), IPL_DEPTH_32F, 1); tempImage1 = cvCreateImage(cvGetSize(srcImg1), IPL_DEPTH_32F, 1); /灰度单通道格式 smoothImg1 = cvCreateImage(cvGetSize(srcImg1), IPL_DEPTH_8U, 1); grayImg1 = cvCreateImage(cvGetSize(srcImg1), IPL_DEPTH_8U, 1); /格式转换:转换成灰度图像 if(srcImg1-nChannels !=1) cvCvtColor

12、(srcImg1, grayImg1, CV_BGR2GRAY); else cvCopy(srcImg1, grayImg1); /启用高斯滤波,平滑图像/ cvSmooth(grayImg1,smoothImg1,CV_GAUSSIAN, 9, 9); cvCopy(grayImg1, smoothImg1); /不平滑时把图像COPY到smoothImg1,以便后面处理 /角点 cvGoodFeaturesToTrack(smoothImg1, eigImage1, tempImage1, corners, &cornerCount, qualityLevel, minDistance,

13、 0); /子像素极角点 cvFindCornerSubPix(smoothImg1, corners, cornerCount, cvSize(5,5), cvSize(-1,-1), cvTermCriteria(CV_TERMCRIT_ITER|CV_TERMCRIT_EPS, 100, 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; inChannels != 1)

14、cvCvtColor( img, gray, CV_BGR2GRAY ); else cvCopy(img, gray); /平滑化 cvSmooth( gray, gray, CV_GAUSSIAN, 9, 9 ); / 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-heig

15、ht/4, 250, 55 ); / 画出识别出的圆 int i; for( i = 0; i total; i+ ) float* p = (float*)cvGetSeqElem( 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(

16、Win, 1); / 画像表示 cvShowImage(Win, img); / 等待按键 cvWaitKey(0); / 释放 cvReleaseImage(&img); cvReleaseImage(&gray); cvDestroyWindow(Win); return TRUE;5. 再比如轮廓检测/求轮廓/int levels = 3; /CvSeq* contours = 0; /IplImage* imgContour; /int upper = 80;int lower = 10;CvMemStorage * storageContours;void on_trackbarCo

17、ntour(int pos) /定义变量 IplImage* cnt_img; CvSeq* _contours; int _levels; /分配空间、初始化 cnt_img = cvCreateImage( 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, cvPoin

18、t(0,0) ); /显示轮廓图像 cvShowImage( contours, cnt_img ); /释放空间 cvReleaseImage( &cnt_img ); void WINAPI findContour( IplImage* pImg ) /定义指针变量 CvMemStorage* storage; IplImage* img; /初始化分配空间 storage = cvCreateMemStorage(0); img = cvCreateImage( cvGetSize(pImg), IPL_DEPTH_8U, 1 ); imgContour = cvCreateImage(

19、cvGetSize(pImg), IPL_DEPTH_8U, 3); /Copy图像,便于on_trackbarContour中操作 cvCopy(pImg, imgContour); /转换成灰度图像if(pImg-nChannels != 1) cvCvtColor(pImg, img, CV_BGR2GRAY);else cvCopy(pImg, img); /边缘提取 cvCanny(img, img, (float)33, (float)33*3, 3);/0.0, 100, 5); /阈值分割 /cvThreshold( img, img, 150, 255, CV_THRESH_

20、BINARY ); /创建窗体显示要操作的图像 cvNamedWindow( image, 1 ); cvShowImage( image, img ); /找轮廓 /CV_RETR_EXTERNAL,CV_CHAIN_APPROX_SIMPLE cvFindContours( img, storage, &contours, sizeof(CvContour), CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, cvPoint(0,0) ); / comment this out if you do not want approximation contours =

21、 cvApproxPoly( contours, sizeof(CvContour), storage, CV_POLY_APPROX_DP, 3, 1 ); /显示轮廓图像 cvNamedWindow( contours, 1 ); cvCreateTrackbar( levels+3, contours, &levels, 50, on_trackbarContour ); on_trackbarContour(0); cvWaitKey(0); /释放空间销毁窗体 cvReleaseImage( &imgContour); cvReleaseImage(&img); cvClearSeq(contours); cvClearMemStorage( storage ); cvDestroyWindow(contours); cvDestroyWindow(image); (三)openCV的资源网络真的很方便,baidu和google上搜一搜就知道了,有很多人已经在使用openCV了。在这里介绍几个论坛,上面有更多资源可以分享。一是:阿须论坛。置顶的贴子有对OpenCV资源,邮件列表的总介绍。 二是:机器视觉网、机器视在线以及研学论坛等。上面也有OpenCV版。三是:QQ群,如比较不错的群:OpenCV(号码17319732)、视觉/图像/博士联盟(20441383)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1