光流检测运动物体
来源:互联网 发布:java jvm原理 一句话 编辑:程序博客网 时间:2024/05/29 04:21
光流稠密度检测运动物体calcOpticalFlowFarneback()方法的理解
prev:前一帧图像8位
next:当前帧图像8位
flow:计算出的光流图像
pyr_scale:金字塔层数,取经典参数0.5
levels:初始化金字塔层数
intertions:迭代次数
poly_n:像素邻域的大小
poly_sigma:高斯标准差
#include <iostream>#include <opencv/cv.h>#include <opencv2/highgui/highgui.hpp>#include <opencv2/imgproc/imgproc.hpp>#include <opencv2/imgproc/imgproc.hpp>#include <opencv2/video/tracking.hpp>using namespace std;using namespace cv;/*在经过calcOpticalFlowFarneback处理后,取当前帧与处理后图像对比,得出运动像素的位移和方向变化,并使用颜色画出来*/void DrawOptFlowMap(const Mat& flowmap, Mat& cflowmap){//for循环内y+=5根据自己情况改变,效果不同。 for (int y=0;y<cflowmap.rows;y+=1) { for (int x=0;x<cflowmap.cols;x+=1) { Point2f fxy = flowmap.at<Point2f>(y,x); line(cflowmap,Point(x,y),Point(cvRound(x+fxy.x),cvRound(y+fxy.y)),CV_RGB(0,255,0)); circle(cflowmap,Point(x,y),0.5,CV_RGB(255,0,0),1,0); } }}int main(){ VideoCapture cap; cap.open("TestVideo.avi"); if (!cap.isOpened()) { cout<<"read video wrong"; } Mat prevgray,gray,flow,cflow,frame; do { cap>>frame; cvtColor(frame,gray,CV_BGR2GRAY); if (prevgray.data) { calcOpticalFlowFarneback(prevgray,gray,flow,0.5,3,15,3,5,1.2,0); cvtColor(prevgray, cflow, CV_GRAY2RGB); DrawOptFlowMap(flow,cflow); imshow("FLOW",cflow); } if (waitKey(100) >= 0) { break; } swap(prevgray, gray);//获取当前帧 } while (1); return 0;}
0 0
- 光流检测运动物体
- Opencv光流运动物体追踪
- opencv运动物体检测
- 运动物体检测的问题
- 光流法 运动物体检测[Eng]
- 静态相机检测运动物体
- opecncv之运动物体检测
- 运动物体的检测 初
- 基于光流的视频语义分割和物体检测
- 运动物体的检测--对视频检测
- 运动物体检测——光流法
- 光流法 运动物体检测【中文解释】
- OpenCV 使用光流法检测物体运动
- opencv 运动物体检测函数介绍
- 读视频文件和运动物体检测
- 基于OpenCv的运动物体检测算法
- OpenCV:利用背景建模检测运动物体
- 视频 背景建模,运动物体检测
- C++构造函数初始化列表 委托构造函数
- ios工作笔记
- 软件性能测试的几种方法
- LibSVM(java版)的使用
- 阿里云服务器配置php+apache+mysql+phpMyadmin开发环境并上传本地代码
- 光流检测运动物体
- 【生活感触】:生活要稳健(只看标题即可)
- UIImage_Category
- 面试时必须准备的100 个关键问题!
- SOL学习笔记(3)之索引、唯一及主键约束
- iOS应用程序短信分享和邮件分享
- Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Not unique table/alias: 'e'
- python中%r和%s的区别
- Spring声明式事务管理(基于xml的方式)