summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorStéphane Lenclud <github@lenclud.com>2019-04-17 17:59:48 +0200
committerStéphane Lenclud <github@lenclud.com>2019-04-24 18:46:12 +0200
commit0a85531e359dcde7aecdd486c6789cbeab93463f (patch)
treeddedceaa1fb0c167bc5e27f03e1ab93c1ee10faa
parentc4d9ad64f2aa9136c353dc4b10935dfca08a1779 (diff)
Easy Tracker: Experimented with erode/dilate and mean/cam shift. It does not bring much.
-rw-r--r--tracker-easy/CMakeLists.txt2
-rw-r--r--tracker-easy/point-extractor.cpp17
2 files changed, 18 insertions, 1 deletions
diff --git a/tracker-easy/CMakeLists.txt b/tracker-easy/CMakeLists.txt
index 229a90ae..7b776c9b 100644
--- a/tracker-easy/CMakeLists.txt
+++ b/tracker-easy/CMakeLists.txt
@@ -2,5 +2,5 @@ find_package(OpenCV QUIET)
if(OpenCV_FOUND)
otr_module(tracker-easy)
target_include_directories(${self} SYSTEM PUBLIC ${OpenCV_INCLUDE_DIRS})
- target_link_libraries(${self} opencv_imgproc opencv_calib3d opentrack-cv opencv_core opentrack-video)
+ target_link_libraries(${self} opencv_core opencv_imgproc opencv_calib3d opencv_video opentrack-cv opentrack-video)
endif()
diff --git a/tracker-easy/point-extractor.cpp b/tracker-easy/point-extractor.cpp
index cc58c70c..61175a57 100644
--- a/tracker-easy/point-extractor.cpp
+++ b/tracker-easy/point-extractor.cpp
@@ -17,9 +17,13 @@
#include <algorithm>
#include <cinttypes>
#include <memory>
+#include <opencv2/highgui/highgui.hpp>
+// Needed for mean shift
+#include <opencv2/video/tracking.hpp>
#include <QDebug>
+
using namespace numeric_types;
namespace EasyTracker
@@ -77,6 +81,16 @@ namespace EasyTracker
return;
}
+//#define DEBUG
+#ifdef DEBUG
+ cv::imshow("iFrameGray", iFrameGray);
+ cv::erode(iFrameGray, iFrameGray, cv::Mat(), cv::Point(-1, -1), 1);
+ cv::imshow("Eroded", iFrameGray);
+ cv::dilate(iFrameGray, iFrameGray, cv::Mat(), cv::Point(-1, -1), 2);
+ cv::imshow("Dilated", iFrameGray);
+#endif
+
+
// Contours detection
iContours.clear();
cv::findContours(iFrameGray, iContours, cv::RETR_EXTERNAL, cv::CHAIN_APPROX_SIMPLE);
@@ -99,6 +113,9 @@ namespace EasyTracker
&& bBox.width <= s.max_point_size
&& bBox.height <= s.max_point_size)
{
+ // Do a mean shift or cam shift, it's not bringing much though
+ //cv::CamShift(iFrameGray, bBox, cv::TermCriteria(cv::TermCriteria::EPS + cv::TermCriteria::MAX_ITER, 10, 1));
+ //
cv::Point center;
center.x = bBox.x + bBox.width / 2;
center.y = bBox.y + bBox.height / 2;