-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathFlameDetector.cpp
60 lines (48 loc) · 1.47 KB
/
FlameDetector.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
//
// FlameDetector.cpp
// FlameDetection
//
// Created by liberize on 14-4-5.
// Copyright (c) 2014年 liberize. All rights reserved.
//
#include "FlameDetector.h"
#include <QNetworkAccessManager>
#include <QNetworkRequest>
extern CConfig mConfig;
FlameDetector::FlameDetector()
: mFrameCount(0)
, mFlameCount(0)
, mTrack(false)
{
}
int FlameDetector::detect(const Mat& frame)
{
mFrame = frame;
clock_t start, finish;
if(++mFrameCount > SKIP_FRAME_COUNT)
{
mTrack = true;
start = clock();
mFrameCount = SKIP_FRAME_COUNT + 1;
}
mExtractor.extract(mFrame, mTargetMap, mTrack);
if (mTrack)
{
mAnalyzer.analyze(mFrame, mTargetMap,mExtractor.mMask);
int result = mDecider.decide(mFrame, mTargetMap);
finish = clock();
if (result)
{
//mFlameCount++;
m_Rect = Rect(mDecider.m_Rect.x + mConfig._config.cropX, mDecider.m_Rect.y + mConfig._config.cropY,
mDecider.m_Rect.width, mDecider.m_Rect.height);
//StopCamera();
}
//cout << "duration: " << 1.0 * (finish - start) / CLOCKS_PER_SEC << endl;
//cout << "frame: " << (mFrameCount - SKIP_FRAME_COUNT) << ", flame: " << mFlameCount << endl;
//cout << "flame: " << mFlameCount << endl;
//cout << "detection rate: " << 1.0 * mFlameCount / (mFrameCount - SKIP_FRAME_COUNT) << endl;
return result;
}
return false;
}