8000 Fix tracking support · LumiGuide/haskell-opencv@250516b · GitHub
[go: up one dir, main page]

Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 250516b

Browse files
committed
Fix tracking support
1 parent 40f4f9e commit 250516b

File tree

7 files changed

+21
-34
lines changed

7 files changed

+21
-34
lines changed

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ addons:
3131
# The different configurations we want to test. You could also do things like
3232
# change flags or use --stack-yaml to point to a different file.
3333
env:
34-
- ARGS="--jobs 2 --resolver lts-9.9" CACHE_NAME=LTS_9_9_CV_3_3_0
34+
- ARGS="--jobs 2 --resolver lts-9.10" CACHE_NAME=LTS_9_10_CV_3_3_1
3535

3636
before_install:
3737
# Install OpenCV 3

opencv-extra-examples/src/tracker.hs

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,6 @@ import Control.Monad.Trans.Class
2525

2626
import System.IO.Unsafe
2727

28-
main :: IO ()
29-
main = putStrLn $
30-
"FIXME: this executable depends on the module OpenCV.Extra.Tracking which " ++
31-
"doesn't yet build with opencv-3.3.0. So we disable it for now."
32-
33-
{-
3428
class LoopEnum a where
3529
next :: a -> a
3630

@@ -99,4 +93,3 @@ main = do
9993

10094
-- Out of frames, stop looping.
10195
_ -> pure ()
102-
-}

opencv-extra/opencv-extra.cabal

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -51,15 +51,15 @@ library
5151
install-includes:
5252
aruco.hpp
5353
bgsegm.hpp
54-
-- tracking.hpp
54+
tracking.hpp
5555
white-ballance.hpp
5656
xfeatures/surf.hpp
5757
aruco-namespace.hpp
5858

5959
c-sources:
6060
src/OpenCV/Extra/ArUco.cpp
6161
src/OpenCV/Extra/Bgsegm.cpp
62-
-- src/OpenCV/Extra/Tracking.cpp
62+
src/OpenCV/Extra/Tracking.cpp
6363
src/OpenCV/Extra/XPhoto.cpp
6464
src/OpenCV/Extra/XPhoto/WhiteBalancer.cpp
6565
src/OpenCV/Extra/XFeatures2d.cpp
@@ -88,10 +88,7 @@ library
8888
OpenCV.Extra.ArUco
8989
OpenCV.Extra.Bgsegm
9090
OpenCV.Extra.XFeatures2d
91-
92-
-- Doesn't build with opencv-3.3.0 anymore
93-
-- OpenCV.Extra.Tracking
94-
91+
OpenCV.Extra.Tracking
9592
OpenCV.Extra.XPhoto
9693
OpenCV.Extra.XPhoto.WhiteBalancer
9794

opencv-extra/src/OpenCV/Extra.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ module OpenCV.Extra
66

77
import OpenCV.Extra.ArUco as Extra
88
import OpenCV.Extra.Bgsegm as Extra
9-
-- import OpenCV.Extra.Tracking as Extra
9+
import OpenCV.Extra.Tracking as Extra
1010
import OpenCV.Extra.XFeatures2d as Extra
1111
import OpenCV.Extra.XPhoto as Extra
1212
import OpenCV.Extra.XPhoto.WhiteBalancer as Extra

opencv-extra/src/OpenCV/Extra/Tracking.hs

Lines changed: 11 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ data TrackerType
5757
| KCF -- ^
5858
| MEDIANFLOW -- ^
5959
| TLD -- ^
60+
| GOTURN -- ^ https://github.com/opencv/opencv_extra/tree/c4219d5eb3105ed8e634278fad312a1a8d2c182d/testdata/tracking
6061
deriving (Eq, Show, Enum, Bounded)
6162

6263
data TrackerFeatureType
@@ -87,14 +88,13 @@ newTracker
8788
=> TrackerType
8889
-- ^ Name
8990
-> m (Tracker (PrimState m))
90-
newTracker trackerType =
91-
unsafePrimToPrim $ fromPtr $
92-
withCString (show trackerType) $ \c'trackerType ->
93-
[CU.block|Ptr_Tracker * {
94-
cv::Ptr<cv::Tracker> tracker =
95-
cv::Tracker::create ( cv::String($(const char * c'trackerType)));
96-
return new cv::Ptr<cv::Tracker>(tracker);
97-
}|]
91+
newTracker tType = unsafePrimToPrim $ fromPtr $ case tType of
92+
BOOSTING -> [CU.block|Ptr_Tracker * {return new cv::Ptr<cv::Tracker>(cv::TrackerBoosting::create());}|]
93+
MIL -> [CU.block|Ptr_Tracker * {return new cv::Ptr<cv::Tracker>(cv::TrackerMIL::create());}|]
94+
KCF -> [CU.block|Ptr_Tracker * {return new cv::Ptr<cv::Tracker>(cv::TrackerKCF::create());}|]
95+
MEDIANFLOW -> [CU.block|Ptr_Tracker * {return new cv::Ptr<cv::Tracker>(cv::TrackerMedianFlow::create());}|]
96+
TLD -> [CU.block|Ptr_Tracker * {return new cv::Ptr<cv::Tracker>(cv::TrackerTLD::create());}|]
97+
GOTURN -> [CU.block|Ptr_Tracker * {return new cv::Ptr<cv::Tracker>(cv::TrackerGOTURN::create());}|]
9898

9999
initTracker
100100
:: (PrimMonad m, IsRect rect C.CDouble)
@@ -185,16 +185,11 @@ instance FromPtr (MultiTrackerAlt s) where
185185

186186
newMultiTracker
187187
:: (PrimMonad m)
188-
=> TrackerType
189-
-- ^ Name
190-
-> m (MultiTracker (PrimState m))
191-
newMultiTracker trackerType =
188+
=> m (MultiTracker (PrimState m))
189+
newMultiTracker =
192190
unsafePrimToPrim $ fromPtr $
193-
withCString (show trackerType) $ \c'trackerType ->
194191
[CU.block|Ptr_MultiTracker * {
195-
cv::Ptr<cv::MultiTracker> mtracker =
196-
new cv::MultiTracker ( cv::String($(const char * c'trackerType)));
197-
return new cv::Ptr<cv::MultiTracker>(mtracker);
192+
return new cv::Ptr<cv::MultiTracker>(new cv::MultiTracker ());
198193
}|]
199194

200195
--------------------------------------------------------------------------------
@@ -211,5 +206,4 @@ newTrackerFeature trackerFeatureType =
211206
cv::Ptr<cv::TrackerFeature> ftracker =
212207
cv::TrackerFeature::create ( cv::String($(const char * c'trackerFeatureType)));
213208
return new cv::Ptr<cv::TrackerFeature>(ftracker);
214-
215209
}|]

stack.yaml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
1-
resolver: lts-9.9
1+
resolver: lts-9.10
22
packages:
33
- opencv/
44
- opencv-examples/
55
- opencv-extra/
66
- opencv-extra-examples/
77
flags: {}
88
allow-newer: true
9+
10+
extra-deps:
11+
- repa-3.4.1.3

travis-build-opencv

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/bin/bash
22
set -eux -o pipefail
33

4-
OPENCV_VERSION=${OPENCV_VERSION:-3.3.0}
4+
OPENCV_VERSION=${OPENCV_VERSION:-3.3.1}
55

66
GRAPHICAL=${GRAPHICAL:-OFF}
77

0 commit comments

Comments
 (0)
0