资源简介
本文开发平台是VisualStudio2012+opencv结合多线程实现实时场景下目标的跟踪,本代码提供于此,共大家参考使用,使研究本领域的同仁能够开拓视野,节省时间
代码片段和文件信息
//
// Created by erick on 4/4/15.
//
#include
#include
#include
#include
#include
#include “Zippo.h“
using namespace cv;
//initial min and max HSV filter values.
//these will be changed using trackbars
int H_MIN = 0;
int H_MAX = 256;
int S_MIN = 0;
int S_MAX = 256;
int V_MIN = 0;
int V_MAX = 256;
//default capture width and height
const int frame_WIDTH = 640;
const int frame_HEIGHT = 480;
//max number of objects to be detected in frame
const int MAX_NUM_objectS=50;
//minimum and maximum object area
const int MIN_object_AREA = 20*20;
const int MAX_object_AREA = frame_HEIGHT*frame_WIDTH/1.5;
//names that will appear at the top of each window
const string windowName = “Original Image“;
const string windowName1 = “HSV Image“;
const string windowName2 = “Thresholded Image“;
const string windowName3 = “After Morphological Operations“;
const string trackbarWindowName = “Trackbars“;
//Multithreading stuff
pthread_t thread1 thread2;
int ret_thread;
//Function Declerations
void* lookforobject(void *ofd_ptr);
void on_trackbar( int void* )
{//This function gets called whenever a
// trackbar position is changed
}
string intToString(int number){
std::stringstream ss;
ss << number;
return ss.str();
}
void createTrackbars(){
namedWindow(trackbarWindowName0);
char TrackbarName[50];
sprintf( TrackbarName “H_MIN“ H_MIN);
sprintf( TrackbarName “H_MAX“ H_MAX);
sprintf( TrackbarName “S_MIN“ S_MIN);
sprintf( TrackbarName “S_MAX“ S_MAX);
sprintf( TrackbarName “V_MIN“ V_MIN);
sprintf( TrackbarName “V_MAX“ V_MAX);
createTrackbar( “H_MIN“ trackbarWindowName &H_MIN H_MAX on_trackbar );
createTrackbar( “H_MAX“ trackbarWindowName &H_MAX H_MAX on_trackbar );
createTrackbar( “S_MIN“ trackbarWindowName &S_MIN S_MAX on_trackbar );
createTrackbar( “S_MAX“ trackbarWindowName &S_MAX S_MAX on_trackbar );
createTrackbar( “V_MIN“ trackbarWindowName &V_MIN V_MAX on_trackbar );
createTrackbar( “V_MAX“ trackbarWindowName &V_MAX V_MAX on_trackbar );
}
void drawobject(Vector zips Mat &frame){
//added ‘if‘ and ‘else‘ statements to prevent
//memory errors from writing off the screen (ie. (-25-25) is not within the window
for (int i = 0; i < zips.size(); ++i) {
circle(frame Point(zips.operator[](i).getX() zips.operator[](i).getY()) 20 Scalar(0 255 0) 2);
if (zips.operator[](i).getY() - 25 > 0)
line(frame Point(zips.operator[](i).getX() zips.operator[](i).getY()) Point(zips.operator[](i).getX() zips.operator[](i).getY() - 25) Scalar(0 255 0) 2);
else line(frame Point(zips.operator[](i).getX() zips.operator[](i).getY()) Point(zips.operator[](i).getX() 0) Scalar(0 255 0) 2);
if (zips.operator[](i).getY() + 25 < frame_HEIGHT)
line(frame Point(zips.operator[](i).getX() zips.operator[](i).getY()) Point(zips.operator[](i)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2015-04-05 02:58 ob
文件 78 2015-04-05 02:58 ob
目录 0 2015-04-05 02:58 ob
文件 299624 2015-04-05 02:58 ob
目录 0 2015-04-05 02:58 ob
文件 291 2015-04-05 02:58 ob
文件 1241 2015-04-05 02:58 ob
文件 770 2015-04-05 02:58 ob
文件 11921 2015-04-05 02:58 ob
- 上一篇:microblaze 定时器 中断相关资料
- 下一篇:01.txt
相关资源
- 多目标跟踪MOT16_Benchmark数据集链接
- 基于meanshift和粒子滤波的目标跟踪代
- 自拍用于目标跟踪的红外图像序列
- 画跟踪精确度图的程序.zip
- 在一张图上画多个跟踪框.zip
- 论文研究-基于修正积分卡尔曼粒子滤
- 目标跟踪中用到的各种深度学习方法
- 粒子滤波视频目标跟踪程序文档
- 红外目标跟踪测试视频
- 机动目标跟踪、信息融合希望有用
- 机动目标跟踪pdf格式
- 基于UKF滤波的单目标跟踪算法研究
- GMM_运动检测_目标跟踪_背景建模
- 多目标跟踪
- 多特征融合的目标跟踪
- kalman滤波实现视频目标跟踪
- meanshift均值漂移目标跟踪
- deep_sort_yolov3利用深度学习的多目标跟
- SRDCF运行结果文件
- DSST目标跟踪算法
- 基于粒子滤波的多目标跟踪程序
- 卡尔曼目标跟踪
- 随机有限集理论
- 相关滤波目标跟踪算法以及评价
- 多目标跟踪源码
- 雷达目标跟踪
- camshift 目标跟踪程序
- 视频目标跟踪
- openc基于SIFT和Surf特征的目标跟踪
- SRDCFwithADMM
评论
共有 条评论