OpenCV:金字塔Lucas-Kanade光流测试代码
来源:互联网 发布:中医药临床证据数据库 编辑:程序博客网 时间:2024/05/21 16:54
<span style="font-size:14px;">#include <opencv\cxcore.h>#include <opencv\highgui.h>#include <opencv\cv.h>#include <stdio.h>const int MAX_CORNERS = 500;int main(int argc, char** argv) { IplImage* imgA = cvLoadImage("OpticalFlow0.jpg",CV_LOAD_IMAGE_GRAYSCALE); IplImage* imgB = cvLoadImage("OpticalFlow1.jpg",CV_LOAD_IMAGE_GRAYSCALE); CvSize img_sz = cvGetSize( imgA ); int win_size = 10; IplImage* imgC = cvLoadImage("OpticalFlow1.jpg",CV_LOAD_IMAGE_UNCHANGED); //需要做的第一件事就是获取我们想要跟踪的特征 IplImage* eig_image = cvCreateImage( img_sz, IPL_DEPTH_32F, 1 ); IplImage* tmp_image = cvCreateImage( img_sz, IPL_DEPTH_32F, 1 ); int corner_count = MAX_CORNERS; CvPoint2D32f* cornersA = new CvPoint2D32f[ MAX_CORNERS ]; cvGoodFeaturesToTrack( imgA, eig_image, tmp_image, cornersA, &corner_count, 0.01, 5.0, 0, 3, 0, 0.04 ); cvFindCornerSubPix( imgA, cornersA, corner_count, cvSize(win_size,win_size), cvSize(-1,-1), cvTermCriteria(CV_TERMCRIT_ITER|CV_TERMCRIT_EPS,20,0.03) ); char features_found[ MAX_CORNERS ]; float feature_errors[ MAX_CORNERS ]; CvSize pyr_sz = cvSize( imgA->width+8, imgB->height/3 ); IplImage* pyrA = cvCreateImage( pyr_sz, IPL_DEPTH_32F, 1 ); IplImage* pyrB = cvCreateImage( pyr_sz, IPL_DEPTH_32F, 1 ); CvPoint2D32f* cornersB = new CvPoint2D32f[ MAX_CORNERS ]; cvCalcOpticalFlowPyrLK(//在图像金字塔中计算LK光流 imgA, imgB, pyrA, pyrB, cornersA, cornersB, corner_count, cvSize( win_size,win_size ), 5, features_found, feature_errors, cvTermCriteria( CV_TERMCRIT_ITER | CV_TERMCRIT_EPS, 20, .3 ), 0 ); for( int i=0; i<corner_count; i++ ) { if( features_found[i]==0|| feature_errors[i]>550 ) { printf("Error is %f/n",feature_errors[i]); continue; } printf("Got it/n"); CvPoint p0 = cvPoint( cvRound( cornersA[i].x ), cvRound( cornersA[i].y ) ); CvPoint p1 = cvPoint( cvRound( cornersB[i].x ), cvRound( cornersB[i].y ) ); cvLine( imgC, p0, p1, CV_RGB(255,0,0),2 ); } cvNamedWindow("ImageA",0); cvNamedWindow("ImageB",0); cvNamedWindow("LKpyr_OpticalFlow",0); cvShowImage("ImageA",imgA); cvShowImage("ImageB",imgB); cvShowImage("LKpyr_OpticalFlow",imgC); cvWaitKey(0); return 0;}</span>
运行结果截图:
1 0
- OpenCV:金字塔Lucas-Kanade光流测试代码
- Lerning OpenCV金字塔Lucas-Kanade光流-------运动与跟踪
- 金字塔Lucas-Kanade稀疏光流
- 金字塔Lucas-Kanade稀疏光流
- 金字塔Lucas-Kanade稀疏光流
- [learning opencv]第十章 跟踪与运动:金字塔Lucas-kanade(cvCalcOpticalFlowPyrLK)检测光流
- opencv关于图像金字塔Lucas-Kanade光流检测的实现
- Lucas-Kanade光流 跟踪
- Lucas-Kanade光流 跟踪
- Lucas–Kanade光流算法
- Lucas–Kanade光流算法
- Lucas–Kanade光流算法
- Lucas–Kanade光流算法
- Lucas–Kanade光流算法
- Lucas–Kanade光流算法
- Lucas–Kanade光流算法
- Lucas–Kanade光流算法
- Lucas–Kanade光流算法
- Android仿微信底部导航菜单
- JavaScript变量声明那些事儿
- Redis集群_6.Sentinel.conf 配置文件参数说明
- 微信扫描二维码快速登录网站
- log4j.properties配置
- OpenCV:金字塔Lucas-Kanade光流测试代码
- JS 文本框禁止输入特殊字符
- 分页 Ajax
- 河北保定公安分局长被举报卖官:派出所长卖20万元
- 单链表逆序
- ASP.NET 管道事件与HttpModule, HttpHandler简单理解
- Android .9.png图片制作
- “川版赵作海”蒙冤18年 被逼端屎尿挣分减刑
- Tomcat与Apache集群详细配置过程