OSVR Framework (Internal Development Docs)  0.6-1962-g59773924
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
GenericBlobExtractor.cpp
Go to the documentation of this file.
1 
11 // Copyright 2016 Sensics, Inc.
12 //
13 // Licensed under the Apache License, Version 2.0 (the "License");
14 // you may not use this file except in compliance with the License.
15 // You may obtain a copy of the License at
16 //
17 // http://www.apache.org/licenses/LICENSE-2.0
18 //
19 // Unless required by applicable law or agreed to in writing, software
20 // distributed under the License is distributed on an "AS IS" BASIS,
21 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
22 // See the License for the specific language governing permissions and
23 // limitations under the License.
24 
25 // Internal Includes
26 #include "GenericBlobExtractor.h"
27 
28 // Library/third-party includes
29 // - none
30 
31 // Standard includes
32 // - none
33 
34 namespace osvr {
35 namespace vbtracker {
36 
37  GenericBlobExtractor::~GenericBlobExtractor() {}
38 
39  cv::Mat const &GenericBlobExtractor::getDebugThresholdImage() {
40  if (m_debugThresholdImageDirty) {
41  m_debugThresholdImage = generateDebugThresholdImage_();
42  m_debugThresholdImageDirty = false;
43  }
44  return m_debugThresholdImage;
45  }
46  cv::Mat const &GenericBlobExtractor::getDebugBlobImage() {
47  if (m_debugBlobImageDirty) {
48  m_debugBlobImage = generateDebugBlobImage_();
49  m_debugBlobImageDirty = false;
50  }
51  return m_debugBlobImage;
52  }
53 
54  LedMeasurementVec const &
55  GenericBlobExtractor::extractBlobs(cv::Mat const &grayImage) {
56  latestMeasurements_.clear();
57  lastGrayImage_ = grayImage.clone();
58 
59  m_debugThresholdImageDirty = true;
60  m_debugBlobImageDirty = true;
61  latestMeasurements_ = extractBlobs_();
62  return latestMeasurements_;
63  }
64 
65 } // namespace vbtracker
66 } // namespace osvr