zoukankan
html css js c++ java
分割移动微小物体
思路:
1. 前后两帧相减,得到差分图像
2.在差分图像里求像素最大的点(最亮的点)
这样就得到,移动微小物体
#include
"
check.h
"
#include
<
iostream.h
>
void
main()
{
DWORD t1,t2;
IplImage
*
frame
=
0
;
CvCapture
*
capture
=
cvCaptureFromAVI(
"
E:\\跟踪\\有源窄滤波片2m30fps_2.avi
"
);
CCheck check;
cvNamedWindow(
"
目标跟踪
"
,
1
);
//
创建窗口
frame
=
cvQueryFrame(capture);
check.Init(frame);
while
(
1
)
{
frame
=
cvQueryFrame(capture);
if
(
!
frame)
{
break
;
}
t1
=
::GetTickCount();
CvPoint point
=
check.point(frame);
IplImage
*
show
=
cvCloneImage( frame );
cvCircle(show, point,
10
, cvScalar(
0
,
255
,
0
),
2
);
cvShowImage(
"
目标跟踪
"
,show);
cvReleaseImage(
&
show );
cvWaitKey(
1
);
t2
=
::GetTickCount();
cout
<<
t2
-
t1
<<
endl;
}
cvReleaseCapture(
&
capture);
cvDestroyWindow(
"
目标跟踪
"
);
}
#ifndef CHECK_H
#define
CHECK_H
#include
"
cv.h
"
#include
"
highgui.h
"
#include
"
cvcam.h
"
#include
"
check.h
"
#define
_I8(image,x,y) (*((unsigned char*)(image)->imageData+(image)->widthStep*(y)+(x)))
//
直接调用图像的像素,x、y为整数(图像数据应为32F)
#define
_I32(img,x,y) ((float*)((img)->imageData + (img)->widthStep*(y)))[(x)]
class
CCheck
{
private
:
int
px,py;
int
width,height;
IplImage
*
frame1;
//
当前帧
IplImage
*
frame2;
//
前一帧
public
:
CCheck();
~
CCheck();
void
Init(IplImage
*
img);
CvPoint point(IplImage
*
img);
}
;
#endif
#include
"
check.h
"
#include
<
iostream.h
>
void
main()
{
DWORD t1,t2;
IplImage
*
frame
=
0
;
CvCapture
*
capture
=
cvCaptureFromAVI(
"
E:\\跟踪\\有源窄滤波片2m30fps_2.avi
"
);
CCheck check;
cvNamedWindow(
"
目标跟踪
"
,
1
);
//
创建窗口
frame
=
cvQueryFrame(capture);
check.Init(frame);
while
(
1
)
{
frame
=
cvQueryFrame(capture);
if
(
!
frame)
{
break
;
}
t1
=
::GetTickCount();
CvPoint point
=
check.point(frame);
IplImage
*
show
=
cvCloneImage( frame );
cvCircle(show, point,
10
, cvScalar(
0
,
255
,
0
),
2
);
cvShowImage(
"
目标跟踪
"
,show);
cvReleaseImage(
&
show );
cvWaitKey(
1
);
t2
=
::GetTickCount();
cout
<<
t2
-
t1
<<
endl;
}
cvReleaseCapture(
&
capture);
cvDestroyWindow(
"
目标跟踪
"
);
}
查看全文
相关阅读:
运行.bat批处理,CMD窗口隐藏,并制作为EXE文件
TinyXML:一个优秀的C++ XML解析器(转载)
2013编程之美资格赛【传话游戏】
linux GTK教程(消息机制/标签/按钮/图像/文本/对话框/菜单/容器)
c++强制类型转换(总结)
string与char*的转换(转载)
网络数据包捕获函数库Libpcap安装与使用(非常强大)
Linux 高级Socket编程
linux GTK 安装
.dll和.lib文件的生成和使用 c++
原文地址:https://www.cnblogs.com/wqj1212/p/1009689.html
最新文章
OpenLayers辅助函数Util.js(三)
加载js库文件并提供命名空间——OpenLayers.js(一)
python类型转换、数值操作(收藏)
OpenLayers BaseType.js扩展操作函数(六)
OpenLayers目录结构(二)
调试与输出错误日志Console.js(四)
OpenLayers事件处理Event.js(七)
(转)Quirks模式与standards模式区别
(转)OpenLayers基类文件Class.js(五)
Asp.net,C# 加密解密字符串
热门文章
你有没有这样写异常处理代码呢?
关于Silverlight 调用WCF/Rest的异常
Silverlight 完全详解打印, 微软的Bug ??
Answer:关于C#连续赋值的面试题
Silverlight DataGrid中无代码设置开始和结束日期的 DatePicker
再谈下 Silverlight 跨线程
Asp.net,C# 纯数字加密解密字符串
Question:关于C#连续赋值的面试题
abstract 和override可以同时使用吗??
Linux 基本网络编程
Copyright © 2011-2022 走看看