Now the DetectionBasedTracker will throw exception if it cannot load cascade detector from a file.
This commit is contained in:
parent
47f72b538f
commit
daec4d88fa
@ -107,12 +107,15 @@ class DetectionBasedTracker::SeparateDetectionWork
|
|||||||
|
|
||||||
DetectionBasedTracker::SeparateDetectionWork::SeparateDetectionWork(DetectionBasedTracker& _detectionBasedTracker, const std::string& cascadeFilename)
|
DetectionBasedTracker::SeparateDetectionWork::SeparateDetectionWork(DetectionBasedTracker& _detectionBasedTracker, const std::string& cascadeFilename)
|
||||||
:detectionBasedTracker(_detectionBasedTracker),
|
:detectionBasedTracker(_detectionBasedTracker),
|
||||||
cascadeInThread(cascadeFilename),
|
cascadeInThread(),
|
||||||
isObjectDetectingReady(false),
|
isObjectDetectingReady(false),
|
||||||
shouldObjectDetectingResultsBeForgot(false),
|
shouldObjectDetectingResultsBeForgot(false),
|
||||||
stateThread(STATE_THREAD_STOPPED),
|
stateThread(STATE_THREAD_STOPPED),
|
||||||
timeWhenDetectingThreadStartedWork(-1)
|
timeWhenDetectingThreadStartedWork(-1)
|
||||||
{
|
{
|
||||||
|
if(!cascadeInThread.load(cascadeFilename)) {
|
||||||
|
CV_Error(CV_StsBadArg, "DetectionBasedTracker::SeparateDetectionWork::SeparateDetectionWork: Cannot load a cascade from the file '"+cascadeFilename+"'");
|
||||||
|
}
|
||||||
int res=0;
|
int res=0;
|
||||||
res=pthread_mutex_init(&mutex, NULL);//TODO: should be attributes?
|
res=pthread_mutex_init(&mutex, NULL);//TODO: should be attributes?
|
||||||
if (res) {
|
if (res) {
|
||||||
@ -439,14 +442,17 @@ DetectionBasedTracker::InnerParameters::InnerParameters()
|
|||||||
DetectionBasedTracker::DetectionBasedTracker(const std::string& cascadeFilename, const Parameters& params)
|
DetectionBasedTracker::DetectionBasedTracker(const std::string& cascadeFilename, const Parameters& params)
|
||||||
:separateDetectionWork(),
|
:separateDetectionWork(),
|
||||||
innerParameters(),
|
innerParameters(),
|
||||||
numTrackedSteps(0),
|
numTrackedSteps(0)
|
||||||
cascadeForTracking(cascadeFilename)
|
|
||||||
{
|
{
|
||||||
CV_Assert( (params.minObjectSize > 0)
|
CV_Assert( (params.minObjectSize > 0)
|
||||||
&& (params.maxObjectSize >= 0)
|
&& (params.maxObjectSize >= 0)
|
||||||
&& (params.scaleFactor > 1.0)
|
&& (params.scaleFactor > 1.0)
|
||||||
&& (params.maxTrackLifetime >= 0) );
|
&& (params.maxTrackLifetime >= 0) );
|
||||||
|
|
||||||
|
if (!cascadeForTracking.load(cascadeFilename)) {
|
||||||
|
CV_Error(CV_StsBadArg, "DetectionBasedTracker::DetectionBasedTracker: Cannot load a cascade from the file '"+cascadeFilename+"'");
|
||||||
|
}
|
||||||
|
|
||||||
parameters=params;
|
parameters=params;
|
||||||
|
|
||||||
separateDetectionWork=new SeparateDetectionWork(*this, cascadeFilename);
|
separateDetectionWork=new SeparateDetectionWork(*this, cascadeFilename);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user