版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、opencv的典型基础应例(附源码和解释)2.1-1彩标追踪: Camshiftint vmin = 10, vmax = 256, smin = 30;/ User draws box around object to track. This triggers CAMShift to start trackingstatic void onMouse(int event, int x, int y, int, void*)if (selectObject)switch (event)case EVENT_LBUTTONDOWN:origin = Point(x, y);selection =
2、 Rect(x, y, 0, 0);selectObject = true;break;case EVENT_LBUTTONUP:selectObject = false;if (selection.width 0 & selection.height 0)trackObject = -1; / Set up CAMShift properties in main() loopbreak;tb - switch to/from backprojection viewnth - show/hide object histogramntp - pause videonTo initialize t
3、racking, select the object with mousen;static void help(const char* argv)static void help(const char* argv)cout nThis is a demo that shows mean-shift based trackingnThis reads from video camera (0 by default, or the camera number the user entersncout argv0 camera numbern;help h | | show help message
4、camera_number| 0 | camera number;int main(int argc, const char* argv)if (!cap.isOpened()help(argv);return -1;cout frame;if (frame.empty()int _vmin = vmin, _vmax = vmax;histimg = Scalar:all(0);for (int i = 0; i hsize; i+)for (int i = 0; i hsize; i+)int val = saturate_cast(hist.at(i) * histimg.rows /
5、255);rectangle(histimg, Point(i * binW, histimg.rows),Point(i + 1) * binW, histimg.rows - val),Scalar(buf.at(i), -1, 8);/ Perform CAMShiftint cols = backproj.cols, rows = backproj.rows, r = (MIN(cols, rows) + 5) / 6;trackWindow = Rect(trackWindow.x - r, trackWindow.y - r,trackWindow.x + r, trackWind
6、ow.y + r) &Rect(0, 0, cols, rows);if (backprojMode)cvtColor(backproj, image, COLOR_GRAY2BGR);ellipse(image, trackBox, Scalar(0, 0, 255), 3, LINE_AA);case c:elsedefault:;return 0;法:根据标框选区域的度光谱来进摄像头读的视频标的跟踪算法:Camshift算法(被称为:连续适应的MeanShift算法)2.1-2 光流 optical flow前图像分析的重要法光流来表图像中模式的运动速度2.1-3 点追踪 lkdemot
7、r - auto-initialize trackingntc - delete all the pointsntn - switch the night mode on/offntn - switch the night mode on/offnstatic void onMouse( int event, int x, int y, int /*flags*/, void* /*param*/ )if( event = EVENT_LBUTTONDOWN )help();if( input.size() = 1 & isdigit(input0) )cap.open(input0 - 0)
8、;elsecap.open(input);if( !cap.isOpened() )cout Could not initialize capturing.n;namedWindow( LK Demo, 1 );setMouseCallback( LK Demo, onMouse, 0 );Mat gray, prevGray, image, frame;vector points2;for(;)frame.copyTo(image);cvtColor(image, gray, COLOR_BGR2GRAY);goodFeaturesToTrack(gray, points1, MAX_COU
9、NT, 0.01, 10, Mat(), 3, 3, 0, 0.04);cornerSubPix(gray, points1, subPixWinSize, Size(-1,-1), termcrit);for( i = k = 0; i points1.size(); i+ )circle( image, points1i, 3, Scalar(0,255,0), -1, 8);if( addRemovePt & points1.size() (size_t)MAX_COUNT )cornerSubPix( gray, tmp, winSize, Size(-1,-1), termcrit)
10、;points1.push_back(tmp0);addRemovePt = false;needToInit = false;imshow(LK Demo, image);char c = (char)waitKey(10);case r:case c:case n:std:swap(points1, points0);cv:swap(prevGray, gray);使说明:按r启动动点追踪2.1-4脸识别 objectDetectionint main( int argc, const char* argv )CommandLineParser parser(argc, argv,help
11、 h|face_cascade|data/haarcascades/haarcascade_frontalface_alt.xml|Path to face cascade.parser.about( nThis program demonstrates using the cv:CascadeClassifier class to detect objects (Face + eyes) in a video stream.nYou can use Haar or LBP features.nn );parser.printMessage();String face_cascade_name
12、 = samples:findFile( parser.get(face_cascade) );String eyes_cascade_name = samples:findFile( parser.get(eyes_cascade) );/- 1. Load the cascadesif( !face_cascade.load( face_cascade_name ) )cout -(!)Error loading face cascaden;return -1;if( !eyes_cascade.load( eyes_cascade_name ) )cout -(!)Error loadi
13、ng eyes cascaden;int camera_device = parser.get(camera);VideoCapture capture;/- 2. Read the video streamcapture.open( camera_device );if ( ! capture.isOpened() )Mat frame;cout -(!) No captured frame - Break!n;break;/- 3. Apply the classifier to the framedetectAndDisplay( frame );/* function detectAn
14、dDisplay */void detectAndDisplay( Mat frame )for ( size_t i = 0; i faces.size(); i+ )Point center( facesi.x + facesi.width/2, facesi.y + facesi.height/2 );ellipse( frame, center, Size( facesi.width/2, facesi.height/2 ), 0, 0, 360, Scalar( 255, 0, 255 ), 4 );Mat faceROI = frame_gray( facesi );/- In each face, detect eyesstd:vector eyes;eyes_cascade.detectMultiScale( faceROI, eyes );for ( size_t j = 0; j eyes.size(); j+ )Point eye_center( facesi.x + eyesj.x + eyes
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 4《繁星 》教学设计-2024-2025学年统编版语文四年级上册
- 2022年广西梧州中考满分作文《母爱的味道》
- 2022年广东省中考满分作文《妈妈的唠叨》
- 7 两件宝(教学设计)-2024-2025学年语文一年级上册统编版
- 小学美术赣美版四年级下册传统的魅力第18课 面具 教学设计
- 《头饰》(教案)人美版(北京) 美术二年级上册
- 小学生识别情绪气象
- Unit 1 Period 1 教学设计 2024-2025学年外研版(2024版)七年级英语上册
- Unit 1 Section A 1a-1c 教学设计 2024-2025学年人教版八年级英语上册
- Unit5 Our New rooms Lesson1(教学设计)2024-2025学年重大版英语五年级上册
- DB42T 1939.1-2022 老年人营养改善服务指南 第1部分:老年人营养供餐
- 儿童糖尿病酮症酸中毒的治疗课件
- 《伊索寓言》知识考试题库200题(含各题型)
- 毕业生登记表电子版模板
- 攻牙机作业指导书
- 下肢骨折术后功能锻炼共26张课件
- 课堂教学改革课件
- S71500西门子PLC培训(内部培训)课件
- 信息系统及信息安全运维服务项目清单
- 师德表现、身心健康证明模板
- 初中数学北师大版九下圆的内接四边形部优课件
评论
0/150
提交评论