資源簡介
本文開發平臺是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?<????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?????????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?ame_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
評論
共有 條評論