OpenCV的安装Word下载.docx

上传人:b****6 文档编号:22181936 上传时间:2023-02-02 格式:DOCX 页数:11 大小:18.97KB
下载 相关 举报
OpenCV的安装Word下载.docx_第1页
第1页 / 共11页
OpenCV的安装Word下载.docx_第2页
第2页 / 共11页
OpenCV的安装Word下载.docx_第3页
第3页 / 共11页
OpenCV的安装Word下载.docx_第4页
第4页 / 共11页
OpenCV的安装Word下载.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

OpenCV的安装Word下载.docx

《OpenCV的安装Word下载.docx》由会员分享,可在线阅读,更多相关《OpenCV的安装Word下载.docx(11页珍藏版)》请在冰豆网上搜索。

OpenCV的安装Word下载.docx

对于V:

projectà

propertiesà

allconfigurations

C/C++à

AdditionalIncludeDirectoriesà

每行分开的相对路径或绝对路径,如我的工程里这样设置..\..\cv\include 

..\..\cvaux\include 

..\..\highgui\include 

..\..\otherlibs\highgui 

..\..\otherlibs\cvcam\include

Linkerà

Generalà

Additionallibrarydirectories:

..\..\lib

Linkerà

Inputà

AdditionalDependencies:

cv.libcxcore.lib 

cvaux.lib 

cvcam.libhighgui.lib(每行一个)

5.加入openCV的工程到你的工程里并设置依赖关系

vc6:

Projectà

Insertprojectintoworkspaceà

cv\cv.dsp

同样加入cvaux.dsp,cxcore.dsp,highgui.dsp

Projectà

Dependencies:

cv选择cxcore;

cvaux选择cv,cxcore;

highgui选择cxcore;

你的工程选择所有

VFileà

Addprojectà

Existingprojectà

cv\cv.vcproj

同样加入cvaux.vcproj,cxcore.vcproj,highgui.vcproj

在SolutionExplorer中,鼠标右击Solution‘yourproject’(5projects)à

properties中设置依赖关同,同vc6

(二)openCV简单使用入门

这样就配置成功了,你可以使用openCV里。

下面简单介绍一些openCV简单的图像操作的例子。

帮助初学者入门。

在使用时,只要把头文件包括进来就可以直接使用了。

#include“cv.h” 

#include“highgui.h”(具体每个库中的内容,可参阅openCV手册)

1. 

打开图像

//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

//打开图像文件,成功返回IplImage*图像指针,否则返回NULL

//.....................................................................................................................

IplImage*WINAPIimgFileOpen()

{

IplImage*pImg=0;

//声明IplImage指针

CStringfileName="

"

;

//窗口对话窗体的文件属性

staticcharszFilter[]="

图像文件格式(*.bmp)|*.bmp|JPGfileformat(*.jpg)|*.jpg|TIFfileformat(*.tif)|*.tif|"

//打开文件对话窗口

CFileDialogOpenDlg(TRUE,NULL,NULL/*LastFilePath*/,OFN_HIDEREADONLY|OFN_EXPLORER,szFilter,NULL);

OpenDlg.m_ofn.lpstrTitle="

OpenBMP,JPGandTIFFiles"

//从文件对话窗口中打开图像

if(OpenDlg.DoModal()==IDOK)

fileName=OpenDlg.GetPathName();

//获得文件名

else

returnNULL;

//图像文件成功打开

pImg=cvLoadImage(fileName,0);

//返回

returnpImg;

}

2.如果把上面打开的图像显示出来,则可以这样调用:

IplImage*pOpenImg=imgFileOpen();

//打开图像

CstringsrcWinLabel=“sourceimage”;

//窗体title

if(pOpenImg)//如果成功打开则显示

{

 

cvNamedWindow(srcWinLabel,1);

//创建窗体

cvShowImage(srcWinLabel,pOpenImg);

//显示图像

cvWaitKey(0);

//等待按键

cvReleaseImage(&

pOpenImg);

cvDestroyWindow(srcWinLabel);

//销毁窗口

}

3.一些常用操作如角点检测:

BOOLWINAPIFindCorner(IplImage*srcImg1,doublequalityLevel,doubleminDistance)

//定义循环变得与检测角点数量

int 

i,cornerCount 

=max_corners;

//定义IplImage指针图像

IplImage*eigImage1 

=0;

IplImage*tempImage1=0;

IplImage*smoothImg1=0;

IplImage*grayImg1 

//初始化,分配空间

//浮点格式

eigImage1 

=cvCreateImage(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(srcImg1,grayImg1,CV_BGR2GRAY);

cvCopy(srcImg1,grayImg1);

//启用高斯滤波,平滑图像

// 

cvSmooth(grayImg1,smoothImg1,CV_GAUSSIAN,9,9);

cvCopy(grayImg1,smoothImg1);

//不平滑时把图像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,100,0.1));

//drawcirclesateachcornerlocationinthegrayimageand

//printoutalistthecorners 

画出所有角点

if(cornerCount>

0)

for(i=0;

i<

cornerCount;

i++)

cvCircle(srcImg1,cvPoint((int)(corners[i].x),(int)(corners[i].y)),6,

CV_RGB(255,0,0),2,CV_AA,0);

//创建窗体,以便显示标记出角点的图像

cvNamedWindow("

cornersofimage"

1);

//显示标记图像

cvShowImage("

srcImg1);

//销毁窗体

cvDestroyWindow("

);

//释放空间

eigImage1);

tempImage1);

smoothImg1);

grayImg1);

//showImg1

returnTRUE;

4.Hough变换检测圆

BOOLWINAPIHoughCircle(IplImage*img)

if(img==NULL)

returnFALSE;

IplImage*gray=cvCreateImage(cvGetSize(img),8,1);

CvMemStorage*storage=cvCreateMemStorage(0);

//转换成灰度图像

if(img->

=1)

cvCvtColor(img,gray,CV_BGR2GRAY);

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->

height/4,250,55);

//画出识别出的圆

inti;

for(i=0;

i<

circles->

total;

i++){

float*p=(float*)cvGetSeqElem(circles,i);

cvCircle(img,cvPoint(cvRound(p[0]),cvRound(p[1])),cvRound(p[2]),CV_RGB(255,0,0),3,8,0);

// 

cvCircle(img,cvPoint(cvRound(p[0]),cvRound(p[1])),100,CV_RGB(255,0,0),3,8,0);

//窗体显示

cvNamedWindow("

Win"

//画像表示

cvShowImage("

img);

//等待按键

//释放

img);

gray);

5. 

再比如轮廓检测

//求轮廓/////////////////////

intlevels=3;

///

CvSeq*contours=0;

IplImage*imgContour;

/////////////////////////////

intupper 

=80;

intlower 

=10;

CvMemStorage*storageContours;

voidon_trackbarContour(intpos)

//定义变量

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,cvPoint(0,0));

//显示轮廓图像

contours"

cnt_img);

cvReleaseImage(&

cnt_img);

voidWINAPIfindContour(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->

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_BINARY);

//创建窗体显示要操作的图像

image"

1);

img);

//找轮廓

//CV_RETR_EXTERNAL,CV_CHAIN_APPROX_SIMPLE

cvFindContours(img,storage,&

contours,sizeof(CvContour), 

CV_RETR_TREE,CV_CHAIN_APPROX_SIMPLE,cvPoint(0,0));

//commentthisoutifyoudonotwantapproximation

contours=cvApproxPoly(contours,sizeof(CvContour),storage,

CV_POLY_APPROX_DP,3,1);

cvCreateTrackbar("

levels+3"

"

&

levels,50,on_trackbarContour);

on_trackbarContour(0);

//释放空间销毁窗体

imgContour);

cvClearSeq(contours);

cvClearMemStorage(storage);

(三)openCV的资源

网络真的很方便,baidu和google上搜一搜就知道了,有很多人已经在使用openCV了。

在这里介绍几个论坛,上面有更多资源可以分享。

一是:

阿须论坛。

置顶的贴子有对OpenCV资源,邮件列表的总介绍。

二是:

机器视觉网、机器视在线以及研学论坛等。

上面也有OpenCV版。

三是:

QQ群,如比较不错的群:

OpenCV(号码17319732)、视觉/图像/博士联盟(20441383)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 学科竞赛

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

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