diff --git a/Data/Baseline/Examples/FeatureExtraction/ExtractRoadByStepsExampleOutput.1.png b/Data/Baseline/Examples/FeatureExtraction/ExtractRoadByStepsExampleOutput.1.png
deleted file mode 100644
index 21b0d0b017d140ad17456c384e583e7cf308297a..0000000000000000000000000000000000000000
--- a/Data/Baseline/Examples/FeatureExtraction/ExtractRoadByStepsExampleOutput.1.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:34a5f9e6daad51f0e614fe07e4755422c8420fda029e7ad7302de31a92535982
-size 1340160
diff --git a/Data/Baseline/Examples/FeatureExtraction/ExtractRoadByStepsExampleOutput.png b/Data/Baseline/Examples/FeatureExtraction/ExtractRoadByStepsExampleOutput.png
deleted file mode 100644
index c2d86e289fa134625e4e008e8b5765201acd9478..0000000000000000000000000000000000000000
--- a/Data/Baseline/Examples/FeatureExtraction/ExtractRoadByStepsExampleOutput.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:870c0d619c315c9843cd9a5aedc44a34471d5fecbc9306a492efbb47c19530b9
-size 1340628
diff --git a/Data/Baseline/Examples/FeatureExtraction/ExtractRoadByStepsExampleOutput.png.aux.xml b/Data/Baseline/Examples/FeatureExtraction/ExtractRoadByStepsExampleOutput.png.aux.xml
deleted file mode 100644
index 761fbb2f643719fcae011bda40747b745e89f458..0000000000000000000000000000000000000000
--- a/Data/Baseline/Examples/FeatureExtraction/ExtractRoadByStepsExampleOutput.png.aux.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<PAMDataset>
-  <SRS>PROJCS["WGS 84 / UTM zone 32N",
-    GEOGCS["WGS 84",
-        DATUM["WGS_1984",
-            SPHEROID["WGS 84",6378137,298.257223563,
-                AUTHORITY["EPSG","7030"]],
-            AUTHORITY["EPSG","6326"]],
-        PRIMEM["Greenwich",0],
-        UNIT["degree",0.0174532925199433],
-        AUTHORITY["EPSG","4326"]],
-    PROJECTION["Transverse_Mercator"],
-    PARAMETER["latitude_of_origin",0],
-    PARAMETER["central_meridian",9],
-    PARAMETER["scale_factor",0.9996],
-    PARAMETER["false_easting",500000],
-    PARAMETER["false_northing",0],
-    UNIT["metre",1,
-        AUTHORITY["EPSG","9001"]],
-    AUTHORITY["EPSG","32632"]]</SRS>
-  <GeoTransform>  4.3913640000000002e+05,  5.9999999999999998e-01,  0.0000000000000000e+00,  5.2737065999999996e+06,  0.0000000000000000e+00, -5.9999999999999998e-01</GeoTransform>
-  <Metadata domain="IMAGE_STRUCTURE">
-    <MDI key="INTERLEAVE">PIXEL</MDI>
-  </Metadata>
-  <Metadata>
-    <MDI key="AREA_OR_POINT">Area</MDI>
-  </Metadata>
-</PAMDataset>
diff --git a/Data/Baseline/Examples/FeatureExtraction/ExtractRoadExampleOutput.1.png b/Data/Baseline/Examples/FeatureExtraction/ExtractRoadExampleOutput.1.png
deleted file mode 100644
index 3bb75ceacc22bea2c6e5b72383c4b972febd74fa..0000000000000000000000000000000000000000
--- a/Data/Baseline/Examples/FeatureExtraction/ExtractRoadExampleOutput.1.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:b68d89bfa22c07d91a304ff20c04aa4c242197a66cf24b4f7957cc863c1fd2f7
-size 15199
diff --git a/Data/Baseline/Examples/FeatureExtraction/ExtractRoadExampleOutput.png b/Data/Baseline/Examples/FeatureExtraction/ExtractRoadExampleOutput.png
deleted file mode 100644
index bb6e778dc5e12c0296d21e697596fa5ea9eb8c0d..0000000000000000000000000000000000000000
--- a/Data/Baseline/Examples/FeatureExtraction/ExtractRoadExampleOutput.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:079e3734a9c954f76d4b58596b0ffe9b0bbecb92958774bb7b6c433cb9b7a36d
-size 15220
diff --git a/Data/Baseline/Examples/FeatureExtraction/ExtractRoadExampleOutput.png.aux.xml b/Data/Baseline/Examples/FeatureExtraction/ExtractRoadExampleOutput.png.aux.xml
deleted file mode 100644
index 21ce935f9d0862129f77af6bd48d60cba2eabf67..0000000000000000000000000000000000000000
--- a/Data/Baseline/Examples/FeatureExtraction/ExtractRoadExampleOutput.png.aux.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<PAMDataset>
-  <SRS>PROJCS["WGS 84 / UTM zone 32N",
-    GEOGCS["WGS 84",
-        DATUM["WGS_1984",
-            SPHEROID["WGS 84",6378137,298.257223563,
-                AUTHORITY["EPSG","7030"]],
-            AUTHORITY["EPSG","6326"]],
-        PRIMEM["Greenwich",0],
-        UNIT["degree",0.0174532925199433],
-        AUTHORITY["EPSG","4326"]],
-    PROJECTION["Transverse_Mercator"],
-    PARAMETER["latitude_of_origin",0],
-    PARAMETER["central_meridian",9],
-    PARAMETER["scale_factor",0.9996],
-    PARAMETER["false_easting",500000],
-    PARAMETER["false_northing",0],
-    UNIT["metre",1,
-        AUTHORITY["EPSG","9001"]],
-    AUTHORITY["EPSG","32632"]]</SRS>
-  <GeoTransform>  4.3913640000000002e+05,  5.9999999999999998e-01,  0.0000000000000000e+00,  5.2737065999999996e+06,  0.0000000000000000e+00, -5.9999999999999998e-01</GeoTransform>
-  <Metadata>
-    <MDI key="AREA_OR_POINT">Area</MDI>
-  </Metadata>
-</PAMDataset>
diff --git a/Data/Baseline/Examples/FeatureExtraction/SeamCarvingExampleOutput.png b/Data/Baseline/Examples/FeatureExtraction/SeamCarvingExampleOutput.png
deleted file mode 100644
index 426eb10b3d9e1e644289252ae467dbd16d37a9ee..0000000000000000000000000000000000000000
--- a/Data/Baseline/Examples/FeatureExtraction/SeamCarvingExampleOutput.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:4015aa8e7dcf8993def02252301d5f91eb73b970fecd277f799194551bc99ce0
-size 35299
diff --git a/Data/Baseline/Examples/FeatureExtraction/SeamCarvingOtherExampleOutput.png b/Data/Baseline/Examples/FeatureExtraction/SeamCarvingOtherExampleOutput.png
deleted file mode 100644
index eed540571c0e9fe756b6835a6a8782e25d6da40e..0000000000000000000000000000000000000000
--- a/Data/Baseline/Examples/FeatureExtraction/SeamCarvingOtherExampleOutput.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:da8f331a2806a0c06405abcd7806ebdb668e13a74457151313f13a5ed7c57a32
-size 45234
diff --git a/Data/Baseline/Examples/FeatureExtraction/qb_ExtractRoad_pretty.png b/Data/Baseline/Examples/FeatureExtraction/qb_ExtractRoad_pretty.png
deleted file mode 100644
index d4307ec6f7341c32901e56f56b41927d18eedefb..0000000000000000000000000000000000000000
--- a/Data/Baseline/Examples/FeatureExtraction/qb_ExtractRoad_pretty.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:7a01fe4d41a060407d2613ba9595fde7321aa77c6e44f6552bb83d77d0dcef34
-size 1334929
diff --git a/Data/Baseline/Examples/FeatureExtraction/qb_ExtractRoad_pretty.png.aux.xml b/Data/Baseline/Examples/FeatureExtraction/qb_ExtractRoad_pretty.png.aux.xml
deleted file mode 100644
index 761fbb2f643719fcae011bda40747b745e89f458..0000000000000000000000000000000000000000
--- a/Data/Baseline/Examples/FeatureExtraction/qb_ExtractRoad_pretty.png.aux.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<PAMDataset>
-  <SRS>PROJCS["WGS 84 / UTM zone 32N",
-    GEOGCS["WGS 84",
-        DATUM["WGS_1984",
-            SPHEROID["WGS 84",6378137,298.257223563,
-                AUTHORITY["EPSG","7030"]],
-            AUTHORITY["EPSG","6326"]],
-        PRIMEM["Greenwich",0],
-        UNIT["degree",0.0174532925199433],
-        AUTHORITY["EPSG","4326"]],
-    PROJECTION["Transverse_Mercator"],
-    PARAMETER["latitude_of_origin",0],
-    PARAMETER["central_meridian",9],
-    PARAMETER["scale_factor",0.9996],
-    PARAMETER["false_easting",500000],
-    PARAMETER["false_northing",0],
-    UNIT["metre",1,
-        AUTHORITY["EPSG","9001"]],
-    AUTHORITY["EPSG","32632"]]</SRS>
-  <GeoTransform>  4.3913640000000002e+05,  5.9999999999999998e-01,  0.0000000000000000e+00,  5.2737065999999996e+06,  0.0000000000000000e+00, -5.9999999999999998e-01</GeoTransform>
-  <Metadata domain="IMAGE_STRUCTURE">
-    <MDI key="INTERLEAVE">PIXEL</MDI>
-  </Metadata>
-  <Metadata>
-    <MDI key="AREA_OR_POINT">Area</MDI>
-  </Metadata>
-</PAMDataset>
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.1.dbf b/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.1.dbf
deleted file mode 100644
index 872a668071680090e04ee4154d26d68b18630e90..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.1.dbf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f9d6c2cacc6b2947ee21de06212d8456f1ad1dd817eb08f0cca74a461982e6fc
-size 13050
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.1.shp b/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.1.shp
deleted file mode 100644
index 0ae7cfbd6a7bb8fd9ede0766fb817fafdaef3a1b..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.1.shp
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:03dc018b3fda6afc76870dbb82d43cf954b483d451a44bc9609547a646cd5f69
-size 17244
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.1.shx b/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.1.shx
deleted file mode 100644
index d7d3c02a05f660729a7ea7f614bb249b23c8dfdb..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.1.shx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:9ddb05befb0e32de1d63c65853967329a2e279c8b47ead80a68e659a11f2d692
-size 1516
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.dbf b/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.dbf
deleted file mode 100644
index 872a668071680090e04ee4154d26d68b18630e90..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.dbf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f9d6c2cacc6b2947ee21de06212d8456f1ad1dd817eb08f0cca74a461982e6fc
-size 13050
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.prj b/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.prj
deleted file mode 100644
index da98376fa44ea626ab3c6ca1debe4660482e548b..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.prj
+++ /dev/null
@@ -1 +0,0 @@
-PROJCS["WGS_1984_UTM_Zone_31N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["Meter",1]]
\ No newline at end of file
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.shp b/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.shp
deleted file mode 100644
index d989282e41d5a15672cd37b1ec88f1cf38868494..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.shp
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:a761c4931a9325ce306da5c82f1be3c709ab0f888aeab4a412932872c3e8d79d
-size 23692
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.shx b/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.shx
deleted file mode 100644
index de9ebdc4ff20d670b2fcea817a3e9ffc5835fb36..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.shx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:1f99f80a26a8df140d6cdb44d9ed2f1a32a2477927138eca8c5aec56b9ab66e9
-size 1516
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.1.dbf b/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.1.dbf
deleted file mode 100644
index 0a7f2145c124cc5de965a72bb2b58d5209ddb9ca..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.1.dbf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:c11d7da214ea38b7c3c0083a92ee13467c13dca735075c01d8ddb73124bc4437
-size 1881
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.1.prj b/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.1.prj
deleted file mode 100644
index da98376fa44ea626ab3c6ca1debe4660482e548b..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.1.prj
+++ /dev/null
@@ -1 +0,0 @@
-PROJCS["WGS_1984_UTM_Zone_31N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["Meter",1]]
\ No newline at end of file
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.1.shp b/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.1.shp
deleted file mode 100644
index f4493a2480785e067a59ea8563bff53f69594f84..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.1.shp
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f6b7569316bbb6954532949243743a6a02bf59b8e6f15e8768ab74cd49d18ff9
-size 2948
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.1.shx b/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.1.shx
deleted file mode 100644
index 902c5a761865f19597c28d48f90b02dccbb32fcf..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.1.shx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:bd87422448e1242a1b30eb69ae88d4a36a96bfc2d00764a8ec3c35e02063a1c7
-size 292
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.dbf b/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.dbf
deleted file mode 100644
index 0a7f2145c124cc5de965a72bb2b58d5209ddb9ca..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.dbf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:c11d7da214ea38b7c3c0083a92ee13467c13dca735075c01d8ddb73124bc4437
-size 1881
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.prj b/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.prj
deleted file mode 100644
index da98376fa44ea626ab3c6ca1debe4660482e548b..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.prj
+++ /dev/null
@@ -1 +0,0 @@
-PROJCS["WGS_1984_UTM_Zone_31N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["Meter",1]]
\ No newline at end of file
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.shp b/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.shp
deleted file mode 100644
index e549ed0a01f161cd1bb1e48d37d67a1bb984818c..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.shp
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:c1a477f4f647ebb0feff76da6fe3b92adcac25972372a94e5fa9b5db4b3be02d
-size 4084
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.shx b/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.shx
deleted file mode 100644
index 911a74cdb5a4c9e5647301206e325a1f1f2192cf..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.shx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:956ffd6cbb30ed2bc8c585e8c938477943d920f7309981a9864bf8f98ae3f992
-size 292
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.1.dbf b/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.1.dbf
deleted file mode 100644
index 9254d4d3c5008b4dff3d1cd4653a1c8e3d6820c2..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.1.dbf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:970b377a49bf3308da27de62de02dc2000e666a4cc49a220023e212cc5082896
-size 713
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.1.prj b/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.1.prj
deleted file mode 100644
index da98376fa44ea626ab3c6ca1debe4660482e548b..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.1.prj
+++ /dev/null
@@ -1 +0,0 @@
-PROJCS["WGS_1984_UTM_Zone_31N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["Meter",1]]
\ No newline at end of file
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.1.shp b/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.1.shp
deleted file mode 100644
index b8d4601a93154c3eb59f2a18c30d1e4c224a4af5..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.1.shp
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:6e9dbd487f0d15fc07a187b9e38649eaef4829ff8a64ffbbe0ebf59c0ced2848
-size 1172
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.1.shx b/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.1.shx
deleted file mode 100644
index b7889485ca6f854bec6f1120cc7157177b7d3062..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.1.shx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:eade214003f288170371c708073838963df379c9d55bfb68b77c488c94d10b7e
-size 164
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.dbf b/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.dbf
deleted file mode 100644
index 9254d4d3c5008b4dff3d1cd4653a1c8e3d6820c2..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.dbf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:970b377a49bf3308da27de62de02dc2000e666a4cc49a220023e212cc5082896
-size 713
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.prj b/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.prj
deleted file mode 100644
index da98376fa44ea626ab3c6ca1debe4660482e548b..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.prj
+++ /dev/null
@@ -1 +0,0 @@
-PROJCS["WGS_1984_UTM_Zone_31N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["Meter",1]]
\ No newline at end of file
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.shp b/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.shp
deleted file mode 100644
index b3b4cc6c6425eb929a2a6fe0b4c3611afb8e04ca..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.shp
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:3b83881bd76b1347059066ae1057d27cf0497cb92ac6cb16e07ec3d5ee29f5bd
-size 1172
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.shx b/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.shx
deleted file mode 100644
index 1b5b61f68e07a0b7e530125c3df3fe5484a228cd..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.shx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:78741d544b7ebd7211d6f2655d31b801443f6a60a75ec18a1dfe94e80f51852c
-size 164
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.1.dbf b/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.1.dbf
deleted file mode 100644
index 1227f9a239e9e54e85d947eb4eee51ed810d3fe4..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.1.dbf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:5e98e653523faa8868276d04332dc8a207b8e99bb2e86814c2ecf3e71f64184d
-size 3097
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.1.prj b/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.1.prj
deleted file mode 100644
index da98376fa44ea626ab3c6ca1debe4660482e548b..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.1.prj
+++ /dev/null
@@ -1 +0,0 @@
-PROJCS["WGS_1984_UTM_Zone_31N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["Meter",1]]
\ No newline at end of file
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.1.shp b/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.1.shp
deleted file mode 100644
index f4493a2480785e067a59ea8563bff53f69594f84..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.1.shp
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f6b7569316bbb6954532949243743a6a02bf59b8e6f15e8768ab74cd49d18ff9
-size 2948
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.1.shx b/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.1.shx
deleted file mode 100644
index 902c5a761865f19597c28d48f90b02dccbb32fcf..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.1.shx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:bd87422448e1242a1b30eb69ae88d4a36a96bfc2d00764a8ec3c35e02063a1c7
-size 292
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.dbf b/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.dbf
deleted file mode 100644
index 1227f9a239e9e54e85d947eb4eee51ed810d3fe4..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.dbf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:5e98e653523faa8868276d04332dc8a207b8e99bb2e86814c2ecf3e71f64184d
-size 3097
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.prj b/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.prj
deleted file mode 100644
index da98376fa44ea626ab3c6ca1debe4660482e548b..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.prj
+++ /dev/null
@@ -1 +0,0 @@
-PROJCS["WGS_1984_UTM_Zone_31N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["Meter",1]]
\ No newline at end of file
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.shp b/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.shp
deleted file mode 100644
index e549ed0a01f161cd1bb1e48d37d67a1bb984818c..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.shp
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:c1a477f4f647ebb0feff76da6fe3b92adcac25972372a94e5fa9b5db4b3be02d
-size 4084
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.shx b/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.shx
deleted file mode 100644
index 911a74cdb5a4c9e5647301206e325a1f1f2192cf..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.shx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:956ffd6cbb30ed2bc8c585e8c938477943d920f7309981a9864bf8f98ae3f992
-size 292
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_wr.dbf b/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_wr.dbf
deleted file mode 100644
index 9ba00259ac7d3effd149c9bde7c15def5fb69d93..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_wr.dbf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:6ac3987c4408a1c86528898189249cc26502b02b536a0e64a5106f0d230b3a8b
-size 33
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_wr.prj b/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_wr.prj
deleted file mode 100644
index da98376fa44ea626ab3c6ca1debe4660482e548b..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_wr.prj
+++ /dev/null
@@ -1 +0,0 @@
-PROJCS["WGS_1984_UTM_Zone_31N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["Meter",1]]
\ No newline at end of file
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_wr.shp b/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_wr.shp
deleted file mode 100644
index f970b67678a899f87859859d3bcb35a9b4c6c525..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_wr.shp
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:926401bfc2997f7c001f827859a1281ceb6f688660720f605f14f3e54207568e
-size 100
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_wr.shx b/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_wr.shx
deleted file mode 100644
index f970b67678a899f87859859d3bcb35a9b4c6c525..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_wr.shx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:926401bfc2997f7c001f827859a1281ceb6f688660720f605f14f3e54207568e
-size 100
diff --git a/Data/Baseline/OTB/Files/TvDescriptorsListSampleGeneratorNoStreamingOutput.txt b/Data/Baseline/OTB/Files/TvDescriptorsListSampleGeneratorNoStreamingOutput.txt
deleted file mode 100644
index 4a22e8ff04fcc5b9c47c42cd28b5191c0977cbc6..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/TvDescriptorsListSampleGeneratorNoStreamingOutput.txt
+++ /dev/null
@@ -1,18048 +0,0 @@
----
-Label        : 1
-Position     : [244.61, 1.64508]
-Measurements : [1399.95, 310113, 0.266257, -0.476478]
----
-Label        : 1
-Position     : [241.128, 6.12]
-Measurements : [1466.45, 487704, 0.232991, -1.2636]
----
-Label        : 1
-Position     : [145.371, 6.6365]
-Measurements : [1208.23, 386771, 0.401874, -0.981297]
----
-Label        : 1
-Position     : [633.408, 8.68]
-Measurements : [1465.12, 382959, 0.372033, -1.244]
----
-Label        : 1
-Position     : [250.856, 9.192]
-Measurements : [993.262, 136479, 0.278658, -0.930991]
----
-Label        : 1
-Position     : [255.214, 10.1541]
-Measurements : [1078.76, 119096, 0.313496, -0.642462]
----
-Label        : 1
-Position     : [390.951, 10.5048]
-Measurements : [1572.18, 315723, -0.278482, -0.414006]
----
-Label        : 1
-Position     : [243.582, 10.5278]
-Measurements : [1045.65, 500117, 1.10216, -0.141367]
----
-Label        : 1
-Position     : [732.736, 10.728]
-Measurements : [1762.88, 822066, -0.103484, -1.57081]
----
-Label        : 1
-Position     : [137.973, 11.0771]
-Measurements : [1256.87, 159712, 0.616424, 0.726392]
----
-Label        : 1
-Position     : [141.8, 11.24]
-Measurements : [1091.2, 260850, 0.559676, -0.294604]
----
-Label        : 1
-Position     : [731.097, 11.4464]
-Measurements : [1592.97, 893144, 0.148556, -1.60652]
----
-Label        : 1
-Position     : [633.484, 11.7069]
-Measurements : [1417.94, 406889, 0.473387, -1.23179]
----
-Label        : 1
-Position     : [631.412, 12.0436]
-Measurements : [1338.02, 330638, 0.756367, -0.51725]
----
-Label        : 1
-Position     : [388.688, 12.264]
-Measurements : [1610.63, 268830, -0.15682, -0.3936]
----
-Label        : 1
-Position     : [255.69, 13.11]
-Measurements : [1106.66, 105507, 0.132854, -0.843231]
----
-Label        : 1
-Position     : [632.879, 13.4648]
-Measurements : [1188.96, 285530, 1.08638, 0.33468]
----
-Label        : 1
-Position     : [636.692, 13.4681]
-Measurements : [1033.69, 268840, 1.51544, 1.83386]
----
-Label        : 1
-Position     : [736.543, 13.4748]
-Measurements : [1164.8, 883154, 1.1134, -0.431529]
----
-Label        : 1
-Position     : [390.222, 13.9819]
-Measurements : [1660.22, 229802, 0.0782276, -0.814122]
----
-Label        : 1
-Position     : [632.384, 14.312]
-Measurements : [1012.4, 177711, 0.772086, 0.107333]
----
-Label        : 1
-Position     : [21.4766, 14.8077]
-Measurements : [795.261, 357152, 1.18748, 0.459446]
----
-Label        : 1
-Position     : [392.641, 16.0582]
-Measurements : [1638.22, 226522, 0.14735, -0.93468]
----
-Label        : 1
-Position     : [249.832, 17.896]
-Measurements : [1307.62, 466036, 1.02525, 0.247706]
----
-Label        : 1
-Position     : [392.272, 17.896]
-Measurements : [1615.52, 211561, 0.107659, -0.903024]
----
-Label        : 1
-Position     : [463.44, 17.896]
-Measurements : [1208.43, 545199, 0.88799, -0.0947112]
----
-Label        : 1
-Position     : [24.0958, 18.4597]
-Measurements : [1141.29, 306141, 1.15167, 1.3369]
----
-Label        : 1
-Position     : [245.902, 18.73]
-Measurements : [1440.71, 720124, 0.354696, -1.28161]
----
-Label        : 1
-Position     : [22.504, 19.432]
-Measurements : [1278.26, 415437, 0.803853, -0.10986]
----
-Label        : 1
-Position     : [514.821, 20.527]
-Measurements : [1898.42, 453807, 0.1057, -1.21854]
----
-Label        : 1
-Position     : [463.682, 20.8592]
-Measurements : [1761.42, 608797, 0.142866, -1.24805]
----
-Label        : 1
-Position     : [516.176, 20.968]
-Measurements : [1914.58, 572565, -0.0181663, -1.35972]
----
-Label        : 1
-Position     : [153.662, 21.1989]
-Measurements : [1506.15, 580964, -0.152713, -1.35291]
----
-Label        : 1
-Position     : [388.377, 21.2292]
-Measurements : [1267.5, 207452, 0.360062, -0.744269]
----
-Label        : 1
-Position     : [250.729, 22.2607]
-Measurements : [1073.09, 473769, 1.24396, 0.868018]
----
-Label        : 1
-Position     : [516.187, 22.3915]
-Measurements : [2146.87, 480967, -0.342337, -1.23822]
----
-Label        : 1
-Position     : [462.482, 22.4791]
-Measurements : [2129.57, 517522, -0.267177, -1.15811]
----
-Label        : 1
-Position     : [506.96, 22.504]
-Measurements : [1908.17, 249995, 0.161354, -0.726865]
----
-Label        : 1
-Position     : [398.494, 22.8755]
-Measurements : [1657.21, 181656, 0.00827773, -0.871096]
----
-Label        : 1
-Position     : [737.143, 23.0831]
-Measurements : [783.959, 227622, 1.37876, 0.616613]
----
-Label        : 1
-Position     : [465.466, 23.1043]
-Measurements : [2152.34, 547081, -0.158895, -1.23519]
----
-Label        : 1
-Position     : [509.553, 23.3008]
-Measurements : [1965.67, 280987, 0.0783567, -1.00579]
----
-Label        : 1
-Position     : [732.224, 24.04]
-Measurements : [1025.3, 238485, 0.672238, -0.889804]
----
-Label        : 1
-Position     : [781.738, 24.5256]
-Measurements : [464.236, 23392.7, 1.45716, 0.94265]
----
-Label        : 1
-Position     : [501.188, 24.5512]
-Measurements : [1608.93, 167753, 0.226801, -0.447532]
----
-Label        : 1
-Position     : [468.56, 24.552]
-Measurements : [2138.24, 554036, -0.226939, -0.996085]
----
-Label        : 1
-Position     : [151.016, 25.064]
-Measurements : [1748.73, 214056, 0.0103525, -0.888018]
----
-Label        : 1
-Position     : [399.44, 25.064]
-Measurements : [1504.12, 316982, -0.312925, -0.924175]
----
-Label        : 1
-Position     : [26.6549, 26.0814]
-Measurements : [1091.79, 305305, 0.576538, -0.74217]
----
-Label        : 1
-Position     : [28.136, 26.6]
-Measurements : [1120.4, 265311, 0.662549, -0.538509]
----
-Label        : 1
-Position     : [511.833, 26.6849]
-Measurements : [1906.72, 445497, -0.27535, -1.01516]
----
-Label        : 1
-Position     : [499.28, 27.624]
-Measurements : [1507.84, 123543, -0.351548, -0.862913]
----
-Label        : 1
-Position     : [398.49, 27.822]
-Measurements : [1379.79, 415076, -0.0775959, -1.37466]
----
-Label        : 1
-Position     : [736.674, 28.041]
-Measurements : [684.173, 210658, 1.89014, 2.60705]
----
-Label        : 1
-Position     : [785.231, 28.2292]
-Measurements : [779.812, 223683, 1.6827, 2.81675]
----
-Label        : 1
-Position     : [785.984, 29.16]
-Measurements : [790.413, 215790, 1.75073, 3.0408]
----
-Label        : 1
-Position     : [503.064, 29.2999]
-Measurements : [1488.67, 276999, -0.132504, -0.813677]
----
-Label        : 1
-Position     : [467.211, 29.4727]
-Measurements : [2357.58, 460440, -0.774753, -0.199534]
----
-Label        : 1
-Position     : [154.914, 29.6333]
-Measurements : [1296.44, 486853, 0.554433, -0.211259]
----
-Label        : 1
-Position     : [33.1288, 31.4463]
-Measurements : [709.888, 109907, 0.782466, 0.0455805]
----
-Label        : 1
-Position     : [474.192, 32.744]
-Measurements : [2346.91, 320418, -1.04922, 0.608591]
----
-Label        : 1
-Position     : [474.373, 35.4507]
-Measurements : [2561.21, 202660, -0.843659, 0.465157]
----
-Label        : 1
-Position     : [469.383, 36.2274]
-Measurements : [2513.07, 331345, -1.47677, 2.25475]
----
-Label        : 1
-Position     : [477.776, 38.888]
-Measurements : [2501.1, 299662, -0.407297, -0.786396]
----
-Label        : 1
-Position     : [476.508, 40.2221]
-Measurements : [2547.82, 277359, -0.337944, -0.875621]
----
-Label        : 1
-Position     : [481.204, 41.0933]
-Measurements : [2436.21, 246087, -0.848396, -0.195383]
----
-Label        : 1
-Position     : [146.811, 42.9006]
-Measurements : [651.591, 127745, 1.1435, 0.595122]
----
-Label        : 1
-Position     : [480.125, 44.6418]
-Measurements : [2439.53, 235119, -0.839143, -0.361184]
----
-Label        : 1
-Position     : [150.438, 44.8023]
-Measurements : [786.291, 238061, 0.976615, 0.295175]
----
-Label        : 1
-Position     : [639.04, 45.032]
-Measurements : [1011.28, 306948, 0.537234, -0.97489]
----
-Label        : 1
-Position     : [401.488, 45.544]
-Measurements : [1072.85, 211038, 0.179089, -1.22378]
----
-Label        : 1
-Position     : [396.788, 46.1598]
-Measurements : [938.122, 220132, 0.588968, -0.970861]
----
-Label        : 1
-Position     : [482.896, 46.568]
-Measurements : [2462.39, 198571, -0.789782, -0.439342]
----
-Label        : 1
-Position     : [478.701, 46.9408]
-Measurements : [2528.31, 225390, -0.654415, -0.417266]
----
-Label        : 1
-Position     : [30.696, 47.08]
-Measurements : [1279.16, 397520, 0.40258, -1.13234]
----
-Label        : 1
-Position     : [148.456, 47.08]
-Measurements : [1060.5, 232907, 0.789113, 0.21222]
----
-Label        : 1
-Position     : [636.712, 47.2538]
-Measurements : [993.879, 330254, 0.537125, -1.12924]
----
-Label        : 1
-Position     : [399.698, 47.6833]
-Measurements : [1003.16, 238939, 0.366465, -1.29767]
----
-Label        : 1
-Position     : [32.0718, 48.8004]
-Measurements : [1227.68, 366444, 0.396699, -1.1008]
----
-Label        : 1
-Position     : [483.182, 48.8229]
-Measurements : [2470.79, 165384, -0.700125, -0.47963]
----
-Label        : 1
-Position     : [146.13, 48.9529]
-Measurements : [1140.38, 163198, 0.522848, -0.842353]
----
-Label        : 1
-Position     : [280.813, 49.2236]
-Measurements : [942.677, 241572, 0.526166, -0.794988]
----
-Label        : 1
-Position     : [639.248, 49.3982]
-Measurements : [833.569, 350365, 1.02295, -0.452583]
----
-Label        : 1
-Position     : [32.9101, 51.4564]
-Measurements : [914.108, 389934, 1.14525, 0.0384974]
----
-Label        : 1
-Position     : [481.821, 51.4818]
-Measurements : [2514.74, 201478, -0.496563, -0.814439]
----
-Label        : 1
-Position     : [281.576, 53.224]
-Measurements : [982.418, 185655, 0.818729, -0.322751]
----
-Label        : 1
-Position     : [150.504, 53.736]
-Measurements : [1613.92, 300809, -0.104234, -0.926321]
----
-Label        : 1
-Position     : [485.968, 53.736]
-Measurements : [2291.15, 219738, -0.0303204, -0.791027]
----
-Label        : 1
-Position     : [408.469, 54.7806]
-Measurements : [1503.82, 414269, 0.102071, -0.983995]
----
-Label        : 1
-Position     : [485.552, 55.1294]
-Measurements : [2260.99, 198482, -0.173856, -0.770322]
----
-Label        : 1
-Position     : [512.892, 55.3723]
-Measurements : [1247.32, 321649, -0.307241, -1.43016]
----
-Label        : 1
-Position     : [406.096, 55.784]
-Measurements : [1487.85, 324277, 0.0955268, -0.564059]
----
-Label        : 1
-Position     : [402.194, 56.0926]
-Measurements : [1173.87, 227091, -0.0469741, -1.26695]
----
-Label        : 1
-Position     : [487.202, 56.3229]
-Measurements : [2209.63, 203604, -0.0750906, -0.907866]
----
-Label        : 1
-Position     : [146.981, 56.3887]
-Measurements : [1464.68, 161968, -0.540099, -0.799225]
----
-Label        : 1
-Position     : [147.923, 56.7645]
-Measurements : [1574.03, 169744, -0.52637, -0.269704]
----
-Label        : 1
-Position     : [646.398, 57.769]
-Measurements : [1019.1, 248626, 0.220451, -0.359875]
----
-Label        : 1
-Position     : [514.128, 57.832]
-Measurements : [1207.79, 357121, -0.139803, -1.63507]
----
-Label        : 1
-Position     : [286.376, 57.8966]
-Measurements : [762.626, 160955, 1.02396, -0.0826948]
----
-Label        : 1
-Position     : [149.827, 57.9983]
-Measurements : [1734.81, 223766, -0.145279, -0.214388]
----
-Label        : 1
-Position     : [512.777, 58.3428]
-Measurements : [1407.02, 230704, -0.777545, -0.589553]
----
-Label        : 1
-Position     : [410.743, 59.3163]
-Measurements : [1466.21, 370036, 0.00546922, -1.14312]
----
-Label        : 1
-Position     : [489.552, 59.88]
-Measurements : [2206.16, 199262, 0.139083, -0.632729]
----
-Label        : 1
-Position     : [150.504, 60.392]
-Measurements : [1564.09, 285351, 0.00264356, -0.629832]
----
-Label        : 1
-Position     : [641.343, 61.6995]
-Measurements : [1123.44, 401059, 0.127394, -1.27937]
----
-Label        : 1
-Position     : [524.025, 62.343]
-Measurements : [678.39, 220280, 1.76188, 2.84388]
----
-Label        : 1
-Position     : [642.624, 62.44]
-Measurements : [1281.61, 341332, -0.199448, -1.04494]
----
-Label        : 1
-Position     : [526.376, 63.0292]
-Measurements : [755.474, 235552, 1.2852, 1.36501]
----
-Label        : 1
-Position     : [409.68, 63.464]
-Measurements : [1344.05, 363137, 0.32516, -1.07766]
----
-Label        : 1
-Position     : [489.304, 64.2746]
-Measurements : [2550.7, 245615, -0.353762, -0.684571]
----
-Label        : 1
-Position     : [153.747, 64.3541]
-Measurements : [1127.62, 387477, 0.528247, -0.89447]
----
-Label        : 1
-Position     : [528.797, 65.0709]
-Measurements : [923.884, 206711, 0.785987, 0.772355]
----
-Label        : 1
-Position     : [411.712, 65.1208]
-Measurements : [1195.28, 444668, 0.501999, -1.10361]
----
-Label        : 1
-Position     : [736.373, 65.2588]
-Measurements : [925.973, 569079, 0.923134, -0.82582]
----
-Label        : 1
-Position     : [526.416, 66.024]
-Measurements : [937.748, 200420, 0.787841, 0.832355]
----
-Label        : 1
-Position     : [634.566, 66.0589]
-Measurements : [1107.19, 437732, 0.288566, -0.990485]
----
-Label        : 1
-Position     : [408.468, 66.9523]
-Measurements : [1271.67, 345809, 0.447664, -0.87485]
----
-Label        : 1
-Position     : [493.648, 67.048]
-Measurements : [2565.87, 318345, -0.862812, 0.120293]
----
-Label        : 1
-Position     : [489.309, 67.1856]
-Measurements : [2778.19, 156517, -0.590919, -0.103957]
----
-Label        : 1
-Position     : [151.016, 67.56]
-Measurements : [951.112, 257371, 0.707459, -0.969823]
----
-Label        : 1
-Position     : [494.365, 68.7431]
-Measurements : [2469.63, 425073, -0.873973, -0.285714]
----
-Label        : 1
-Position     : [531.024, 69.096]
-Measurements : [1060.1, 152696, 0.894956, 1.33329]
----
-Label        : 1
-Position     : [532.841, 69.2365]
-Measurements : [1031.55, 152734, 0.893183, 1.52887]
----
-Label        : 1
-Position     : [731.712, 69.608]
-Measurements : [1750.46, 494126, -0.476515, -0.796277]
----
-Label        : 1
-Position     : [639.552, 70.12]
-Measurements : [1435.04, 407739, -0.113456, -1.35784]
----
-Label        : 1
-Position     : [151.236, 71.2708]
-Measurements : [651.874, 196335, 1.62119, 1.23144]
----
-Label        : 1
-Position     : [407.12, 71.656]
-Measurements : [1190.02, 321318, 0.830741, -0.0541515]
----
-Label        : 1
-Position     : [501.307, 71.8869]
-Measurements : [1765.1, 370415, 0.368729, -0.5675]
----
-Label        : 1
-Position     : [724.253, 72.0387]
-Measurements : [1547.51, 427895, 0.253832, -0.914729]
----
-Label        : 1
-Position     : [38.4345, 72.907]
-Measurements : [1163, 314130, 0.310145, -0.713743]
----
-Label        : 1
-Position     : [299.15, 73.1046]
-Measurements : [973.079, 407487, 0.788035, -0.760626]
----
-Label        : 1
-Position     : [497.744, 73.192]
-Measurements : [2045.32, 569107, -0.0844212, -1.21743]
----
-Label        : 1
-Position     : [730.479, 73.5615]
-Measurements : [1501, 609631, 0.0505779, -1.44031]
----
-Label        : 1
-Position     : [530.782, 73.6834]
-Measurements : [992.847, 70865.1, -0.139589, -0.777455]
----
-Label        : 1
-Position     : [534.608, 74.728]
-Measurements : [1076.39, 54277.8, -0.0403846, -0.619779]
----
-Label        : 1
-Position     : [722.496, 74.728]
-Measurements : [1309.99, 278624, 0.633246, -0.191714]
----
-Label        : 1
-Position     : [637.029, 74.9055]
-Measurements : [1013.84, 510831, 0.825043, -0.926402]
----
-Label        : 1
-Position     : [534.278, 75.1308]
-Measurements : [1098.33, 55019.9, 0.384065, 0.538966]
----
-Label        : 1
-Position     : [35.304, 75.24]
-Measurements : [1287.51, 361736, 0.298422, -1.14136]
----
-Label        : 1
-Position     : [297.825, 75.3346]
-Measurements : [986.428, 433855, 0.69096, -0.968558]
----
-Label        : 1
-Position     : [411.711, 75.5489]
-Measurements : [1704.36, 500308, -0.110353, -1.16457]
----
-Label        : 1
-Position     : [300.112, 75.752]
-Measurements : [1106.38, 364343, 0.585591, -0.972097]
----
-Label        : 1
-Position     : [40.0663, 75.8806]
-Measurements : [1062.4, 201917, 0.444531, -0.966213]
----
-Label        : 1
-Position     : [725.415, 76.5828]
-Measurements : [1286.91, 369058, 0.39385, -0.929769]
----
-Label        : 1
-Position     : [415.312, 76.776]
-Measurements : [1848.33, 716938, -0.219702, -1.43866]
----
-Label        : 1
-Position     : [537.68, 77.8]
-Measurements : [1196.33, 128090, 0.647327, 0.501685]
----
-Label        : 1
-Position     : [534.852, 78.2465]
-Measurements : [1133.03, 99343, 0.339302, 0.434633]
----
-Label        : 0
-Position     : [92.1127, 78.4374]
-Measurements : [1109.44, 7506.35, -1.04267, 1.00777]
----
-Label        : 1
-Position     : [411.345, 78.5972]
-Measurements : [1717.57, 450220, 0.0725332, -1.28834]
----
-Label        : 1
-Position     : [533.148, 78.6543]
-Measurements : [1080.99, 84062.9, -0.0894858, -0.408748]
----
-Label        : 0
-Position     : [95.3936, 78.7711]
-Measurements : [1108.25, 13396.4, 0.482908, 2.23481]
----
-Label        : 0
-Position     : [109.322, 79.1238]
-Measurements : [1071.97, 37925.4, 0.685131, 0.956957]
----
-Label        : 0
-Position     : [87.738, 80.0104]
-Measurements : [1150.49, 9287.65, -2.39312, 5.91688]
----
-Label        : 1
-Position     : [499.792, 80.36]
-Measurements : [2213.86, 503045, -0.259567, -1.03712]
----
-Label        : 1
-Position     : [418.984, 80.6891]
-Measurements : [1368.77, 549868, 0.845426, -0.36176]
----
-Label        : 1
-Position     : [723.008, 80.872]
-Measurements : [1358.47, 349551, 0.640774, -0.592525]
----
-Label        : 1
-Position     : [411.116, 81.0041]
-Measurements : [1510.43, 419937, 0.407037, -0.773012]
----
-Label        : 1
-Position     : [720.457, 81.2607]
-Measurements : [1383.69, 273300, 0.731504, -0.0320697]
----
-Label        : 1
-Position     : [230.957, 81.8943]
-Measurements : [1454.9, 546540, 0.382177, -1.32888]
----
-Label        : 1
-Position     : [541.264, 81.896]
-Measurements : [1450.31, 245132, 0.273894, -0.251411]
----
-Label        : 1
-Position     : [231.437, 82.1053]
-Measurements : [1430.38, 486833, 0.534145, -1.08849]
----
-Label        : 1
-Position     : [310.374, 82.6047]
-Measurements : [971.624, 327632, 0.823834, -0.376812]
----
-Label        : 1
-Position     : [536.303, 82.9859]
-Measurements : [1378.75, 215446, 0.727624, 0.327514]
----
-Label        : 1
-Position     : [313.09, 83.2544]
-Measurements : [1152.17, 286801, 0.79644, 0.0569467]
----
-Label        : 1
-Position     : [505.03, 83.2899]
-Measurements : [1781.76, 209495, 0.398465, -0.453074]
----
-Label        : 1
-Position     : [720.173, 83.6023]
-Measurements : [1486.33, 258472, 0.324757, -0.256891]
----
-Label        : 1
-Position     : [502.527, 84.2095]
-Measurements : [1706.72, 379939, 0.435575, -0.540791]
----
-Label        : 1
-Position     : [545.971, 84.3644]
-Measurements : [1502.72, 189370, 0.597719, 0.193823]
----
-Label        : 1
-Position     : [500.389, 84.472]
-Measurements : [1762.43, 576006, 0.400357, -0.902264]
----
-Label        : 1
-Position     : [247.76, 84.5176]
-Measurements : [1046.37, 432718, 0.45893, -1.19884]
----
-Label        : 1
-Position     : [508.496, 84.968]
-Measurements : [1742.37, 188795, -0.0165191, -0.493912]
----
-Label        : 1
-Position     : [234.984, 85.992]
-Measurements : [1204.86, 228773, 0.848148, 0.435681]
----
-Label        : 1
-Position     : [415.824, 85.992]
-Measurements : [1133.36, 175910, 0.251633, -1.14509]
----
-Label        : 1
-Position     : [643.648, 85.992]
-Measurements : [1312.1, 349484, 0.214303, -0.569861]
----
-Label        : 1
-Position     : [793.834, 86.3359]
-Measurements : [1049.86, 177361, 0.109025, -1.09353]
----
-Label        : 1
-Position     : [641.83, 86.7441]
-Measurements : [1244.36, 350427, 0.403563, -0.466927]
----
-Label        : 1
-Position     : [545.977, 86.789]
-Measurements : [1617.33, 249607, 0.533211, -0.250782]
----
-Label        : 1
-Position     : [227.816, 87.016]
-Measurements : [1616.24, 348367, -0.0880458, -1.27861]
----
-Label        : 1
-Position     : [311.376, 87.016]
-Measurements : [1637.86, 483075, 0.141674, -0.8608]
----
-Label        : 1
-Position     : [793.152, 87.016]
-Measurements : [994.897, 211129, 0.201361, -1.31052]
----
-Label        : 1
-Position     : [234.962, 87.1838]
-Measurements : [1255.91, 256777, 0.748086, 0.224963]
----
-Label        : 1
-Position     : [251.155, 87.3764]
-Measurements : [1410.69, 266279, -0.0403681, -0.772312]
----
-Label        : 1
-Position     : [647.236, 87.4288]
-Measurements : [1342.99, 275609, 0.507612, -0.116743]
----
-Label        : 1
-Position     : [512.434, 88.3334]
-Measurements : [1930.01, 222004, -0.329513, -0.876027]
----
-Label        : 1
-Position     : [220.961, 88.5146]
-Measurements : [1387.2, 218699, -0.310078, -1.0715]
----
-Label        : 1
-Position     : [250.344, 88.552]
-Measurements : [1371.55, 260591, -0.0649667, -0.638483]
----
-Label        : 1
-Position     : [508.06, 88.9408]
-Measurements : [1737.51, 353590, -0.341023, -0.77548]
----
-Label        : 1
-Position     : [513.104, 89.064]
-Measurements : [1953.25, 243690, -0.482045, -0.747181]
----
-Label        : 1
-Position     : [514.67, 89.8881]
-Measurements : [1926.18, 238072, -0.35238, -0.936509]
----
-Label        : 1
-Position     : [544.848, 90.088]
-Measurements : [1625.45, 328196, 0.343572, -0.436161]
----
-Label        : 1
-Position     : [722.496, 90.088]
-Measurements : [1379.22, 213429, -0.901277, -0.752079]
----
-Label        : 1
-Position     : [645.793, 90.2686]
-Measurements : [1288.29, 169307, 0.171626, 0.355703]
----
-Label        : 1
-Position     : [208.699, 90.2753]
-Measurements : [974.846, 163077, -0.0711373, -1.42608]
----
-Label        : 1
-Position     : [416.173, 90.3642]
-Measurements : [813.742, 220021, 1.01131, -0.443239]
----
-Label        : 1
-Position     : [789.228, 90.7935]
-Measurements : [717.319, 255956, 1.15583, -0.290952]
----
-Label        : 1
-Position     : [541.634, 90.8781]
-Measurements : [1618.67, 263329, 0.568741, 0.274917]
----
-Label        : 1
-Position     : [229.384, 91.0036]
-Measurements : [1566.22, 295184, 0.0635331, -1.00503]
----
-Label        : 1
-Position     : [314.538, 91.1327]
-Measurements : [1477.03, 507536, 0.697796, -0.781491]
----
-Label        : 1
-Position     : [510.1, 91.1933]
-Measurements : [1862.81, 416812, -0.734054, -0.438029]
----
-Label        : 1
-Position     : [219.112, 91.624]
-Measurements : [1330.96, 264912, -0.198132, -1.41048]
----
-Label        : 1
-Position     : [646.208, 91.624]
-Measurements : [1225.45, 143585, -0.386217, -0.99674]
----
-Label        : 1
-Position     : [312.4, 92.136]
-Measurements : [1530.97, 560692, 0.338826, -1.08327]
----
-Label        : 1
-Position     : [516.458, 92.2009]
-Measurements : [1770.19, 312177, 0.040679, -1.30023]
----
-Label        : 1
-Position     : [726.724, 92.3023]
-Measurements : [1237.89, 272684, -0.37824, -1.59925]
----
-Label        : 1
-Position     : [719.156, 92.5538]
-Measurements : [1067.91, 339129, 0.110837, -1.81924]
----
-Label        : 1
-Position     : [209.896, 93.16]
-Measurements : [979.264, 145084, -0.0279663, -1.22398]
----
-Label        : 1
-Position     : [645.654, 93.3011]
-Measurements : [1147.74, 144378, -0.25268, -1.09159]
----
-Label        : 1
-Position     : [255.976, 93.672]
-Measurements : [1574.34, 174765, -0.433033, -0.118507]
----
-Label        : 1
-Position     : [516.176, 94.184]
-Measurements : [1704.18, 339435, 0.0761093, -1.13292]
----
-Label        : 1
-Position     : [215.59, 94.2739]
-Measurements : [1138.59, 256619, 0.291274, -1.27282]
----
-Label        : 1
-Position     : [310.847, 95.7036]
-Measurements : [1171.76, 652815, 0.7876, -0.659716]
----
-Label        : 1
-Position     : [208.894, 95.9693]
-Measurements : [900.298, 165919, 0.0614197, -1.36078]
----
-Label        : 1
-Position     : [317.024, 97.5957]
-Measurements : [1090.27, 343145, 0.700512, -0.545723]
----
-Label        : 1
-Position     : [259.572, 97.6378]
-Measurements : [1136.85, 270942, 0.24863, -0.766387]
----
-Label        : 1
-Position     : [522.782, 98.1872]
-Measurements : [1734.26, 206765, -0.3432, -0.991281]
----
-Label        : 1
-Position     : [252.666, 98.5213]
-Measurements : [1171.93, 215554, 0.310786, -1.03181]
----
-Label        : 1
-Position     : [523.087, 98.5224]
-Measurements : [1729.93, 210981, -0.348607, -1.00413]
----
-Label        : 1
-Position     : [715.883, 98.8042]
-Measurements : [888.529, 233329, 0.476561, -1.30497]
----
-Label        : 1
-Position     : [520.272, 99.304]
-Measurements : [1806.94, 192973, -0.680368, -0.0148814]
----
-Label        : 1
-Position     : [527.616, 99.4919]
-Measurements : [1637.93, 233703, -0.216636, -0.989002]
----
-Label        : 1
-Position     : [158.965, 100.627]
-Measurements : [1057.99, 576974, 0.506057, -1.36932]
----
-Label        : 1
-Position     : [319.424, 101.19]
-Measurements : [1289, 357238, 0.00683936, -1.27157]
----
-Label        : 1
-Position     : [518.634, 101.39]
-Measurements : [1690.59, 367844, -0.604401, -0.491386]
----
-Label        : 1
-Position     : [257.705, 101.623]
-Measurements : [1051.64, 198055, 0.185547, -1.15064]
----
-Label        : 1
-Position     : [714.293, 101.693]
-Measurements : [1210.87, 228499, -0.287881, -0.99352]
----
-Label        : 1
-Position     : [167.379, 101.709]
-Measurements : [955.185, 446514, 1.0842, -0.413929]
----
-Label        : 1
-Position     : [716.352, 101.864]
-Measurements : [1162.44, 277330, -0.218701, -1.30119]
----
-Label        : 1
-Position     : [162.792, 102.376]
-Measurements : [1307.06, 507986, 0.191174, -1.53486]
----
-Label        : 1
-Position     : [318.032, 102.376]
-Measurements : [1422.34, 334825, -0.446, -0.904958]
----
-Label        : 1
-Position     : [523.344, 102.888]
-Measurements : [1894.2, 194640, -0.749489, -0.154715]
----
-Label        : 1
-Position     : [261.826, 103.644]
-Measurements : [1160.42, 144003, -0.371143, -0.82547]
----
-Label        : 1
-Position     : [262.12, 103.912]
-Measurements : [1183.55, 151938, -0.242121, -0.650662]
----
-Label        : 1
-Position     : [557.136, 103.912]
-Measurements : [1492.43, 305852, -0.200073, -0.403389]
----
-Label        : 0
-Position     : [118.265, 104.411]
-Measurements : [1242.47, 30363.2, 3.0769, 10.8863]
----
-Label        : 1
-Position     : [667.802, 105.478]
-Measurements : [988.599, 207015, 0.450568, -0.583402]
----
-Label        : 1
-Position     : [528.325, 105.5]
-Measurements : [1643.96, 309566, -0.205076, -1.30918]
----
-Label        : 1
-Position     : [712.708, 105.576]
-Measurements : [1529.85, 199512, -0.446041, -0.403548]
----
-Label        : 1
-Position     : [552.95, 105.776]
-Measurements : [1457.92, 306223, -0.28068, -0.184712]
----
-Label        : 1
-Position     : [318.374, 106.244]
-Measurements : [1380.64, 286111, -0.334023, -0.932676]
----
-Label        : 1
-Position     : [319.056, 107.496]
-Measurements : [1257.26, 294835, -0.104061, -1.29524]
----
-Label        : 1
-Position     : [263.398, 107.806]
-Measurements : [1323.32, 141925, 0.548271, 1.09352]
----
-Label        : 1
-Position     : [267.24, 108.008]
-Measurements : [1297.52, 289741, 0.367777, -0.55024]
----
-Label        : 1
-Position     : [669.76, 108.008]
-Measurements : [1096.11, 207340, 0.330401, -0.997764]
----
-Label        : 1
-Position     : [266.811, 108.092]
-Measurements : [1317.16, 247175, 0.400011, -0.191347]
----
-Label        : 1
-Position     : [712.768, 108.52]
-Measurements : [1649.63, 164183, -0.465255, -0.542033]
----
-Label        : 1
-Position     : [560.955, 108.68]
-Measurements : [1783.91, 228472, -0.233207, -0.411194]
----
-Label        : 1
-Position     : [715.55, 108.875]
-Measurements : [1505.38, 281221, -0.452804, -1.02453]
----
-Label        : 1
-Position     : [320.201, 109.112]
-Measurements : [1094.93, 289132, 0.307046, -1.16672]
----
-Label        : 1
-Position     : [524.368, 109.544]
-Measurements : [1682.74, 307050, -0.41468, -0.57049]
----
-Label        : 1
-Position     : [565.896, 109.876]
-Measurements : [1602.1, 208530, 0.235627, -0.639146]
----
-Label        : 1
-Position     : [703.909, 110.454]
-Measurements : [1554.45, 180969, -0.292626, -0.692169]
----
-Label        : 1
-Position     : [666.324, 110.829]
-Measurements : [953.362, 231893, 0.559366, -0.695741]
----
-Label        : 1
-Position     : [710.066, 110.97]
-Measurements : [1638.12, 226903, -0.642881, -0.373772]
----
-Label        : 1
-Position     : [561.232, 111.592]
-Measurements : [1847.63, 154407, 0.0181275, -0.555982]
----
-Label        : 1
-Position     : [706.624, 111.592]
-Measurements : [1599.78, 168121, -0.300517, -0.586663]
----
-Label        : 0
-Position     : [111.176, 111.596]
-Measurements : [1132.23, 45687.3, -0.693308, 1.8718]
----
-Label        : 1
-Position     : [526.561, 112.25]
-Measurements : [1579.72, 235304, -0.244512, -0.651862]
----
-Label        : 1
-Position     : [699.749, 112.672]
-Measurements : [1251.2, 255559, -0.0256705, -0.969806]
----
-Label        : 1
-Position     : [563.428, 112.678]
-Measurements : [1795.67, 165651, 0.152948, -0.511471]
----
-Label        : 1
-Position     : [167.335, 113.116]
-Measurements : [769.335, 232433, 1.19259, 0.182167]
----
-Label        : 1
-Position     : [325.712, 113.128]
-Measurements : [979.65, 157331, 0.858817, 0.281219]
----
-Label        : 1
-Position     : [523.294, 113.255]
-Measurements : [1442.84, 351951, -0.308333, -0.896829]
----
-Label        : 1
-Position     : [162.792, 113.56]
-Measurements : [923.253, 210067, 0.779048, -0.527959]
----
-Label        : 1
-Position     : [164.882, 113.932]
-Measurements : [894.756, 219335, 0.809942, -0.485659]
----
-Label        : 1
-Position     : [321.412, 114.382]
-Measurements : [729.804, 160832, 1.59829, 2.50418]
----
-Label        : 1
-Position     : [700.48, 114.664]
-Measurements : [1297.14, 241601, 0.141907, -0.876793]
----
-Label        : 1
-Position     : [528.992, 115.24]
-Measurements : [1439.84, 214192, -0.0367069, -0.966983]
----
-Label        : 1
-Position     : [683.072, 115.688]
-Measurements : [1369.02, 382654, 0.110694, -1.30542]
----
-Label        : 1
-Position     : [787.649, 116.056]
-Measurements : [1069.04, 298355, 0.349867, -1.02274]
----
-Label        : 1
-Position     : [282.045, 116.276]
-Measurements : [888.759, 514390, 1.21048, -0.158209]
----
-Label        : 1
-Position     : [703.015, 116.342]
-Measurements : [1255.66, 230138, 0.165227, -0.861112]
----
-Label        : 1
-Position     : [532.728, 116.619]
-Measurements : [1301.11, 192281, 0.316429, -0.825745]
----
-Label        : 1
-Position     : [328.936, 117.268]
-Measurements : [899.582, 131603, 0.749477, 0.890214]
----
-Label        : 1
-Position     : [786.872, 117.296]
-Measurements : [1271.02, 329826, 0.083441, -0.856405]
----
-Label        : 1
-Position     : [784.771, 117.505]
-Measurements : [1346.42, 300073, -0.0267144, -0.645099]
----
-Label        : 1
-Position     : [686.252, 117.957]
-Measurements : [986.837, 440009, 1.04617, -0.347022]
----
-Label        : 1
-Position     : [787.104, 119.325]
-Measurements : [1331.1, 302350, 0.178207, -0.702826]
----
-Label        : 1
-Position     : [279.016, 119.704]
-Measurements : [1349.87, 654100, 0.242578, -1.36819]
----
-Label        : 1
-Position     : [425.724, 119.956]
-Measurements : [928.918, 279548, 0.342888, -1.45729]
----
-Label        : 1
-Position     : [534.518, 119.975]
-Measurements : [1287.76, 203152, 0.38779, -0.597426]
----
-Label        : 1
-Position     : [679.096, 120.442]
-Measurements : [1277.73, 392586, 0.0631674, -1.13376]
----
-Label        : 0
-Position     : [111.436, 121.004]
-Measurements : [973.243, 48617, -0.721266, -0.840469]
----
-Label        : 0
-Position     : [81.0551, 121.076]
-Measurements : [1105.47, 10824.7, 0.584296, 0.979848]
----
-Label        : 0
-Position     : [129.052, 121.197]
-Measurements : [760.452, 15625.3, 0.0282606, 1.66524]
----
-Label        : 1
-Position     : [425.568, 121.384]
-Measurements : [966.733, 244442, 0.385685, -1.39025]
----
-Label        : 1
-Position     : [530.528, 121.384]
-Measurements : [1425.93, 204361, -0.0090095, -0.614752]
----
-Label        : 1
-Position     : [282.599, 121.848]
-Measurements : [1174.81, 688615, 0.662836, -1.10586]
----
-Label        : 1
-Position     : [784.312, 121.904]
-Measurements : [1460.44, 284210, 0.116577, -0.888131]
----
-Label        : 1
-Position     : [41.9856, 122.153]
-Measurements : [783.859, 240284, 0.783098, -0.674306]
----
-Label        : 0
-Position     : [95.8715, 122.848]
-Measurements : [897.204, 40152.7, 0.103602, -1.7928]
----
-Label        : 1
-Position     : [787.268, 123.75]
-Measurements : [1288.25, 293997, 0.573319, -0.808307]
----
-Label        : 1
-Position     : [275.095, 123.757]
-Measurements : [1673.88, 435774, -0.0841427, -0.793278]
----
-Label        : 1
-Position     : [530.447, 123.991]
-Measurements : [1404.69, 249970, 0.0651425, -0.575455]
----
-Label        : 1
-Position     : [44.52, 124.312]
-Measurements : [1072.95, 256575, 0.527127, -0.594927]
----
-Label        : 1
-Position     : [278.504, 125.336]
-Measurements : [1561.76, 478849, 0.0748846, -0.945546]
----
-Label        : 1
-Position     : [778.168, 126]
-Measurements : [1290.07, 281976, 0.14496, -0.793504]
----
-Label        : 1
-Position     : [429.459, 126.113]
-Measurements : [499.872, 76914.2, 3.16918, 10.2205]
----
-Label        : 1
-Position     : [279.561, 127.608]
-Measurements : [1526.21, 498000, 0.116888, -0.971512]
----
-Label        : 1
-Position     : [776.613, 127.692]
-Measurements : [1048.91, 274883, 0.0767666, -1.46346]
----
-Label        : 1
-Position     : [583.501, 127.812]
-Measurements : [630.413, 101710, 1.0013, -0.341788]
----
-Label        : 1
-Position     : [165.864, 127.896]
-Measurements : [1046.98, 195802, 0.375744, -0.594556]
----
-Label        : 1
-Position     : [535.648, 128.552]
-Measurements : [1884.15, 177643, -0.521138, -0.0654111]
----
-Label        : 1
-Position     : [45.4843, 128.665]
-Measurements : [1155.56, 186924, 0.370493, -0.529542]
----
-Label        : 1
-Position     : [168.958, 128.857]
-Measurements : [1124.04, 244409, 0.047706, -1.13973]
----
-Label        : 1
-Position     : [583.459, 129.25]
-Measurements : [739.246, 115252, 0.379303, -1.31422]
----
-Label        : 1
-Position     : [535.975, 129.426]
-Measurements : [1867.47, 209846, -0.799698, 0.459274]
----
-Label        : 1
-Position     : [164.638, 129.947]
-Measurements : [951.631, 191198, 0.365229, -0.689925]
----
-Label        : 1
-Position     : [780.877, 130.637]
-Measurements : [909.113, 222529, 0.69993, -0.85232]
----
-Label        : 1
-Position     : [532.503, 130.641]
-Measurements : [1613.34, 345253, -0.412173, -0.812511]
----
-Label        : 1
-Position     : [280.552, 130.968]
-Measurements : [1328.1, 409007, 0.231777, -0.884732]
----
-Label        : 1
-Position     : [581.184, 132.352]
-Measurements : [959.499, 83611.4, -0.632973, -0.573179]
----
-Label        : 1
-Position     : [276.709, 132.601]
-Measurements : [1227.19, 254635, 0.547162, -0.808944]
----
-Label        : 1
-Position     : [46.568, 133.528]
-Measurements : [1344.19, 255406, 0.319402, -0.901558]
----
-Label        : 1
-Position     : [287.255, 134.418]
-Measurements : [767.178, 207829, 1.15703, 0.124504]
----
-Label        : 1
-Position     : [282.831, 134.513]
-Measurements : [1130.19, 295781, 0.431002, -1.03989]
----
-Label        : 1
-Position     : [51.3268, 134.638]
-Measurements : [1256.62, 200843, 0.550443, -0.672985]
----
-Label        : 1
-Position     : [325.728, 135.72]
-Measurements : [1343.55, 563424, 0.181802, -1.46002]
----
-Label        : 1
-Position     : [42.7433, 136.251]
-Measurements : [1155.67, 347608, 0.508557, -1.01234]
----
-Label        : 1
-Position     : [321.8, 137.406]
-Measurements : [1200.88, 639851, 0.479749, -1.38497]
----
-Label        : 1
-Position     : [559.277, 138.527]
-Measurements : [1579.95, 149686, -0.143497, -0.535129]
----
-Label        : 0
-Position     : [126.879, 138.925]
-Measurements : [971.829, 62864.1, -0.530778, -1.04523]
----
-Label        : 1
-Position     : [322.458, 138.968]
-Measurements : [1192.2, 684416, 0.461354, -1.47774]
----
-Label        : 1
-Position     : [284.136, 139.16]
-Measurements : [807.465, 100527, 0.496844, -0.935616]
----
-Label        : 1
-Position     : [285.511, 139.706]
-Measurements : [771.995, 106183, 0.644265, -0.823326]
----
-Label        : 1
-Position     : [560.704, 140.544]
-Measurements : [1612.83, 142992, -0.239338, -0.434783]
----
-Label        : 1
-Position     : [206.54, 142.21]
-Measurements : [793.994, 101125, 0.191725, -1.34298]
----
-Label        : 1
-Position     : [427.788, 142.527]
-Measurements : [611.776, 111051, 1.26625, 0.671914]
----
-Label        : 1
-Position     : [555.427, 142.816]
-Measurements : [1617.08, 150326, -0.177052, -1.05987]
----
-Label        : 1
-Position     : [164.84, 144.28]
-Measurements : [966.97, 277437, 0.962301, -0.230972]
----
-Label        : 1
-Position     : [556.096, 145.152]
-Measurements : [1678.88, 200841, -0.329494, -0.882302]
----
-Label        : 1
-Position     : [163.359, 145.282]
-Measurements : [1006.48, 258708, 0.930751, -0.241716]
----
-Label        : 1
-Position     : [564.854, 145.326]
-Measurements : [1175.97, 251257, 0.558618, -0.630028]
----
-Label        : 1
-Position     : [54.9896, 145.451]
-Measurements : [640.903, 61901.6, 0.849688, -0.31097]
----
-Label        : 1
-Position     : [168.815, 145.821]
-Measurements : [760.356, 243685, 1.40623, 0.849425]
----
-Label        : 1
-Position     : [432.736, 145.96]
-Measurements : [871.897, 200631, 0.417074, -0.772109]
----
-Label        : 1
-Position     : [202.216, 146.328]
-Measurements : [735.998, 77507.3, 0.486003, -1.20397]
----
-Label        : 1
-Position     : [199.37, 147.35]
-Measurements : [718.547, 93630.1, 0.353925, -1.40405]
----
-Label        : 1
-Position     : [439.491, 147.445]
-Measurements : [708.74, 207666, 1.36753, 0.801427]
----
-Label        : 1
-Position     : [288.658, 147.677]
-Measurements : [820.014, 405995, 1.28555, 0.346208]
----
-Label        : 1
-Position     : [293.013, 147.905]
-Measurements : [689.878, 362867, 1.92391, 2.28359]
----
-Label        : 1
-Position     : [555.565, 148.116]
-Measurements : [1626, 177019, 0.0103185, -1.14299]
----
-Label        : 1
-Position     : [435.109, 149.683]
-Measurements : [1119.72, 281166, 0.430565, -0.748525]
----
-Label        : 1
-Position     : [50.664, 150.424]
-Measurements : [987.126, 342024, 0.981039, 9.90691e-05]
----
-Label        : 0
-Position     : [100.443, 151.887]
-Measurements : [964.573, 24883.9, 0.241763, -1.53948]
----
-Label        : 1
-Position     : [288.864, 152.104]
-Measurements : [1148.26, 381276, 0.332974, -0.883249]
----
-Label        : 1
-Position     : [435.296, 152.104]
-Measurements : [1228.6, 368882, 0.566702, -0.73073]
----
-Label        : 1
-Position     : [548.117, 152.945]
-Measurements : [1248.03, 146106, -0.718104, -0.195879]
----
-Label        : 1
-Position     : [437.238, 153.945]
-Measurements : [1162.21, 400716, 0.603825, -0.726079]
----
-Label        : 1
-Position     : [49.582, 154.739]
-Measurements : [952.488, 406598, 1.13155, -0.0186492]
----
-Label        : 0
-Position     : [93.9722, 154.808]
-Measurements : [1190, 42335.4, 0.741809, -0.136511]
----
-Label        : 1
-Position     : [549.952, 155.904]
-Measurements : [1215.97, 145716, -0.712105, -0.179858]
----
-Label        : 1
-Position     : [437.856, 157.736]
-Measurements : [1194.07, 376919, 0.749542, -0.509319]
----
-Label        : 1
-Position     : [290.912, 158.76]
-Measurements : [1105.7, 220256, 0.171187, -1.18595]
----
-Label        : 1
-Position     : [286.405, 158.931]
-Measurements : [1013.65, 174437, 0.530106, -0.759662]
----
-Label        : 0
-Position     : [116.922, 158.994]
-Measurements : [1020.36, 27234.7, -1.59742, 1.84507]
----
-Label        : 1
-Position     : [548.215, 159]
-Measurements : [1010.95, 229876, -0.162641, -1.4615]
----
-Label        : 1
-Position     : [435.795, 159.645]
-Measurements : [1084.69, 319821, 1.08762, 0.482812]
----
-Label        : 1
-Position     : [173.172, 160.418]
-Measurements : [910.603, 360753, 0.92316, -0.711811]
----
-Label        : 1
-Position     : [434.626, 161.185]
-Measurements : [991.996, 185225, 1.224, 1.78436]
----
-Label        : 1
-Position     : [296.135, 161.251]
-Measurements : [1171.76, 456721, 0.430665, -1.07225]
----
-Label        : 1
-Position     : [288.841, 161.311]
-Measurements : [1144.47, 257208, 0.493746, -0.647602]
----
-Label        : 1
-Position     : [439.961, 161.588]
-Measurements : [1235, 383454, 0.625274, -0.770277]
----
-Label        : 1
-Position     : [170.472, 161.688]
-Measurements : [1108.1, 440775, 0.496568, -1.33749]
----
-Label        : 1
-Position     : [51.24, 162.517]
-Measurements : [721.785, 254747, 1.65975, 1.89345]
----
-Label        : 1
-Position     : [439.392, 163.368]
-Measurements : [1222.62, 298314, 0.82134, -0.208641]
----
-Label        : 1
-Position     : [169.046, 163.37]
-Measurements : [1166.61, 393993, 0.507265, -1.33034]
----
-Label        : 1
-Position     : [439.227, 163.469]
-Measurements : [1222.62, 298314, 0.82134, -0.208641]
----
-Label        : 0
-Position     : [80.6968, 163.915]
-Measurements : [1146.21, 8771.87, 0.102303, -1.03749]
----
-Label        : 1
-Position     : [53.736, 165.272]
-Measurements : [800.873, 221357, 1.64339, 2.1331]
----
-Label        : 1
-Position     : [293.165, 165.495]
-Measurements : [1445.16, 315696, 0.193153, -0.948964]
----
-Label        : 0
-Position     : [85.073, 165.554]
-Measurements : [1088.24, 17474.6, -1.2738, 1.97941]
----
-Label        : 1
-Position     : [293.984, 165.928]
-Measurements : [1445.16, 315696, 0.193153, -0.948964]
----
-Label        : 1
-Position     : [51.1578, 167.01]
-Measurements : [763.843, 231835, 1.73052, 2.19185]
----
-Label        : 1
-Position     : [343.648, 169]
-Measurements : [928.066, 235749, 0.533846, -1.16419]
----
-Label        : 1
-Position     : [346.821, 169.459]
-Measurements : [840.941, 229802, 0.898385, -0.643969]
----
-Label        : 1
-Position     : [200.924, 169.571]
-Measurements : [1027.23, 540995, 0.645869, -1.15679]
----
-Label        : 0
-Position     : [115.217, 169.683]
-Measurements : [846.398, 16393.4, 0.466025, -0.546362]
----
-Label        : 1
-Position     : [343.379, 169.888]
-Measurements : [928.066, 235749, 0.533846, -1.16419]
----
-Label        : 1
-Position     : [202.371, 170.412]
-Measurements : [1227.81, 562870, 0.311362, -1.45724]
----
-Label        : 0
-Position     : [87.0626, 170.842]
-Measurements : [904.53, 31835.2, -0.157591, -1.63508]
----
-Label        : 1
-Position     : [458.099, 171.513]
-Measurements : [1748.77, 230032, -0.80657, -0.0312607]
----
-Label        : 0
-Position     : [100.77, 171.907]
-Measurements : [752.345, 4246.94, 0.00409903, 1.81988]
----
-Label        : 1
-Position     : [205.288, 171.928]
-Measurements : [1381.38, 545814, 0.219604, -1.5491]
----
-Label        : 1
-Position     : [172.454, 172.899]
-Measurements : [769.186, 229563, 1.00374, -0.192638]
----
-Label        : 0
-Position     : [130.268, 173.077]
-Measurements : [1041.78, 13687.9, -1.06755, 0.613121]
----
-Label        : 1
-Position     : [453.728, 174.12]
-Measurements : [1576.33, 275832, -0.406668, -0.164106]
----
-Label        : 1
-Position     : [466.46, 174.791]
-Measurements : [1265.68, 242176, 0.590304, -0.316957]
----
-Label        : 1
-Position     : [452.318, 175.335]
-Measurements : [1454.43, 318888, -0.35921, -0.585877]
----
-Label        : 0
-Position     : [118.619, 176.382]
-Measurements : [947.783, 25016.6, 1.87238, 9.26613]
----
-Label        : 1
-Position     : [175.785, 176.617]
-Measurements : [1179.15, 363424, -0.0431143, -1.2454]
----
-Label        : 1
-Position     : [459.36, 176.68]
-Measurements : [1814.73, 239735, -0.461905, -0.741981]
----
-Label        : 1
-Position     : [718.776, 176.688]
-Measurements : [1344.26, 143039, -0.283975, -0.23451]
----
-Label        : 1
-Position     : [174.568, 177.048]
-Measurements : [1301.67, 324422, -0.302307, -0.943574]
----
-Label        : 1
-Position     : [172.228, 177.982]
-Measurements : [1196.49, 338762, -0.117432, -1.20676]
----
-Label        : 1
-Position     : [463.593, 177.989]
-Measurements : [1584.79, 262685, 0.139275, -1.06502]
----
-Label        : 1
-Position     : [469.066, 178.497]
-Measurements : [1225.01, 192878, 0.14609, -0.472889]
----
-Label        : 1
-Position     : [457.188, 178.617]
-Measurements : [1739.82, 252758, -0.392531, -0.697884]
----
-Label        : 1
-Position     : [468.064, 178.728]
-Measurements : [1205.72, 165909, 0.0544097, -0.530043]
----
-Label        : 1
-Position     : [179.848, 179.5]
-Measurements : [1073.83, 372779, 0.505805, -1.2185]
----
-Label        : 1
-Position     : [472.734, 179.848]
-Measurements : [1420.95, 280567, -0.215442, -1.17759]
----
-Label        : 0
-Position     : [84.4024, 180.274]
-Measurements : [962.054, 19438, -0.666317, -1.0598]
----
-Label        : 1
-Position     : [721.135, 180.474]
-Measurements : [1119.45, 175922, 0.651067, -0.624889]
----
-Label        : 1
-Position     : [715.191, 181.662]
-Measurements : [1145.86, 190723, 0.308976, -1.0098]
----
-Label        : 1
-Position     : [176.104, 182.168]
-Measurements : [1168.06, 351181, 0.24595, -1.3993]
----
-Label        : 1
-Position     : [476.256, 182.312]
-Measurements : [1413.98, 381507, -0.104882, -1.43638]
----
-Label        : 0
-Position     : [119.927, 182.936]
-Measurements : [1034.32, 35375, 2.20187, 6.84498]
----
-Label        : 1
-Position     : [480.888, 183.168]
-Measurements : [993.334, 432702, 0.897719, -0.792276]
----
-Label        : 0
-Position     : [87.6863, 183.363]
-Measurements : [1015.35, 69459.9, 0.914419, 0.550633]
----
-Label        : 0
-Position     : [78.6616, 183.498]
-Measurements : [1011.36, 3655.02, 0.373185, -0.928352]
----
-Label        : 0
-Position     : [124.706, 185.457]
-Measurements : [1051.73, 78638.7, 0.59633, 0.921091]
----
-Label        : 1
-Position     : [875.834, 190.969]
-Measurements : [1006.11, 50158.9, -1.03185, 0.406372]
----
-Label        : 1
-Position     : [24.0479, 194.139]
-Measurements : [511.819, 36538.6, 1.00629, -0.471377]
----
-Label        : 1
-Position     : [28.4819, 194.312]
-Measurements : [587.787, 94716.6, 2.0327, 5.3558]
----
-Label        : 1
-Position     : [210.686, 194.708]
-Measurements : [1081.93, 616511, 0.465294, -1.48121]
----
-Label        : 1
-Position     : [883.424, 194.798]
-Measurements : [890.391, 102875, -0.151164, -1.5192]
----
-Label        : 1
-Position     : [880.712, 195.648]
-Measurements : [824.918, 104315, 0.0428919, -1.56379]
----
-Label        : 1
-Position     : [206.437, 195.744]
-Measurements : [1013.23, 662647, 0.759068, -1.05212]
----
-Label        : 1
-Position     : [28.648, 199.064]
-Measurements : [654.467, 82489.4, 2.02281, 5.76205]
----
-Label        : 1
-Position     : [211.432, 199.064]
-Measurements : [1510.98, 504539, -0.00991282, -1.47667]
----
-Label        : 0
-Position     : [64.8357, 200.144]
-Measurements : [1033.71, 10272.1, 0.797339, 4.29059]
----
-Label        : 0
-Position     : [106.807, 200.498]
-Measurements : [1029.8, 16500.3, -1.30319, 1.23472]
----
-Label        : 1
-Position     : [711.024, 201.745]
-Measurements : [859.114, 162654, 0.969496, 0.252542]
----
-Label        : 0
-Position     : [108.755, 201.787]
-Measurements : [1033.13, 17517, -1.16156, 1.03798]
----
-Label        : 1
-Position     : [706.632, 202.304]
-Measurements : [909.044, 205380, 0.669954, -0.913504]
----
-Label        : 1
-Position     : [862.044, 202.522]
-Measurements : [1090.65, 501719, 0.629952, -1.05298]
----
-Label        : 0
-Position     : [133.631, 203.069]
-Measurements : [1015.21, 19261.5, -2.2191, 4.98905]
----
-Label        : 1
-Position     : [176.3, 203.428]
-Measurements : [1100.39, 432746, 0.522518, -1.20115]
----
-Label        : 1
-Position     : [891.78, 203.667]
-Measurements : [891.333, 421627, 0.970045, -0.602316]
----
-Label        : 1
-Position     : [357.984, 204.328]
-Measurements : [1249.78, 497817, 0.531452, -0.822011]
----
-Label        : 1
-Position     : [889.843, 204.868]
-Measurements : [785.969, 382163, 1.34655, 0.298143]
----
-Label        : 1
-Position     : [360.317, 205.079]
-Measurements : [1113.8, 357503, 0.535817, -1.1484]
----
-Label        : 1
-Position     : [179.176, 205.208]
-Measurements : [1108.75, 417131, 0.654059, -1.15038]
----
-Label        : 1
-Position     : [176.006, 206.321]
-Measurements : [1168.34, 376583, 0.497907, -1.13431]
----
-Label        : 1
-Position     : [863.816, 206.912]
-Measurements : [1183.23, 443396, 0.635468, -1.05555]
----
-Label        : 1
-Position     : [703.397, 207.005]
-Measurements : [556.119, 75660.8, 1.9211, 2.94926]
----
-Label        : 1
-Position     : [894.536, 207.424]
-Measurements : [984.415, 380697, 0.85635, -0.735312]
----
-Label        : 1
-Position     : [301.117, 207.52]
-Measurements : [1469.09, 244028, -0.346245, -0.798871]
----
-Label        : 1
-Position     : [361.807, 208.293]
-Measurements : [1054.72, 357596, 0.695484, -1.06173]
----
-Label        : 1
-Position     : [305.152, 208.656]
-Measurements : [1062.9, 253742, 0.257437, -1.23242]
----
-Label        : 0
-Position     : [103.974, 208.707]
-Measurements : [1044.9, 5652.95, -1.27797, 4.6118]
----
-Label        : 0
-Position     : [65.0811, 209.122]
-Measurements : [1141.98, 18419.1, 1.57678, 2.24398]
----
-Label        : 1
-Position     : [861.112, 210.405]
-Measurements : [1267.54, 360823, 0.35263, -1.10572]
----
-Label        : 1
-Position     : [308.787, 210.95]
-Measurements : [793.141, 216224, 0.916479, -0.735237]
----
-Label        : 1
-Position     : [862.601, 211.896]
-Measurements : [1143.86, 404827, 0.63832, -0.810785]
----
-Label        : 1
-Position     : [719.041, 213.273]
-Measurements : [1026.08, 78610.5, 0.290094, -0.7538]
----
-Label        : 1
-Position     : [860.232, 214.592]
-Measurements : [1031.01, 233719, 0.582786, -0.737979]
----
-Label        : 1
-Position     : [860.301, 216.547]
-Measurements : [1022.67, 230172, 0.624532, -0.629547]
----
-Label        : 1
-Position     : [363.225, 216.858]
-Measurements : [1988.31, 684467, -0.379378, -1.06607]
----
-Label        : 1
-Position     : [364.128, 217.64]
-Measurements : [1897.61, 738105, -0.237603, -1.31869]
----
-Label        : 1
-Position     : [714.824, 218.176]
-Measurements : [821.876, 154001, 0.536069, -0.777765]
----
-Label        : 1
-Position     : [715.735, 218.326]
-Measurements : [890.303, 150882, 0.244042, -0.991735]
----
-Label        : 0
-Position     : [88.1349, 218.534]
-Measurements : [1005.05, 11746.3, 3.01618, 13.4804]
----
-Label        : 1
-Position     : [867.549, 218.703]
-Measurements : [697.238, 154574, 0.835332, -0.779369]
----
-Label        : 1
-Position     : [181.278, 218.732]
-Measurements : [1296.75, 706447, 0.139058, -1.41445]
----
-Label        : 0
-Position     : [108.14, 218.817]
-Measurements : [1065.29, 12187.3, -0.513496, 0.415816]
----
-Label        : 1
-Position     : [863.377, 219.477]
-Measurements : [891.208, 233894, 0.672972, -0.61997]
----
-Label        : 0
-Position     : [133.607, 219.558]
-Measurements : [915.083, 13643.5, -0.846548, 1.17435]
----
-Label        : 1
-Position     : [362.863, 219.67]
-Measurements : [1842.68, 942342, -0.175373, -1.51707]
----
-Label        : 1
-Position     : [182.248, 220.056]
-Measurements : [1535.29, 537093, -0.166385, -1.12571]
----
-Label        : 1
-Position     : [911.873, 220.529]
-Measurements : [981.263, 152723, -0.273252, -1.40202]
----
-Label        : 1
-Position     : [182.637, 220.599]
-Measurements : [1535.29, 537093, -0.166385, -1.12571]
----
-Label        : 0
-Position     : [128.703, 221.589]
-Measurements : [951.459, 16191.8, -0.296294, -0.532626]
----
-Label        : 1
-Position     : [308.951, 222.08]
-Measurements : [802.338, 214555, 0.903603, -0.0462955]
----
-Label        : 1
-Position     : [184.7, 222.318]
-Measurements : [1566.67, 404076, 0.0908016, -0.81289]
----
-Label        : 1
-Position     : [867.4, 223.296]
-Measurements : [1096.75, 236870, 0.240736, -0.759973]
----
-Label        : 1
-Position     : [907.336, 223.296]
-Measurements : [755.819, 144529, 0.752759, -0.785582]
----
-Label        : 1
-Position     : [31.72, 223.64]
-Measurements : [1053.28, 328868, 0.739464, -0.768644]
----
-Label        : 1
-Position     : [908.159, 223.694]
-Measurements : [807.086, 151692, 0.501415, -1.17477]
----
-Label        : 0
-Position     : [67.2161, 223.945]
-Measurements : [1176.23, 47964.9, 1.78288, 3.78042]
----
-Label        : 1
-Position     : [310.272, 224.016]
-Measurements : [1111.51, 495259, 0.570385, -0.92457]
----
-Label        : 1
-Position     : [182.76, 224.152]
-Measurements : [1647.78, 296626, 0.42371, -0.782878]
----
-Label        : 1
-Position     : [310.937, 224.798]
-Measurements : [1111.51, 495259, 0.570385, -0.92457]
----
-Label        : 1
-Position     : [30.803, 225.572]
-Measurements : [1017.8, 355643, 0.745761, -0.834526]
----
-Label        : 1
-Position     : [183.029, 225.933]
-Measurements : [1579.74, 304237, 0.664633, -0.598438]
----
-Label        : 0
-Position     : [123.133, 226.472]
-Measurements : [1068.52, 3217.49, -1.00626, 3.16216]
----
-Label        : 1
-Position     : [869.224, 226.677]
-Measurements : [1015.9, 256264, 0.58223, -0.843968]
----
-Label        : 1
-Position     : [864.84, 226.88]
-Measurements : [1052.3, 226196, 0.529199, -0.607237]
----
-Label        : 1
-Position     : [710.279, 227.086]
-Measurements : [792.157, 134777, 0.50578, -1.19546]
----
-Label        : 1
-Position     : [862.126, 227.76]
-Measurements : [897.374, 215853, 0.983941, 0.153139]
----
-Label        : 1
-Position     : [33.1171, 227.914]
-Measurements : [953.108, 238848, 1.13436, 0.817858]
----
-Label        : 1
-Position     : [710.216, 228.416]
-Measurements : [825.895, 135704, 0.384101, -1.28101]
----
-Label        : 0
-Position     : [60.2701, 228.586]
-Measurements : [1064.9, 6211.3, 0.60023, -0.0306526]
----
-Label        : 1
-Position     : [311.296, 230.672]
-Measurements : [1409.32, 536504, 0.104209, -1.54309]
----
-Label        : 1
-Position     : [715.214, 231.314]
-Measurements : [1009.83, 170971, 0.706218, -0.136483]
----
-Label        : 1
-Position     : [313.87, 231.412]
-Measurements : [1305.46, 574078, 0.335705, -1.51573]
----
-Label        : 1
-Position     : [906.824, 232]
-Measurements : [1111.36, 291222, 0.176541, -1.13685]
----
-Label        : 0
-Position     : [56.9019, 233.286]
-Measurements : [986.829, 7168.76, 0.00846685, -0.22224]
----
-Label        : 1
-Position     : [908.439, 234.492]
-Measurements : [1340.28, 250918, 0.0879431, -0.964828]
----
-Label        : 1
-Position     : [16.2852, 234.852]
-Measurements : [710.914, 168826, 0.682616, -0.931927]
----
-Label        : 1
-Position     : [904.699, 234.95]
-Measurements : [1288.72, 315961, -0.0711211, -1.09406]
----
-Label        : 1
-Position     : [714.312, 235.072]
-Measurements : [1209.51, 258403, 0.177586, -1.38318]
----
-Label        : 1
-Position     : [863.816, 235.072]
-Measurements : [766.333, 86142.7, 0.605089, -0.663795]
----
-Label        : 1
-Position     : [309.719, 235.559]
-Measurements : [835.819, 436572, 1.32409, 0.251109]
----
-Label        : 1
-Position     : [902.899, 235.683]
-Measurements : [1206.66, 332303, 0.0196027, -1.31272]
----
-Label        : 1
-Position     : [712.613, 237.484]
-Measurements : [1349.88, 286555, -0.357925, -1.10482]
----
-Label        : 1
-Position     : [712.354, 237.977]
-Measurements : [1349.88, 286555, -0.357925, -1.10482]
----
-Label        : 1
-Position     : [20.5315, 238.029]
-Measurements : [999.687, 183217, 0.0516971, -1.25309]
----
-Label        : 1
-Position     : [712.214, 238.36]
-Measurements : [1449.11, 265176, -0.603101, -0.696948]
----
-Label        : 1
-Position     : [865.587, 239.052]
-Measurements : [956.124, 120560, 0.0173135, -0.96128]
----
-Label        : 1
-Position     : [908.872, 239.168]
-Measurements : [1200.91, 308237, 0.290084, -1.18105]
----
-Label        : 1
-Position     : [864.745, 239.275]
-Measurements : [985.691, 99090.4, 0.117515, -0.727384]
----
-Label        : 1
-Position     : [16.872, 239.4]
-Measurements : [1051.28, 134981, 0.16584, -0.893489]
----
-Label        : 1
-Position     : [904.082, 241.154]
-Measurements : [985.929, 314813, 0.739275, -0.681034]
----
-Label        : 1
-Position     : [709.237, 241.399]
-Measurements : [1246.95, 290046, -0.0863159, -1.28883]
----
-Label        : 1
-Position     : [859.941, 241.414]
-Measurements : [999.436, 118709, -0.0629683, -1.29704]
----
-Label        : 1
-Position     : [1265.2, 241.432]
-Measurements : [1182.54, 392403, 0.261345, -1.10779]
----
-Label        : 1
-Position     : [712.264, 241.728]
-Measurements : [1372.76, 262720, -0.233318, -1.27239]
----
-Label        : 1
-Position     : [908.5, 241.804]
-Measurements : [1162.23, 266354, 0.359413, -0.89179]
----
-Label        : 1
-Position     : [1258.66, 241.961]
-Measurements : [1380.11, 132033, -0.161983, -0.62962]
----
-Label        : 1
-Position     : [864.84, 242.752]
-Measurements : [868.386, 132788, 0.518228, -0.988712]
----
-Label        : 0
-Position     : [60.1129, 242.932]
-Measurements : [971.734, 29827.2, -0.779773, 0.373738]
----
-Label        : 0
-Position     : [69.4194, 243.353]
-Measurements : [812.667, 19641.8, -0.0692841, -0.810869]
----
-Label        : 1
-Position     : [1261.98, 244.224]
-Measurements : [1464.19, 199725, 0.186734, -0.800198]
----
-Label        : 0
-Position     : [89.3778, 245.656]
-Measurements : [1048.57, 22865.6, 1.52316, 6.60573]
----
-Label        : 0
-Position     : [61.823, 246.283]
-Measurements : [958.351, 50894.5, -0.00415467, -0.677129]
----
-Label        : 1
-Position     : [909.384, 246.336]
-Measurements : [1293.84, 420251, 0.629286, -0.612363]
----
-Label        : 1
-Position     : [317.44, 247.056]
-Measurements : [1159.36, 246411, 0.235154, -0.610881]
----
-Label        : 1
-Position     : [864.598, 247.06]
-Measurements : [762.301, 134820, 0.911803, -0.445678]
----
-Label        : 1
-Position     : [319.013, 247.654]
-Measurements : [1104.21, 250637, 0.397901, -0.618335]
----
-Label        : 1
-Position     : [175.779, 247.798]
-Measurements : [1806.55, 134620, 0.309509, 0.210585]
----
-Label        : 0
-Position     : [56.7737, 248.059]
-Measurements : [1115.22, 21316.3, -1.19701, 3.65595]
----
-Label        : 1
-Position     : [1265.57, 248.32]
-Measurements : [1400.04, 386926, 0.0969364, -1.31645]
----
-Label        : 1
-Position     : [15.7121, 248.405]
-Measurements : [1530.52, 287904, -0.323624, -1.15259]
----
-Label        : 0
-Position     : [148.004, 248.757]
-Measurements : [854.813, 21760, -1.06542, 0.133153]
----
-Label        : 1
-Position     : [1217.95, 248.832]
-Measurements : [1759.71, 361715, -0.213039, -0.93058]
----
-Label        : 1
-Position     : [1264.53, 249.024]
-Measurements : [1379.49, 389613, 0.157555, -1.28122]
----
-Label        : 1
-Position     : [911.806, 249.282]
-Measurements : [1679.18, 384588, 0.282877, -1.10675]
----
-Label        : 1
-Position     : [865.553, 249.663]
-Measurements : [807.124, 204699, 1.02958, -0.302475]
----
-Label        : 1
-Position     : [1261.11, 249.752]
-Measurements : [1404.83, 235070, 0.0643815, -0.710326]
----
-Label        : 1
-Position     : [177.146, 249.785]
-Measurements : [1549.26, 315187, 0.0983008, -0.594274]
----
-Label        : 0
-Position     : [109.77, 249.914]
-Measurements : [1040.92, 10459.9, -1.00389, 0.317522]
----
-Label        : 1
-Position     : [382.501, 250.062]
-Measurements : [1663.87, 892093, 0.0432028, -1.16457]
----
-Label        : 1
-Position     : [15.3317, 250.121]
-Measurements : [1498.05, 334465, -0.36862, -1.2321]
----
-Label        : 1
-Position     : [15.848, 250.152]
-Measurements : [1498.05, 334465, -0.36862, -1.2321]
----
-Label        : 1
-Position     : [178.664, 250.152]
-Measurements : [1327.07, 335769, 0.366534, -0.659771]
----
-Label        : 1
-Position     : [869.147, 250.29]
-Measurements : [684.653, 183146, 1.66781, 1.39747]
----
-Label        : 1
-Position     : [1213.93, 250.322]
-Measurements : [1213.22, 579259, 0.469411, -1.20637]
----
-Label        : 1
-Position     : [1221.8, 250.708]
-Measurements : [1587.12, 604175, -0.00410846, -1.49415]
----
-Label        : 1
-Position     : [310.122, 250.76]
-Measurements : [1212.15, 161163, 0.775936, -0.250635]
----
-Label        : 1
-Position     : [909.279, 251.316]
-Measurements : [1651.8, 443221, 0.0674686, -1.17702]
----
-Label        : 1
-Position     : [315.586, 251.505]
-Measurements : [1322.33, 219288, 0.155867, -0.990853]
----
-Label        : 1
-Position     : [387.072, 251.664]
-Measurements : [1931.64, 390549, 0.0234496, -0.208043]
----
-Label        : 1
-Position     : [910.92, 251.968]
-Measurements : [1668.13, 461662, 0.0513141, -1.22413]
----
-Label        : 0
-Position     : [126.898, 252.351]
-Measurements : [1016.3, 14954.5, -0.048602, -0.46863]
----
-Label        : 1
-Position     : [1250.34, 252.962]
-Measurements : [1247.53, 322880, 0.536272, -0.834595]
----
-Label        : 1
-Position     : [865.352, 253.504]
-Measurements : [853.489, 186985, 0.952944, -0.308027]
----
-Label        : 1
-Position     : [385.403, 253.939]
-Measurements : [2102.93, 424272, 0.0861453, -0.380908]
----
-Label        : 1
-Position     : [865.352, 254.016]
-Measurements : [856.453, 184444, 0.972312, -0.286989]
----
-Label        : 1
-Position     : [1182.35, 254.449]
-Measurements : [1790.33, 484783, 0.0652818, -0.908935]
----
-Label        : 1
-Position     : [867.44, 254.474]
-Measurements : [799.701, 196500, 1.15071, -0.0449687]
----
-Label        : 1
-Position     : [1196.12, 254.549]
-Measurements : [2041.64, 1.02109e+06, -0.411857, -1.54142]
----
-Label        : 1
-Position     : [860.792, 254.757]
-Measurements : [913.826, 138391, 0.559833, -0.863263]
----
-Label        : 1
-Position     : [908.357, 254.809]
-Measurements : [1412.23, 647217, 0.247126, -1.5408]
----
-Label        : 1
-Position     : [1168.67, 254.831]
-Measurements : [1889.79, 719158, 0.194722, -1.24675]
----
-Label        : 1
-Position     : [310.272, 255.248]
-Measurements : [1217.14, 279089, 0.136048, -1.25992]
----
-Label        : 0
-Position     : [128.566, 255.441]
-Measurements : [1109.3, 10061.8, -0.0638821, -1.40931]
----
-Label        : 0
-Position     : [96.3641, 255.457]
-Measurements : [1132.96, 4614.7, -1.08726, 0.881292]
----
-Label        : 1
-Position     : [310.445, 255.895]
-Measurements : [1217.14, 279089, 0.136048, -1.25992]
----
-Label        : 1
-Position     : [388.99, 256.192]
-Measurements : [1854.75, 384452, 0.0546601, -0.696502]
----
-Label        : 0
-Position     : [60.9885, 256.605]
-Measurements : [1113.98, 5532.94, -0.270312, 0.848228]
----
-Label        : 1
-Position     : [392.192, 256.784]
-Measurements : [1501.8, 363354, 0.333766, -0.925513]
----
-Label        : 1
-Position     : [1180.58, 257.024]
-Measurements : [2054.02, 331210, -0.221277, -0.0659788]
----
-Label        : 1
-Position     : [1194.91, 257.024]
-Measurements : [2405.62, 471670, -0.778642, 0.188787]
----
-Label        : 1
-Position     : [1199.29, 257.124]
-Measurements : [1605.35, 1.08056e+06, 0.42958, -1.44912]
----
-Label        : 1
-Position     : [314.796, 257.433]
-Measurements : [1240.97, 511114, 0.392849, -1.28138]
----
-Label        : 1
-Position     : [1247.65, 257.536]
-Measurements : [1223.46, 410436, 0.424089, -1.26315]
----
-Label        : 1
-Position     : [1249.77, 258.028]
-Measurements : [1099.47, 419054, 0.765379, -0.891461]
----
-Label        : 1
-Position     : [1169.31, 258.56]
-Measurements : [2003.74, 564609, 0.333267, -1.26695]
----
-Label        : 0
-Position     : [126.415, 258.636]
-Measurements : [1129.71, 9506.17, -0.0137887, -1.38408]
----
-Label        : 0
-Position     : [121.642, 258.691]
-Measurements : [1088.5, 3613.66, 0.00197447, -0.0827409]
----
-Label        : 1
-Position     : [390.1, 258.793]
-Measurements : [1520, 467194, 0.135573, -1.29076]
----
-Label        : 1
-Position     : [400.896, 258.832]
-Measurements : [1221.76, 239991, 0.442484, -0.513054]
----
-Label        : 1
-Position     : [1183.53, 259.491]
-Measurements : [1973.27, 608379, -0.260823, -1.15329]
----
-Label        : 1
-Position     : [404.432, 259.873]
-Measurements : [1150.14, 189804, 0.76918, 0.402144]
----
-Label        : 1
-Position     : [1152.51, 260.063]
-Measurements : [1204.8, 182669, -0.132697, -0.997134]
----
-Label        : 0
-Position     : [106.77, 261.044]
-Measurements : [1206.28, 1061.79, -0.410888, 0.180622]
----
-Label        : 1
-Position     : [1130.61, 261.144]
-Measurements : [2561.17, 171090, -0.547921, -0.417651]
----
-Label        : 1
-Position     : [401.118, 261.371]
-Measurements : [1123.23, 242041, 0.695339, -0.13039]
----
-Label        : 1
-Position     : [310.784, 261.392]
-Measurements : [1544.54, 506822, -0.163673, -1.30474]
----
-Label        : 1
-Position     : [1143.48, 261.44]
-Measurements : [1644.65, 321743, -0.0512625, -0.222908]
----
-Label        : 0
-Position     : [109.951, 261.974]
-Measurements : [1190.55, 1282.52, -0.0150936, -0.135875]
----
-Label        : 1
-Position     : [913.452, 262.109]
-Measurements : [934.031, 178900, 0.995524, -0.137872]
----
-Label        : 1
-Position     : [910.92, 262.208]
-Measurements : [931.175, 190355, 0.998872, -0.112188]
----
-Label        : 1
-Position     : [311.33, 262.536]
-Measurements : [1620.59, 526601, -0.288033, -1.24224]
----
-Label        : 1
-Position     : [399.863, 262.561]
-Measurements : [1043.41, 249290, 0.564103, -0.323788]
----
-Label        : 1
-Position     : [1156.51, 262.656]
-Measurements : [1462.4, 127159, -0.424693, -0.313032]
----
-Label        : 1
-Position     : [1147.07, 262.849]
-Measurements : [1327.42, 371238, 0.294475, -1.32257]
----
-Label        : 1
-Position     : [1148.14, 262.952]
-Measurements : [1294.73, 319986, 0.319489, -1.14969]
----
-Label        : 1
-Position     : [1167.25, 263.328]
-Measurements : [1410.77, 486064, 1.27753, 0.761903]
----
-Label        : 1
-Position     : [1277.3, 263.8]
-Measurements : [1038.55, 584822, 0.921905, -0.822194]
----
-Label        : 1
-Position     : [1107.2, 264.013]
-Measurements : [2270.68, 226124, 0.0254142, -0.165368]
----
-Label        : 1
-Position     : [1160.18, 264.541]
-Measurements : [1375.61, 208659, -0.14888, -1.05241]
----
-Label        : 1
-Position     : [908.278, 264.649]
-Measurements : [1037.61, 286517, 0.530986, -0.985511]
----
-Label        : 1
-Position     : [313.04, 264.976]
-Measurements : [1618.61, 570162, -0.266746, -1.41386]
----
-Label        : 1
-Position     : [1108.67, 265.389]
-Measurements : [2377.87, 180581, 0.0326631, 0.255546]
----
-Label        : 1
-Position     : [401.408, 265.488]
-Measurements : [947.133, 135441, 0.302264, -1.14469]
----
-Label        : 1
-Position     : [1126.07, 265.536]
-Measurements : [2279.57, 195603, -0.44005, -0.0712758]
----
-Label        : 1
-Position     : [1134.78, 265.536]
-Measurements : [2563.78, 322725, -0.600678, 0.164533]
----
-Label        : 1
-Position     : [1121.19, 266.037]
-Measurements : [1943.03, 310356, -0.431312, -0.823779]
----
-Label        : 1
-Position     : [913.852, 266.153]
-Measurements : [1109.52, 216541, 0.626918, -0.725646]
----
-Label        : 1
-Position     : [649.269, 266.252]
-Measurements : [599.908, 71670.4, 2.3928, 4.93111]
----
-Label        : 1
-Position     : [1102.36, 266.371]
-Measurements : [1796.64, 385031, 0.621278, -0.841863]
----
-Label        : 1
-Position     : [1116.34, 266.56]
-Measurements : [1939.34, 318779, -0.529652, -0.991538]
----
-Label        : 1
-Position     : [731.72, 266.816]
-Measurements : [1678.78, 356094, -0.371261, -1.03643]
----
-Label        : 1
-Position     : [1111.4, 266.824]
-Measurements : [2391.49, 238823, -0.671226, 1.18281]
----
-Label        : 1
-Position     : [215.528, 267.048]
-Measurements : [1048.73, 261716, 0.360984, -1.20366]
----
-Label        : 1
-Position     : [401.209, 267.138]
-Measurements : [848.653, 146968, 0.61596, -0.959477]
----
-Label        : 1
-Position     : [1275.3, 267.264]
-Measurements : [1515.46, 474401, 0.135607, -0.936487]
----
-Label        : 1
-Position     : [310.784, 267.536]
-Measurements : [1784.98, 291353, -0.0732586, -0.961432]
----
-Label        : 1
-Position     : [732.312, 267.725]
-Measurements : [1624.88, 397607, -0.266751, -1.21683]
----
-Label        : 1
-Position     : [737.788, 267.985]
-Measurements : [1495.01, 406252, -0.0158629, -1.35555]
----
-Label        : 1
-Position     : [1106.62, 268.096]
-Measurements : [2313.08, 382844, -0.30995, -0.775084]
----
-Label        : 1
-Position     : [1087.05, 268.174]
-Measurements : [1116.31, 303861, 0.177003, -1.28857]
----
-Label        : 1
-Position     : [1115.53, 268.414]
-Measurements : [2125.92, 383864, -0.4904, -0.522071]
----
-Label        : 1
-Position     : [1011.65, 268.45]
-Measurements : [1449.4, 301681, 0.494051, -0.180817]
----
-Label        : 1
-Position     : [1015.43, 268.595]
-Measurements : [1394.81, 214594, 1.5058, 1.77877]
----
-Label        : 1
-Position     : [735.943, 268.816]
-Measurements : [1467.98, 466659, -0.0267311, -1.39712]
----
-Label        : 1
-Position     : [1126.18, 268.858]
-Measurements : [2266.99, 280026, -0.601528, 0.0327727]
----
-Label        : 1
-Position     : [912.456, 268.864]
-Measurements : [1056.26, 218909, 0.78688, -0.543438]
----
-Label        : 1
-Position     : [218.636, 269.021]
-Measurements : [861.409, 263711, 0.985571, -0.461672]
----
-Label        : 1
-Position     : [1006.08, 269.187]
-Measurements : [1053.38, 498724, 0.880973, -0.493719]
----
-Label        : 1
-Position     : [418.065, 269.348]
-Measurements : [1047.11, 345073, 0.493225, -1.00819]
----
-Label        : 1
-Position     : [737.864, 269.376]
-Measurements : [1377.22, 426667, 0.0218243, -1.34089]
----
-Label        : 0
-Position     : [95.9609, 269.49]
-Measurements : [1213.82, 658.775, -0.438727, 2.60562]
----
-Label        : 0
-Position     : [68.1328, 269.557]
-Measurements : [1072.21, 3184.61, -1.33882, 3.11863]
----
-Label        : 1
-Position     : [1130.29, 269.584]
-Measurements : [2501.73, 275315, -0.678864, 0.10208]
----
-Label        : 1
-Position     : [314.053, 269.852]
-Measurements : [1566.75, 365869, -0.192031, -0.989876]
----
-Label        : 1
-Position     : [1279.13, 269.863]
-Measurements : [1127.24, 620688, 0.865744, -0.656894]
----
-Label        : 1
-Position     : [646.216, 269.888]
-Measurements : [632.767, 85002.5, 1.93003, 2.94433]
----
-Label        : 1
-Position     : [504.57, 269.916]
-Measurements : [1273.55, 200571, 0.942077, 0.818227]
----
-Label        : 1
-Position     : [1101.6, 269.958]
-Measurements : [1666.82, 398976, 0.855085, -0.575542]
----
-Label        : 1
-Position     : [17.5717, 270.067]
-Measurements : [770.188, 189094, 0.675891, -0.738604]
----
-Label        : 1
-Position     : [1011.9, 270.144]
-Measurements : [1379.92, 367636, 0.435525, -0.60348]
----
-Label        : 1
-Position     : [1099.45, 270.144]
-Measurements : [1333.36, 162280, 1.33995, 2.04295]
----
-Label        : 1
-Position     : [1051.49, 270.18]
-Measurements : [877.43, 112723, 0.443687, -1.01122]
----
-Label        : 1
-Position     : [1048.25, 270.656]
-Measurements : [783.695, 115229, 0.976985, -0.304765]
----
-Label        : 1
-Position     : [741.602, 270.67]
-Measurements : [1321.47, 331540, 0.143417, -1.38843]
----
-Label        : 1
-Position     : [214.695, 270.934]
-Measurements : [920.819, 278819, 0.74437, -0.933229]
----
-Label        : 1
-Position     : [17.0385, 270.938]
-Measurements : [770.188, 189094, 0.675891, -0.738604]
----
-Label        : 1
-Position     : [528.172, 270.996]
-Measurements : [886.537, 78060.2, -0.434116, -1.0551]
----
-Label        : 1
-Position     : [430.351, 271.052]
-Measurements : [1192.49, 204780, 0.518345, -0.639888]
----
-Label        : 1
-Position     : [1089.72, 271.168]
-Measurements : [1274.5, 276691, -0.224789, -1.12192]
----
-Label        : 1
-Position     : [1056.66, 271.427]
-Measurements : [1004.53, 125629, 0.209047, -0.959801]
----
-Label        : 1
-Position     : [1063.69, 271.95]
-Measurements : [1199.48, 184916, 0.975555, 0.752526]
----
-Label        : 1
-Position     : [497.964, 271.993]
-Measurements : [1134.95, 141407, 0.251246, 0.0948628]
----
-Label        : 1
-Position     : [648.455, 272.008]
-Measurements : [635.512, 81595.2, 2.05721, 3.32723]
----
-Label        : 1
-Position     : [1008.3, 272.118]
-Measurements : [1108.59, 517710, 0.804248, -0.709147]
----
-Label        : 1
-Position     : [1006.78, 272.192]
-Measurements : [939.057, 480229, 1.2488, 0.245804]
----
-Label        : 1
-Position     : [913.661, 272.262]
-Measurements : [1010.54, 241337, 0.778371, -0.550833]
----
-Label        : 1
-Position     : [1045.81, 272.426]
-Measurements : [687.398, 106725, 1.55161, 1.27755]
----
-Label        : 1
-Position     : [525.824, 272.656]
-Measurements : [779.155, 72012, -0.0877633, -1.51572]
----
-Label        : 1
-Position     : [424.758, 273.124]
-Measurements : [1106.27, 250153, 0.821168, -0.349988]
----
-Label        : 1
-Position     : [420.864, 273.168]
-Measurements : [971.07, 327912, 0.863181, -0.524252]
----
-Label        : 1
-Position     : [178.328, 273.213]
-Measurements : [777.815, 279267, 1.22349, 0.0729725]
----
-Label        : 1
-Position     : [740.122, 273.634]
-Measurements : [1206.5, 377291, 0.275537, -1.35118]
----
-Label        : 0
-Position     : [101.587, 273.676]
-Measurements : [1149.28, 9386.47, -1.92092, 4.36196]
----
-Label        : 1
-Position     : [314.368, 273.68]
-Measurements : [1408.4, 266236, -0.0165045, -1.1435]
----
-Label        : 1
-Position     : [746.324, 273.844]
-Measurements : [1014.73, 264450, 1.02647, 0.13557]
----
-Label        : 1
-Position     : [921.037, 273.907]
-Measurements : [1124.67, 112792, -0.058301, -1.22011]
----
-Label        : 1
-Position     : [422.099, 274.108]
-Measurements : [1027.75, 301602, 0.795925, -0.542135]
----
-Label        : 1
-Position     : [313.585, 274.132]
-Measurements : [1322.23, 249323, -0.0515938, -1.21853]
----
-Label        : 1
-Position     : [425.984, 274.192]
-Measurements : [1051.8, 272227, 0.85042, -0.319709]
----
-Label        : 1
-Position     : [502.272, 274.192]
-Measurements : [1164.56, 304728, 0.669936, -0.490368]
----
-Label        : 1
-Position     : [16.36, 274.216]
-Measurements : [948.219, 141586, 0.406117, -0.555703]
----
-Label        : 1
-Position     : [742.984, 274.496]
-Measurements : [1138.91, 311444, 0.65742, -0.907084]
----
-Label        : 1
-Position     : [432.128, 274.704]
-Measurements : [956.932, 237159, 1.20648, 0.350252]
----
-Label        : 1
-Position     : [1069.08, 274.914]
-Measurements : [1366.27, 660416, 0.487956, -1.31934]
----
-Label        : 1
-Position     : [1087.83, 275.463]
-Measurements : [891.113, 310761, 0.837804, -0.756201]
----
-Label        : 0
-Position     : [90.9274, 275.472]
-Measurements : [1140.01, 16565.8, -1.24683, 1.16419]
----
-Label        : 1
-Position     : [1069.24, 275.776]
-Measurements : [1468.46, 696259, 0.31273, -1.49559]
----
-Label        : 1
-Position     : [317.099, 276.092]
-Measurements : [1457.27, 373348, 0.161787, -0.912438]
----
-Label        : 1
-Position     : [174.568, 276.264]
-Measurements : [1040.6, 268999, 0.436337, -1.16028]
----
-Label        : 1
-Position     : [1059, 276.288]
-Measurements : [1128.86, 172664, 0.185102, -0.839022]
----
-Label        : 1
-Position     : [529.616, 276.682]
-Measurements : [534.419, 52732.9, 1.64724, 1.27171]
----
-Label        : 1
-Position     : [316.416, 276.752]
-Measurements : [1403.25, 359905, 0.222155, -0.835988]
----
-Label        : 1
-Position     : [170.162, 277.019]
-Measurements : [1051.99, 187144, 0.503535, -0.85975]
----
-Label        : 1
-Position     : [427.213, 277.039]
-Measurements : [850.466, 244173, 1.08429, 0.220032]
----
-Label        : 1
-Position     : [916.552, 277.568]
-Measurements : [1408.61, 397947, 0.270215, -1.24312]
----
-Label        : 1
-Position     : [320.447, 278.196]
-Measurements : [1471.97, 415102, 0.120275, -1.11773]
----
-Label        : 1
-Position     : [431.718, 278.245]
-Measurements : [751.49, 200757, 1.53889, 1.33916]
----
-Label        : 1
-Position     : [309.754, 278.32]
-Measurements : [986.378, 229596, 1.05617, 0.135274]
----
-Label        : 1
-Position     : [756.158, 278.327]
-Measurements : [1083.21, 133860, 0.16863, -0.116669]
----
-Label        : 1
-Position     : [748.053, 279.364]
-Measurements : [846.623, 199501, 0.97813, 0.193646]
----
-Label        : 1
-Position     : [458.066, 279.736]
-Measurements : [931.116, 143281, 0.0806578, -1.23171]
----
-Label        : 1
-Position     : [458.24, 279.824]
-Measurements : [931.116, 143281, 0.0806578, -1.23171]
----
-Label        : 1
-Position     : [1064.38, 279.893]
-Measurements : [1477.24, 471231, 0.357937, -1.16676]
----
-Label        : 0
-Position     : [58.0083, 280.441]
-Measurements : [1092.19, 4189, -1.46914, 1.92006]
----
-Label        : 1
-Position     : [920.136, 281.664]
-Measurements : [1413.13, 448823, 0.325568, -1.03628]
----
-Label        : 1
-Position     : [919.335, 281.879]
-Measurements : [1502.83, 404140, 0.210886, -0.979899]
----
-Label        : 1
-Position     : [751.2, 282.04]
-Measurements : [846.636, 179486, 1.11059, 0.34977]
----
-Label        : 1
-Position     : [23.0543, 282.059]
-Measurements : [1060.61, 148375, 0.423553, -1.28133]
----
-Label        : 1
-Position     : [923.619, 283.372]
-Measurements : [936.111, 447133, 1.21034, 0.0298327]
----
-Label        : 1
-Position     : [320, 283.408]
-Measurements : [1223.09, 319019, 0.394555, -1.04137]
----
-Label        : 1
-Position     : [24.04, 283.944]
-Measurements : [1109.57, 185013, 0.71294, -0.317033]
----
-Label        : 1
-Position     : [315.997, 284.254]
-Measurements : [811.549, 105376, 1.51785, 2.92169]
----
-Label        : 1
-Position     : [456.405, 284.475]
-Measurements : [636.738, 126317, 1.13706, -0.175113]
----
-Label        : 1
-Position     : [329.344, 284.507]
-Measurements : [1232.13, 472271, 0.126069, -1.51784]
----
-Label        : 0
-Position     : [99.7498, 285.182]
-Measurements : [1137.23, 5584.55, -1.27538, 1.00551]
----
-Label        : 0
-Position     : [134.817, 285.219]
-Measurements : [881.613, 33029.8, 0.190826, -0.832184]
----
-Label        : 1
-Position     : [920.04, 285.427]
-Measurements : [1098.97, 582074, 0.937742, -0.694146]
----
-Label        : 1
-Position     : [319.756, 285.975]
-Measurements : [1062.69, 245338, 0.659867, -0.730357]
----
-Label        : 1
-Position     : [25.3173, 286.576]
-Measurements : [1390.7, 392585, 0.475601, -0.862898]
----
-Label        : 1
-Position     : [326.144, 286.992]
-Measurements : [1657.95, 321479, -0.262079, -0.556645]
----
-Label        : 1
-Position     : [1266.57, 287.599]
-Measurements : [750.605, 328821, 1.18861, 0.297508]
----
-Label        : 0
-Position     : [82.092, 287.773]
-Measurements : [1124.65, 5412.04, -0.83463, 2.52339]
----
-Label        : 1
-Position     : [327.007, 288.245]
-Measurements : [1677.36, 315908, -0.263151, -0.565996]
----
-Label        : 0
-Position     : [53.4166, 288.46]
-Measurements : [1084.23, 3188.59, -1.87187, 7.62871]
----
-Label        : 0
-Position     : [88.6119, 289.825]
-Measurements : [1087.09, 18243.3, -2.03716, 4.80537]
----
-Label        : 1
-Position     : [241.64, 290.6]
-Measurements : [1209.43, 504772, 0.448527, -1.37282]
----
-Label        : 1
-Position     : [324.126, 291.315]
-Measurements : [1566.78, 298983, -0.0161348, -0.958735]
----
-Label        : 1
-Position     : [328.704, 291.6]
-Measurements : [1633.21, 369999, -0.306372, -0.837135]
----
-Label        : 1
-Position     : [1271.2, 291.84]
-Measurements : [1374.78, 214062, 0.214429, -0.478408]
----
-Label        : 1
-Position     : [302.592, 292.112]
-Measurements : [1169.63, 179053, 0.71615, 0.337299]
----
-Label        : 1
-Position     : [950.114, 292.328]
-Measurements : [1680.49, 291601, 1.32211, 0.949927]
----
-Label        : 1
-Position     : [1301.92, 292.352]
-Measurements : [955.762, 370696, 0.795185, -0.645999]
----
-Label        : 1
-Position     : [1304.67, 292.855]
-Measurements : [979.718, 336644, 0.835387, -0.556105]
----
-Label        : 1
-Position     : [303.353, 292.861]
-Measurements : [1265.01, 181410, 0.710102, 0.106154]
----
-Label        : 1
-Position     : [245.825, 293.012]
-Measurements : [919.762, 436385, 1.24983, 0.0658546]
----
-Label        : 0
-Position     : [107.608, 293.118]
-Measurements : [1138.94, 1207.44, 0.129752, 0.0825713]
----
-Label        : 1
-Position     : [18.3898, 293.199]
-Measurements : [2086.84, 553354, -0.499861, -0.93361]
----
-Label        : 0
-Position     : [103.183, 293.283]
-Measurements : [1152.1, 969.171, 0.477588, 0.25307]
----
-Label        : 1
-Position     : [18.408, 293.672]
-Measurements : [2086.84, 553354, -0.499861, -0.93361]
----
-Label        : 0
-Position     : [88.8033, 294.394]
-Measurements : [1098.51, 11313.5, -3.58635, 13.8647]
----
-Label        : 1
-Position     : [306.176, 294.672]
-Measurements : [1590.16, 252463, -0.0388323, -0.731191]
----
-Label        : 1
-Position     : [237.841, 294.969]
-Measurements : [870.203, 441129, 1.23734, -0.0204835]
----
-Label        : 1
-Position     : [1306.59, 295.279]
-Measurements : [658.351, 211218, 2.04249, 3.60718]
----
-Label        : 0
-Position     : [60.9388, 296.015]
-Measurements : [1116.95, 1229.84, -1.56664, 3.49758]
----
-Label        : 1
-Position     : [299.216, 296.028]
-Measurements : [900.519, 209900, 0.852429, -0.26981]
----
-Label        : 1
-Position     : [325.213, 296.53]
-Measurements : [1405.13, 297875, 0.283657, -0.866397]
----
-Label        : 1
-Position     : [1275.42, 296.595]
-Measurements : [1302.59, 305126, 0.494154, -0.588778]
----
-Label        : 1
-Position     : [1266.34, 296.68]
-Measurements : [1298.97, 495857, 0.221354, -1.40382]
----
-Label        : 1
-Position     : [309.328, 296.733]
-Measurements : [1853.68, 244272, -0.47485, -0.211116]
----
-Label        : 1
-Position     : [307.33, 296.858]
-Measurements : [1784.36, 267463, -0.148655, -0.787287]
----
-Label        : 1
-Position     : [949.856, 296.888]
-Measurements : [1770.62, 407193, 0.170323, -0.727444]
----
-Label        : 1
-Position     : [309.656, 297.175]
-Measurements : [1901.04, 232764, -0.380573, -0.113782]
----
-Label        : 1
-Position     : [920.403, 297.197]
-Measurements : [871.386, 96826.8, 0.503393, 0.0888838]
----
-Label        : 1
-Position     : [331.776, 297.232]
-Measurements : [1420.68, 292436, -0.352953, -1.10581]
----
-Label        : 1
-Position     : [946.274, 297.246]
-Measurements : [1599.99, 398568, -0.00129816, -0.766958]
----
-Label        : 1
-Position     : [251.368, 297.256]
-Measurements : [993.275, 297765, 0.849048, -0.309308]
----
-Label        : 1
-Position     : [334.915, 297.361]
-Measurements : [1084.38, 351454, 0.426584, -1.24256]
----
-Label        : 1
-Position     : [1274.27, 297.984]
-Measurements : [1332.96, 331269, 0.468437, -0.752828]
----
-Label        : 1
-Position     : [22.0759, 297.999]
-Measurements : [1652.09, 1.02569e+06, 0.211875, -1.65132]
----
-Label        : 1
-Position     : [311.296, 298.256]
-Measurements : [1904.36, 261410, -0.702658, 0.32137]
----
-Label        : 1
-Position     : [1279.21, 298.307]
-Measurements : [764.869, 140157, 0.896752, -0.579133]
----
-Label        : 0
-Position     : [69.7364, 298.37]
-Measurements : [1089.44, 758.82, 0.398235, 0.174431]
----
-Label        : 1
-Position     : [917.303, 298.463]
-Measurements : [897.027, 103491, 0.573066, 0.103263]
----
-Label        : 1
-Position     : [760.643, 298.511]
-Measurements : [1266.55, 482232, 0.14761, -1.41716]
----
-Label        : 1
-Position     : [249.713, 298.849]
-Measurements : [923.881, 333406, 0.947606, -0.355207]
----
-Label        : 1
-Position     : [919.136, 298.936]
-Measurements : [946.786, 100771, 0.478163, -0.0212239]
----
-Label        : 1
-Position     : [757.222, 299.487]
-Measurements : [1173.88, 493903, 0.320998, -1.36487]
----
-Label        : 1
-Position     : [248.122, 299.506]
-Measurements : [855.49, 348116, 1.14937, -0.0696434]
----
-Label        : 1
-Position     : [317.066, 300.764]
-Measurements : [1403.29, 280627, 0.168902, -1.20865]
----
-Label        : 1
-Position     : [328.18, 300.867]
-Measurements : [1576.27, 251724, -0.352038, -0.661689]
----
-Label        : 1
-Position     : [760.928, 300.984]
-Measurements : [1313.81, 416547, 0.211536, -1.34137]
----
-Label        : 0
-Position     : [83.0857, 301.136]
-Measurements : [1035.29, 17717.4, -1.12875, -0.0603737]
----
-Label        : 1
-Position     : [313.574, 301.201]
-Measurements : [1721.09, 342123, -0.319195, -0.541381]
----
-Label        : 1
-Position     : [915.915, 301.724]
-Measurements : [788.007, 96760.5, 0.517847, -0.515003]
----
-Label        : 1
-Position     : [314.88, 301.84]
-Measurements : [1661.9, 323981, -0.126379, -0.61667]
----
-Label        : 1
-Position     : [312.988, 301.877]
-Measurements : [1741.87, 349458, -0.422613, -0.414977]
----
-Label        : 1
-Position     : [922.947, 302.058]
-Measurements : [842.803, 140645, 0.708456, -0.642811]
----
-Label        : 1
-Position     : [863.369, 302.592]
-Measurements : [1190.46, 653707, 0.437242, -1.42451]
----
-Label        : 0
-Position     : [73.1564, 302.927]
-Measurements : [1063.72, 1571.58, -1.30126, 2.84423]
----
-Label        : 1
-Position     : [327.977, 303.362]
-Measurements : [1374.89, 362764, -0.025753, -1.1578]
----
-Label        : 1
-Position     : [920.672, 304.056]
-Measurements : [796.024, 135541, 0.988091, -0.0791952]
----
-Label        : 1
-Position     : [329.562, 304.413]
-Measurements : [1460.62, 367780, -0.306666, -0.969825]
----
-Label        : 1
-Position     : [860.914, 304.582]
-Measurements : [1465.11, 534631, -0.0360755, -1.30213]
----
-Label        : 1
-Position     : [858.72, 305.08]
-Measurements : [1509.21, 378380, 0.120227, -0.875933]
----
-Label        : 0
-Position     : [141.946, 305.672]
-Measurements : [1002.69, 8849.39, -0.255284, -1.37972]
----
-Label        : 1
-Position     : [332.288, 305.936]
-Measurements : [1537.35, 457147, -0.304897, -1.12936]
----
-Label        : 0
-Position     : [73.7017, 307.667]
-Measurements : [1036.37, 4929.06, -2.51853, 7.21282]
----
-Label        : 1
-Position     : [274.663, 307.725]
-Measurements : [1783.92, 511878, -0.317551, -1.27095]
----
-Label        : 1
-Position     : [318.464, 308.496]
-Measurements : [1011.89, 221130, 0.296984, -0.978957]
----
-Label        : 0
-Position     : [97.176, 309.451]
-Measurements : [1058.1, 69435.8, 1.18385, 3.79824]
----
-Label        : 1
-Position     : [852.789, 310.726]
-Measurements : [937.268, 343837, 1.06517, 0.251392]
----
-Label        : 1
-Position     : [320.521, 310.807]
-Measurements : [841.622, 155065, 0.508284, -1.18065]
----
-Label        : 1
-Position     : [278.504, 311.08]
-Measurements : [1513.87, 542416, -0.160913, -1.29831]
----
-Label        : 1
-Position     : [855.136, 311.224]
-Measurements : [965.681, 422064, 1.06772, 0.0207412]
----
-Label        : 1
-Position     : [180.397, 311.562]
-Measurements : [878.252, 502288, 1.09733, -0.399046]
----
-Label        : 1
-Position     : [317.416, 313.271]
-Measurements : [676.317, 150744, 1.09745, -0.225275]
----
-Label        : 1
-Position     : [282.503, 313.562]
-Measurements : [1098.62, 561433, 0.660325, -1.02543]
----
-Label        : 0
-Position     : [107.163, 313.761]
-Measurements : [1136.26, 34082.8, 2.67994, 10.7748]
----
-Label        : 0
-Position     : [101.056, 313.921]
-Measurements : [1005.03, 34591.4, -1.2708, 0.688471]
----
-Label        : 1
-Position     : [1292.36, 314.111]
-Measurements : [1329.83, 361625, 0.536734, 0.451267]
----
-Label        : 1
-Position     : [851.409, 315.023]
-Measurements : [518.923, 65611, 3.04831, 8.99739]
----
-Label        : 1
-Position     : [171.161, 315.662]
-Measurements : [1166.81, 347315, 0.114413, -1.49268]
----
-Label        : 1
-Position     : [175.592, 315.688]
-Measurements : [1324.94, 428503, 0.0213319, -1.40666]
----
-Label        : 0
-Position     : [126.002, 316.031]
-Measurements : [1013.5, 6676.78, -0.423331, -0.903568]
----
-Label        : 1
-Position     : [1289.13, 317.056]
-Measurements : [1501.1, 375295, 0.550041, -0.423567]
----
-Label        : 1
-Position     : [36.6487, 318.64]
-Measurements : [892.864, 160753, 0.504941, 0.140527]
----
-Label        : 0
-Position     : [125.931, 319.107]
-Measurements : [1040.87, 4890.14, -0.827509, -0.402262]
----
-Label        : 1
-Position     : [30.0153, 320.214]
-Measurements : [748.116, 203575, 0.936712, 0.052045]
----
-Label        : 1
-Position     : [1287.55, 320.754]
-Measurements : [1689.01, 354636, 0.0633067, -0.810724]
----
-Label        : 1
-Position     : [1297.4, 321.937]
-Measurements : [1304.25, 118013, 0.104143, -0.45438]
----
-Label        : 1
-Position     : [1293.74, 322.688]
-Measurements : [1461.73, 260869, 0.75782, 0.380715]
----
-Label        : 1
-Position     : [32.232, 323.36]
-Measurements : [1124.61, 194880, 0.0505048, -0.763606]
----
-Label        : 0
-Position     : [76.8648, 324.006]
-Measurements : [1036.07, 2884.28, -1.72646, 3.59258]
----
-Label        : 1
-Position     : [1298.34, 324.213]
-Measurements : [1342.83, 161102, 0.218354, -0.630706]
----
-Label        : 1
-Position     : [897.156, 324.979]
-Measurements : [801.316, 273652, 1.11685, 0.472567]
----
-Label        : 1
-Position     : [30.0511, 325.259]
-Measurements : [1221.26, 161346, -0.149396, -0.575983]
----
-Label        : 1
-Position     : [898.656, 327.096]
-Measurements : [900.46, 295303, 0.911096, -0.1566]
----
-Label        : 1
-Position     : [1295.33, 327.368]
-Measurements : [1534.61, 306883, 0.337662, -0.275422]
----
-Label        : 1
-Position     : [28.136, 328.992]
-Measurements : [1137.4, 208439, -0.176804, -1.21257]
----
-Label        : 1
-Position     : [1299.88, 329.856]
-Measurements : [1868.54, 474080, 0.300947, -0.990441]
----
-Label        : 1
-Position     : [1295.53, 330.382]
-Measurements : [1676.95, 511605, 0.300156, -0.778508]
----
-Label        : 1
-Position     : [896.2, 331.308]
-Measurements : [745.264, 314389, 1.45924, 0.790869]
----
-Label        : 1
-Position     : [31.393, 332.068]
-Measurements : [1478.44, 305886, 0.15462, -0.427132]
----
-Label        : 1
-Position     : [24.995, 332.951]
-Measurements : [1004.96, 319137, 0.450735, -1.16757]
----
-Label        : 1
-Position     : [35.304, 333.088]
-Measurements : [1513.98, 266411, 0.837431, -0.169678]
----
-Label        : 1
-Position     : [819.585, 335.624]
-Measurements : [965.229, 172634, 0.236331, -0.664568]
----
-Label        : 1
-Position     : [32.9505, 335.688]
-Measurements : [1660.38, 405910, -0.0888662, -1.11764]
----
-Label        : 1
-Position     : [388.574, 338.077]
-Measurements : [1447.9, 1.08173e+06, 0.354629, -1.54885]
----
-Label        : 1
-Position     : [379.864, 339.331]
-Measurements : [1453.77, 583560, 0.233993, -1.32254]
----
-Label        : 1
-Position     : [30.184, 339.744]
-Measurements : [1722.53, 324170, -0.15393, -0.845581]
----
-Label        : 1
-Position     : [823.904, 339.896]
-Measurements : [1025.37, 218483, 0.41484, -1.05394]
----
-Label        : 1
-Position     : [34.9349, 340.373]
-Measurements : [1653.74, 352450, 0.173884, -1.07396]
----
-Label        : 1
-Position     : [384.512, 341.016]
-Measurements : [1824.12, 664849, -0.0639393, -1.36818]
----
-Label        : 1
-Position     : [828.343, 341.341]
-Measurements : [759.314, 234096, 1.27466, 0.175611]
----
-Label        : 1
-Position     : [31.5786, 342.049]
-Measurements : [1783.36, 255148, -0.283535, -0.372619]
----
-Label        : 1
-Position     : [28.3428, 345.376]
-Measurements : [1622.15, 158889, -0.389945, -0.751115]
----
-Label        : 0
-Position     : [128.417, 347.494]
-Measurements : [966.241, 9470.65, -0.427983, -0.896549]
----
-Label        : 1
-Position     : [27.1152, 347.569]
-Measurements : [1385.11, 243190, -0.218321, -1.37813]
----
-Label        : 1
-Position     : [28.136, 348.448]
-Measurements : [1354.97, 291130, -0.24537, -1.52809]
----
-Label        : 1
-Position     : [225.383, 351.282]
-Measurements : [1295.44, 543542, 0.426287, -1.28963]
----
-Label        : 0
-Position     : [116.786, 352.671]
-Measurements : [1058.12, 12116.4, -2.85104, 9.29506]
----
-Label        : 0
-Position     : [75.7368, 354.428]
-Measurements : [1166.54, 15632.4, 0.894411, 0.616058]
----
-Label        : 1
-Position     : [248.515, 354.812]
-Measurements : [1673.76, 799735, -0.145397, -1.43538]
----
-Label        : 1
-Position     : [494.684, 354.912]
-Measurements : [1102.73, 384686, 0.55021, -0.81691]
----
-Label        : 1
-Position     : [224.232, 355.104]
-Measurements : [1503.57, 547230, 0.0527112, -1.52581]
----
-Label        : 1
-Position     : [1127.2, 355.598]
-Measurements : [2074.99, 518193, -0.127428, -0.528294]
----
-Label        : 1
-Position     : [195.826, 356.224]
-Measurements : [1082.07, 447669, 0.668964, -1.10361]
----
-Label        : 0
-Position     : [116.528, 356.833]
-Measurements : [1029.76, 17913.7, -1.57809, 2.68615]
----
-Label        : 1
-Position     : [491.52, 356.84]
-Measurements : [1473.24, 249410, 0.051303, -0.701314]
----
-Label        : 1
-Position     : [32.7376, 358.172]
-Measurements : [651.011, 91448.5, 1.12431, 0.166156]
----
-Label        : 1
-Position     : [250.856, 358.176]
-Measurements : [1872.36, 643647, -0.398515, -1.24]
----
-Label        : 1
-Position     : [238.575, 358.399]
-Measurements : [971.085, 358901, 0.319499, -1.43387]
----
-Label        : 1
-Position     : [187.979, 358.403]
-Measurements : [978.642, 459926, 0.606149, -1.29002]
----
-Label        : 1
-Position     : [241.14, 359.299]
-Measurements : [1337.75, 254469, -0.313284, -0.814633]
----
-Label        : 1
-Position     : [228.903, 359.66]
-Measurements : [943.164, 542799, 1.27245, 0.224254]
----
-Label        : 1
-Position     : [191.976, 360.224]
-Measurements : [1198.38, 403389, 0.441222, -1.23737]
----
-Label        : 1
-Position     : [1130.68, 360.296]
-Measurements : [2754.45, 546386, -0.828121, -0.255403]
----
-Label        : 1
-Position     : [39.073, 360.72]
-Measurements : [801.782, 71520.4, 0.527475, -0.79077]
----
-Label        : 1
-Position     : [36.328, 360.736]
-Measurements : [740.09, 76900.7, 0.948317, -0.264433]
----
-Label        : 1
-Position     : [207.336, 360.736]
-Measurements : [1083.65, 351551, 0.59436, -0.972166]
----
-Label        : 1
-Position     : [240.616, 360.736]
-Measurements : [1279.16, 259201, -0.336081, -0.905844]
----
-Label        : 1
-Position     : [209.926, 360.996]
-Measurements : [1096.49, 335651, 0.644743, -0.93957]
----
-Label        : 1
-Position     : [255.149, 361.25]
-Measurements : [1025.33, 820394, 1.13797, -0.401646]
----
-Label        : 1
-Position     : [492.046, 361.688]
-Measurements : [1324.93, 304446, 0.359948, -0.787004]
----
-Label        : 1
-Position     : [202.507, 362.779]
-Measurements : [758.795, 326023, 1.61784, 1.14283]
----
-Label        : 1
-Position     : [1125.69, 364.397]
-Measurements : [1748.95, 385271, 1.11641, 0.443763]
----
-Label        : 0
-Position     : [81.9451, 364.568]
-Measurements : [1063.34, 5854.01, 1.05216, 1.8461]
----
-Label        : 1
-Position     : [1178.06, 365.985]
-Measurements : [886.928, 465178, 1.2481, 0.126126]
----
-Label        : 1
-Position     : [273.896, 366.368]
-Measurements : [1143.48, 374598, 0.659708, -0.333251]
----
-Label        : 1
-Position     : [284.648, 367.392]
-Measurements : [954.907, 45656.6, -0.231089, -0.665454]
----
-Label        : 1
-Position     : [1173.93, 367.744]
-Measurements : [1157.86, 403720, 0.581964, -0.807707]
----
-Label        : 1
-Position     : [525.596, 367.949]
-Measurements : [783.268, 364467, 1.24925, 0.334774]
----
-Label        : 1
-Position     : [539.152, 368.117]
-Measurements : [1193.28, 631823, 0.900507, -0.490804]
----
-Label        : 1
-Position     : [278.747, 369.105]
-Measurements : [1012.5, 237941, 1.47042, 2.26681]
----
-Label        : 1
-Position     : [520.393, 369.211]
-Measurements : [1048.66, 416895, 0.492326, -1.15095]
----
-Label        : 1
-Position     : [277.177, 370.136]
-Measurements : [945.034, 189340, 1.48244, 2.90752]
----
-Label        : 1
-Position     : [1171.98, 370.626]
-Measurements : [931.69, 433750, 1.15905, -0.0595133]
----
-Label        : 1
-Position     : [534.528, 370.664]
-Measurements : [1029.14, 364186, 1.57702, 2.36234]
----
-Label        : 1
-Position     : [287.482, 371.23]
-Measurements : [948.184, 59057.7, -0.36291, -0.629689]
----
-Label        : 1
-Position     : [284.838, 372.084]
-Measurements : [899.306, 58401.6, -0.24318, -0.633071]
----
-Label        : 1
-Position     : [524.288, 372.2]
-Measurements : [1197.62, 302897, 0.49929, -1.03499]
----
-Label        : 0
-Position     : [77.9561, 372.201]
-Measurements : [1079.98, 4207.35, 1.0146, 1.71099]
----
-Label        : 1
-Position     : [538.046, 372.35]
-Measurements : [988.993, 339383, 0.971352, -0.151821]
----
-Label        : 0
-Position     : [150.227, 372.757]
-Measurements : [1229.14, 32996.4, 0.494297, -0.745172]
----
-Label        : 1
-Position     : [293.1, 373.368]
-Measurements : [1033.2, 93170.5, -0.255542, -1.0312]
----
-Label        : 1
-Position     : [293.376, 373.784]
-Measurements : [1033.2, 93170.5, -0.255542, -1.0312]
----
-Label        : 1
-Position     : [289.037, 374.518]
-Measurements : [1029.61, 71054.5, -0.145656, -0.636408]
----
-Label        : 0
-Position     : [84.4049, 374.771]
-Measurements : [1094.08, 3891.08, 1.58465, 3.49479]
----
-Label        : 0
-Position     : [120.432, 375.219]
-Measurements : [1059.57, 5005.6, -1.1571, 1.0382]
----
-Label        : 0
-Position     : [78.0707, 375.487]
-Measurements : [1096, 2134.87, 0.634839, 0.533664]
----
-Label        : 0
-Position     : [100.413, 375.896]
-Measurements : [1008.28, 2170.33, -0.190925, 0.356895]
----
-Label        : 0
-Position     : [76.9407, 376.385]
-Measurements : [1086.16, 2849, 0.236747, 0.129677]
----
-Label        : 0
-Position     : [130.29, 377.145]
-Measurements : [803.267, 33189.8, 0.0741495, -1.07347]
----
-Label        : 0
-Position     : [92.1529, 377.833]
-Measurements : [1097.99, 23128, 1.60171, 2.06603]
----
-Label        : 1
-Position     : [342.528, 377.88]
-Measurements : [2102.24, 570240, -0.402955, -0.962667]
----
-Label        : 1
-Position     : [339.165, 379.291]
-Measurements : [1648.96, 1.05003e+06, 0.00722861, -1.66277]
----
-Label        : 1
-Position     : [543.092, 379.536]
-Measurements : [957.537, 484110, 1.15973, -0.240661]
----
-Label        : 1
-Position     : [341.942, 380.04]
-Measurements : [2050.94, 955353, -0.509036, -1.19656]
----
-Label        : 1
-Position     : [302.487, 380.29]
-Measurements : [1173.98, 306768, 0.517941, -0.576989]
----
-Label        : 1
-Position     : [303.104, 380.44]
-Measurements : [1196.92, 304257, 0.46022, -0.652252]
----
-Label        : 1
-Position     : [538.112, 380.904]
-Measurements : [1462.03, 477712, -0.0318375, -1.56297]
----
-Label        : 1
-Position     : [306.948, 381.111]
-Measurements : [1084.41, 333473, 0.793099, -0.507717]
----
-Label        : 0
-Position     : [88.715, 381.723]
-Measurements : [1182.13, 22355.7, 0.821427, 0.160565]
----
-Label        : 0
-Position     : [83.9033, 381.786]
-Measurements : [1159.53, 12281.8, 1.15369, 0.567158]
----
-Label        : 1
-Position     : [306.29, 382.778]
-Measurements : [1067.05, 332709, 0.879665, -0.402924]
----
-Label        : 0
-Position     : [128.7, 383.382]
-Measurements : [964.54, 14395.5, -0.909606, 0.452174]
----
-Label        : 1
-Position     : [307.712, 384.024]
-Measurements : [974.267, 307598, 1.31357, 0.6633]
----
-Label        : 1
-Position     : [542.991, 384.142]
-Measurements : [800.182, 341701, 1.78415, 1.97101]
----
-Label        : 1
-Position     : [33.768, 384.288]
-Measurements : [895.824, 389002, 1.04428, 0.136469]
----
-Label        : 1
-Position     : [536.073, 384.29]
-Measurements : [1412.41, 447854, 0.018311, -1.41854]
----
-Label        : 1
-Position     : [300.132, 384.395]
-Measurements : [1134.16, 182243, 0.36602, -0.510284]
----
-Label        : 0
-Position     : [158.793, 384.688]
-Measurements : [1111.14, 3448.12, 1.253, 2.86972]
----
-Label        : 1
-Position     : [531.32, 385.221]
-Measurements : [1307.26, 334628, 0.361351, -1.09807]
----
-Label        : 1
-Position     : [37.3792, 385.999]
-Measurements : [1415.47, 544143, 0.291589, -1.07497]
----
-Label        : 0
-Position     : [139.365, 386.319]
-Measurements : [947.557, 10998, -0.0164515, 0.296629]
----
-Label        : 1
-Position     : [535.04, 386.536]
-Measurements : [1242.39, 374640, 0.38586, -1.17141]
----
-Label        : 1
-Position     : [36.8771, 386.802]
-Measurements : [1558.57, 639819, 0.534264, -0.486779]
----
-Label        : 1
-Position     : [41.448, 387.872]
-Measurements : [1798.25, 571746, 0.245078, -0.362471]
----
-Label        : 1
-Position     : [38.4414, 389.267]
-Measurements : [1888.62, 689619, 0.227818, -0.778128]
----
-Label        : 0
-Position     : [91.5758, 389.307]
-Measurements : [1046.18, 19292.2, -1.00928, 1.27428]
----
-Label        : 1
-Position     : [42.6246, 391.71]
-Measurements : [1499.46, 652634, 0.552446, -0.592604]
----
-Label        : 1
-Position     : [723.528, 394.24]
-Measurements : [1293.89, 534656, 0.679288, -0.906691]
----
-Label        : 1
-Position     : [728.358, 394.385]
-Measurements : [913.576, 452985, 1.67101, 1.66701]
----
-Label        : 1
-Position     : [540.672, 394.728]
-Measurements : [1036.92, 192689, 0.928732, 0.0844256]
----
-Label        : 0
-Position     : [120.329, 394.979]
-Measurements : [1030.67, 2088.07, -0.00292882, 0.536204]
----
-Label        : 1
-Position     : [53.7728, 396.652]
-Measurements : [1747.54, 297395, -0.0596843, -0.46686]
----
-Label        : 1
-Position     : [535.693, 396.687]
-Measurements : [797.866, 72402.5, 0.441314, -0.190174]
----
-Label        : 1
-Position     : [541.504, 397.342]
-Measurements : [889.472, 163983, 1.30112, 1.33362]
----
-Label        : 1
-Position     : [350.908, 398.532]
-Measurements : [711.83, 191618, 1.49223, 1.16671]
----
-Label        : 1
-Position     : [724.205, 398.75]
-Measurements : [914.407, 561175, 1.41964, 0.668516]
----
-Label        : 1
-Position     : [49.64, 399.136]
-Measurements : [1760.79, 435440, -0.108817, -1.11199]
----
-Label        : 0
-Position     : [154.43, 402.69]
-Measurements : [1092.67, 22119.1, -1.14498, 1.42765]
----
-Label        : 1
-Position     : [353.28, 402.968]
-Measurements : [774.807, 170130, 1.42406, 1.2049]
----
-Label        : 1
-Position     : [51.6486, 403.384]
-Measurements : [1166.88, 578105, 0.863849, -0.616763]
----
-Label        : 0
-Position     : [117.844, 404.396]
-Measurements : [1114.43, 17962.6, -0.886597, 1.18863]
----
-Label        : 1
-Position     : [62.6858, 404.419]
-Measurements : [1178.35, 195504, -0.197495, -1.1333]
----
-Label        : 1
-Position     : [797.47, 406.143]
-Measurements : [507.064, 68048.2, 2.42962, 5.13555]
----
-Label        : 1
-Position     : [916.831, 406.245]
-Measurements : [762.472, 180066, 1.11748, 0.000988982]
----
-Label        : 1
-Position     : [353.501, 407.75]
-Measurements : [553.966, 92119.4, 2.7191, 8.09168]
----
-Label        : 1
-Position     : [62.44, 407.84]
-Measurements : [1245.64, 169765, -0.405401, -0.676118]
----
-Label        : 1
-Position     : [778.594, 407.894]
-Measurements : [837.78, 215531, 0.113253, -1.73944]
----
-Label        : 1
-Position     : [915.08, 408.576]
-Measurements : [807.777, 176175, 0.957463, -0.240786]
----
-Label        : 1
-Position     : [782.408, 409.088]
-Measurements : [933.179, 138430, -0.216412, -1.48188]
----
-Label        : 1
-Position     : [1221.77, 410.184]
-Measurements : [622.695, 204200, 2.32691, 4.57398]
----
-Label        : 1
-Position     : [909.181, 410.456]
-Measurements : [791.064, 183726, 0.602742, -0.857243]
----
-Label        : 1
-Position     : [909.936, 410.463]
-Measurements : [791.064, 183726, 0.602742, -0.857243]
----
-Label        : 1
-Position     : [60.9822, 410.709]
-Measurements : [1115.57, 283113, 0.167235, -0.842756]
----
-Label        : 1
-Position     : [1217.52, 410.993]
-Measurements : [873.734, 255944, 1.00293, 0.00975804]
----
-Label        : 1
-Position     : [792.648, 411.136]
-Measurements : [809.283, 112909, 0.610934, -0.836807]
----
-Label        : 1
-Position     : [797.575, 411.37]
-Measurements : [646.996, 115608, 1.21774, 0.226855]
----
-Label        : 1
-Position     : [68.061, 411.652]
-Measurements : [1527.87, 247014, 0.0294026, -0.994186]
----
-Label        : 1
-Position     : [910.294, 412.547]
-Measurements : [877.468, 169613, 0.63092, -0.651071]
----
-Label        : 1
-Position     : [909.448, 413.184]
-Measurements : [801.535, 146704, 0.620722, -0.356229]
----
-Label        : 1
-Position     : [766.03, 413.862]
-Measurements : [1172.6, 420361, 0.143245, -1.58112]
----
-Label        : 1
-Position     : [786.791, 413.942]
-Measurements : [856.077, 110795, 0.25185, -1.26631]
----
-Label        : 1
-Position     : [1216.94, 414.368]
-Measurements : [899.022, 240505, 1.06321, 0.0829718]
----
-Label        : 1
-Position     : [813.192, 415.232]
-Measurements : [1239.04, 426480, 0.267245, -1.28562]
----
-Label        : 1
-Position     : [930.922, 415.586]
-Measurements : [685.414, 204379, 1.13662, -0.232027]
----
-Label        : 1
-Position     : [768.166, 415.721]
-Measurements : [1317.51, 403060, -0.172306, -1.51637]
----
-Label        : 1
-Position     : [873.984, 415.872]
-Measurements : [590.38, 105650, 1.47544, 0.897345]
----
-Label        : 1
-Position     : [65.512, 416.032]
-Measurements : [1700.58, 290380, -0.00680515, -0.94794]
----
-Label        : 1
-Position     : [768.584, 416.256]
-Measurements : [1324.42, 393554, -0.179794, -1.47335]
----
-Label        : 1
-Position     : [893.119, 416.688]
-Measurements : [939.527, 283659, 0.743562, -0.525585]
----
-Label        : 1
-Position     : [895.112, 417.28]
-Measurements : [1010.12, 246797, 0.683016, -0.43508]
----
-Label        : 1
-Position     : [898.12, 417.804]
-Measurements : [925.398, 290458, 0.789421, -0.527365]
----
-Label        : 1
-Position     : [74.6812, 419.043]
-Measurements : [2073.43, 401342, -0.473729, -0.575139]
----
-Label        : 1
-Position     : [814.578, 419.262]
-Measurements : [1315.69, 325948, 0.0345118, -1.23242]
----
-Label        : 1
-Position     : [871.048, 419.328]
-Measurements : [733.64, 129512, 0.892418, -0.248229]
----
-Label        : 1
-Position     : [933, 419.328]
-Measurements : [809.058, 194305, 0.70812, -0.886597]
----
-Label        : 1
-Position     : [812.492, 419.453]
-Measurements : [1345.87, 287357, 0.113904, -1.18225]
----
-Label        : 1
-Position     : [839.957, 419.915]
-Measurements : [694.174, 213573, 1.54485, 1.61826]
----
-Label        : 1
-Position     : [929.023, 419.974]
-Measurements : [753.367, 175046, 0.94208, -0.369347]
----
-Label        : 1
-Position     : [873.528, 420.529]
-Measurements : [704.959, 134564, 1.02537, -0.144874]
----
-Label        : 1
-Position     : [61.7148, 420.762]
-Measurements : [1297.15, 418280, 0.0260362, -1.39948]
----
-Label        : 1
-Position     : [67.1091, 421.524]
-Measurements : [2090.08, 373632, -0.210323, -0.807548]
----
-Label        : 1
-Position     : [752.214, 421.931]
-Measurements : [537.312, 68072.8, 2.30821, 5.25888]
----
-Label        : 1
-Position     : [70.12, 422.4]
-Measurements : [2191.55, 339292, -0.23023, -0.915324]
----
-Label        : 1
-Position     : [937.318, 423.034]
-Measurements : [695.305, 185857, 1.32909, 0.562202]
----
-Label        : 1
-Position     : [837.256, 423.936]
-Measurements : [925.997, 238192, 1.06973, 0.37556]
----
-Label        : 1
-Position     : [832.613, 425.314]
-Measurements : [875.074, 270150, 1.01821, 0.275156]
----
-Label        : 1
-Position     : [851.894, 425.835]
-Measurements : [832.761, 248294, 0.902637, -0.383226]
----
-Label        : 1
-Position     : [749.64, 425.984]
-Measurements : [948.649, 228955, 0.59698, -0.368217]
----
-Label        : 1
-Position     : [932.488, 425.984]
-Measurements : [900.822, 204635, 0.88108, -0.337504]
----
-Label        : 1
-Position     : [849.053, 426.665]
-Measurements : [897.195, 255519, 0.571282, -0.869123]
----
-Label        : 1
-Position     : [76.264, 428.544]
-Measurements : [2078.04, 544048, -0.674, -0.757565]
----
-Label        : 1
-Position     : [932.095, 428.584]
-Measurements : [975.434, 208625, 0.782362, -0.425091]
----
-Label        : 1
-Position     : [934.89, 428.811]
-Measurements : [1028.9, 241061, 0.446194, -0.928905]
----
-Label        : 1
-Position     : [849.032, 429.056]
-Measurements : [1000.48, 196126, 0.467166, -0.538497]
----
-Label        : 1
-Position     : [77.6479, 429.295]
-Measurements : [1910.85, 706300, -0.350016, -1.35219]
----
-Label        : 1
-Position     : [746.676, 429.75]
-Measurements : [820.053, 132976, 0.335664, -1.09905]
----
-Label        : 1
-Position     : [936.584, 430.08]
-Measurements : [1140.85, 249119, 0.263103, -1.2232]
----
-Label        : 1
-Position     : [928.885, 430.352]
-Measurements : [944.775, 82908.1, 2.11441, 4.56546]
----
-Label        : 1
-Position     : [738.527, 430.575]
-Measurements : [734.847, 139994, 0.397738, -1.51246]
----
-Label        : 1
-Position     : [74.5684, 432.482]
-Measurements : [1827.99, 720857, -0.278373, -1.50905]
----
-Label        : 1
-Position     : [737.864, 435.2]
-Measurements : [1140.51, 105335, -0.643868, 0.011529]
----
-Label        : 1
-Position     : [672.865, 435.417]
-Measurements : [1248.64, 112865, -0.6497, -0.0570891]
----
-Label        : 1
-Position     : [682.741, 436.392]
-Measurements : [898.573, 104883, 0.0898886, -1.54981]
----
-Label        : 1
-Position     : [656.46, 436.438]
-Measurements : [1432.53, 206091, 0.0160037, -0.296242]
----
-Label        : 1
-Position     : [937.347, 437.214]
-Measurements : [1049.51, 321651, 0.84056, -0.508625]
----
-Label        : 1
-Position     : [658.622, 437.368]
-Measurements : [1482.82, 215613, -0.027055, -0.532193]
----
-Label        : 1
-Position     : [640.604, 437.684]
-Measurements : [1082.08, 153135, -0.222277, -0.77468]
----
-Label        : 1
-Position     : [734.722, 437.912]
-Measurements : [1299.21, 171901, 0.266516, -0.402334]
----
-Label        : 1
-Position     : [937.457, 437.972]
-Measurements : [1049.51, 321651, 0.84056, -0.508625]
----
-Label        : 1
-Position     : [939.144, 438.272]
-Measurements : [942.2, 368227, 0.999028, -0.387843]
----
-Label        : 1
-Position     : [672.84, 439.808]
-Measurements : [1341.3, 50934.4, -0.237102, -0.109797]
----
-Label        : 1
-Position     : [731.47, 440.295]
-Measurements : [1543.35, 192591, -0.541051, -0.550148]
----
-Label        : 1
-Position     : [680.008, 440.832]
-Measurements : [1002.36, 81505.6, -0.463097, -0.845906]
----
-Label        : 1
-Position     : [648.203, 441.225]
-Measurements : [1456.05, 76576, -0.301807, -0.307563]
----
-Label        : 1
-Position     : [653.384, 441.344]
-Measurements : [1440.78, 201937, 0.232302, -0.554821]
----
-Label        : 1
-Position     : [663.112, 441.344]
-Measurements : [1519.93, 156782, -0.36463, -0.306364]
----
-Label        : 1
-Position     : [731.351, 441.687]
-Measurements : [1609.03, 156861, -0.587035, -0.233024]
----
-Label        : 1
-Position     : [645.192, 442.368]
-Measurements : [1377.53, 56943.5, -0.341322, -0.169495]
----
-Label        : 1
-Position     : [669.538, 443.666]
-Measurements : [1487.23, 111575, -0.186545, 0.397046]
----
-Label        : 1
-Position     : [735.304, 443.904]
-Measurements : [1497.63, 133602, -0.206007, -0.360222]
----
-Label        : 1
-Position     : [664.384, 444.177]
-Measurements : [1439.95, 157756, -0.514591, -0.0999737]
----
-Label        : 1
-Position     : [110.414, 444.201]
-Measurements : [1226.8, 349611, 0.349913, -1.02005]
----
-Label        : 1
-Position     : [952.316, 444.335]
-Measurements : [1743.24, 866919, -0.137912, -1.48944]
----
-Label        : 1
-Position     : [951.3, 444.617]
-Measurements : [1778.24, 853610, -0.223107, -1.43039]
----
-Label        : 1
-Position     : [676.492, 444.813]
-Measurements : [1270.74, 99444.8, -0.00502241, 0.149872]
----
-Label        : 1
-Position     : [656.548, 445.354]
-Measurements : [1301.54, 217731, 0.0955151, -0.488249]
----
-Label        : 1
-Position     : [947.848, 445.952]
-Measurements : [1813.38, 783301, -0.345384, -1.33575]
----
-Label        : 1
-Position     : [223.344, 446.637]
-Measurements : [1469.86, 350234, 0.777706, -1.01709]
----
-Label        : 1
-Position     : [726.6, 446.976]
-Measurements : [1447.13, 333995, -0.618639, -0.924742]
----
-Label        : 1
-Position     : [639.048, 448]
-Measurements : [1447.78, 182699, -0.258972, -0.39761]
----
-Label        : 1
-Position     : [721.647, 448.221]
-Measurements : [759.222, 356559, 1.21082, -0.230607]
----
-Label        : 1
-Position     : [12.6462, 448.44]
-Measurements : [590.987, 157505, 2.89706, 8.34738]
----
-Label        : 1
-Position     : [107.496, 448.512]
-Measurements : [1167.97, 385140, 0.626117, -1.09912]
----
-Label        : 1
-Position     : [5.97659, 448.64]
-Measurements : [843.677, 310246, 1.22992, 0.562628]
----
-Label        : 1
-Position     : [725.176, 448.99]
-Measurements : [1152.06, 457489, 0.0494439, -1.71895]
----
-Label        : 1
-Position     : [527.264, 449.024]
-Measurements : [1501.23, 430478, 0.240216, -1.26203]
----
-Label        : 1
-Position     : [635.034, 449.472]
-Measurements : [1528.93, 243575, -0.072693, -0.587377]
----
-Label        : 1
-Position     : [126.56, 449.935]
-Measurements : [1001.15, 259217, 0.90875, 0.120479]
----
-Label        : 1
-Position     : [136.162, 450.295]
-Measurements : [1408.87, 289870, 0.156769, -0.651482]
----
-Label        : 1
-Position     : [642.2, 450.737]
-Measurements : [1339.4, 246355, -0.00699209, -1.06775]
----
-Label        : 1
-Position     : [134.958, 451.037]
-Measurements : [1556.1, 207411, 0.488355, -0.699886]
----
-Label        : 1
-Position     : [532.103, 451.064]
-Measurements : [938.794, 438279, 1.3906, 0.723337]
----
-Label        : 1
-Position     : [8.168, 451.072]
-Measurements : [891.489, 271182, 1.42058, 0.888739]
----
-Label        : 1
-Position     : [132.373, 451.389]
-Measurements : [1369.93, 246994, 0.291618, -0.402372]
----
-Label        : 1
-Position     : [528.146, 451.419]
-Measurements : [1457.72, 515785, 0.180012, -1.46798]
----
-Label        : 1
-Position     : [227.304, 451.584]
-Measurements : [1723.93, 415019, -0.421554, -1.04184]
----
-Label        : 1
-Position     : [172.324, 451.762]
-Measurements : [1071.59, 153993, 0.0261246, -1.32803]
----
-Label        : 1
-Position     : [159.783, 451.861]
-Measurements : [1174.08, 384040, 0.389188, -1.10244]
----
-Label        : 1
-Position     : [117.508, 452.061]
-Measurements : [1065.74, 455476, 0.451643, -1.24023]
----
-Label        : 1
-Position     : [120.296, 452.096]
-Measurements : [1142.42, 390763, 0.390965, -1.10479]
----
-Label        : 1
-Position     : [630.835, 452.729]
-Measurements : [1712.56, 204054, -0.083229, -0.749053]
----
-Label        : 1
-Position     : [160.598, 452.779]
-Measurements : [1340.07, 411914, 0.162113, -1.07011]
----
-Label        : 1
-Position     : [103.578, 452.943]
-Measurements : [863.427, 322920, 1.41546, 0.647504]
----
-Label        : 1
-Position     : [130.536, 453.12]
-Measurements : [1207.1, 343233, 0.392211, -0.873326]
----
-Label        : 1
-Position     : [632.392, 453.12]
-Measurements : [1630.88, 310333, -0.208692, -0.798324]
----
-Label        : 1
-Position     : [137.192, 453.632]
-Measurements : [1410.34, 390508, 0.0476933, -1.17026]
----
-Label        : 1
-Position     : [165.352, 454.144]
-Measurements : [1377.33, 358512, 0.106841, -0.794038]
----
-Label        : 1
-Position     : [159.72, 454.656]
-Measurements : [1135.01, 412079, 0.458963, -1.18434]
----
-Label        : 1
-Position     : [627.266, 454.69]
-Measurements : [1813.18, 123260, -0.451422, 0.66334]
----
-Label        : 1
-Position     : [119.219, 454.966]
-Measurements : [1070.43, 393972, 0.613021, -0.87558]
----
-Label        : 1
-Position     : [632.88, 454.968]
-Measurements : [1620.44, 333709, -0.26508, -0.871962]
----
-Label        : 1
-Position     : [170.984, 455.168]
-Measurements : [1154.49, 335000, 0.541179, -0.5096]
----
-Label        : 1
-Position     : [230.572, 455.458]
-Measurements : [1297.81, 720899, 0.302012, -1.66048]
----
-Label        : 1
-Position     : [524.704, 455.68]
-Measurements : [1461.43, 275397, -0.0221619, -1.24211]
----
-Label        : 1
-Position     : [733.529, 456.156]
-Measurements : [985.235, 354557, 1.02509, -0.035532]
----
-Label        : 1
-Position     : [178.399, 456.568]
-Measurements : [901.986, 90239.4, 0.228443, -1.02427]
----
-Label        : 1
-Position     : [168.29, 456.615]
-Measurements : [1219.06, 354372, 0.442171, -0.583136]
----
-Label        : 1
-Position     : [523.599, 456.697]
-Measurements : [1456.96, 276360, -0.184469, -1.43522]
----
-Label        : 1
-Position     : [625.736, 456.704]
-Measurements : [1781.29, 137156, -0.409457, 0.828819]
----
-Label        : 1
-Position     : [158.219, 456.753]
-Measurements : [908.059, 332555, 1.08846, -0.280884]
----
-Label        : 1
-Position     : [167.416, 456.84]
-Measurements : [1223.36, 356828, 0.394666, -0.591263]
----
-Label        : 1
-Position     : [201.192, 457.216]
-Measurements : [933.378, 107552, 0.155343, -1.21194]
----
-Label        : 1
-Position     : [273.116, 457.427]
-Measurements : [848.93, 83433.7, 0.295688, -1.00214]
----
-Label        : 1
-Position     : [629.339, 457.918]
-Measurements : [1686.46, 275729, -0.613071, -0.069262]
----
-Label        : 1
-Position     : [180.712, 458.24]
-Measurements : [876.781, 102409, 0.452063, -1.0902]
----
-Label        : 1
-Position     : [735.922, 459.682]
-Measurements : [1071.95, 321085, 0.857073, -0.0962083]
----
-Label        : 1
-Position     : [526.677, 460.001]
-Measurements : [966.999, 314004, 0.947694, -0.537469]
----
-Label        : 1
-Position     : [205.748, 460.103]
-Measurements : [642.427, 130680, 1.36858, 0.481237]
----
-Label        : 1
-Position     : [625.038, 460.253]
-Measurements : [1676.56, 259427, -0.406202, -0.472816]
----
-Label        : 1
-Position     : [734.28, 460.8]
-Measurements : [1112.77, 301639, 0.829453, -0.103574]
----
-Label        : 1
-Position     : [611.928, 461.373]
-Measurements : [2567.36, 214202, -0.566806, -0.227441]
----
-Label        : 1
-Position     : [271.776, 461.824]
-Measurements : [759.403, 126917, 0.834422, -0.716463]
----
-Label        : 1
-Position     : [518.56, 461.824]
-Measurements : [1307.04, 323766, 0.306164, -1.28303]
----
-Label        : 1
-Position     : [620.616, 461.824]
-Measurements : [2111.78, 217234, -0.248365, -0.0132417]
----
-Label        : 1
-Position     : [659.702, 462.007]
-Measurements : [1248.87, 212375, 0.401319, -0.193886]
----
-Label        : 1
-Position     : [199.358, 462.094]
-Measurements : [748.954, 113780, 0.730454, -0.77978]
----
-Label        : 1
-Position     : [649.759, 462.286]
-Measurements : [1453.68, 237955, 0.186743, -0.814412]
----
-Label        : 1
-Position     : [183.715, 462.562]
-Measurements : [759.815, 116531, 0.787376, -0.591159]
----
-Label        : 1
-Position     : [516.198, 462.776]
-Measurements : [1390.06, 307902, 0.0886769, -1.32882]
----
-Label        : 1
-Position     : [624.499, 462.86]
-Measurements : [1735.56, 265981, -0.143995, -0.538694]
----
-Label        : 1
-Position     : [672.438, 463.223]
-Measurements : [1531.3, 222375, -0.446837, -0.585857]
----
-Label        : 1
-Position     : [667.841, 463.359]
-Measurements : [1589.94, 159504, -0.554411, 0.397613]
----
-Label        : 1
-Position     : [612.936, 463.36]
-Measurements : [2598.89, 156365, -0.283363, -0.214999]
----
-Label        : 1
-Position     : [390.699, 463.9]
-Measurements : [953.982, 240329, 0.61246, -0.859345]
----
-Label        : 1
-Position     : [523.006, 464.194]
-Measurements : [841.746, 288683, 1.57323, 1.47777]
----
-Label        : 1
-Position     : [515.643, 464.224]
-Measurements : [1451.89, 324658, -0.165424, -1.29347]
----
-Label        : 1
-Position     : [281.805, 464.821]
-Measurements : [928.544, 152499, 1.37436, 1.32432]
----
-Label        : 1
-Position     : [653.937, 465.168]
-Measurements : [1389.95, 285490, 0.214694, -0.895179]
----
-Label        : 1
-Position     : [653.384, 465.408]
-Measurements : [1389.95, 285490, 0.214694, -0.895179]
----
-Label        : 1
-Position     : [274.286, 465.806]
-Measurements : [857.849, 226369, 1.49462, 1.87932]
----
-Label        : 1
-Position     : [287.268, 465.866]
-Measurements : [1078.32, 153800, 0.57181, -0.646066]
----
-Label        : 1
-Position     : [611.021, 465.919]
-Measurements : [2485.31, 306380, -0.760804, 0.243711]
----
-Label        : 1
-Position     : [667.72, 465.92]
-Measurements : [1564.51, 137936, -0.497085, 0.0519529]
----
-Label        : 1
-Position     : [674.725, 466.001]
-Measurements : [1530.88, 140729, -0.636649, -0.152479]
----
-Label        : 1
-Position     : [678.056, 466.002]
-Measurements : [1532.06, 83942.1, -0.180043, -0.455521]
----
-Label        : 1
-Position     : [276.016, 466.205]
-Measurements : [952.3, 291512, 1.1692, 0.491303]
----
-Label        : 1
-Position     : [384.456, 466.368]
-Measurements : [1200, 607760, 0.80133, -0.41372]
----
-Label        : 1
-Position     : [386.464, 466.432]
-Measurements : [1125.23, 479432, 1.04214, 0.507311]
----
-Label        : 1
-Position     : [513.44, 466.432]
-Measurements : [1369.01, 301165, -0.0199302, -1.17659]
----
-Label        : 1
-Position     : [661.064, 466.432]
-Measurements : [1260.88, 161930, -0.404024, -1.03649]
----
-Label        : 1
-Position     : [648.776, 466.944]
-Measurements : [1512.77, 152713, -0.139271, -0.353782]
----
-Label        : 1
-Position     : [600.963, 466.963]
-Measurements : [1834.42, 313683, -0.532998, -0.841125]
----
-Label        : 1
-Position     : [684.599, 467.37]
-Measurements : [1694.71, 253093, 0.878805, 0.87761]
----
-Label        : 1
-Position     : [673.864, 467.968]
-Measurements : [1509.78, 182834, -0.878857, -0.121597]
----
-Label        : 1
-Position     : [509.795, 468.69]
-Measurements : [1027.48, 320735, 0.417012, -1.27672]
----
-Label        : 1
-Position     : [286.624, 468.992]
-Measurements : [1206.55, 227639, 0.507718, -0.884645]
----
-Label        : 1
-Position     : [681.544, 468.992]
-Measurements : [1587.81, 80805.8, -0.0797492, -0.512911]
----
-Label        : 1
-Position     : [691.784, 468.992]
-Measurements : [1775.09, 688022, 0.0733174, -1.31853]
----
-Label        : 1
-Position     : [295.159, 469.076]
-Measurements : [1028.37, 293475, 0.537221, -0.974873]
----
-Label        : 1
-Position     : [653.331, 469.441]
-Measurements : [1216.76, 326841, 0.399981, -1.069]
----
-Label        : 1
-Position     : [279.456, 470.016]
-Measurements : [1403.17, 443849, 0.320208, -1.12955]
----
-Label        : 1
-Position     : [696.435, 470.087]
-Measurements : [1156.01, 810201, 0.965591, -0.669568]
----
-Label        : 1
-Position     : [652.34, 470.298]
-Measurements : [1258.21, 328927, 0.285839, -1.17462]
----
-Label        : 1
-Position     : [688.477, 470.455]
-Measurements : [2075.94, 403218, -0.0546087, -0.871039]
----
-Label        : 1
-Position     : [291.232, 470.528]
-Measurements : [1168.67, 287214, 0.341977, -1.23997]
----
-Label        : 1
-Position     : [605.768, 470.528]
-Measurements : [2008.97, 370555, -0.237468, -1.17684]
----
-Label        : 1
-Position     : [946.824, 470.528]
-Measurements : [1182.53, 452263, 0.410711, -1.08387]
----
-Label        : 1
-Position     : [979.08, 470.528]
-Measurements : [1124.51, 172228, 0.00631101, -0.495241]
----
-Label        : 1
-Position     : [663.943, 470.916]
-Measurements : [980.862, 272147, 0.507777, -1.19139]
----
-Label        : 1
-Position     : [278.716, 470.972]
-Measurements : [1345.94, 451075, 0.424035, -1.01057]
----
-Label        : 1
-Position     : [646.216, 471.552]
-Measurements : [1416.11, 135173, -0.516086, 0.147008]
----
-Label        : 1
-Position     : [287.53, 471.65]
-Measurements : [1266.02, 291761, 0.181795, -1.20823]
----
-Label        : 1
-Position     : [305.483, 472.232]
-Measurements : [851.741, 145638, 0.614204, -0.549991]
----
-Label        : 1
-Position     : [942.072, 472.475]
-Measurements : [1080.61, 259532, 0.906377, 0.00731661]
----
-Label        : 1
-Position     : [595.016, 472.576]
-Measurements : [1733.34, 258212, -0.923884, 0.41868]
----
-Label        : 1
-Position     : [674.557, 472.772]
-Measurements : [1178.34, 323354, -0.0910261, -1.57363]
----
-Label        : 1
-Position     : [603.635, 473.302]
-Measurements : [1828.64, 345464, -0.149438, -1.21791]
----
-Label        : 1
-Position     : [596.698, 473.35]
-Measurements : [1801.51, 234249, -0.893691, 0.772139]
----
-Label        : 1
-Position     : [302.496, 473.6]
-Measurements : [770.137, 141844, 0.831649, -0.042973]
----
-Label        : 1
-Position     : [975.604, 473.764]
-Measurements : [734.778, 229011, 1.4425, 0.677822]
----
-Label        : 1
-Position     : [945.652, 474.193]
-Measurements : [1086.58, 408459, 0.865398, -0.512015]
----
-Label        : 1
-Position     : [393.54, 474.219]
-Measurements : [889.456, 175725, 0.398089, -1.348]
----
-Label        : 1
-Position     : [595.621, 474.305]
-Measurements : [1634.54, 332590, -0.780356, -0.443124]
----
-Label        : 1
-Position     : [642.405, 474.507]
-Measurements : [1119.84, 193572, 0.0912902, -1.22246]
----
-Label        : 1
-Position     : [984.041, 474.739]
-Measurements : [1030.24, 67486.9, 1.69136, 5.19346]
----
-Label        : 1
-Position     : [640.473, 475.355]
-Measurements : [1203.43, 284781, 0.363382, -0.937126]
----
-Label        : 1
-Position     : [645.391, 475.639]
-Measurements : [1151.9, 217534, 0.0959684, -1.21377]
----
-Label        : 1
-Position     : [301.851, 477.024]
-Measurements : [618.76, 127621, 1.36534, 0.804601]
----
-Label        : 1
-Position     : [585.007, 477.305]
-Measurements : [1752.69, 854804, -0.271332, -1.66488]
----
-Label        : 1
-Position     : [394.656, 477.696]
-Measurements : [962.181, 163602, 0.16848, -1.41959]
----
-Label        : 1
-Position     : [638.536, 477.696]
-Measurements : [1442.73, 359236, -0.160607, -1.18064]
----
-Label        : 1
-Position     : [637.067, 478.758]
-Measurements : [1573.2, 297211, -0.494839, -0.696645]
----
-Label        : 1
-Position     : [394.519, 478.865]
-Measurements : [949.41, 168507, 0.222663, -1.45861]
----
-Label        : 1
-Position     : [630.498, 479.245]
-Measurements : [1458.34, 210081, -0.662255, -0.293045]
----
-Label        : 1
-Position     : [951.158, 479.53]
-Measurements : [937.038, 530658, 1.27414, 0.101329]
----
-Label        : 1
-Position     : [641.352, 480.053]
-Measurements : [1197.5, 391696, 0.488033, -1.12034]
----
-Label        : 1
-Position     : [731.162, 480.868]
-Measurements : [1263.68, 481731, -0.0628712, -1.36047]
----
-Label        : 1
-Position     : [586.312, 482.304]
-Measurements : [2034.1, 656355, -0.712533, -0.891031]
----
-Label        : 1
-Position     : [632.904, 482.304]
-Measurements : [1578.34, 145295, -0.733559, 0.759693]
----
-Label        : 1
-Position     : [735.304, 482.304]
-Measurements : [1440.9, 344893, -0.171774, -1.07776]
----
-Label        : 1
-Position     : [734.321, 482.861]
-Measurements : [1441.99, 353070, -0.218023, -1.07339]
----
-Label        : 1
-Position     : [585.111, 483.776]
-Measurements : [2245.78, 457103, -0.922618, 0.179196]
----
-Label        : 1
-Position     : [947.848, 484.352]
-Measurements : [1574.49, 715859, -0.0598153, -1.51141]
----
-Label        : 1
-Position     : [8.51251, 485.431]
-Measurements : [1805.83, 466518, -0.142368, -1.41604]
----
-Label        : 1
-Position     : [12.5016, 485.884]
-Measurements : [1478.71, 579231, 0.23233, -1.4544]
----
-Label        : 1
-Position     : [10.216, 486.4]
-Measurements : [1634.46, 592205, 0.0274422, -1.53076]
----
-Label        : 1
-Position     : [499.616, 486.4]
-Measurements : [1222.39, 408170, 1.03882, 0.510449]
----
-Label        : 1
-Position     : [579.144, 486.912]
-Measurements : [2287.17, 292801, -0.0577149, -0.856645]
----
-Label        : 1
-Position     : [583.259, 488.644]
-Measurements : [2202.24, 423646, -0.324615, -0.814626]
----
-Label        : 1
-Position     : [949.453, 488.933]
-Measurements : [1459.24, 867769, 0.210254, -1.74431]
----
-Label        : 1
-Position     : [503.87, 489.373]
-Measurements : [1535.91, 816763, 0.397311, -1.28715]
----
-Label        : 1
-Position     : [576.907, 489.936]
-Measurements : [2092.3, 380156, 0.0469166, -0.749972]
----
-Label        : 1
-Position     : [501.263, 490.444]
-Measurements : [1553.88, 831211, 0.334438, -1.26877]
----
-Label        : 1
-Position     : [623.688, 490.496]
-Measurements : [1385.06, 196047, -0.0627731, -0.31764]
----
-Label        : 1
-Position     : [623.287, 490.496]
-Measurements : [1385.06, 196047, -0.0627731, -0.31764]
----
-Label        : 1
-Position     : [576.157, 490.778]
-Measurements : [2061.91, 415334, -0.00792183, -0.74725]
----
-Label        : 1
-Position     : [572.488, 492.544]
-Measurements : [2011.88, 208174, -0.153713, -0.797107]
----
-Label        : 1
-Position     : [732.061, 492.682]
-Measurements : [1602.18, 476941, -0.00997003, -1.05825]
----
-Label        : 1
-Position     : [618.056, 493.056]
-Measurements : [1788.18, 306689, -0.0969786, -0.420362]
----
-Label        : 1
-Position     : [734.28, 493.056]
-Measurements : [1634.44, 455847, -0.015764, -1.15104]
----
-Label        : 1
-Position     : [603.847, 494.106]
-Measurements : [1298.54, 224126, -0.259836, -1.18882]
----
-Label        : 1
-Position     : [575.65, 494.291]
-Measurements : [1782.06, 330329, -0.130985, -1.03466]
----
-Label        : 1
-Position     : [729.907, 494.373]
-Measurements : [1390.16, 495869, 0.302212, -1.06107]
----
-Label        : 1
-Position     : [611.4, 494.592]
-Measurements : [1885.62, 259295, 0.309637, -0.253785]
----
-Label        : 1
-Position     : [622.606, 494.642]
-Measurements : [1490.11, 334726, 0.188528, -0.605431]
----
-Label        : 1
-Position     : [609.133, 494.79]
-Measurements : [1800.15, 307297, 0.0990803, 0.0708499]
----
-Label        : 1
-Position     : [567.368, 495.104]
-Measurements : [2071.38, 169363, -0.596077, 0.0499229]
----
-Label        : 1
-Position     : [626.27, 495.425]
-Measurements : [906.501, 202015, 0.58991, -1.14779]
----
-Label        : 1
-Position     : [615.016, 496.026]
-Measurements : [2092.95, 284510, -0.48603, -0.207901]
----
-Label        : 1
-Position     : [605.256, 496.64]
-Measurements : [1603.12, 156612, -0.369224, -0.457503]
----
-Label        : 1
-Position     : [563.805, 496.676]
-Measurements : [1945.84, 180293, -0.344369, -0.709229]
----
-Label        : 1
-Position     : [571.648, 497.294]
-Measurements : [1779.53, 314936, -0.102267, -0.873214]
----
-Label        : 1
-Position     : [486.816, 497.664]
-Measurements : [1242.64, 518903, 0.413495, -1.22599]
----
-Label        : 1
-Position     : [618.792, 498.021]
-Measurements : [1743.46, 597174, -0.165338, -1.41454]
----
-Label        : 1
-Position     : [568.863, 498.375]
-Measurements : [1800.74, 318115, -0.2904, -0.817692]
----
-Label        : 1
-Position     : [616.193, 498.896]
-Measurements : [1975.23, 473384, -0.484713, -0.981863]
----
-Label        : 1
-Position     : [561.736, 499.2]
-Measurements : [2045.06, 243167, -0.346029, -0.381696]
----
-Label        : 1
-Position     : [486.047, 500.458]
-Measurements : [1458.84, 576927, -0.040075, -1.43101]
----
-Label        : 1
-Position     : [159.843, 500.629]
-Measurements : [1140.23, 393318, 0.157327, -1.44197]
----
-Label        : 1
-Position     : [483.806, 501.158]
-Measurements : [1033.09, 541746, 0.559267, -1.25066]
----
-Label        : 1
-Position     : [560.411, 502.687]
-Measurements : [2057.6, 381052, -0.540689, -0.812765]
----
-Label        : 1
-Position     : [158.184, 503.416]
-Measurements : [1210.1, 336723, 0.189294, -1.42545]
----
-Label        : 1
-Position     : [157.188, 503.548]
-Measurements : [1223.15, 338510, 0.135225, -1.44452]
----
-Label        : 1
-Position     : [589.887, 507.44]
-Measurements : [1018.12, 368438, 0.551036, -1.37301]
----
-Label        : 1
-Position     : [586.888, 507.744]
-Measurements : [1334.74, 371569, 8.25283e-05, -1.29959]
----
-Label        : 1
-Position     : [547.464, 510.816]
-Measurements : [814.369, 223260, 1.06843, -0.165695]
----
-Label        : 1
-Position     : [584.15, 511.687]
-Measurements : [1687.62, 311475, -0.320604, -0.882119]
----
-Label        : 1
-Position     : [104.747, 511.999]
-Measurements : [1525.06, 391382, -0.381421, -1.1031]
----
-Label        : 1
-Position     : [590.953, 512.092]
-Measurements : [914.364, 335495, 0.938643, -0.64015]
----
-Label        : 1
-Position     : [106.456, 512.57]
-Measurements : [1743.35, 288541, -0.483654, -0.858208]
----
-Label        : 1
-Position     : [581.768, 512.864]
-Measurements : [1607.66, 357197, -0.180509, -1.06948]
----
-Label        : 1
-Position     : [552.257, 512.972]
-Measurements : [945.685, 241239, 1.12092, 1.00038]
----
-Label        : 1
-Position     : [121.482, 513.271]
-Measurements : [1005.89, 316069, 0.404876, -1.07252]
----
-Label        : 1
-Position     : [548.961, 513.526]
-Measurements : [894.349, 216036, 0.758409, -0.657154]
----
-Label        : 1
-Position     : [689.131, 514.299]
-Measurements : [1452.15, 587562, 0.242572, -1.3598]
----
-Label        : 1
-Position     : [356.936, 514.651]
-Measurements : [484.692, 28252.9, 1.48956, 1.46586]
----
-Label        : 1
-Position     : [938.241, 515.137]
-Measurements : [1253.94, 661102, 0.320473, -1.27212]
----
-Label        : 1
-Position     : [96.3726, 515.228]
-Measurements : [1099, 329868, 0.0967388, -1.48977]
----
-Label        : 1
-Position     : [583.944, 516.097]
-Measurements : [1250.48, 528501, 0.63992, -1.22281]
----
-Label        : 1
-Position     : [689.146, 516.399]
-Measurements : [1480.8, 583600, 0.238853, -1.28642]
----
-Label        : 1
-Position     : [575.112, 516.448]
-Measurements : [1470.05, 338931, -0.235598, -1.41402]
----
-Label        : 1
-Position     : [104.424, 516.728]
-Measurements : [1812.31, 242021, -0.118784, -1.00816]
----
-Label        : 1
-Position     : [141.104, 516.996]
-Measurements : [903.29, 272847, 0.848775, -0.00361943]
----
-Label        : 1
-Position     : [115.573, 517.463]
-Measurements : [1559.22, 330148, -0.253316, -0.737935]
----
-Label        : 1
-Position     : [685.886, 517.899]
-Measurements : [2086.71, 401218, -0.515338, -0.744113]
----
-Label        : 1
-Position     : [571.016, 517.984]
-Measurements : [1774.74, 199647, -1.0021, 0.287335]
----
-Label        : 1
-Position     : [98.792, 518.264]
-Measurements : [1252.79, 377801, 0.0753794, -1.02657]
----
-Label        : 1
-Position     : [111.08, 518.264]
-Measurements : [1541.59, 286974, 0.201137, -0.922379]
----
-Label        : 1
-Position     : [122.344, 518.264]
-Measurements : [1257.91, 325551, -0.0265268, -1.46217]
----
-Label        : 1
-Position     : [96.5051, 518.298]
-Measurements : [1002.74, 321256, 0.344161, -1.38253]
----
-Label        : 1
-Position     : [113.021, 518.435]
-Measurements : [1499.71, 270976, 0.198964, -0.59934]
----
-Label        : 1
-Position     : [560.923, 518.462]
-Measurements : [1441.46, 205320, 0.0966524, -0.866899]
----
-Label        : 1
-Position     : [936.288, 518.872]
-Measurements : [1437.21, 480694, 0.251076, -1.00875]
----
-Label        : 1
-Position     : [688.264, 519.008]
-Measurements : [1620.6, 483499, -0.105316, -1.08265]
----
-Label        : 1
-Position     : [570.85, 519.23]
-Measurements : [1756.46, 313467, -0.75002, -0.419572]
----
-Label        : 1
-Position     : [355.264, 519.32]
-Measurements : [503.265, 25277, 1.48944, 1.75196]
----
-Label        : 1
-Position     : [575.022, 519.364]
-Measurements : [1277.05, 407981, 0.283681, -1.59171]
----
-Label        : 1
-Position     : [113.401, 519.512]
-Measurements : [1459.1, 249996, 0.430455, -0.532729]
----
-Label        : 1
-Position     : [674.083, 519.722]
-Measurements : [2350.35, 467233, 0.128373, -0.580424]
----
-Label        : 1
-Position     : [116.712, 519.8]
-Measurements : [1630.29, 236205, -0.106491, -0.682769]
----
-Label        : 1
-Position     : [121.085, 519.846]
-Measurements : [1371.5, 328759, -0.174011, -1.29959]
----
-Label        : 1
-Position     : [574.771, 519.928]
-Measurements : [1365.02, 398939, 0.0656178, -1.66324]
----
-Label        : 1
-Position     : [675.446, 520.461]
-Measurements : [2364.69, 420460, 0.0850419, -0.324506]
----
-Label        : 1
-Position     : [681.096, 520.544]
-Measurements : [2077.24, 277552, -0.133201, -0.951526]
----
-Label        : 1
-Position     : [119.524, 521.265]
-Measurements : [1547.95, 334549, -0.173422, -1.1656]
----
-Label        : 1
-Position     : [671.88, 521.568]
-Measurements : [2196.3, 643005, 0.129993, -1.06851]
----
-Label        : 1
-Position     : [569.104, 521.638]
-Measurements : [1644.6, 400594, -0.341815, -1.17246]
----
-Label        : 1
-Position     : [139.24, 521.848]
-Measurements : [1330.17, 212572, 0.565509, -0.446046]
----
-Label        : 1
-Position     : [358.245, 522.281]
-Measurements : [484.339, 20957.1, 1.95807, 3.62854]
----
-Label        : 1
-Position     : [575.842, 522.293]
-Measurements : [1018.99, 397500, 0.960803, -0.702018]
----
-Label        : 1
-Position     : [932.217, 522.472]
-Measurements : [1170.02, 516493, 0.668956, -0.663862]
----
-Label        : 1
-Position     : [564.872, 522.592]
-Measurements : [1806.28, 211491, -0.39852, -0.0913888]
----
-Label        : 1
-Position     : [82.6851, 522.857]
-Measurements : [1113.26, 218590, 0.076288, -1.28177]
----
-Label        : 1
-Position     : [82.408, 522.872]
-Measurements : [1113.26, 218590, 0.076288, -1.28177]
----
-Label        : 1
-Position     : [73.2248, 523.267]
-Measurements : [1424.03, 296586, -0.29191, -0.568026]
----
-Label        : 1
-Position     : [685.084, 523.582]
-Measurements : [1843.59, 518391, -0.108008, -1.2111]
----
-Label        : 1
-Position     : [668.946, 523.587]
-Measurements : [1680.36, 608905, 0.627474, -0.892091]
----
-Label        : 1
-Position     : [666.248, 524.64]
-Measurements : [1291.07, 555317, 1.14039, 0.50806]
----
-Label        : 1
-Position     : [137.199, 524.875]
-Measurements : [1281.35, 240553, 0.277879, -0.246804]
----
-Label        : 1
-Position     : [555, 524.933]
-Measurements : [1755.88, 349913, -0.0863422, -0.396929]
----
-Label        : 1
-Position     : [561.8, 525.664]
-Measurements : [1811.89, 270634, -0.40539, -0.0551912]
----
-Label        : 1
-Position     : [74.216, 525.944]
-Measurements : [1402.89, 270133, -0.103743, -0.461858]
----
-Label        : 1
-Position     : [76.8979, 526.203]
-Measurements : [1397.18, 224316, 0.126265, -0.257325]
----
-Label        : 1
-Position     : [145.384, 526.456]
-Measurements : [1591.45, 574618, 0.269258, -1.27814]
----
-Label        : 1
-Position     : [555.289, 526.476]
-Measurements : [1992.2, 316911, -0.10351, -0.286562]
----
-Label        : 1
-Position     : [552.298, 526.695]
-Measurements : [2046.1, 402442, -0.394638, -0.639538]
----
-Label        : 1
-Position     : [668.937, 527.078]
-Measurements : [1372.07, 450753, 0.543306, -0.851504]
----
-Label        : 1
-Position     : [79.7832, 527.152]
-Measurements : [1259.84, 186494, 0.798769, 0.262099]
----
-Label        : 1
-Position     : [143.417, 527.593]
-Measurements : [1671.51, 518053, 0.173787, -1.27215]
----
-Label        : 1
-Position     : [561.084, 528.195]
-Measurements : [1596.5, 460391, -0.0946448, -1.12658]
----
-Label        : 1
-Position     : [640.274, 528.224]
-Measurements : [998.217, 148805, 0.513197, -0.15954]
----
-Label        : 1
-Position     : [562.383, 528.385]
-Measurements : [1532.77, 485423, -0.00953177, -1.26468]
----
-Label        : 1
-Position     : [552.584, 528.736]
-Measurements : [2238.68, 247271, -0.482622, 0.00651976]
----
-Label        : 1
-Position     : [555.656, 528.736]
-Measurements : [2080.56, 306242, -0.367825, 0.026926]
----
-Label        : 1
-Position     : [143.943, 529.013]
-Measurements : [1456.08, 638703, 0.444392, -1.24277]
----
-Label        : 1
-Position     : [548.488, 530.784]
-Measurements : [1994.98, 443247, -0.199228, -1.0123]
----
-Label        : 1
-Position     : [549.047, 530.799]
-Measurements : [2049.62, 413702, -0.410612, -0.646898]
----
-Label        : 1
-Position     : [552.159, 531.462]
-Measurements : [1991.5, 603721, -0.622387, -0.859583]
----
-Label        : 1
-Position     : [158.215, 531.896]
-Measurements : [1517.91, 573203, 0.035411, -1.40464]
----
-Label        : 1
-Position     : [859.597, 532.098]
-Measurements : [897.279, 397788, 1.08328, -0.132882]
----
-Label        : 1
-Position     : [856.416, 532.184]
-Measurements : [1075.53, 457210, 0.670769, -1.10685]
----
-Label        : 1
-Position     : [650.888, 532.32]
-Measurements : [1206.69, 211731, -0.230262, -1.15974]
----
-Label        : 1
-Position     : [642.696, 532.832]
-Measurements : [1109.7, 101368, -0.0213611, -1.14778]
----
-Label        : 1
-Position     : [559.738, 532.941]
-Measurements : [1306.38, 586416, 0.431628, -1.36615]
----
-Label        : 1
-Position     : [857.559, 533.069]
-Measurements : [993.012, 443832, 0.896378, -0.736828]
----
-Label        : 1
-Position     : [155.112, 533.112]
-Measurements : [1708.82, 409969, -0.266895, -0.903948]
----
-Label        : 1
-Position     : [632.794, 533.126]
-Measurements : [1260.26, 164790, -0.0556231, -0.775306]
----
-Label        : 1
-Position     : [155.888, 534.121]
-Measurements : [1713.74, 370551, -0.212855, -0.781483]
----
-Label        : 1
-Position     : [653.29, 534.833]
-Measurements : [962.62, 266794, 0.507258, -1.28953]
----
-Label        : 1
-Position     : [652.171, 535.158]
-Measurements : [965.637, 220720, 0.468729, -1.27748]
----
-Label        : 1
-Position     : [634.504, 535.392]
-Measurements : [1224.84, 140926, 0.172546, -0.799324]
----
-Label        : 1
-Position     : [629.701, 535.862]
-Measurements : [1250.58, 117243, 0.0808624, -0.748968]
----
-Label        : 1
-Position     : [638.105, 536.373]
-Measurements : [1177.01, 152568, 0.217958, -0.751288]
----
-Label        : 1
-Position     : [845.715, 536.895]
-Measurements : [972.932, 247036, 0.664486, -0.780894]
----
-Label        : 1
-Position     : [630.584, 537.125]
-Measurements : [1221.53, 145059, 0.291194, -0.854623]
----
-Label        : 1
-Position     : [626.536, 537.176]
-Measurements : [1151.67, 111131, 0.261392, -0.655329]
----
-Label        : 1
-Position     : [154.961, 537.412]
-Measurements : [1580.2, 286988, 0.0357721, -0.632949]
----
-Label        : 1
-Position     : [159.208, 537.72]
-Measurements : [1307.54, 402378, 0.336769, -0.940364]
----
-Label        : 1
-Position     : [739.604, 538.335]
-Measurements : [1008.33, 313859, 0.109282, -1.58644]
----
-Label        : 1
-Position     : [628.36, 538.464]
-Measurements : [1161.36, 122119, 0.38234, -0.75588]
----
-Label        : 1
-Position     : [685.754, 538.863]
-Measurements : [1286.44, 209253, 0.0299302, -0.67024]
----
-Label        : 1
-Position     : [969.568, 539.352]
-Measurements : [1770.55, 329781, -0.214014, -0.797349]
----
-Label        : 1
-Position     : [154.99, 539.973]
-Measurements : [1426.38, 313698, -0.00452222, -1.11009]
----
-Label        : 1
-Position     : [893.28, 540.376]
-Measurements : [1501.89, 665187, 0.164338, -1.44047]
----
-Label        : 1
-Position     : [968.573, 540.837]
-Measurements : [1664.59, 483957, -0.386499, -0.964287]
----
-Label        : 1
-Position     : [850.272, 541.4]
-Measurements : [1215.94, 427054, 0.201133, -1.33611]
----
-Label        : 1
-Position     : [619.656, 541.536]
-Measurements : [1369.65, 227500, 0.62844, 0.175853]
----
-Label        : 1
-Position     : [740.488, 541.536]
-Measurements : [1158.46, 213541, -0.0769387, -1.35516]
----
-Label        : 1
-Position     : [738.541, 541.554]
-Measurements : [1094.43, 228086, 0.0288894, -1.34753]
----
-Label        : 1
-Position     : [620.565, 541.692]
-Measurements : [1301.34, 203838, 0.601099, 0.695094]
----
-Label        : 1
-Position     : [919.392, 541.912]
-Measurements : [1076.82, 127660, -0.465827, -0.285083]
----
-Label        : 1
-Position     : [683.745, 542.12]
-Measurements : [1400.62, 141217, 0.263412, -0.51923]
----
-Label        : 1
-Position     : [847.487, 542.132]
-Measurements : [1152.36, 429045, 0.280138, -1.31061]
----
-Label        : 1
-Position     : [968.737, 542.16]
-Measurements : [1560.14, 540243, -0.191867, -1.24116]
----
-Label        : 1
-Position     : [693.48, 542.19]
-Measurements : [966.508, 423764, 0.948472, -0.766761]
----
-Label        : 1
-Position     : [916.057, 543.093]
-Measurements : [1316.77, 71402.8, 0.0575627, 0.692385]
----
-Label        : 1
-Position     : [897.54, 543.251]
-Measurements : [733.187, 484756, 2.10572, 3.03883]
----
-Label        : 1
-Position     : [689.288, 543.584]
-Measurements : [1394.32, 344312, -0.167991, -1.38606]
----
-Label        : 1
-Position     : [613.512, 544.096]
-Measurements : [1888.24, 314658, -0.583711, -0.672326]
----
-Label        : 1
-Position     : [619.007, 544.412]
-Measurements : [1341.67, 276825, 0.49454, -0.3906]
----
-Label        : 1
-Position     : [68.6158, 545.038]
-Measurements : [988.67, 256931, 1.21836, 0.677322]
----
-Label        : 1
-Position     : [892.053, 545.25]
-Measurements : [996.108, 714571, 1.17468, -0.247991]
----
-Label        : 1
-Position     : [602.542, 545.255]
-Measurements : [1098.34, 463152, 0.443857, -1.44794]
----
-Label        : 1
-Position     : [372.869, 545.29]
-Measurements : [647.698, 162205, 1.54662, 1.56244]
----
-Label        : 1
-Position     : [368.064, 545.432]
-Measurements : [889.225, 194181, 0.667855, -0.706854]
----
-Label        : 1
-Position     : [167.649, 545.473]
-Measurements : [1166.57, 771684, 0.433882, -1.53255]
----
-Label        : 1
-Position     : [171.602, 545.671]
-Measurements : [1186.39, 748694, 0.458735, -1.48851]
----
-Label        : 1
-Position     : [612.092, 545.756]
-Measurements : [1971.11, 274734, -0.802306, -0.182576]
----
-Label        : 1
-Position     : [922.904, 546.419]
-Measurements : [731.19, 136447, 0.710832, -1.14612]
----
-Label        : 1
-Position     : [912.736, 546.52]
-Measurements : [1229.94, 213367, -0.0924437, -0.877466]
----
-Label        : 1
-Position     : [605.257, 546.527]
-Measurements : [1570.41, 602172, -0.372313, -1.4091]
----
-Label        : 1
-Position     : [681.608, 546.656]
-Measurements : [1296.6, 121584, -0.0814027, -0.254927]
----
-Label        : 1
-Position     : [606.856, 547.168]
-Measurements : [1653.51, 567992, -0.466753, -1.22783]
----
-Label        : 1
-Position     : [915.447, 547.538]
-Measurements : [1292.9, 196033, -0.286121, -0.742374]
----
-Label        : 1
-Position     : [674.991, 548.364]
-Measurements : [1440.87, 101237, 0.445724, 2.17182]
----
-Label        : 1
-Position     : [836.785, 548.445]
-Measurements : [847.022, 121326, 0.374717, -0.940934]
----
-Label        : 1
-Position     : [677.95, 548.448]
-Measurements : [1383.8, 90159.1, -0.820815, 0.505858]
----
-Label        : 1
-Position     : [368.574, 548.632]
-Measurements : [897.774, 171249, 0.848018, -0.299431]
----
-Label        : 1
-Position     : [610.801, 548.665]
-Measurements : [1890.6, 333818, -0.660998, -0.598264]
----
-Label        : 1
-Position     : [839.198, 548.815]
-Measurements : [747.295, 157001, 0.689483, -1.03939]
----
-Label        : 1
-Position     : [66.536, 548.984]
-Measurements : [1204.27, 331009, 0.518502, -0.763793]
----
-Label        : 1
-Position     : [585.897, 549.025]
-Measurements : [1470.37, 254436, -0.550692, -0.452917]
----
-Label        : 1
-Position     : [842.535, 549.101]
-Measurements : [630.592, 146847, 1.24269, 0.0450036]
----
-Label        : 1
-Position     : [168.936, 549.496]
-Measurements : [1453.63, 641926, -0.0154559, -1.6177]
----
-Label        : 1
-Position     : [837.472, 549.592]
-Measurements : [832.63, 139672, 0.380043, -1.20935]
----
-Label        : 1
-Position     : [910.551, 549.666]
-Measurements : [1068.28, 361318, 0.116333, -1.5643]
----
-Label        : 1
-Position     : [662.29, 549.743]
-Measurements : [1588.06, 253787, 0.272125, -0.706776]
----
-Label        : 1
-Position     : [685.762, 549.883]
-Measurements : [1281.77, 292865, 0.131181, -1.09337]
----
-Label        : 1
-Position     : [842.293, 549.984]
-Measurements : [630.592, 146847, 1.24269, 0.0450036]
----
-Label        : 1
-Position     : [596.061, 550.501]
-Measurements : [953.189, 151523, -0.126436, -1.40287]
----
-Label        : 1
-Position     : [595.737, 550.569]
-Measurements : [1034.29, 139565, -0.365157, -1.10216]
----
-Label        : 1
-Position     : [595.592, 550.752]
-Measurements : [1034.29, 139565, -0.365157, -1.10216]
----
-Label        : 1
-Position     : [675.464, 550.752]
-Measurements : [1380.79, 112696, -0.562892, 0.967104]
----
-Label        : 1
-Position     : [657.811, 551.747]
-Measurements : [1093.01, 204903, -0.127794, -1.09142]
----
-Label        : 1
-Position     : [68.4228, 552.116]
-Measurements : [1406.42, 258037, 0.349544, -0.802103]
----
-Label        : 1
-Position     : [66.024, 552.568]
-Measurements : [1390.64, 292310, 0.187832, -0.970916]
----
-Label        : 1
-Position     : [659.08, 553.312]
-Measurements : [1192.45, 235697, -0.121543, -1.0075]
----
-Label        : 1
-Position     : [666.76, 553.312]
-Measurements : [1736, 410110, -0.170472, -1.17004]
----
-Label        : 1
-Position     : [587.912, 553.428]
-Measurements : [1762.04, 176261, 0.654696, -0.138235]
----
-Label        : 1
-Position     : [663.729, 553.605]
-Measurements : [1664.34, 365946, -0.0719111, -0.932129]
----
-Label        : 1
-Position     : [839.008, 553.688]
-Measurements : [757.783, 166356, 0.590803, -1.22261]
----
-Label        : 1
-Position     : [584.429, 553.752]
-Measurements : [1920.63, 172586, 0.0358339, -0.551255]
----
-Label        : 1
-Position     : [592.358, 553.79]
-Measurements : [1338.35, 131925, 0.18481, 0.00550019]
----
-Label        : 1
-Position     : [590.472, 553.824]
-Measurements : [1510.32, 182766, 0.214998, 0.0218474]
----
-Label        : 1
-Position     : [662.748, 554.538]
-Measurements : [1457.25, 373951, 0.127051, -0.88248]
----
-Label        : 1
-Position     : [63.8955, 554.694]
-Measurements : [1126.88, 315603, 0.363359, -0.777913]
----
-Label        : 1
-Position     : [584.71, 555.181]
-Measurements : [1974.39, 198851, -0.0698433, -0.841522]
----
-Label        : 1
-Position     : [583.304, 556.384]
-Measurements : [2037.44, 206148, -0.219064, -0.843401]
----
-Label        : 1
-Position     : [68.6961, 557.213]
-Measurements : [1536.18, 171132, 0.0439612, -0.613123]
----
-Label        : 1
-Position     : [580.232, 557.408]
-Measurements : [2125.47, 208773, -0.644862, -0.235574]
----
-Label        : 1
-Position     : [174.719, 557.733]
-Measurements : [898.759, 187005, 0.383145, -1.2097]
----
-Label        : 1
-Position     : [402.869, 557.851]
-Measurements : [1334.78, 720938, 0.0307956, -1.69772]
----
-Label        : 1
-Position     : [384.96, 558.232]
-Measurements : [1402.2, 291162, -0.572213, -0.683802]
----
-Label        : 1
-Position     : [557.563, 558.329]
-Measurements : [1469.41, 146080, 0.0394042, -0.622513]
----
-Label        : 1
-Position     : [578.735, 558.744]
-Measurements : [2063.1, 304911, -0.658747, -0.429547]
----
-Label        : 1
-Position     : [380.415, 559.509]
-Measurements : [1030.78, 387391, 0.189618, -1.72118]
----
-Label        : 1
-Position     : [173.544, 559.608]
-Measurements : [935.883, 178358, 0.323128, -1.25073]
----
-Label        : 1
-Position     : [404.575, 559.807]
-Measurements : [1550.19, 540365, -0.248425, -1.49692]
----
-Label        : 1
-Position     : [574.088, 559.968]
-Measurements : [1726.03, 558886, -0.134103, -1.40458]
----
-Label        : 1
-Position     : [265.694, 560.218]
-Measurements : [1215.62, 396161, 0.385144, -1.13635]
----
-Label        : 1
-Position     : [628.311, 560.542]
-Measurements : [1049.43, 413327, 0.593478, -0.651241]
----
-Label        : 1
-Position     : [560.433, 560.556]
-Measurements : [1323.59, 205601, 0.216717, -0.770939]
----
-Label        : 1
-Position     : [561.288, 560.992]
-Measurements : [1273.38, 238064, 0.245399, -0.938592]
----
-Label        : 1
-Position     : [65.512, 561.144]
-Measurements : [1367.59, 185858, -0.232455, -0.952684]
----
-Label        : 1
-Position     : [833.312, 561.535]
-Measurements : [748.389, 117808, 0.87673, 0.372487]
----
-Label        : 1
-Position     : [174.745, 562.247]
-Measurements : [887.213, 182805, 0.537509, -1.18353]
----
-Label        : 1
-Position     : [751.027, 562.25]
-Measurements : [1129.39, 160728, -0.38824, -1.14525]
----
-Label        : 1
-Position     : [632.968, 562.528]
-Measurements : [1315.61, 443125, 0.279018, -1.09643]
----
-Label        : 1
-Position     : [577.494, 562.593]
-Measurements : [1740.11, 515743, 0.0375038, -1.55101]
----
-Label        : 1
-Position     : [401.856, 562.84]
-Measurements : [1858.27, 373124, -0.72865, -0.387901]
----
-Label        : 1
-Position     : [385.847, 562.841]
-Measurements : [1493.7, 121529, -0.55157, -0.364009]
----
-Label        : 1
-Position     : [266.588, 562.939]
-Measurements : [1385.16, 382181, 0.0929111, -1.15831]
----
-Label        : 1
-Position     : [746.12, 563.04]
-Measurements : [1030.86, 186221, 0.0629092, -1.47482]
----
-Label        : 1
-Position     : [63.9099, 563.448]
-Measurements : [1259.14, 220281, 0.0236837, -1.07392]
----
-Label        : 1
-Position     : [548.352, 563.508]
-Measurements : [1621.1, 186553, -0.408011, -0.233939]
----
-Label        : 1
-Position     : [60.8789, 563.579]
-Measurements : [961.026, 207415, 0.515273, -0.754784]
----
-Label        : 1
-Position     : [637.953, 563.604]
-Measurements : [1077.7, 557523, 0.877909, -0.850592]
----
-Label        : 1
-Position     : [266.728, 563.704]
-Measurements : [1443.75, 340373, -0.00392614, -1.00391]
----
-Label        : 1
-Position     : [511.636, 563.716]
-Measurements : [741.791, 48736.9, 0.0456055, -0.831354]
----
-Label        : 1
-Position     : [389.056, 564.376]
-Measurements : [1552.88, 219631, -0.046529, -0.744055]
----
-Label        : 1
-Position     : [271.17, 564.402]
-Measurements : [1011.81, 458750, 0.876486, -0.545166]
----
-Label        : 1
-Position     : [569.686, 564.755]
-Measurements : [955.968, 348778, 2.13753, 3.77168]
----
-Label        : 1
-Position     : [61.986, 564.807]
-Measurements : [1071.06, 226942, 0.344579, -0.963342]
----
-Label        : 1
-Position     : [835.426, 565.056]
-Measurements : [826.632, 174667, 1.04292, 0.201201]
----
-Label        : 1
-Position     : [543.368, 565.088]
-Measurements : [1550.01, 275781, -0.0652288, -1.07195]
----
-Label        : 1
-Position     : [386.036, 565.286]
-Measurements : [1426.85, 142805, -0.0853821, -0.743422]
----
-Label        : 1
-Position     : [531.431, 566.444]
-Measurements : [1161.49, 436970, 0.42866, -1.35793]
----
-Label        : 1
-Position     : [837.984, 566.488]
-Measurements : [853.543, 217003, 0.844863, -0.525593]
----
-Label        : 1
-Position     : [514.506, 567.217]
-Measurements : [811.119, 30515, 0.131191, -0.529126]
----
-Label        : 1
-Position     : [261.608, 567.288]
-Measurements : [1396.15, 162422, 0.333017, 0.678383]
----
-Label        : 1
-Position     : [514.696, 567.648]
-Measurements : [811.119, 30515, 0.131191, -0.529126]
----
-Label        : 1
-Position     : [388.104, 567.705]
-Measurements : [1402.95, 215284, 0.331956, -0.933168]
----
-Label        : 1
-Position     : [750.551, 567.846]
-Measurements : [783.311, 226485, 0.698776, -0.987802]
----
-Label        : 1
-Position     : [68.072, 568.312]
-Measurements : [1101.56, 234792, 0.320168, -1.23589]
----
-Label        : 1
-Position     : [546.841, 568.539]
-Measurements : [1359.75, 295609, 0.10771, -1.13195]
----
-Label        : 1
-Position     : [977.56, 568.583]
-Measurements : [1460.08, 168090, 0.305359, -1.12439]
----
-Label        : 1
-Position     : [403.547, 568.903]
-Measurements : [1802.22, 320711, -0.394287, -0.573665]
----
-Label        : 1
-Position     : [543.272, 569.248]
-Measurements : [1208.41, 233405, 0.537796, -0.647323]
----
-Label        : 1
-Position     : [261.948, 569.404]
-Measurements : [1237.46, 196129, 0.0414693, -0.258032]
----
-Label        : 1
-Position     : [406.517, 570.499]
-Measurements : [1690.69, 354578, -0.217451, -0.722075]
----
-Label        : 1
-Position     : [530.568, 570.72]
-Measurements : [1551.89, 430978, -0.344007, -1.19749]
----
-Label        : 1
-Position     : [254.952, 570.872]
-Measurements : [854.434, 197704, 0.815986, -0.783936]
----
-Label        : 1
-Position     : [404.416, 571.032]
-Measurements : [1914.2, 278546, -0.454741, -0.0690502]
----
-Label        : 1
-Position     : [505.448, 571.474]
-Measurements : [763.208, 95622.2, 0.199647, -1.07823]
----
-Label        : 1
-Position     : [635.94, 571.514]
-Measurements : [888.983, 142813, 0.347177, -1.11481]
----
-Label        : 1
-Position     : [184.542, 571.529]
-Measurements : [882.651, 320351, 0.668785, -0.916971]
----
-Label        : 1
-Position     : [251.019, 572.145]
-Measurements : [785.131, 188297, 1.19931, 0.112167]
----
-Label        : 1
-Position     : [639.624, 572.256]
-Measurements : [962.002, 145217, 0.253866, -1.05929]
----
-Label        : 1
-Position     : [529.055, 572.424]
-Measurements : [1712.57, 324797, -0.422305, -0.685713]
----
-Label        : 1
-Position     : [254.04, 572.445]
-Measurements : [822.708, 169408, 1.04385, -0.219536]
----
-Label        : 1
-Position     : [978.824, 572.481]
-Measurements : [1556.71, 170622, -0.350726, -0.666874]
----
-Label        : 1
-Position     : [70.6349, 572.587]
-Measurements : [1135.09, 370077, 0.336241, -1.53432]
----
-Label        : 1
-Position     : [978.272, 572.632]
-Measurements : [1556.71, 170622, -0.350726, -0.666874]
----
-Label        : 1
-Position     : [521.382, 572.646]
-Measurements : [1156.46, 187809, 1.03322, 0.140461]
----
-Label        : 1
-Position     : [523.4, 572.768]
-Measurements : [1343.39, 253992, 0.636051, -0.690359]
----
-Label        : 1
-Position     : [539.784, 572.768]
-Measurements : [870.082, 95191, 0.968062, 1.2117]
----
-Label        : 1
-Position     : [509.064, 573.28]
-Measurements : [873.357, 71712.8, 0.234021, -0.551763]
----
-Label        : 1
-Position     : [642.027, 573.887]
-Measurements : [961.326, 156466, 0.453651, -1.2085]
----
-Label        : 1
-Position     : [409.875, 573.926]
-Measurements : [1744.69, 639076, -0.23923, -1.33732]
----
-Label        : 1
-Position     : [542.833, 574.579]
-Measurements : [1007.82, 131515, 1.04116, 1.11113]
----
-Label        : 1
-Position     : [511.082, 574.72]
-Measurements : [884.891, 72490.3, 0.188584, -0.699274]
----
-Label        : 1
-Position     : [179.688, 574.968]
-Measurements : [1170.41, 239662, 0.36655, -0.867454]
----
-Label        : 1
-Position     : [527.026, 575.482]
-Measurements : [1650.04, 269915, 0.116529, -0.938832]
----
-Label        : 1
-Position     : [183.561, 576.483]
-Measurements : [1111.18, 237710, 0.605415, -0.878042]
----
-Label        : 1
-Position     : [406.976, 577.688]
-Measurements : [1732.12, 616186, -0.158667, -1.44916]
----
-Label        : 1
-Position     : [71.3052, 578.356]
-Measurements : [1130.47, 277750, 0.555065, -1.03163]
----
-Label        : 1
-Position     : [71.144, 578.552]
-Measurements : [1130.47, 277750, 0.555065, -1.03163]
----
-Label        : 1
-Position     : [248.241, 578.62]
-Measurements : [1304.08, 408362, 0.135407, -1.33895]
----
-Label        : 1
-Position     : [746.632, 578.912]
-Measurements : [1120.32, 386986, 0.13633, -1.36769]
----
-Label        : 1
-Position     : [245.736, 579.576]
-Measurements : [1616.03, 309322, -0.36443, -0.641314]
----
-Label        : 1
-Position     : [743.621, 579.768]
-Measurements : [1033.71, 372602, 0.40827, -1.20577]
----
-Label        : 1
-Position     : [748.2, 579.824]
-Measurements : [1138.5, 313170, 0.228065, -1.0469]
----
-Label        : 1
-Position     : [493.349, 580.168]
-Measurements : [988.673, 372587, 0.660684, -0.886268]
----
-Label        : 1
-Position     : [926.194, 580.478]
-Measurements : [1023.71, 465297, 0.468546, -1.3932]
----
-Label        : 1
-Position     : [244.925, 580.944]
-Measurements : [1678.39, 316686, -0.375423, -0.631309]
----
-Label        : 1
-Position     : [405.149, 581.285]
-Measurements : [1317.17, 655870, 0.565245, -1.24558]
----
-Label        : 1
-Position     : [839.447, 581.833]
-Measurements : [802.678, 295910, 1.09132, -0.000274494]
----
-Label        : 1
-Position     : [243.287, 582.179]
-Measurements : [1631.35, 381332, -0.294742, -0.978722]
----
-Label        : 1
-Position     : [68.3426, 582.724]
-Measurements : [842.06, 258088, 0.941284, -0.285413]
----
-Label        : 1
-Position     : [495.24, 583.008]
-Measurements : [1205.29, 379650, 0.294275, -1.22413]
----
-Label        : 1
-Position     : [495.224, 583.154]
-Measurements : [1205.29, 379650, 0.294275, -1.22413]
----
-Label        : 1
-Position     : [743.721, 583.698]
-Measurements : [1251.07, 298139, -0.0894589, -1.02486]
----
-Label        : 1
-Position     : [853.971, 583.894]
-Measurements : [710.569, 284400, 1.45034, 0.705734]
----
-Label        : 1
-Position     : [924.738, 584.356]
-Measurements : [1500.64, 279100, -0.714514, -0.373187]
----
-Label        : 1
-Position     : [841.056, 584.408]
-Measurements : [848.275, 265194, 1.14014, 0.165961]
----
-Label        : 1
-Position     : [925.536, 584.408]
-Measurements : [1457.3, 291992, -0.708653, -0.483691]
----
-Label        : 1
-Position     : [837.943, 584.962]
-Measurements : [918.6, 205224, 0.986566, 0.719513]
----
-Label        : 1
-Position     : [246.76, 585.208]
-Measurements : [1561.69, 395193, 0.0846826, -1.27315]
----
-Label        : 1
-Position     : [11.24, 585.72]
-Measurements : [1143.59, 408355, 0.749213, -0.760661]
----
-Label        : 1
-Position     : [11.7226, 585.96]
-Measurements : [1143.59, 408355, 0.749213, -0.760661]
----
-Label        : 1
-Position     : [898.592, 587.811]
-Measurements : [579.844, 176294, 1.89768, 2.30228]
----
-Label        : 1
-Position     : [747.656, 588.128]
-Measurements : [1010.54, 216731, 0.348892, -0.96938]
----
-Label        : 1
-Position     : [851.296, 588.504]
-Measurements : [1151.27, 422687, 0.338834, -1.46978]
----
-Label        : 1
-Position     : [715.921, 588.879]
-Measurements : [701.596, 152342, 1.35382, 0.642622]
----
-Label        : 1
-Position     : [904.458, 589.052]
-Measurements : [1162.55, 285568, -0.31184, -1.37231]
----
-Label        : 1
-Position     : [462.229, 589.187]
-Measurements : [839.65, 121406, 0.483044, -0.0888554]
----
-Label        : 1
-Position     : [233.563, 589.361]
-Measurements : [1622.14, 727175, -0.0163402, -1.34372]
----
-Label        : 1
-Position     : [11.6735, 589.581]
-Measurements : [1086.43, 414430, 0.918486, -0.546414]
----
-Label        : 1
-Position     : [244.748, 589.826]
-Measurements : [1313.36, 449772, 0.537817, -1.04497]
----
-Label        : 1
-Position     : [711.128, 590.216]
-Measurements : [1057.7, 176709, 0.229219, -0.86216]
----
-Label        : 1
-Position     : [749.165, 590.339]
-Measurements : [1017.2, 222417, 0.32214, -1.06224]
----
-Label        : 1
-Position     : [478.928, 590.672]
-Measurements : [1262.51, 320258, 0.0130173, -1.19643]
----
-Label        : 1
-Position     : [902.496, 591.576]
-Measurements : [1277.2, 270413, -0.623602, -0.924674]
----
-Label        : 1
-Position     : [757.32, 591.865]
-Measurements : [843.647, 68779.1, 1.13773, 0.714861]
----
-Label        : 1
-Position     : [461.887, 592.259]
-Measurements : [933.14, 145461, 0.280867, -0.367128]
----
-Label        : 1
-Position     : [463.056, 592.72]
-Measurements : [972.805, 136255, 0.208593, -0.39157]
----
-Label        : 1
-Position     : [854.326, 592.743]
-Measurements : [1046.82, 399715, 0.715332, -1.05331]
----
-Label        : 1
-Position     : [480.773, 593.01]
-Measurements : [1091.26, 361036, 0.615515, -1.08109]
----
-Label        : 1
-Position     : [862.585, 593.05]
-Measurements : [1039.14, 445840, 0.434074, -1.31525]
----
-Label        : 1
-Position     : [482.201, 593.436]
-Measurements : [946.43, 338296, 1.09066, -0.272114]
----
-Label        : 1
-Position     : [237.544, 593.912]
-Measurements : [1775.91, 505416, -0.189363, -0.979268]
----
-Label        : 1
-Position     : [76.7464, 593.912]
-Measurements : [660.127, 151778, 1.05948, -0.202266]
----
-Label        : 1
-Position     : [711.567, 594.355]
-Measurements : [1274.37, 277809, 0.320062, -0.780299]
----
-Label        : 1
-Position     : [72.471, 595.219]
-Measurements : [828.364, 245901, 0.451359, -1.33849]
----
-Label        : 1
-Position     : [754.136, 595.336]
-Measurements : [878.371, 154193, 0.857089, -0.0780638]
----
-Label        : 1
-Position     : [757.393, 596.246]
-Measurements : [981.482, 152651, 0.989848, -0.00492299]
----
-Label        : 1
-Position     : [860.168, 597.073]
-Measurements : [1137.38, 272944, 0.225, -1.17512]
----
-Label        : 1
-Position     : [866.144, 597.208]
-Measurements : [1257.32, 360017, 0.16117, -1.37078]
----
-Label        : 1
-Position     : [647.128, 597.384]
-Measurements : [1561.71, 168324, 0.318716, -1.08179]
----
-Label        : 1
-Position     : [878.693, 597.435]
-Measurements : [550.549, 81253.4, 1.04893, 0.0897637]
----
-Label        : 1
-Position     : [233.886, 597.516]
-Measurements : [1708.33, 525824, 0.250936, -1.02923]
----
-Label        : 1
-Position     : [231.503, 597.681]
-Measurements : [1726.27, 622316, 0.0226395, -1.30381]
----
-Label        : 1
-Position     : [860, 597.72]
-Measurements : [1137.38, 272944, 0.225, -1.17512]
----
-Label        : 1
-Position     : [870.141, 598.328]
-Measurements : [939.392, 446753, 0.893889, -0.854915]
----
-Label        : 1
-Position     : [653.09, 598.483]
-Measurements : [1777.2, 431892, -0.418814, -0.77937]
----
-Label        : 1
-Position     : [74.728, 598.52]
-Measurements : [913.674, 181069, 0.425305, -1.0491]
----
-Label        : 1
-Position     : [402.401, 598.682]
-Measurements : [744.985, 140465, 1.07279, -0.0605856]
----
-Label        : 1
-Position     : [882.528, 598.744]
-Measurements : [582.059, 75458.8, 1.03263, -0.020056]
----
-Label        : 1
-Position     : [650.528, 598.905]
-Measurements : [1828.76, 266579, -0.150144, -0.455498]
----
-Label        : 1
-Position     : [864.829, 599.396]
-Measurements : [1304.75, 320838, 0.0112484, -1.25766]
----
-Label        : 1
-Position     : [643.57, 600.182]
-Measurements : [1354.87, 205802, 0.35983, -0.804705]
----
-Label        : 1
-Position     : [236.008, 600.568]
-Measurements : [1416.61, 340729, 0.36803, -0.68806]
----
-Label        : 1
-Position     : [879.16, 601.397]
-Measurements : [539.633, 67361.4, 1.39999, 1.17747]
----
-Label        : 1
-Position     : [400.08, 601.424]
-Measurements : [928.427, 131395, 0.287644, -1.10852]
----
-Label        : 1
-Position     : [756.696, 601.992]
-Measurements : [965.798, 199167, 0.818095, -0.442147]
----
-Label        : 1
-Position     : [650.2, 602.504]
-Measurements : [1923.79, 198597, 0.00330806, -0.807094]
----
-Label        : 1
-Position     : [757.708, 603.448]
-Measurements : [944.493, 208444, 0.831763, -0.455454]
----
-Label        : 1
-Position     : [956.679, 603.612]
-Measurements : [970.499, 684615, 1.1671, -0.159297]
----
-Label        : 1
-Position     : [401.375, 603.957]
-Measurements : [995.404, 183760, 0.236748, -1.2496]
----
-Label        : 1
-Position     : [461.393, 604.89]
-Measurements : [1021.32, 155816, 0.027004, -1.36898]
----
-Label        : 1
-Position     : [237.863, 604.999]
-Measurements : [1170.57, 213156, 0.0315384, -1.42252]
----
-Label        : 1
-Position     : [459.427, 605.004]
-Measurements : [1051.56, 154372, -0.196236, -1.22849]
----
-Label        : 1
-Position     : [228.235, 605.075]
-Measurements : [941.204, 142612, 0.534915, -0.338781]
----
-Label        : 1
-Position     : [228.844, 605.703]
-Measurements : [941.204, 142612, 0.534915, -0.338781]
----
-Label        : 1
-Position     : [460.496, 606.032]
-Measurements : [1040.11, 157960, -0.139297, -1.28395]
----
-Label        : 1
-Position     : [647.393, 606.296]
-Measurements : [1589.79, 156739, 0.454352, -1.17883]
----
-Label        : 1
-Position     : [952.672, 606.424]
-Measurements : [1622.38, 532442, -0.0479366, -1.22267]
----
-Label        : 0
-Position     : [557.598, 606.698]
-Measurements : [996.762, 12374.8, 1.36408, 1.58708]
----
-Label        : 1
-Position     : [752.5, 606.756]
-Measurements : [644.077, 199924, 1.64222, 1.51838]
----
-Label        : 1
-Position     : [954.957, 607.045]
-Measurements : [1493.77, 706392, 0.0411678, -1.52663]
----
-Label        : 1
-Position     : [402.128, 608.592]
-Measurements : [1131, 191411, -0.0195369, -1.19049]
----
-Label        : 1
-Position     : [625.624, 608.648]
-Measurements : [1661.4, 34736.2, 0.660168, 1.94285]
----
-Label        : 1
-Position     : [687.576, 608.648]
-Measurements : [1257.51, 75274.1, -0.399507, -0.759956]
----
-Label        : 1
-Position     : [231.912, 609.272]
-Measurements : [1164.12, 111774, -0.0561663, -0.94059]
----
-Label        : 1
-Position     : [690.292, 609.977]
-Measurements : [1167.77, 132603, -0.383219, -1.08329]
----
-Label        : 1
-Position     : [400.974, 610.01]
-Measurements : [1307.3, 117289, -0.332864, -0.470128]
----
-Label        : 1
-Position     : [682.408, 610.606]
-Measurements : [1357.08, 104314, 0.429524, 0.249075]
----
-Label        : 1
-Position     : [406.029, 611.106]
-Measurements : [855.939, 211554, 0.773161, -0.739853]
----
-Label        : 1
-Position     : [622.078, 611.881]
-Measurements : [1593.51, 53048.9, -0.411448, 2.05418]
----
-Label        : 1
-Position     : [407.019, 611.953]
-Measurements : [769.182, 192695, 1.10807, -0.0263169]
----
-Label        : 1
-Position     : [627.24, 612.058]
-Measurements : [1469.08, 94869.6, -0.14857, 0.0954542]
----
-Label        : 1
-Position     : [691.021, 612.203]
-Measurements : [1174.15, 157046, 0.0377585, -0.761364]
----
-Label        : 1
-Position     : [618.968, 612.232]
-Measurements : [1518.66, 43584.4, -0.902702, 0.764844]
----
-Label        : 0
-Position     : [553.348, 612.359]
-Measurements : [908.398, 1915.39, -0.588395, 2.46765]
----
-Label        : 1
-Position     : [621.214, 612.44]
-Measurements : [1553.12, 51804.4, -0.32645, 0.803664]
----
-Label        : 1
-Position     : [22.504, 612.856]
-Measurements : [1574.99, 469838, -0.564517, -0.977363]
----
-Label        : 1
-Position     : [677.848, 613.256]
-Measurements : [1339.91, 129476, 0.817102, -0.41253]
----
-Label        : 1
-Position     : [165.443, 614.299]
-Measurements : [914.874, 374348, 1.26298, 0.189669]
----
-Label        : 1
-Position     : [229.864, 614.392]
-Measurements : [1399.63, 94221.3, -0.461732, 0.0481431]
----
-Label        : 1
-Position     : [397.52, 614.736]
-Measurements : [1155.51, 195162, -0.211604, -1.331]
----
-Label        : 1
-Position     : [399.149, 615.156]
-Measurements : [1028.56, 215820, 0.159365, -1.44649]
----
-Label        : 1
-Position     : [160.928, 615.23]
-Measurements : [1209.76, 251965, 0.825494, -0.131135]
----
-Label        : 1
-Position     : [27.0727, 615.61]
-Measurements : [1730.59, 507650, -0.412145, -1.16127]
----
-Label        : 1
-Position     : [162.792, 615.928]
-Measurements : [1132.84, 305035, 0.799962, -0.431372]
----
-Label        : 1
-Position     : [24.9003, 616.489]
-Measurements : [1884.29, 338993, -0.572864, -0.677153]
----
-Label        : 1
-Position     : [620.246, 616.856]
-Measurements : [1399.81, 79414.4, -0.494323, 0.0157049]
----
-Label        : 1
-Position     : [25.064, 617.464]
-Measurements : [1740.64, 474181, -0.301654, -1.28318]
----
-Label        : 1
-Position     : [679.078, 617.517]
-Measurements : [1228.53, 118710, 1.39538, 0.899681]
----
-Label        : 1
-Position     : [763.626, 617.551]
-Measurements : [904.116, 171680, 0.285781, -0.837869]
----
-Label        : 1
-Position     : [449.464, 617.587]
-Measurements : [1007.73, 429732, 0.754016, -0.924057]
----
-Label        : 1
-Position     : [757.66, 617.863]
-Measurements : [715.401, 195274, 0.866902, -0.585923]
----
-Label        : 1
-Position     : [225.465, 618.122]
-Measurements : [1576.52, 140558, -0.51971, 0.515011]
----
-Label        : 0
-Position     : [517.259, 618.376]
-Measurements : [905.346, 10356.9, 1.09423, 6.74397]
----
-Label        : 1
-Position     : [226.963, 619.391]
-Measurements : [1593.66, 122213, -0.346648, -0.566329]
----
-Label        : 1
-Position     : [27.9968, 620.279]
-Measurements : [1347.66, 633807, 0.486464, -1.41245]
----
-Label        : 1
-Position     : [22.8439, 620.437]
-Measurements : [1362.71, 527984, 0.241686, -1.31979]
----
-Label        : 1
-Position     : [227.304, 621.048]
-Measurements : [1500.74, 182489, -0.265723, -1.05499]
----
-Label        : 1
-Position     : [397.74, 621.228]
-Measurements : [1294.33, 608484, 0.435371, -1.35002]
----
-Label        : 1
-Position     : [224.9, 621.331]
-Measurements : [1588.34, 212879, 0.0994024, -0.55914]
----
-Label        : 0
-Position     : [547.315, 621.367]
-Measurements : [858.335, 12813.8, -1.24825, 2.37543]
----
-Label        : 1
-Position     : [630.232, 621.448]
-Measurements : [1653.59, 243765, 0.166521, -0.863138]
----
-Label        : 1
-Position     : [445.648, 621.904]
-Measurements : [1793.47, 249477, -0.341991, -0.941242]
----
-Label        : 1
-Position     : [1005.62, 622.247]
-Measurements : [1290, 558674, 0.089665, -1.45355]
----
-Label        : 1
-Position     : [760.28, 622.472]
-Measurements : [1312.64, 200230, 0.0510056, -1.0254]
----
-Label        : 0
-Position     : [503.897, 622.593]
-Measurements : [1289.92, 77478, 0.527279, -0.703087]
----
-Label        : 1
-Position     : [394.96, 622.928]
-Measurements : [1422.88, 538847, 0.183259, -1.32484]
----
-Label        : 1
-Position     : [438.111, 623.097]
-Measurements : [1093.15, 381161, 0.882787, -0.0819444]
----
-Label        : 1
-Position     : [966.471, 623.478]
-Measurements : [1008.86, 339500, 0.264693, -1.43376]
----
-Label        : 1
-Position     : [1008.55, 623.648]
-Measurements : [1514.1, 375138, -0.128177, -0.92859]
----
-Label        : 1
-Position     : [223.525, 623.759]
-Measurements : [1628.24, 297663, 0.401837, -0.302095]
----
-Label        : 1
-Position     : [393.035, 623.839]
-Measurements : [1374.65, 553140, 0.235271, -1.24485]
----
-Label        : 0
-Position     : [547.771, 624.497]
-Measurements : [838.306, 16471.2, -0.594663, 0.551508]
----
-Label        : 1
-Position     : [634.282, 624.588]
-Measurements : [1429.07, 187364, 0.614137, -0.202062]
----
-Label        : 1
-Position     : [439.392, 624.681]
-Measurements : [1146.97, 307115, 0.7285, -0.0404627]
----
-Label        : 1
-Position     : [1012.4, 624.732]
-Measurements : [1424.75, 329039, 0.62268, -0.974572]
----
-Label        : 1
-Position     : [449.939, 624.807]
-Measurements : [1480.06, 291421, -0.161697, -1.38779]
----
-Label        : 1
-Position     : [225.674, 624.859]
-Measurements : [1495.61, 236804, 0.610501, 0.709149]
----
-Label        : 1
-Position     : [632.719, 625.139]
-Measurements : [1538.43, 244454, 0.493099, -0.61549]
----
-Label        : 1
-Position     : [225.969, 625.226]
-Measurements : [1448.69, 236898, 0.744014, 0.995808]
----
-Label        : 1
-Position     : [78.7339, 625.981]
-Measurements : [1050.8, 606251, 0.572999, -1.08684]
----
-Label        : 1
-Position     : [87.1652, 625.993]
-Measurements : [862.626, 242984, 2.05207, 4.50996]
----
-Label        : 1
-Position     : [83.432, 626.68]
-Measurements : [1136.01, 516264, 0.740574, -0.643966]
----
-Label        : 1
-Position     : [963.496, 626.72]
-Measurements : [1209.7, 261596, 0.0189527, -1.39528]
----
-Label        : 1
-Position     : [635.963, 626.817]
-Measurements : [1394.26, 175477, 0.622809, -0.210303]
----
-Label        : 1
-Position     : [761.875, 626.825]
-Measurements : [1599.66, 226034, -0.28443, -0.746557]
----
-Label        : 1
-Position     : [224.232, 627.192]
-Measurements : [1511.04, 270670, 0.76139, 0.454238]
----
-Label        : 1
-Position     : [966.576, 627.42]
-Measurements : [1038.25, 308571, 0.312293, -1.42961]
----
-Label        : 0
-Position     : [515.403, 628.015]
-Measurements : [879.467, 5137.89, 1.44959, 7.48975]
----
-Label        : 1
-Position     : [442.576, 628.048]
-Measurements : [1210.42, 127373, 0.50762, 0.935571]
----
-Label        : 1
-Position     : [650.696, 628.182]
-Measurements : [1123.87, 49497.6, -0.17434, -0.770055]
----
-Label        : 1
-Position     : [652.76, 628.616]
-Measurements : [1155.73, 53051.8, -0.286533, -0.816427]
----
-Label        : 0
-Position     : [515.568, 628.895]
-Measurements : [879.467, 5137.89, 1.44959, 7.48975]
----
-Label        : 1
-Position     : [759.256, 629.128]
-Measurements : [1422.45, 342307, 0.0222468, -1.29925]
----
-Label        : 1
-Position     : [657.442, 629.734]
-Measurements : [1198.25, 50291.5, -0.26236, -0.802717]
----
-Label        : 1
-Position     : [80.3839, 629.97]
-Measurements : [1577.12, 441700, -0.0447074, -1.22484]
----
-Label        : 1
-Position     : [80.36, 630.264]
-Measurements : [1578.59, 429767, 0.0344501, -1.3347]
----
-Label        : 1
-Position     : [79.8048, 630.576]
-Measurements : [1586.45, 443481, -0.0441499, -1.3246]
----
-Label        : 0
-Position     : [527.556, 630.69]
-Measurements : [838.26, 11052.5, -0.579509, 0.0756377]
----
-Label        : 1
-Position     : [635.352, 631.688]
-Measurements : [1494.18, 177045, 0.113623, -0.553691]
----
-Label        : 1
-Position     : [763.164, 631.767]
-Measurements : [1168.13, 466586, 0.570538, -1.34331]
----
-Label        : 1
-Position     : [18.92, 631.8]
-Measurements : [991.241, 285977, 0.742128, -0.833555]
----
-Label        : 1
-Position     : [220.508, 632.123]
-Measurements : [1796.79, 199863, -0.200005, 0.62394]
----
-Label        : 1
-Position     : [20.5197, 632.497]
-Measurements : [933.061, 287088, 0.961963, -0.518892]
----
-Label        : 1
-Position     : [959.4, 633.376]
-Measurements : [899.198, 208629, 0.690542, -0.496948]
----
-Label        : 1
-Position     : [719.32, 633.736]
-Measurements : [1354.96, 147443, -0.106377, -0.998034]
----
-Label        : 0
-Position     : [527.043, 633.867]
-Measurements : [809.132, 12263.1, -0.249287, -0.605208]
----
-Label        : 1
-Position     : [963.67, 633.894]
-Measurements : [683.155, 178853, 1.46831, 1.35291]
----
-Label        : 1
-Position     : [19.7224, 634.069]
-Measurements : [900.164, 311706, 0.949301, -0.563988]
----
-Label        : 1
-Position     : [718.006, 634.517]
-Measurements : [1284.63, 177830, -0.0829044, -1.11961]
----
-Label        : 0
-Position     : [540.648, 634.618]
-Measurements : [953.967, 12861.9, 0.655317, -0.783391]
----
-Label        : 1
-Position     : [689.461, 635.13]
-Measurements : [962.756, 73066.3, 1.23401, 1.33694]
----
-Label        : 1
-Position     : [636.717, 635.378]
-Measurements : [1767.92, 224343, -0.00251318, -0.939323]
----
-Label        : 1
-Position     : [220.136, 635.896]
-Measurements : [1851.48, 216171, -1.1947, 1.02695]
----
-Label        : 1
-Position     : [638.717, 636.163]
-Measurements : [1830.87, 257753, -0.200122, -1.08728]
----
-Label        : 1
-Position     : [693.72, 636.296]
-Measurements : [1169.43, 154007, 0.853101, -0.184185]
----
-Label        : 1
-Position     : [78.312, 636.408]
-Measurements : [1254.12, 337591, 0.914237, -0.500015]
----
-Label        : 1
-Position     : [716.984, 636.418]
-Measurements : [1056.63, 183055, 0.551762, -0.683357]
----
-Label        : 1
-Position     : [691.927, 636.819]
-Measurements : [1062.01, 102471, 0.95495, -0.0353323]
----
-Label        : 1
-Position     : [79.7674, 636.826]
-Measurements : [1269.06, 357447, 0.850762, -0.718324]
----
-Label        : 1
-Position     : [638.936, 637.832]
-Measurements : [1840.86, 258591, -0.283776, -1.00201]
----
-Label        : 1
-Position     : [658.176, 637.861]
-Measurements : [1511.8, 191555, -0.180277, -1.022]
----
-Label        : 1
-Position     : [955.556, 637.937]
-Measurements : [736.643, 96568.3, 0.53228, -0.945341]
----
-Label        : 1
-Position     : [224.634, 638.018]
-Measurements : [1553.21, 383484, -0.176531, -1.49962]
----
-Label        : 1
-Position     : [660.782, 638.093]
-Measurements : [1584.1, 160129, -0.305115, -0.649177]
----
-Label        : 1
-Position     : [78.7125, 638.388]
-Measurements : [1077.97, 164820, 1.10866, 0.606104]
----
-Label        : 1
-Position     : [661.464, 638.856]
-Measurements : [1571.78, 150928, -0.285468, -0.612174]
----
-Label        : 1
-Position     : [367.348, 639.047]
-Measurements : [969.606, 336796, 0.849322, 0.144531]
----
-Label        : 1
-Position     : [639.406, 639.134]
-Measurements : [1864.95, 246250, -0.0962476, -0.97583]
----
-Label        : 1
-Position     : [215.9, 640.49]
-Measurements : [891.219, 491725, 1.09034, -0.512876]
----
-Label        : 1
-Position     : [217.138, 640.535]
-Measurements : [1124.14, 627990, 0.534546, -1.48007]
----
-Label        : 1
-Position     : [719.32, 641.416]
-Measurements : [1052.48, 162883, 0.627541, -0.31508]
----
-Label        : 1
-Position     : [220.648, 641.528]
-Measurements : [1223.89, 581861, 0.3473, -1.58541]
----
-Label        : 1
-Position     : [371.92, 641.872]
-Measurements : [1371.47, 628345, 0.335862, -1.28753]
----
-Label        : 1
-Position     : [164.925, 642.383]
-Measurements : [997.215, 332672, 0.447158, -1.20729]
----
-Label        : 0
-Position     : [487.669, 643.062]
-Measurements : [872.865, 130906, 0.678553, -0.488235]
----
-Label        : 1
-Position     : [72.68, 643.064]
-Measurements : [1370.61, 174143, 0.412515, -0.152904]
----
-Label        : 1
-Position     : [71.1286, 643.487]
-Measurements : [1363.65, 159548, 0.516921, 0.155043]
----
-Label        : 1
-Position     : [721.987, 643.529]
-Measurements : [1151.98, 186851, 0.602096, -0.273056]
----
-Label        : 0
-Position     : [481.56, 643.934]
-Measurements : [1278.77, 75714.6, 0.499343, -0.533136]
----
-Label        : 1
-Position     : [345.932, 643.965]
-Measurements : [898.039, 109657, 0.293744, -0.800513]
----
-Label        : 0
-Position     : [526.188, 644.129]
-Measurements : [800.554, 7117.08, -1.27835, 1.38297]
----
-Label        : 1
-Position     : [17.5728, 644.171]
-Measurements : [784.825, 151363, 0.590761, -0.902371]
----
-Label        : 1
-Position     : [14.824, 644.6]
-Measurements : [887.17, 130667, 0.193671, -0.962131]
----
-Label        : 1
-Position     : [68.6911, 644.736]
-Measurements : [1438.19, 306986, 0.809448, 0.131956]
----
-Label        : 1
-Position     : [375.677, 646.253]
-Measurements : [1160.14, 710975, 0.786928, -1.10194]
----
-Label        : 1
-Position     : [715.046, 646.263]
-Measurements : [1019.72, 75845.4, 0.954942, 2.73266]
----
-Label        : 1
-Position     : [68.3374, 646.365]
-Measurements : [1720.93, 455144, 0.476677, -0.793437]
----
-Label        : 1
-Position     : [646.903, 646.556]
-Measurements : [2221.57, 434222, -0.264716, -0.912646]
----
-Label        : 1
-Position     : [666.584, 647.048]
-Measurements : [1246.22, 122547, 0.136985, -0.769833]
----
-Label        : 1
-Position     : [767.949, 647.067]
-Measurements : [743.155, 147586, 1.46344, 2.33072]
----
-Label        : 1
-Position     : [167.912, 647.16]
-Measurements : [1545.59, 352033, 0.124075, -0.683738]
----
-Label        : 1
-Position     : [646.616, 647.56]
-Measurements : [2209.56, 442573, -0.202485, -1.07395]
----
-Label        : 1
-Position     : [19.2643, 647.622]
-Measurements : [725.527, 126482, 1.09316, -0.0232116]
----
-Label        : 1
-Position     : [425.173, 647.85]
-Measurements : [1161.71, 463657, 0.197698, -1.6399]
----
-Label        : 1
-Position     : [350.928, 648.528]
-Measurements : [982.83, 225073, 0.652522, -0.376124]
----
-Label        : 1
-Position     : [667.803, 648.61]
-Measurements : [1294.38, 127354, 0.258762, -0.450068]
----
-Label        : 1
-Position     : [348.665, 649.488]
-Measurements : [906.754, 267424, 0.902725, -0.104222]
----
-Label        : 1
-Position     : [646.31, 649.623]
-Measurements : [2089.38, 509254, 0.0794223, -1.32463]
----
-Label        : 1
-Position     : [666.352, 649.786]
-Measurements : [1253.58, 111373, 0.299511, -0.699559]
----
-Label        : 1
-Position     : [428.24, 650.576]
-Measurements : [1481.36, 351115, -0.356533, -1.06592]
----
-Label        : 1
-Position     : [166.567, 650.653]
-Measurements : [1549.69, 340416, -0.105348, -0.760685]
----
-Label        : 1
-Position     : [71.656, 650.744]
-Measurements : [1988.6, 427646, 0.196713, -1.2895]
----
-Label        : 1
-Position     : [69.8398, 650.968]
-Measurements : [1962.14, 468000, 0.119201, -1.24634]
----
-Label        : 1
-Position     : [764.888, 651.144]
-Measurements : [1163.79, 318225, 0.551722, -0.860368]
----
-Label        : 1
-Position     : [424.362, 652.544]
-Measurements : [1749.67, 347800, -0.614633, -0.673145]
----
-Label        : 1
-Position     : [760.961, 652.765]
-Measurements : [1084.96, 348471, 0.60671, -0.862569]
----
-Label        : 1
-Position     : [337.464, 653.225]
-Measurements : [1154.71, 184391, -0.160176, -0.523177]
----
-Label        : 1
-Position     : [968.483, 654.121]
-Measurements : [761.38, 227911, 0.923138, -0.448279]
----
-Label        : 1
-Position     : [726.114, 654.151]
-Measurements : [1745.4, 689909, 0.0751936, -1.6574]
----
-Label        : 1
-Position     : [336.08, 654.16]
-Measurements : [1144.03, 180941, -0.409782, -0.920301]
----
-Label        : 1
-Position     : [1017.77, 654.368]
-Measurements : [1214.95, 241826, -0.380885, -0.958212]
----
-Label        : 1
-Position     : [335.701, 654.57]
-Measurements : [1115.77, 188132, -0.314346, -1.09653]
----
-Label        : 1
-Position     : [162.28, 654.84]
-Measurements : [1295.62, 216478, 0.161164, -1.08242]
----
-Label        : 1
-Position     : [665.715, 654.854]
-Measurements : [1262.22, 90788.8, 0.0866523, -0.832344]
----
-Label        : 1
-Position     : [1020.47, 654.876]
-Measurements : [1352.78, 96442.4, 0.458003, -0.821514]
----
-Label        : 1
-Position     : [651.771, 655.597]
-Measurements : [1336.6, 52841.8, -0.173577, -0.896528]
----
-Label        : 1
-Position     : [722.657, 655.597]
-Measurements : [1649.8, 515605, 0.0252072, -1.561]
----
-Label        : 1
-Position     : [70.3483, 655.777]
-Measurements : [1849.38, 489910, 0.204139, -0.945411]
----
-Label        : 1
-Position     : [645.958, 655.794]
-Measurements : [1404.18, 94598.8, 1.04068, 1.87631]
----
-Label        : 0
-Position     : [538.063, 656.278]
-Measurements : [877.367, 68801.9, 1.44427, 3.37491]
----
-Label        : 0
-Position     : [556.593, 656.368]
-Measurements : [795.135, 39279.8, 1.82693, 7.55009]
----
-Label        : 1
-Position     : [1021.26, 656.547]
-Measurements : [1240.64, 137130, 0.375484, -0.4541]
----
-Label        : 1
-Position     : [961.58, 657.077]
-Measurements : [921.766, 190029, 0.170197, -1.06815]
----
-Label        : 1
-Position     : [766.413, 657.165]
-Measurements : [1197.69, 410140, 0.437892, -1.31718]
----
-Label        : 1
-Position     : [665.048, 657.288]
-Measurements : [1204.65, 67675.6, 0.879421, -0.115793]
----
-Label        : 1
-Position     : [422.608, 657.744]
-Measurements : [1596.29, 549647, -0.345803, -1.2793]
----
-Label        : 1
-Position     : [162.151, 657.783]
-Measurements : [1068.91, 340271, 0.452176, -1.23948]
----
-Label        : 1
-Position     : [649.176, 657.8]
-Measurements : [1294.57, 60500.7, -0.229286, -1.02879]
----
-Label        : 1
-Position     : [769.496, 657.8]
-Measurements : [1112.1, 356364, 0.716973, -1.06177]
----
-Label        : 1
-Position     : [72.168, 657.912]
-Measurements : [1648.33, 355796, 0.463576, -0.237449]
----
-Label        : 1
-Position     : [965.032, 657.952]
-Measurements : [922.708, 217739, 0.337217, -1.14451]
----
-Label        : 0
-Position     : [483.084, 658.044]
-Measurements : [854.813, 3977.18, -0.266403, -0.294176]
----
-Label        : 1
-Position     : [327.57, 658.195]
-Measurements : [837.054, 108616, 0.42112, -0.807673]
----
-Label        : 1
-Position     : [764.587, 658.316]
-Measurements : [1001.37, 406383, 0.71888, -1.00224]
----
-Label        : 1
-Position     : [422.673, 658.76]
-Measurements : [1481.02, 644628, -0.112398, -1.5576]
----
-Label        : 1
-Position     : [724.952, 658.824]
-Measurements : [2079.1, 431633, -0.646768, -0.357068]
----
-Label        : 1
-Position     : [167.184, 659.083]
-Measurements : [627.541, 154888, 1.80979, 2.8991]
----
-Label        : 1
-Position     : [205.567, 659.474]
-Measurements : [651.925, 146220, 1.19523, 0.194839]
----
-Label        : 0
-Position     : [518.574, 660.945]
-Measurements : [783.345, 17212.2, -0.228475, -1.30841]
----
-Label        : 1
-Position     : [72.7293, 661.025]
-Measurements : [1441.44, 331111, 0.107511, -1.00881]
----
-Label        : 1
-Position     : [421.074, 661.214]
-Measurements : [957.763, 588225, 1.00047, -0.617813]
----
-Label        : 1
-Position     : [668.466, 661.664]
-Measurements : [1138.64, 63929.5, 1.33893, 0.921879]
----
-Label        : 0
-Position     : [537.113, 661.682]
-Measurements : [790.204, 19786, -0.135555, 0.571849]
----
-Label        : 1
-Position     : [325.84, 662.352]
-Measurements : [985.124, 93874.5, -0.279558, -0.827325]
----
-Label        : 0
-Position     : [536.07, 662.384]
-Measurements : [797.187, 14836.7, -0.85645, 0.644137]
----
-Label        : 1
-Position     : [209.384, 663.032]
-Measurements : [772.789, 133137, 0.821945, -0.533571]
----
-Label        : 1
-Position     : [213.506, 663.095]
-Measurements : [689.269, 115301, 1.32993, 0.721288]
----
-Label        : 1
-Position     : [73.192, 664.056]
-Measurements : [1245.63, 312267, 0.50745, -0.608178]
----
-Label        : 1
-Position     : [655.963, 664.085]
-Measurements : [1458.53, 143172, 0.548294, 0.220907]
----
-Label        : 1
-Position     : [77.8493, 665.478]
-Measurements : [1116.62, 214089, 1.50817, 1.70207]
----
-Label        : 1
-Position     : [621.528, 665.992]
-Measurements : [1799.15, 149477, 0.423776, -0.610854]
----
-Label        : 1
-Position     : [651.224, 666.504]
-Measurements : [1556.11, 163002, 0.247162, -0.496522]
----
-Label        : 1
-Position     : [618.79, 666.802]
-Measurements : [1766.73, 195275, 0.604378, -0.214534]
----
-Label        : 1
-Position     : [321.858, 666.888]
-Measurements : [655.148, 144978, 0.794163, -0.989915]
----
-Label        : 1
-Position     : [1016.38, 667.902]
-Measurements : [1286.93, 587223, 0.282382, -1.19698]
----
-Label        : 1
-Position     : [410.125, 668.006]
-Measurements : [1083.49, 320184, 0.43898, -1.02464]
----
-Label        : 1
-Position     : [77.7727, 668.073]
-Measurements : [1009.71, 241215, 1.43994, 1.92425]
----
-Label        : 1
-Position     : [653.23, 668.291]
-Measurements : [1681.02, 206143, 0.176655, -0.784201]
----
-Label        : 0
-Position     : [515.781, 668.499]
-Measurements : [883.445, 8828.79, -0.8104, -0.0532019]
----
-Label        : 1
-Position     : [616.685, 668.705]
-Measurements : [1728.95, 215951, 0.392863, -0.847413]
----
-Label        : 1
-Position     : [968.773, 669.793]
-Measurements : [934.552, 257789, 0.524287, -1.14392]
----
-Label        : 1
-Position     : [1013.61, 670.298]
-Measurements : [1234.39, 684096, 0.306861, -1.45858]
----
-Label        : 0
-Position     : [588.996, 670.617]
-Measurements : [1422.8, 29963.7, 2.69111, 11.7876]
----
-Label        : 1
-Position     : [973.736, 670.752]
-Measurements : [1520.1, 278319, -0.516057, -0.285793]
----
-Label        : 0
-Position     : [579.748, 671.414]
-Measurements : [1431.96, 106078, 2.46061, 6.13458]
----
-Label        : 1
-Position     : [972.275, 671.734]
-Measurements : [1490.81, 277405, -0.266265, -0.31192]
----
-Label        : 0
-Position     : [547.265, 672.059]
-Measurements : [778.818, 37190.3, -0.0268415, -0.167969]
----
-Label        : 1
-Position     : [655.444, 672.47]
-Measurements : [1908.63, 351348, -0.181535, -1.13199]
----
-Label        : 1
-Position     : [622.04, 672.648]
-Measurements : [2141.65, 148466, 0.248506, -0.988989]
----
-Label        : 1
-Position     : [413.272, 672.656]
-Measurements : [1135.69, 307467, 0.510597, -0.642238]
----
-Label        : 1
-Position     : [1018.28, 672.8]
-Measurements : [1856.35, 259595, 0.156641, -1.14678]
----
-Label        : 1
-Position     : [620.299, 673.163]
-Measurements : [2093.52, 175901, 0.0830093, -0.786095]
----
-Label        : 1
-Position     : [622.065, 673.247]
-Measurements : [2112.96, 147719, 0.390355, -0.875959]
----
-Label        : 1
-Position     : [688.381, 673.909]
-Measurements : [1205.05, 119376, 0.00799213, -1.24933]
----
-Label        : 0
-Position     : [534.536, 674.111]
-Measurements : [919.752, 4337.91, 0.87782, 2.11114]
----
-Label        : 0
-Position     : [527.383, 674.5]
-Measurements : [1096.82, 117395, 1.82919, 2.56327]
----
-Label        : 1
-Position     : [653.784, 675.208]
-Measurements : [1890.34, 311800, 0.0807829, -1.1148]
----
-Label        : 1
-Position     : [690.648, 675.208]
-Measurements : [1286.24, 100594, -0.176539, -0.686918]
----
-Label        : 1
-Position     : [693.533, 675.27]
-Measurements : [1304.31, 78387.3, 0.229361, -0.822617]
----
-Label        : 1
-Position     : [975.774, 675.582]
-Measurements : [1929.67, 134623, 0.0651155, -0.819899]
----
-Label        : 0
-Position     : [515.307, 675.665]
-Measurements : [943.436, 54382.4, 2.37623, 6.52189]
----
-Label        : 1
-Position     : [407.64, 675.728]
-Measurements : [1320.52, 304427, 0.147623, -1.17011]
----
-Label        : 1
-Position     : [622.12, 675.976]
-Measurements : [2115.05, 146358, 0.425116, -0.960373]
----
-Label        : 0
-Position     : [534.066, 676.051]
-Measurements : [936.045, 5261.81, 0.805183, 1.68575]
----
-Label        : 1
-Position     : [406.791, 676.117]
-Measurements : [1314.99, 364777, 0.149226, -1.20072]
----
-Label        : 0
-Position     : [517.311, 676.278]
-Measurements : [1079.21, 166704, 1.74736, 2.69667]
----
-Label        : 1
-Position     : [649.626, 676.426]
-Measurements : [1551.55, 277559, 0.683601, -0.796943]
----
-Label        : 1
-Position     : [416.29, 677.167]
-Measurements : [950.588, 113002, 0.397363, -0.430585]
----
-Label        : 1
-Position     : [977.832, 677.408]
-Measurements : [2012.3, 168949, 0.0242875, -0.752349]
----
-Label        : 1
-Position     : [405.518, 677.462]
-Measurements : [1348.23, 425943, 0.170571, -1.16512]
----
-Label        : 1
-Position     : [621.528, 678.792]
-Measurements : [1901.38, 149894, 0.692104, -0.182475]
----
-Label        : 0
-Position     : [574.408, 679.108]
-Measurements : [1168.51, 40995.7, -0.122898, -0.763841]
----
-Label        : 0
-Position     : [576.008, 679.187]
-Measurements : [1225.92, 27986.3, 0.01316, -1.15928]
----
-Label        : 1
-Position     : [616.812, 679.71]
-Measurements : [1531.25, 168993, 1.15595, 0.159621]
----
-Label        : 1
-Position     : [407.84, 680.184]
-Measurements : [1199.85, 485625, 0.779406, -0.83389]
----
-Label        : 1
-Position     : [982.286, 680.676]
-Measurements : [1718.36, 187728, -0.105281, -0.680188]
----
-Label        : 0
-Position     : [487.025, 680.714]
-Measurements : [906.276, 4556.15, -0.882028, 0.577918]
----
-Label        : 1
-Position     : [650.951, 680.747]
-Measurements : [1500.31, 229516, 1.0241, 0.26796]
----
-Label        : 1
-Position     : [402.038, 680.978]
-Measurements : [1215.16, 449075, 0.66182, -0.729854]
----
-Label        : 1
-Position     : [978.217, 681.305]
-Measurements : [1859.57, 134594, 0.480071, -0.713095]
----
-Label        : 1
-Position     : [402.52, 681.36]
-Measurements : [1196.93, 425444, 0.760612, -0.485687]
----
-Label        : 1
-Position     : [725.531, 681.621]
-Measurements : [1202.61, 67219.6, -0.122566, -0.647671]
----
-Label        : 1
-Position     : [658.167, 682.413]
-Measurements : [1695.73, 147622, 0.607021, -0.154088]
----
-Label        : 1
-Position     : [980.904, 682.528]
-Measurements : [1767.16, 144774, -0.0258514, -0.405201]
----
-Label        : 1
-Position     : [390.15, 684.46]
-Measurements : [1117.16, 507760, 0.367595, -1.535]
----
-Label        : 1
-Position     : [737.24, 684.936]
-Measurements : [1320.38, 42841.3, -0.2018, -0.224263]
----
-Label        : 1
-Position     : [387.16, 684.944]
-Measurements : [1321.3, 447000, -0.0174756, -1.54706]
----
-Label        : 1
-Position     : [736.083, 685.06]
-Measurements : [1356.46, 37994.9, -0.310419, -0.145552]
----
-Label        : 1
-Position     : [739.274, 685.082]
-Measurements : [1299.13, 47068.5, -0.184465, -0.579972]
----
-Label        : 1
-Position     : [654.296, 685.448]
-Measurements : [1673.69, 194879, 0.246342, -0.327918]
----
-Label        : 1
-Position     : [55.272, 685.536]
-Measurements : [838.736, 170550, 0.679353, -0.423567]
----
-Label        : 1
-Position     : [49.5741, 685.626]
-Measurements : [901.655, 111832, 0.557721, 0.103901]
----
-Label        : 1
-Position     : [56.8424, 685.661]
-Measurements : [807.758, 161795, 0.781385, -0.132215]
----
-Label        : 0
-Position     : [548.86, 685.866]
-Measurements : [980.933, 42147.1, 1.13393, 3.13981]
----
-Label        : 1
-Position     : [49.64, 686.048]
-Measurements : [928.037, 101081, 0.61425, 0.203384]
----
-Label        : 0
-Position     : [485.44, 686.102]
-Measurements : [887.81, 19268.9, 0.995044, 2.67467]
----
-Label        : 0
-Position     : [543.41, 686.241]
-Measurements : [1041.13, 52347.5, 1.95783, 4.51984]
----
-Label        : 0
-Position     : [524.397, 686.464]
-Measurements : [1162.19, 101653, 2.18648, 6.96006]
----
-Label        : 1
-Position     : [682.968, 686.472]
-Measurements : [1222.65, 98592.7, 0.160611, -0.661722]
----
-Label        : 1
-Position     : [727, 686.472]
-Measurements : [1356.1, 57905.2, -0.57116, -0.0947079]
----
-Label        : 1
-Position     : [978.983, 686.91]
-Measurements : [1613.2, 163208, -0.22867, 0.642146]
----
-Label        : 1
-Position     : [713.863, 687.646]
-Measurements : [1451.33, 140160, 0.00523052, -1.12502]
----
-Label        : 1
-Position     : [206.972, 687.695]
-Measurements : [983.275, 355616, 0.789767, -0.482866]
----
-Label        : 1
-Position     : [206.566, 687.709]
-Measurements : [983.275, 355616, 0.789767, -0.482866]
----
-Label        : 1
-Position     : [723.544, 687.898]
-Measurements : [1297.93, 69015.3, 0.276871, -0.616712]
----
-Label        : 1
-Position     : [686.711, 688.307]
-Measurements : [1377.23, 77359.3, 0.895343, 1.77447]
----
-Label        : 0
-Position     : [571.043, 688.738]
-Measurements : [901.792, 4547.6, -0.731337, 1.4039]
----
-Label        : 1
-Position     : [719.579, 688.845]
-Measurements : [1393.49, 144740, 0.696712, -0.663996]
----
-Label        : 1
-Position     : [164.969, 688.965]
-Measurements : [715.536, 325148, 1.52069, 0.96285]
----
-Label        : 1
-Position     : [715.736, 689.032]
-Measurements : [1542.32, 151163, 0.153088, -0.905249]
----
-Label        : 1
-Position     : [54.8825, 689.621]
-Measurements : [1011.74, 114194, 0.406325, -0.163878]
----
-Label        : 1
-Position     : [391.765, 689.631]
-Measurements : [1081.16, 376163, 0.707204, -0.953504]
----
-Label        : 0
-Position     : [551.418, 689.811]
-Measurements : [884.593, 30976, 1.06188, 3.67884]
----
-Label        : 1
-Position     : [708.545, 690.159]
-Measurements : [1726.49, 235613, 0.0238457, -1.00875]
----
-Label        : 1
-Position     : [983.464, 690.208]
-Measurements : [1331.81, 367534, -0.0399181, -1.23515]
----
-Label        : 1
-Position     : [47.6013, 690.502]
-Measurements : [856.738, 146734, 0.692348, -0.287713]
----
-Label        : 1
-Position     : [703.96, 690.568]
-Measurements : [1779.34, 256063, -0.276257, -1.10143]
----
-Label        : 0
-Position     : [477.421, 690.616]
-Measurements : [798.826, 8898.81, 0.203135, 0.557101]
----
-Label        : 0
-Position     : [490.179, 690.819]
-Measurements : [989.34, 15028.7, 0.0997386, 1.83382]
----
-Label        : 0
-Position     : [524.779, 690.85]
-Measurements : [1113.43, 104904, 2.49195, 7.80539]
----
-Label        : 1
-Position     : [206.824, 691.168]
-Measurements : [1355.14, 281065, 0.155999, -0.747438]
----
-Label        : 1
-Position     : [685.015, 691.303]
-Measurements : [1412.51, 70869.9, 0.99385, 1.72712]
----
-Label        : 0
-Position     : [469.71, 691.368]
-Measurements : [856.655, 9324.99, -1.14346, 0.142251]
----
-Label        : 0
-Position     : [505.637, 691.796]
-Measurements : [1017.56, 93842.1, 3.18601, 10.3167]
----
-Label        : 0
-Position     : [448.147, 691.965]
-Measurements : [1044.07, 17306.6, 0.694973, -0.20513]
----
-Label        : 1
-Position     : [701.035, 692.544]
-Measurements : [1724.98, 298547, -0.054249, -1.47061]
----
-Label        : 1
-Position     : [630.264, 693.2]
-Measurements : [1801.23, 94509.7, 0.18025, -0.41504]
----
-Label        : 1
-Position     : [163.816, 693.216]
-Measurements : [1430.95, 600693, 0.0389097, -1.39027]
----
-Label        : 1
-Position     : [983.618, 693.519]
-Measurements : [1098.45, 345384, 0.535119, -0.963905]
----
-Label        : 0
-Position     : [503.696, 693.567]
-Measurements : [956.55, 54666.3, 3.53276, 13.4114]
----
-Label        : 1
-Position     : [982.624, 693.645]
-Measurements : [1145.16, 334227, 0.389084, -1.02992]
----
-Label        : 1
-Position     : [47.3356, 693.752]
-Measurements : [886.538, 138820, 0.746525, -0.023753]
----
-Label        : 1
-Position     : [46.8316, 693.921]
-Measurements : [861.162, 136460, 0.719406, -0.0108743]
----
-Label        : 1
-Position     : [165.907, 695.516]
-Measurements : [1514.23, 699505, 0.108439, -1.49279]
----
-Label        : 1
-Position     : [30.5928, 696.046]
-Measurements : [812.548, 105313, 0.29701, -1.10928]
----
-Label        : 1
-Position     : [42.984, 696.288]
-Measurements : [720.49, 107204, 1.23598, 1.21211]
----
-Label        : 1
-Position     : [633.507, 696.501]
-Measurements : [1730.11, 73242.4, 1.22178, 0.729323]
----
-Label        : 1
-Position     : [211.513, 696.641]
-Measurements : [1484.06, 184561, -0.0754644, -1.38894]
----
-Label        : 0
-Position     : [440.551, 697.159]
-Measurements : [1089.97, 25064.2, 0.78966, -0.1101]
----
-Label        : 1
-Position     : [299.608, 697.232]
-Measurements : [794.254, 213956, 1.26757, 0.359448]
----
-Label        : 0
-Position     : [490.757, 697.281]
-Measurements : [1123.08, 113316, 1.94013, 3.9328]
----
-Label        : 1
-Position     : [30.696, 697.312]
-Measurements : [855.093, 101910, 0.396883, -0.694619]
----
-Label        : 1
-Position     : [364.632, 697.744]
-Measurements : [989.14, 197569, 0.23462, -1.34218]
----
-Label        : 1
-Position     : [634.847, 697.976]
-Measurements : [1628.92, 74376.4, 0.984118, 1.91579]
----
-Label        : 1
-Position     : [161.256, 698.336]
-Measurements : [2052.31, 332781, -0.612827, -0.186191]
----
-Label        : 1
-Position     : [164.181, 698.869]
-Measurements : [1811.12, 580326, -0.282066, -1.27242]
----
-Label        : 1
-Position     : [158.924, 698.901]
-Measurements : [2032.69, 246344, -0.385655, 0.209423]
----
-Label        : 1
-Position     : [299.17, 698.99]
-Measurements : [837.191, 227512, 1.06925, -0.197763]
----
-Label        : 1
-Position     : [164.612, 699.103]
-Measurements : [1729.77, 648245, -0.137421, -1.44267]
----
-Label        : 0
-Position     : [488.985, 699.288]
-Measurements : [1108.09, 122490, 1.81843, 3.34549]
----
-Label        : 1
-Position     : [367.681, 699.56]
-Measurements : [987.821, 191059, 0.243993, -1.24114]
----
-Label        : 1
-Position     : [205.788, 699.67]
-Measurements : [1275.03, 447995, 0.21942, -1.51897]
----
-Label        : 1
-Position     : [209.384, 699.872]
-Measurements : [1357.6, 398827, -0.00553489, -1.47772]
----
-Label        : 1
-Position     : [349.034, 700.386]
-Measurements : [708.733, 135316, 0.638928, -1.19979]
----
-Label        : 1
-Position     : [981.928, 700.448]
-Measurements : [949.902, 103593, 0.402101, 0.0802957]
----
-Label        : 1
-Position     : [979.481, 700.679]
-Measurements : [995.192, 101721, 0.236388, -0.0629493]
----
-Label        : 1
-Position     : [360.412, 700.9]
-Measurements : [853.195, 166116, 0.566104, -0.899401]
----
-Label        : 1
-Position     : [353.368, 701.328]
-Measurements : [819.785, 124189, 0.12974, -1.48596]
----
-Label        : 1
-Position     : [300.57, 701.388]
-Measurements : [1008.2, 441653, 0.94759, -0.383009]
----
-Label        : 1
-Position     : [154.947, 701.613]
-Measurements : [1868.02, 288631, -0.285888, -0.699148]
----
-Label        : 1
-Position     : [32.7158, 701.613]
-Measurements : [815.192, 74028.6, 0.59833, -0.330883]
----
-Label        : 0
-Position     : [498.827, 701.643]
-Measurements : [868.608, 8156.59, 0.150489, -0.898373]
----
-Label        : 1
-Position     : [24.5461, 701.854]
-Measurements : [1030.43, 225769, 0.325376, -1.01796]
----
-Label        : 0
-Position     : [574.13, 702.349]
-Measurements : [905.362, 28444.8, 3.08757, 9.50173]
----
-Label        : 1
-Position     : [25.576, 703.456]
-Measurements : [1099.73, 182046, 0.412705, -0.961149]
----
-Label        : 1
-Position     : [155.112, 703.456]
-Measurements : [1785.8, 404679, -0.276363, -0.775961]
----
-Label        : 1
-Position     : [978.969, 703.885]
-Measurements : [1095.63, 44329.1, 0.997515, 2.32127]
----
-Label        : 1
-Position     : [299.717, 704.649]
-Measurements : [1367.15, 628364, 0.342345, -1.0069]
----
-Label        : 0
-Position     : [520.946, 705.086]
-Measurements : [871.161, 8660.73, -0.560863, 0.205994]
----
-Label        : 0
-Position     : [519.869, 705.272]
-Measurements : [873.83, 8245.93, -0.699065, 0.38047]
----
-Label        : 1
-Position     : [150.78, 705.75]
-Measurements : [1483.63, 272587, 0.280781, -0.730247]
----
-Label        : 1
-Position     : [299.096, 705.936]
-Measurements : [1483.34, 557034, 0.114789, -0.854361]
----
-Label        : 1
-Position     : [350.728, 706.152]
-Measurements : [500.694, 68732.8, 2.36473, 4.51725]
----
-Label        : 1
-Position     : [21.8929, 706.172]
-Measurements : [808.934, 280206, 0.923856, -0.651785]
----
-Label        : 0
-Position     : [546.041, 707.56]
-Measurements : [927.314, 878.759, 0.900077, 0.942395]
----
-Label        : 0
-Position     : [542.421, 708.379]
-Measurements : [955.462, 8109.82, 3.30465, 15.8433]
----
-Label        : 1
-Position     : [153.064, 710.112]
-Measurements : [1490.61, 162933, -0.374763, -0.439229]
----
-Label        : 1
-Position     : [157.228, 710.235]
-Measurements : [1216.04, 314988, 0.162348, -1.26141]
----
-Label        : 1
-Position     : [302.798, 710.389]
-Measurements : [1823.33, 579270, -0.287856, -0.998621]
----
-Label        : 1
-Position     : [294.963, 710.607]
-Measurements : [1455.99, 239799, -0.230773, -0.575386]
----
-Label        : 0
-Position     : [536.318, 710.642]
-Measurements : [1029.55, 50313.8, 1.05986, 2.76013]
----
-Label        : 0
-Position     : [533.06, 710.674]
-Measurements : [1010.07, 54411.4, 1.10119, 2.35511]
----
-Label        : 0
-Position     : [546.055, 711.866]
-Measurements : [912.763, 631.624, 0.515326, 0.425384]
----
-Label        : 0
-Position     : [510.557, 712.676]
-Measurements : [951.179, 9523.27, 0.350709, 1.27443]
----
-Label        : 1
-Position     : [297.56, 713.104]
-Measurements : [1457.39, 438392, -0.0212596, -1.09904]
----
-Label        : 1
-Position     : [18.916, 714.461]
-Measurements : [876.194, 266915, 0.718832, -1.08181]
----
-Label        : 1
-Position     : [14.7209, 715.368]
-Measurements : [1370.26, 497980, 0.5686, -0.134113]
----
-Label        : 0
-Position     : [452.911, 715.449]
-Measurements : [1007.5, 3226.47, -0.743682, 6.73847]
----
-Label        : 1
-Position     : [149.48, 715.744]
-Measurements : [1520.04, 119428, 0.040345, -1.16042]
----
-Label        : 1
-Position     : [148.225, 715.854]
-Measurements : [1474.07, 113152, 0.106992, -1.10525]
----
-Label        : 0
-Position     : [463.798, 716.417]
-Measurements : [917.118, 6401.58, -2.20401, 5.22719]
----
-Label        : 1
-Position     : [300.191, 716.606]
-Measurements : [1025.55, 487672, 1.02716, -0.499084]
----
-Label        : 1
-Position     : [16.872, 717.28]
-Measurements : [1305.97, 363071, 0.378194, -0.247805]
----
-Label        : 0
-Position     : [479.692, 717.48]
-Measurements : [887.859, 3070.38, 0.126614, -0.179796]
----
-Label        : 1
-Position     : [144.227, 717.49]
-Measurements : [1216.61, 99596, -0.1486, 0.192024]
----
-Label        : 1
-Position     : [14.807, 717.57]
-Measurements : [1564.15, 447249, 0.4224, -0.257984]
----
-Label        : 0
-Position     : [398.984, 718.227]
-Measurements : [1079.88, 9404.83, -0.785823, 3.18214]
----
-Label        : 0
-Position     : [435.373, 718.349]
-Measurements : [946.567, 4530.59, 0.241578, 0.757157]
----
-Label        : 0
-Position     : [479.643, 718.359]
-Measurements : [888.926, 3277.37, 0.109919, -0.451952]
----
-Label        : 1
-Position     : [150.555, 719.225]
-Measurements : [1350.55, 203038, -0.398947, -0.835851]
----
-Label        : 1
-Position     : [143.848, 719.84]
-Measurements : [1126.2, 105042, -0.601984, -0.0887272]
----
-Label        : 1
-Position     : [149.746, 720.238]
-Measurements : [1288.84, 217938, -0.18522, -1.0689]
----
-Label        : 0
-Position     : [483.335, 720.341]
-Measurements : [864.603, 4307.41, 0.452438, -0.605493]
----
-Label        : 1
-Position     : [10.728, 720.352]
-Measurements : [1959.16, 289383, 0.202743, -0.765113]
----
-Label        : 1
-Position     : [6.76788, 720.422]
-Measurements : [1990.33, 305216, -0.220494, -0.268993]
----
-Label        : 0
-Position     : [426.593, 720.486]
-Measurements : [902.532, 3949.37, 0.506826, 2.43821]
----
-Label        : 0
-Position     : [516.346, 721.2]
-Measurements : [919.769, 1646.43, -4.1801, 19.9773]
----
-Label        : 0
-Position     : [407.554, 722.727]
-Measurements : [1074.67, 14572.7, 0.539467, 0.894414]
----
-Label        : 0
-Position     : [396.521, 722.912]
-Measurements : [1089.46, 18536.5, 1.01886, 5.31848]
----
-Label        : 1
-Position     : [301.133, 723.324]
-Measurements : [1082.89, 452901, 0.630436, -1.28609]
----
-Label        : 1
-Position     : [208.593, 723.495]
-Measurements : [792.26, 264020, 1.46991, 1.21366]
----
-Label        : 0
-Position     : [400.205, 723.766]
-Measurements : [1081.19, 16669.1, 0.725756, 4.98747]
----
-Label        : 0
-Position     : [539.691, 723.831]
-Measurements : [883.911, 3124.93, -0.836513, 1.71221]
----
-Label        : 1
-Position     : [343.64, 724.368]
-Measurements : [1363.48, 319999, 0.0557857, -0.395136]
----
-Label        : 0
-Position     : [554.138, 725.039]
-Measurements : [837.309, 7230.07, -1.25863, 1.34441]
----
-Label        : 0
-Position     : [466.075, 725.567]
-Measurements : [877.945, 9238.56, -0.168896, 1.45514]
----
-Label        : 1
-Position     : [296.536, 725.904]
-Measurements : [1303.35, 326101, 0.119228, -1.40762]
----
-Label        : 1
-Position     : [340.171, 725.939]
-Measurements : [1436.62, 265703, 0.131347, -0.25]
----
-Label        : 1
-Position     : [205.288, 726.496]
-Measurements : [1142.84, 346413, 0.331069, -1.15071]
----
-Label        : 1
-Position     : [340.615, 726.943]
-Measurements : [1450.16, 258917, 0.131909, -0.263018]
----
-Label        : 1
-Position     : [200.867, 727.247]
-Measurements : [1373.48, 291841, 0.0125284, -0.975884]
----
-Label        : 0
-Position     : [581.972, 727.627]
-Measurements : [923.717, 56879, 2.01018, 4.93828]
----
-Label        : 1
-Position     : [339.315, 727.777]
-Measurements : [1387.39, 306196, 0.0890325, -0.480073]
----
-Label        : 0
-Position     : [402.263, 727.829]
-Measurements : [1049.48, 22114.9, 0.479931, 0.00627351]
----
-Label        : 0
-Position     : [472.937, 727.956]
-Measurements : [887.559, 14798.6, 1.63847, 4.70775]
----
-Label        : 0
-Position     : [567.791, 728.593]
-Measurements : [821.142, 12877.4, -0.094109, 0.473949]
----
-Label        : 0
-Position     : [610.329, 728.81]
-Measurements : [1068.94, 9102.36, 0.0778781, -0.422164]
----
-Label        : 1
-Position     : [131.786, 730.118]
-Measurements : [645.702, 136877, 1.89997, 2.78578]
----
-Label        : 1
-Position     : [296.239, 730.356]
-Measurements : [933.382, 413438, 0.865803, -0.800469]
----
-Label        : 0
-Position     : [404.326, 730.402]
-Measurements : [987.636, 11928.6, 1.2798, 1.84055]
----
-Label        : 1
-Position     : [125.004, 731.019]
-Measurements : [948.202, 145777, 1.04496, 0.252978]
----
-Label        : 1
-Position     : [339.032, 732.56]
-Measurements : [1107.89, 243406, -0.151434, -1.39355]
----
-Label        : 1
-Position     : [126.952, 733.152]
-Measurements : [932.05, 182010, 0.897258, -0.44654]
----
-Label        : 0
-Position     : [441.692, 733.191]
-Measurements : [917.017, 7418.56, -1.11122, 1.63796]
----
-Label        : 1
-Position     : [340.749, 733.652]
-Measurements : [1075.76, 262199, -0.110577, -1.50152]
----
-Label        : 1
-Position     : [200.13, 734.259]
-Measurements : [1648.39, 145918, -0.613778, -0.147282]
----
-Label        : 1
-Position     : [202.216, 734.688]
-Measurements : [1646.15, 127933, -0.421052, -0.373464]
----
-Label        : 0
-Position     : [449.489, 735.474]
-Measurements : [785.06, 7171.23, 1.24803, 1.18435]
----
-Label        : 0
-Position     : [404.214, 736.317]
-Measurements : [934.788, 2440.22, 0.395013, 2.19353]
----
-Label        : 1
-Position     : [197.596, 736.869]
-Measurements : [1530.75, 371290, -0.359357, -0.891723]
----
-Label        : 1
-Position     : [128.925, 737.457]
-Measurements : [880.94, 293498, 1.08283, -0.349099]
----
-Label        : 0
-Position     : [566.236, 739.33]
-Measurements : [756.121, 8821.46, 0.228477, 0.574167]
----
-Label        : 1
-Position     : [204.4, 740.441]
-Measurements : [1680.24, 279485, -0.341007, -0.554946]
----
-Label        : 0
-Position     : [527.65, 741.596]
-Measurements : [770.698, 8427.35, 0.645325, -0.762257]
----
-Label        : 0
-Position     : [555.308, 741.75]
-Measurements : [745.614, 14617.6, -0.559165, -0.338662]
----
-Label        : 0
-Position     : [406.845, 741.877]
-Measurements : [951.874, 1633.05, -0.336642, 0.0556783]
----
-Label        : 1
-Position     : [207.293, 741.999]
-Measurements : [1367.88, 267306, 0.347429, -0.853305]
----
-Label        : 1
-Position     : [124.904, 742.368]
-Measurements : [1436.05, 245284, -0.0935654, -0.463012]
----
-Label        : 1
-Position     : [202.728, 742.368]
-Measurements : [1941.4, 210551, -0.477076, -0.338577]
----
-Label        : 0
-Position     : [436.442, 742.88]
-Measurements : [929.375, 3476.89, -2.89425, 9.90368]
----
-Label        : 0
-Position     : [608.333, 743.344]
-Measurements : [676.344, 20690.8, 1.16242, 1.8409]
----
-Label        : 0
-Position     : [377.893, 744.509]
-Measurements : [795.482, 8235.47, 0.619007, 0.212924]
----
-Label        : 0
-Position     : [448.467, 744.899]
-Measurements : [916.978, 55301.6, 3.14786, 11.2395]
----
-Label        : 1
-Position     : [126.058, 745.517]
-Measurements : [1303.37, 299609, 0.267953, -0.787432]
----
-Label        : 1
-Position     : [124.491, 746.281]
-Measurements : [1358.46, 230129, 0.481434, -0.372796]
----
-Label        : 0
-Position     : [409.131, 746.994]
-Measurements : [965.738, 13623.5, 0.15015, 7.06839]
----
-Label        : 0
-Position     : [405.584, 747.124]
-Measurements : [968.589, 828.08, -0.212032, 0.319205]
----
-Label        : 1
-Position     : [123.368, 747.488]
-Measurements : [1268.68, 236351, 0.613354, -0.0155157]
----
-Label        : 1
-Position     : [202.531, 749.362]
-Measurements : [1550.72, 538206, -0.17467, -1.50601]
----
-Label        : 1
-Position     : [202.216, 749.536]
-Measurements : [1550.72, 538206, -0.17467, -1.50601]
----
-Label        : 1
-Position     : [126.543, 750.378]
-Measurements : [870.957, 174961, 0.776442, -0.0393626]
----
-Label        : 1
-Position     : [206.858, 750.895]
-Measurements : [1323.48, 374871, 0.666633, -0.960716]
----
-Label        : 0
-Position     : [572.392, 751.168]
-Measurements : [868.874, 42944, -0.252169, -1.00631]
----
-Label        : 1
-Position     : [111.08, 756.704]
-Measurements : [682.166, 115105, 1.50987, 1.34086]
----
-Label        : 1
-Position     : [112.859, 758.152]
-Measurements : [637.038, 116498, 1.7813, 2.06441]
----
-Label        : 1
-Position     : [190.72, 760.326]
-Measurements : [1756.4, 804807, -0.336199, -1.44325]
----
-Label        : 1
-Position     : [109.278, 761.408]
-Measurements : [518.056, 47028.6, 2.73031, 7.31028]
----
-Label        : 1
-Position     : [191.976, 762.848]
-Measurements : [1929.87, 611779, -0.689289, -0.802071]
----
-Label        : 1
-Position     : [184.296, 765.408]
-Measurements : [1980.57, 434789, -0.789138, -0.09661]
----
-Label        : 0
-Position     : [453.542, 765.888]
-Measurements : [770.904, 4723.78, 1.27278, 0.867494]
----
-Label        : 1
-Position     : [182.834, 767.159]
-Measurements : [1517.09, 731151, 0.0485414, -1.54421]
----
-Label        : 1
-Position     : [194.997, 767.624]
-Measurements : [1576.76, 503234, 0.35626, -1.25176]
----
-Label        : 0
-Position     : [430.101, 767.938]
-Measurements : [891.728, 9875.54, 0.0311174, -1.52266]
----
-Label        : 1
-Position     : [101.864, 768.48]
-Measurements : [1253.94, 214279, -0.156842, -0.85546]
----
-Label        : 1
-Position     : [183.079, 770.282]
-Measurements : [1145.28, 603485, 0.708353, -0.974022]
----
-Label        : 0
-Position     : [411.914, 770.36]
-Measurements : [816.374, 7840.96, -0.848821, 0.660832]
----
-Label        : 1
-Position     : [103.579, 770.97]
-Measurements : [1180.54, 197496, -0.144821, -1.14796]
----
-Label        : 1
-Position     : [98.8285, 771.336]
-Measurements : [1330.28, 228535, -0.0586775, -0.898468]
----
-Label        : 0
-Position     : [398.203, 773.414]
-Measurements : [891.812, 4488.79, -0.721596, -0.157861]
----
-Label        : 1
-Position     : [175.723, 774.71]
-Measurements : [1351.99, 448310, -0.114202, -1.65025]
----
-Label        : 1
-Position     : [727.647, 776.137]
-Measurements : [1361.34, 220402, 0.453899, -0.274435]
----
-Label        : 1
-Position     : [177.128, 777.184]
-Measurements : [1542.77, 366358, -0.648092, -0.983654]
----
-Label        : 1
-Position     : [688.828, 778.215]
-Measurements : [993.332, 69085.1, -0.464187, -0.403541]
----
-Label        : 0
-Position     : [423.556, 778.671]
-Measurements : [873.206, 9689.22, 0.719962, -0.391072]
----
-Label        : 1
-Position     : [702.725, 780.122]
-Measurements : [987.145, 235863, 0.622212, -0.818241]
----
-Label        : 1
-Position     : [725.208, 780.552]
-Measurements : [1177.82, 331716, 0.617446, -0.759791]
----
-Label        : 1
-Position     : [178.707, 781.444]
-Measurements : [1406.65, 350074, -0.116546, -1.37383]
----
-Label        : 1
-Position     : [643.8, 782.6]
-Measurements : [837.502, 131171, 0.876622, 0.412439]
----
-Label        : 1
-Position     : [687.832, 782.6]
-Measurements : [747.243, 106233, 0.728561, -0.706801]
----
-Label        : 1
-Position     : [647.243, 782.658]
-Measurements : [894.672, 147214, 0.50246, -0.537846]
----
-Label        : 0
-Position     : [398.736, 782.81]
-Measurements : [750.757, 3018.91, -0.243828, 3.54585]
----
-Label        : 1
-Position     : [173.429, 783.826]
-Measurements : [1151.13, 361522, 0.388328, -1.18903]
----
-Label        : 1
-Position     : [728.049, 784.078]
-Measurements : [776.553, 355639, 1.67998, 1.40744]
----
-Label        : 1
-Position     : [702.168, 784.136]
-Measurements : [1045.13, 293026, 0.516226, -1.16655]
----
-Label        : 1
-Position     : [685.987, 784.181]
-Measurements : [630.937, 107448, 1.47644, 0.762472]
----
-Label        : 1
-Position     : [698.181, 784.234]
-Measurements : [915.99, 278636, 0.744965, -0.898467]
----
-Label        : 1
-Position     : [715.132, 785.009]
-Measurements : [917.661, 246715, 0.828443, -0.633303]
----
-Label        : 1
-Position     : [753.989, 785.83]
-Measurements : [953.973, 291075, 0.731503, -0.970358]
----
-Label        : 1
-Position     : [716.054, 786.124]
-Measurements : [769.879, 190007, 1.34962, 0.560458]
----
-Label        : 1
-Position     : [755.699, 786.407]
-Measurements : [828.681, 273702, 1.13027, -0.261738]
----
-Label        : 1
-Position     : [647.418, 786.811]
-Measurements : [626.344, 124163, 1.98432, 3.64173]
----
-Label        : 1
-Position     : [167.663, 787.376]
-Measurements : [1214.17, 374087, 0.247525, -1.3402]
----
-Label        : 1
-Position     : [711.384, 788.232]
-Measurements : [1246.33, 514960, 0.692925, -0.79513]
----
-Label        : 1
-Position     : [169.448, 788.448]
-Measurements : [1175.54, 368199, 0.390895, -1.21202]
----
-Label        : 1
-Position     : [87.2985, 788.683]
-Measurements : [1396.07, 335246, -0.33232, -1.00375]
----
-Label        : 1
-Position     : [750.808, 788.744]
-Measurements : [1078.01, 292720, 0.235907, -1.35835]
----
-Label        : 1
-Position     : [839.488, 788.81]
-Measurements : [1014.05, 248274, 0.000140983, -1.46939]
----
-Label        : 1
-Position     : [92.136, 789.984]
-Measurements : [1610.89, 669868, -0.161827, -1.0152]
----
-Label        : 1
-Position     : [841.374, 790.788]
-Measurements : [934.327, 255970, 0.326117, -1.42665]
----
-Label        : 1
-Position     : [95.5657, 791.06]
-Measurements : [2041.53, 828238, -0.326321, -0.996807]
----
-Label        : 1
-Position     : [842.968, 791.304]
-Measurements : [871.098, 238724, 0.528133, -1.28029]
----
-Label        : 1
-Position     : [92.5887, 791.677]
-Measurements : [2049.67, 547736, -0.181618, -0.257574]
----
-Label        : 1
-Position     : [600.916, 794.077]
-Measurements : [660.541, 98200, 1.48347, 1.53605]
----
-Label        : 1
-Position     : [93.16, 795.104]
-Measurements : [2123.82, 623187, -0.254688, -0.876846]
----
-Label        : 1
-Position     : [94.588, 795.95]
-Measurements : [2146.49, 678407, -0.344582, -0.953312]
----
-Label        : 1
-Position     : [600.792, 796.424]
-Measurements : [683.142, 117605, 1.41414, 1.15]
----
-Label        : 1
-Position     : [157.36, 799.948]
-Measurements : [628.692, 221438, 2.03286, 2.85365]
----
-Label        : 1
-Position     : [598.809, 800.246]
-Measurements : [651.803, 100101, 1.8684, 2.77073]
----
-Label        : 1
-Position     : [153.064, 803.8]
-Measurements : [1235.38, 347266, -0.0708498, -1.4657]
----
-Label        : 1
-Position     : [582.033, 803.973]
-Measurements : [1541.09, 669227, -0.189835, -1.27048]
----
-Label        : 1
-Position     : [583.896, 804.616]
-Measurements : [1716.45, 635471, -0.308924, -1.05274]
----
-Label        : 1
-Position     : [583.731, 808.164]
-Measurements : [1896.01, 789177, -0.135868, -1.35621]
----
-Label        : 1
-Position     : [153.003, 808.514]
-Measurements : [1008.08, 348311, 0.510919, -1.24226]
----
-Label        : 1
-Position     : [1121.2, 809.614]
-Measurements : [1393.42, 631285, 1.06351, -0.317079]
----
-Label        : 1
-Position     : [927.864, 810.944]
-Measurements : [922.958, 219204, 0.729247, -0.639748]
----
-Label        : 1
-Position     : [1124.02, 814.52]
-Measurements : [2098.79, 779215, -0.205201, -1.42675]
----
-Label        : 1
-Position     : [983.643, 814.68]
-Measurements : [1406.45, 349006, 0.0679644, -0.7236]
----
-Label        : 1
-Position     : [504.817, 815.373]
-Measurements : [1010.51, 273922, 0.254172, -1.4478]
----
-Label        : 1
-Position     : [927.928, 815.544]
-Measurements : [1004.66, 237640, 0.332741, -1.12483]
----
-Label        : 1
-Position     : [526.689, 815.604]
-Measurements : [1760.95, 600355, -0.540524, -0.951703]
----
-Label        : 1
-Position     : [923.869, 815.796]
-Measurements : [852.063, 252255, 0.626028, -0.878785]
----
-Label        : 1
-Position     : [980.005, 815.833]
-Measurements : [1171.83, 429539, 0.40623, -0.989969]
----
-Label        : 1
-Position     : [984.76, 816.568]
-Measurements : [1251.43, 490108, 0.220337, -1.26225]
----
-Label        : 1
-Position     : [508.696, 818.136]
-Measurements : [1017.42, 245081, 0.400866, -1.30747]
----
-Label        : 1
-Position     : [1126.45, 818.502]
-Measurements : [1594.38, 1.16569e+06, 0.369868, -1.59389]
----
-Label        : 1
-Position     : [525.592, 819.16]
-Measurements : [1939.86, 697908, -0.499201, -1.08774]
----
-Label        : 1
-Position     : [1011.67, 820.962]
-Measurements : [699.013, 81657.6, 0.551357, -1.1875]
----
-Label        : 1
-Position     : [1091.68, 821.026]
-Measurements : [1000.83, 398136, 1.14559, -0.118122]
----
-Label        : 1
-Position     : [522.719, 821.123]
-Measurements : [1917.55, 882256, -0.451932, -1.08717]
----
-Label        : 1
-Position     : [508.462, 822.044]
-Measurements : [839.852, 222281, 0.979814, -0.367721]
----
-Label        : 1
-Position     : [1010.62, 822.244]
-Measurements : [693.392, 87487, 0.535667, -1.30036]
----
-Label        : 1
-Position     : [1012.41, 822.712]
-Measurements : [706.398, 81647, 0.553716, -1.28203]
----
-Label        : 1
-Position     : [1096.6, 823.242]
-Measurements : [1166.25, 478414, 0.61613, -1.1612]
----
-Label        : 1
-Position     : [1076.83, 824.726]
-Measurements : [1101, 481090, 0.364083, -1.35838]
----
-Label        : 1
-Position     : [1096.72, 824.918]
-Measurements : [1122.23, 469781, 0.733959, -1.00201]
----
-Label        : 1
-Position     : [1078.97, 827.32]
-Measurements : [1418.91, 502602, 0.0250882, -1.28341]
----
-Label        : 1
-Position     : [1392.91, 829.002]
-Measurements : [1066.29, 262211, 0.601476, -0.641817]
----
-Label        : 1
-Position     : [1390.94, 829.202]
-Measurements : [1005.35, 265933, 0.610088, -0.575108]
----
-Label        : 1
-Position     : [1390.7, 829.344]
-Measurements : [1005.35, 265933, 0.610088, -0.575108]
----
-Label        : 1
-Position     : [488.216, 829.912]
-Measurements : [1675.12, 615787, -0.00773813, -1.42912]
----
-Label        : 1
-Position     : [486.43, 830.311]
-Measurements : [1635.72, 765951, -0.15554, -1.46854]
----
-Label        : 1
-Position     : [1075.93, 831.578]
-Measurements : [1252.62, 648251, 0.284949, -1.4399]
----
-Label        : 1
-Position     : [1389.76, 832.043]
-Measurements : [944.15, 382907, 0.950516, -0.234103]
----
-Label        : 1
-Position     : [656.414, 832.214]
-Measurements : [1014.19, 216866, 0.193605, -1.22599]
----
-Label        : 1
-Position     : [661.203, 832.696]
-Measurements : [934.508, 187096, 0.403865, -1.17238]
----
-Label        : 1
-Position     : [657.112, 833.8]
-Measurements : [1131.95, 224355, 0.191712, -1.08847]
----
-Label        : 1
-Position     : [1394.55, 834.327]
-Measurements : [1207.62, 339921, 0.450709, -0.80088]
----
-Label        : 1
-Position     : [465.381, 834.549]
-Measurements : [1269.39, 560439, 0.483274, -1.30411]
----
-Label        : 1
-Position     : [486.064, 834.81]
-Measurements : [1472.21, 840553, 0.180824, -1.56869]
----
-Label        : 1
-Position     : [682.025, 836.066]
-Measurements : [831.306, 369037, 1.16729, 0.119046]
----
-Label        : 1
-Position     : [461.08, 838.616]
-Measurements : [1540.14, 621071, 0.0158363, -1.6649]
----
-Label        : 1
-Position     : [1393.74, 838.732]
-Measurements : [1243.49, 422273, 0.134774, -1.22674]
----
-Label        : 1
-Position     : [745.941, 839.601]
-Measurements : [721.25, 148263, 0.476498, -1.29222]
----
-Label        : 1
-Position     : [750.808, 839.944]
-Measurements : [876.858, 171370, 0.0564525, -1.37813]
----
-Label        : 1
-Position     : [460.526, 840.057]
-Measurements : [1461.23, 614667, 0.236308, -1.59414]
----
-Label        : 1
-Position     : [706.264, 840.456]
-Measurements : [1518.17, 235134, 0.357997, -0.361697]
----
-Label        : 1
-Position     : [685.272, 840.968]
-Measurements : [1410.48, 351858, -0.15485, -1.17376]
----
-Label        : 1
-Position     : [751.871, 841.211]
-Measurements : [961.414, 123696, 0.00551949, -1.07051]
----
-Label        : 1
-Position     : [662.744, 841.48]
-Measurements : [1760.19, 362517, -0.253148, -0.549244]
----
-Label        : 1
-Position     : [659.618, 841.535]
-Measurements : [1759.12, 386165, -0.341652, -0.636809]
----
-Label        : 1
-Position     : [1394.55, 841.7]
-Measurements : [1318.22, 289341, -0.0578254, -0.768137]
----
-Label        : 1
-Position     : [1393.92, 843.227]
-Measurements : [1114.5, 316590, 0.0662469, -1.37404]
----
-Label        : 1
-Position     : [689.976, 844.064]
-Measurements : [1713.82, 213085, -0.192337, -0.0320576]
----
-Label        : 1
-Position     : [664.721, 844.966]
-Measurements : [1639.19, 328917, 0.0605871, -1.04421]
----
-Label        : 1
-Position     : [707.341, 845.123]
-Measurements : [1566.02, 156165, 0.552855, -0.00697981]
----
-Label        : 1
-Position     : [1396.99, 845.125]
-Measurements : [1255.95, 271208, -0.0655448, -0.837552]
----
-Label        : 1
-Position     : [706.142, 845.203]
-Measurements : [1592.19, 147406, 0.544595, 0.237633]
----
-Label        : 1
-Position     : [13.5127, 847.721]
-Measurements : [1584.98, 367069, -0.152733, -1.35335]
----
-Label        : 1
-Position     : [590.132, 847.762]
-Measurements : [1044.98, 643190, 0.355244, -1.64142]
----
-Label        : 1
-Position     : [8.68, 848.856]
-Measurements : [1711.14, 345707, -0.859543, -0.394889]
----
-Label        : 1
-Position     : [110.354, 849.309]
-Measurements : [853.596, 335338, 1.12422, -0.017195]
----
-Label        : 1
-Position     : [595.049, 849.98]
-Measurements : [1348, 508362, -0.109955, -1.45194]
----
-Label        : 1
-Position     : [993.792, 850.122]
-Measurements : [915.718, 401442, 0.637145, -0.859409]
----
-Label        : 1
-Position     : [12.6837, 851.051]
-Measurements : [2003.24, 168964, -1.29156, 1.49374]
----
-Label        : 1
-Position     : [593.112, 851.208]
-Measurements : [1606.55, 308071, -0.57708, -0.623877]
----
-Label        : 1
-Position     : [104.202, 851.349]
-Measurements : [1353.46, 410771, 0.113735, -0.935532]
----
-Label        : 1
-Position     : [11.2482, 852.281]
-Measurements : [2060.85, 120579, -1.17542, 1.54768]
----
-Label        : 1
-Position     : [990.073, 852.401]
-Measurements : [934.613, 391474, 0.823001, -0.501332]
----
-Label        : 1
-Position     : [106.984, 852.44]
-Measurements : [1316.43, 304185, -0.13726, -1.05284]
----
-Label        : 1
-Position     : [421.144, 852.952]
-Measurements : [779.29, 192547, 1.11826, -0.228148]
----
-Label        : 1
-Position     : [420.158, 853.031]
-Measurements : [727.772, 192207, 1.28991, 0.219668]
----
-Label        : 1
-Position     : [993.976, 853.432]
-Measurements : [959.583, 355747, 0.700384, -0.692653]
----
-Label        : 1
-Position     : [90.1196, 854.567]
-Measurements : [1225.8, 242224, -0.00433429, -1.09973]
----
-Label        : 1
-Position     : [403.868, 854.704]
-Measurements : [1012.63, 294462, 1.27885, 0.230693]
----
-Label        : 1
-Position     : [417.957, 855.686]
-Measurements : [592.937, 187145, 1.79708, 1.78397]
----
-Label        : 1
-Position     : [14.312, 856.024]
-Measurements : [1516.56, 502317, -0.10657, -1.62387]
----
-Label        : 1
-Position     : [94.696, 858.072]
-Measurements : [1256.24, 233511, -0.0519922, -1.26718]
----
-Label        : 1
-Position     : [402.712, 858.584]
-Measurements : [1140.94, 365857, 0.646759, -1.17146]
----
-Label        : 1
-Position     : [1088.95, 858.617]
-Measurements : [639.46, 320670, 1.53932, 0.754779]
----
-Label        : 1
-Position     : [9.61627, 858.619]
-Measurements : [1362.01, 538862, 0.0774656, -1.71921]
----
-Label        : 1
-Position     : [407.178, 858.736]
-Measurements : [813.824, 358104, 1.40807, 0.538078]
----
-Label        : 1
-Position     : [86.9959, 859.599]
-Measurements : [1315.49, 208442, -0.100612, -1.31077]
----
-Label        : 1
-Position     : [1350.27, 860.121]
-Measurements : [1360.53, 466743, 0.31565, -1.10715]
----
-Label        : 1
-Position     : [87.528, 861.144]
-Measurements : [1347.13, 190787, -0.0978204, -1.34031]
----
-Label        : 1
-Position     : [398.699, 861.411]
-Measurements : [1127.94, 390716, 0.556052, -1.20021]
----
-Label        : 1
-Position     : [90.8185, 862.803]
-Measurements : [1308.74, 218087, 0.116613, -1.41721]
----
-Label        : 1
-Position     : [84.8054, 863.139]
-Measurements : [1304.88, 270682, -0.0658039, -1.12477]
----
-Label        : 1
-Position     : [1092.28, 863.16]
-Measurements : [1103.4, 429164, 0.566091, -1.0663]
----
-Label        : 1
-Position     : [1351.54, 863.777]
-Measurements : [1657.46, 491844, -0.343795, -1.09062]
----
-Label        : 1
-Position     : [536.344, 864.216]
-Measurements : [1392.48, 504212, 0.0501853, -1.06102]
----
-Label        : 1
-Position     : [539.136, 864.336]
-Measurements : [1301.44, 342270, 0.253072, -0.751042]
----
-Label        : 1
-Position     : [394.52, 865.24]
-Measurements : [813.826, 242964, 1.46898, 1.19216]
----
-Label        : 1
-Position     : [536.249, 865.286]
-Measurements : [1466.3, 423626, 0.0638285, -0.940062]
----
-Label        : 1
-Position     : [1351.97, 865.334]
-Measurements : [1792.51, 366586, -0.637944, -0.320197]
----
-Label        : 1
-Position     : [1352.46, 866.495]
-Measurements : [1969.74, 227778, -0.660137, 0.632833]
----
-Label        : 1
-Position     : [1089.01, 866.649]
-Measurements : [915.721, 348570, 0.910774, -0.729368]
----
-Label        : 1
-Position     : [378.455, 867.208]
-Measurements : [797.688, 131558, 0.693292, -0.00532097]
----
-Label        : 1
-Position     : [390.851, 867.792]
-Measurements : [739.163, 253963, 1.71448, 1.76073]
----
-Label        : 1
-Position     : [1354.82, 868.282]
-Measurements : [2085.98, 96248.3, -0.541486, 0.804039]
----
-Label        : 1
-Position     : [374.459, 869.947]
-Measurements : [601.646, 103520, 1.39887, 1.23019]
----
-Label        : 1
-Position     : [1357.82, 870.712]
-Measurements : [1951.38, 255655, -0.930187, 0.0135338]
----
-Label        : 1
-Position     : [1356.31, 871.223]
-Measurements : [1937.93, 217556, -0.733659, -0.458504]
----
-Label        : 1
-Position     : [378.648, 871.384]
-Measurements : [913.122, 213766, 0.454937, -0.925105]
----
-Label        : 1
-Position     : [1357.28, 874.426]
-Measurements : [1755.66, 243534, -0.137658, -1.21485]
----
-Label        : 1
-Position     : [1359.45, 874.506]
-Measurements : [1714.99, 247016, -0.354065, -0.706264]
----
-Label        : 1
-Position     : [1335.43, 876.67]
-Measurements : [977.106, 190180, 0.805482, -0.0668259]
----
-Label        : 1
-Position     : [1331.47, 878.522]
-Measurements : [1113.42, 217978, 0.398027, -0.938594]
----
-Label        : 1
-Position     : [1360.14, 879.342]
-Measurements : [1504.3, 286266, -0.261859, -0.748138]
----
-Label        : 1
-Position     : [1360.6, 881.598]
-Measurements : [1308.77, 363854, -0.0981414, -1.35151]
----
-Label        : 1
-Position     : [1327.44, 882.36]
-Measurements : [1021.71, 186068, 0.622267, -0.562923]
----
-Label        : 1
-Position     : [1358.69, 884.162]
-Measurements : [1018.02, 366700, 0.663221, -0.834437]
----
-Label        : 1
-Position     : [1323.72, 885.397]
-Measurements : [987.997, 131056, 0.672591, 0.258901]
----
-Label        : 1
-Position     : [1370.23, 887.491]
-Measurements : [1196.16, 483304, 0.395851, -1.30308]
----
-Label        : 1
-Position     : [1321.64, 889.991]
-Measurements : [952.203, 119131, 0.526279, -0.42824]
----
-Label        : 1
-Position     : [1367.11, 891.22]
-Measurements : [1581.9, 379109, -0.371943, -0.742567]
----
-Label        : 1
-Position     : [1370.21, 892.802]
-Measurements : [1749.54, 333167, -0.436785, -0.755464]
----
-Label        : 1
-Position     : [1317.4, 894.677]
-Measurements : [987.684, 163583, 0.974074, 0.672006]
----
-Label        : 1
-Position     : [441.28, 896.605]
-Measurements : [754.039, 266570, 1.07992, -0.415476]
----
-Label        : 1
-Position     : [1338.58, 897.148]
-Measurements : [844.142, 370783, 0.866646, -0.887677]
----
-Label        : 1
-Position     : [310.051, 897.317]
-Measurements : [1642.91, 450312, 0.431277, -1.30074]
----
-Label        : 1
-Position     : [443.73, 897.595]
-Measurements : [970.346, 372047, 0.597941, -0.922058]
----
-Label        : 1
-Position     : [1370.38, 897.774]
-Measurements : [1736.55, 252793, -0.153219, -0.612233]
----
-Label        : 1
-Position     : [1338.95, 899.334]
-Measurements : [929.947, 377326, 0.609126, -1.17868]
----
-Label        : 1
-Position     : [1372.53, 899.488]
-Measurements : [1617.85, 327265, -0.166481, -0.959381]
----
-Label        : 1
-Position     : [311.118, 899.598]
-Measurements : [1694.55, 458203, 0.145349, -1.2514]
----
-Label        : 1
-Position     : [311.576, 900.056]
-Measurements : [1649.26, 509218, 0.147253, -1.31435]
----
-Label        : 1
-Position     : [1340.89, 900.231]
-Measurements : [1210.14, 396268, 0.0399636, -1.22353]
----
-Label        : 1
-Position     : [1365.84, 900.386]
-Measurements : [1347.79, 226145, 0.0430409, -0.888964]
----
-Label        : 1
-Position     : [1370.8, 901.031]
-Measurements : [1654.92, 207509, -0.217958, -0.353529]
----
-Label        : 1
-Position     : [444.184, 901.08]
-Measurements : [1408.5, 249528, 0.00859062, -0.0444654]
----
-Label        : 1
-Position     : [1371.71, 901.885]
-Measurements : [1669.16, 227071, -0.334292, -0.384933]
----
-Label        : 1
-Position     : [1313.45, 902.279]
-Measurements : [1155.08, 263720, 0.734679, -0.573918]
----
-Label        : 1
-Position     : [1344.99, 903.918]
-Measurements : [1664.24, 131069, -0.158953, -0.355933]
----
-Label        : 1
-Position     : [1369.98, 903.918]
-Measurements : [1552.83, 228220, -0.40741, -0.663213]
----
-Label        : 1
-Position     : [1347.3, 904.789]
-Measurements : [1647.86, 194091, -0.571519, 0.058703]
----
-Label        : 1
-Position     : [1312.19, 905.26]
-Measurements : [1214.92, 320095, 0.599268, -0.947832]
----
-Label        : 1
-Position     : [1381.36, 905.843]
-Measurements : [1433.63, 366810, 0.00304647, -1.13223]
----
-Label        : 1
-Position     : [1311.4, 906.375]
-Measurements : [1288.25, 352475, 0.512827, -1.00289]
----
-Label        : 1
-Position     : [1317.99, 906.767]
-Measurements : [802.219, 244578, 1.82594, 2.25175]
----
-Label        : 1
-Position     : [1377.76, 907.194]
-Measurements : [1812.67, 202106, -0.490066, -0.456009]
----
-Label        : 1
-Position     : [1344.2, 908.08]
-Measurements : [1801.69, 247778, -0.207808, -0.247204]
----
-Label        : 1
-Position     : [1309.77, 909.028]
-Measurements : [1503.32, 365710, 0.132882, -1.26226]
----
-Label        : 1
-Position     : [1304.98, 909.298]
-Measurements : [1114.62, 257036, 1.48359, 0.992389]
----
-Label        : 1
-Position     : [1349.09, 909.652]
-Measurements : [1808.35, 187628, 0.409092, -0.203753]
----
-Label        : 1
-Position     : [1314.06, 910.128]
-Measurements : [1241.28, 552366, 0.560998, -1.12998]
----
-Label        : 1
-Position     : [278.78, 910.639]
-Measurements : [1052.43, 198290, 0.709195, -0.44075]
----
-Label        : 1
-Position     : [1377.47, 910.662]
-Measurements : [1805.52, 205937, -0.4432, -0.489332]
----
-Label        : 1
-Position     : [1310.99, 910.881]
-Measurements : [1555.26, 428401, 0.0515261, -1.12426]
----
-Label        : 1
-Position     : [1344.38, 911.067]
-Measurements : [1705.3, 348722, -0.280617, -0.572913]
----
-Label        : 1
-Position     : [1355.08, 911.266]
-Measurements : [1334.08, 178895, 0.38702, -0.0808079]
----
-Label        : 1
-Position     : [1308.34, 912.263]
-Measurements : [1651.1, 417759, -0.106689, -1.06493]
----
-Label        : 1
-Position     : [1380.88, 912.322]
-Measurements : [1863.7, 217354, 0.09701, -0.801904]
----
-Label        : 1
-Position     : [1313.28, 912.39]
-Measurements : [1374.87, 603493, 0.303465, -1.39198]
----
-Label        : 1
-Position     : [1379.81, 912.929]
-Measurements : [1826.95, 207047, -0.0182558, -0.835847]
----
-Label        : 1
-Position     : [1315.99, 912.974]
-Measurements : [1089.22, 523414, 0.905834, -0.723987]
----
-Label        : 1
-Position     : [1345.1, 913.112]
-Measurements : [1656.43, 375478, -0.134821, -0.708498]
----
-Label        : 1
-Position     : [1309.8, 913.827]
-Measurements : [1653.29, 424036, -0.168739, -0.998167]
----
-Label        : 1
-Position     : [1378.64, 914.07]
-Measurements : [1754.65, 315330, -0.149315, -0.606496]
----
-Label        : 1
-Position     : [1347.47, 914.105]
-Measurements : [1662.43, 324659, 0.123628, -0.606828]
----
-Label        : 1
-Position     : [1307.72, 914.158]
-Measurements : [1562.79, 476833, 0.0181253, -1.19859]
----
-Label        : 1
-Position     : [279.009, 914.3]
-Measurements : [1366.56, 388548, 0.0890594, -0.935212]
----
-Label        : 1
-Position     : [282.6, 915.312]
-Measurements : [1487.31, 361021, -0.119785, -0.958643]
----
-Label        : 1
-Position     : [1350.72, 916.206]
-Measurements : [1543.63, 247092, 0.268943, 0.293164]
----
-Label        : 1
-Position     : [1304.13, 916.83]
-Measurements : [1185.31, 464956, 0.684796, -0.723125]
----
-Label        : 1
-Position     : [1384.22, 917.527]
-Measurements : [2022.49, 317242, -0.743431, 0.0562226]
----
-Label        : 1
-Position     : [1380.29, 917.839]
-Measurements : [1892.03, 310838, -0.269586, -0.727556]
----
-Label        : 1
-Position     : [9.704, 917.872]
-Measurements : [1677.17, 344801, -0.0800956, -0.979602]
----
-Label        : 1
-Position     : [1306.08, 918.254]
-Measurements : [1153.55, 579639, 0.70006, -0.88961]
----
-Label        : 1
-Position     : [1382.67, 918.254]
-Measurements : [2033.86, 258517, -0.378087, -0.504246]
----
-Label        : 1
-Position     : [254.44, 918.896]
-Measurements : [981.842, 225045, 1.12517, 0.722067]
----
-Label        : 1
-Position     : [1357.82, 919.479]
-Measurements : [1411.59, 169269, 0.291539, -0.443166]
----
-Label        : 1
-Position     : [14.2546, 919.735]
-Measurements : [1422.03, 435005, 0.445337, -1.21085]
----
-Label        : 1
-Position     : [258.811, 920.619]
-Measurements : [755.978, 264977, 1.76497, 2.00019]
----
-Label        : 1
-Position     : [13.3561, 920.786]
-Measurements : [1410.39, 378258, 0.446486, -1.14964]
----
-Label        : 1
-Position     : [396.701, 921.349]
-Measurements : [851.464, 159996, 0.111258, -1.57735]
----
-Label        : 1
-Position     : [1386.77, 921.53]
-Measurements : [1922.41, 233572, -0.216135, -0.277221]
----
-Label        : 1
-Position     : [250.275, 922.04]
-Measurements : [749.487, 219285, 1.70187, 2.12975]
----
-Label        : 1
-Position     : [1388.03, 923.141]
-Measurements : [1829.97, 211304, -0.81067, 0.407732]
----
-Label        : 1
-Position     : [396.742, 923.556]
-Measurements : [975.906, 122734, -0.467624, -1.0378]
----
-Label        : 1
-Position     : [1358.51, 923.596]
-Measurements : [1653.38, 168150, -0.316608, -0.74935]
----
-Label        : 1
-Position     : [1382.68, 923.698]
-Measurements : [1621.07, 399783, -0.189171, -0.914576]
----
-Label        : 1
-Position     : [229.496, 924.766]
-Measurements : [1467.21, 151784, 0.642844, 0.124609]
----
-Label        : 1
-Position     : [11.752, 926.064]
-Measurements : [1088.83, 195833, 0.53577, -0.345884]
----
-Label        : 1
-Position     : [399.622, 926.262]
-Measurements : [1108.24, 36530.4, -0.225094, 1.15346]
----
-Label        : 1
-Position     : [1362.37, 926.38]
-Measurements : [1777.85, 323361, -0.187217, -0.537177]
----
-Label        : 1
-Position     : [11.9413, 926.939]
-Measurements : [1088.83, 195833, 0.53577, -0.345884]
----
-Label        : 1
-Position     : [1360.68, 926.962]
-Measurements : [1885.33, 225604, -0.252562, 0.534732]
----
-Label        : 1
-Position     : [1391.23, 928.576]
-Measurements : [1614.94, 223249, -0.809094, -0.155135]
----
-Label        : 1
-Position     : [233.448, 928.624]
-Measurements : [1379.28, 368824, 0.168835, -0.869992]
----
-Label        : 1
-Position     : [1388.41, 928.903]
-Measurements : [1734.74, 137741, -0.727034, 0.556726]
----
-Label        : 1
-Position     : [387.983, 929.422]
-Measurements : [1005.45, 195362, 0.856133, 0.591008]
----
-Label        : 1
-Position     : [383.225, 929.7]
-Measurements : [1030.51, 271277, 0.571568, -0.601491]
----
-Label        : 1
-Position     : [15.453, 930.93]
-Measurements : [597.419, 50386.3, 1.79512, 2.64196]
----
-Label        : 1
-Position     : [1385.97, 930.933]
-Measurements : [1451.7, 250329, -0.40493, -0.896998]
----
-Label        : 1
-Position     : [1297.31, 930.943]
-Measurements : [1085.54, 297588, 0.51451, -0.775278]
----
-Label        : 1
-Position     : [1359.33, 930.969]
-Measurements : [2006.63, 187830, 0.129712, -0.113602]
----
-Label        : 1
-Position     : [383.201, 931.922]
-Measurements : [1073.06, 230781, 0.71069, -0.323576]
----
-Label        : 1
-Position     : [1298.97, 932.232]
-Measurements : [1287.64, 316610, 0.190588, -1.00842]
----
-Label        : 1
-Position     : [1392.48, 932.37]
-Measurements : [1624.03, 205862, -0.994572, 0.209212]
----
-Label        : 1
-Position     : [231.717, 933.143]
-Measurements : [788.692, 261960, 1.41576, 0.912168]
----
-Label        : 1
-Position     : [1392.09, 933.409]
-Measurements : [1553.88, 228873, -0.832886, -0.297996]
----
-Label        : 1
-Position     : [1299.93, 933.836]
-Measurements : [1336.81, 307293, 0.193923, -1.00883]
----
-Label        : 1
-Position     : [1364.15, 934.026]
-Measurements : [1727.94, 239776, 0.582757, 0.0616711]
----
-Label        : 1
-Position     : [1358.67, 935.089]
-Measurements : [1746.49, 301812, 0.425325, -0.322816]
----
-Label        : 1
-Position     : [1363.01, 936.294]
-Measurements : [1740.47, 206841, 0.742914, 0.547904]
----
-Label        : 1
-Position     : [1367.89, 936.402]
-Measurements : [1474.94, 214456, 0.291324, -0.240963]
----
-Label        : 1
-Position     : [1364.93, 936.909]
-Measurements : [1681.28, 189985, 0.793199, 0.552424]
----
-Label        : 1
-Position     : [1295.84, 937.113]
-Measurements : [1744.59, 254166, -0.655035, -0.0659341]
----
-Label        : 1
-Position     : [238.568, 937.328]
-Measurements : [1752.95, 727925, -0.113518, -1.42252]
----
-Label        : 1
-Position     : [1395.21, 937.415]
-Measurements : [960.416, 374398, 0.723517, -1.18658]
----
-Label        : 1
-Position     : [1292.5, 937.881]
-Measurements : [1576.62, 342358, -0.162155, -1.15955]
----
-Label        : 1
-Position     : [1296.9, 937.911]
-Measurements : [1757.45, 240680, -0.642067, -0.0605149]
----
-Label        : 1
-Position     : [1291.66, 939.699]
-Measurements : [1655.87, 350009, -0.244849, -1.13558]
----
-Label        : 1
-Position     : [241.941, 940.249]
-Measurements : [1421.3, 1.00111e+06, 0.39758, -1.49566]
----
-Label        : 1
-Position     : [1297.07, 940.39]
-Measurements : [1764.71, 371315, -0.408776, -0.837409]
----
-Label        : 1
-Position     : [1290.94, 940.608]
-Measurements : [1631.15, 359476, 0.051328, -1.16273]
----
-Label        : 1
-Position     : [235.818, 940.667]
-Measurements : [1632.58, 957543, -0.0286218, -1.57044]
----
-Label        : 1
-Position     : [1293.96, 941.008]
-Measurements : [1935.94, 255872, -0.38041, -0.147309]
----
-Label        : 1
-Position     : [1366.7, 941.209]
-Measurements : [1621, 164736, 0.254338, -0.470992]
----
-Label        : 1
-Position     : [1368.61, 944.387]
-Measurements : [1918.95, 264503, -0.491088, -0.661444]
----
-Label        : 1
-Position     : [1292.15, 944.486]
-Measurements : [1936.13, 239531, -0.431684, 0.297378]
----
-Label        : 1
-Position     : [208.076, 945.005]
-Measurements : [1776.23, 544390, -0.392976, -1.29132]
----
-Label        : 1
-Position     : [207.848, 946.032]
-Measurements : [1730.32, 584975, -0.313938, -1.3991]
----
-Label        : 1
-Position     : [1369.11, 946.276]
-Measurements : [2064.8, 199610, -0.540836, -0.163299]
----
-Label        : 1
-Position     : [1296.95, 946.402]
-Measurements : [1611.98, 575976, -0.136454, -1.35887]
----
-Label        : 1
-Position     : [203.292, 947]
-Measurements : [1529.59, 464873, 0.166712, -1.19976]
----
-Label        : 1
-Position     : [1369.16, 947.353]
-Measurements : [2093.44, 168690, -0.366583, -0.451855]
----
-Label        : 1
-Position     : [195.048, 947.568]
-Measurements : [1291.4, 320011, 0.34542, -0.736432]
----
-Label        : 1
-Position     : [1371.11, 947.7]
-Measurements : [1976.45, 191598, -0.399862, -0.502816]
----
-Label        : 1
-Position     : [1290.92, 948.582]
-Measurements : [1703.03, 435514, -0.361576, -0.8701]
----
-Label        : 1
-Position     : [196.05, 950.246]
-Measurements : [1044.09, 406448, 0.725438, -0.619105]
----
-Label        : 1
-Position     : [1295.56, 950.571]
-Measurements : [1245.72, 645404, 0.651453, -1.13169]
----
-Label        : 1
-Position     : [1372.97, 951.201]
-Measurements : [1922.69, 219277, -0.27453, -0.934681]
----
-Label        : 1
-Position     : [1372.43, 951.858]
-Measurements : [1922.69, 219277, -0.27453, -0.934681]
----
-Label        : 1
-Position     : [191.506, 951.889]
-Measurements : [878.1, 319047, 1.26602, 0.503631]
----
-Label        : 1
-Position     : [1287.53, 952.088]
-Measurements : [1048.82, 407059, 0.767239, -0.977461]
----
-Label        : 1
-Position     : [1376.4, 954.064]
-Measurements : [1582.31, 246184, 0.125043, -0.313266]
----
-Label        : 1
-Position     : [888.663, 954.188]
-Measurements : [1159.73, 23273.9, -1.05327, 2.42529]
----
-Label        : 1
-Position     : [841.554, 954.816]
-Measurements : [979.789, 365070, 0.734822, -1.08396]
----
-Label        : 1
-Position     : [840.209, 956.297]
-Measurements : [1253.09, 441696, 0.242059, -1.40154]
----
-Label        : 1
-Position     : [885.606, 956.63]
-Measurements : [1239.21, 116137, 1.15831, 2.26557]
----
-Label        : 1
-Position     : [839.67, 957.321]
-Measurements : [1475.47, 409509, -0.0776988, -1.14681]
----
-Label        : 1
-Position     : [1374.89, 957.593]
-Measurements : [1540.92, 273953, 0.168189, -0.634327]
----
-Label        : 1
-Position     : [839.73, 957.858]
-Measurements : [1475.47, 409509, -0.0776988, -1.14681]
----
-Label        : 1
-Position     : [883.191, 958.106]
-Measurements : [1226.58, 281657, 0.36399, -0.120447]
----
-Label        : 1
-Position     : [1287.83, 958.414]
-Measurements : [1188.42, 392427, 0.451114, -1.15636]
----
-Label        : 1
-Position     : [1285.41, 958.77]
-Measurements : [1244.06, 390274, 0.293909, -1.26782]
----
-Label        : 1
-Position     : [1379.02, 958.919]
-Measurements : [1452.55, 212764, -0.0662891, -0.542317]
----
-Label        : 1
-Position     : [887.32, 959.206]
-Measurements : [1289.12, 175148, 1.253, 1.39717]
----
-Label        : 1
-Position     : [178.678, 959.246]
-Measurements : [727.864, 115788, 0.698264, -0.893239]
----
-Label        : 1
-Position     : [834.72, 959.368]
-Measurements : [1473.53, 282455, 0.17718, -0.792214]
----
-Label        : 1
-Position     : [281.167, 959.472]
-Measurements : [1384.4, 574360, 0.148977, -1.39461]
----
-Label        : 1
-Position     : [1287.24, 960.05]
-Measurements : [1363.4, 399184, 0.197987, -1.29322]
----
-Label        : 1
-Position     : [180.867, 960.145]
-Measurements : [811.565, 147067, 0.572313, -0.79385]
----
-Label        : 1
-Position     : [1375.51, 960.314]
-Measurements : [1477.23, 297461, 0.16776, -0.117573]
----
-Label        : 1
-Position     : [836.454, 960.316]
-Measurements : [1604.09, 255789, 0.0548937, -0.684292]
----
-Label        : 1
-Position     : [883.967, 960.726]
-Measurements : [1184.06, 320393, 0.364136, -0.490117]
----
-Label        : 1
-Position     : [1372.55, 960.819]
-Measurements : [1213.1, 317284, 0.225814, -0.76732]
----
-Label        : 1
-Position     : [181.736, 960.88]
-Measurements : [821.101, 138823, 0.610745, -0.6679]
----
-Label        : 1
-Position     : [287.251, 961.625]
-Measurements : [1045.38, 721053, 0.987592, -0.6074]
----
-Label        : 1
-Position     : [839.617, 962.3]
-Measurements : [1505.98, 347870, -0.10427, -0.87655]
----
-Label        : 1
-Position     : [880.215, 962.714]
-Measurements : [917.971, 314032, 0.904646, -0.121773]
----
-Label        : 1
-Position     : [1377.76, 962.918]
-Measurements : [1717.5, 287861, -0.0890835, -0.53074]
----
-Label        : 1
-Position     : [897.49, 963.068]
-Measurements : [992.493, 123270, 0.677473, 0.387253]
----
-Label        : 1
-Position     : [1282.73, 963.327]
-Measurements : [1352.54, 433273, -0.0321354, -1.3333]
----
-Label        : 1
-Position     : [283.624, 963.44]
-Measurements : [1629.07, 593929, -0.104435, -1.32794]
----
-Label        : 1
-Position     : [1289.06, 964.131]
-Measurements : [1147.7, 498800, 0.581777, -1.20601]
----
-Label        : 1
-Position     : [1382.68, 964.62]
-Measurements : [1762.07, 247023, -0.242182, -0.021285]
----
-Label        : 1
-Position     : [281.159, 964.684]
-Measurements : [1806.79, 393250, -0.267757, -0.7197]
----
-Label        : 1
-Position     : [885.074, 965.368]
-Measurements : [1194.36, 303639, 0.605657, -0.551981]
----
-Label        : 1
-Position     : [267.288, 965.647]
-Measurements : [1212.79, 606103, 0.615202, -1.18908]
----
-Label        : 1
-Position     : [1385.18, 966.271]
-Measurements : [1618.88, 280590, -0.349398, -0.812694]
----
-Label        : 1
-Position     : [834.815, 966.46]
-Measurements : [1318.66, 255139, 0.780854, 0.11283]
----
-Label        : 1
-Position     : [906.39, 966.591]
-Measurements : [927.715, 215368, 0.761438, -0.607984]
----
-Label        : 1
-Position     : [279.652, 966.659]
-Measurements : [1697.84, 399210, 0.00594428, -0.716991]
----
-Label        : 1
-Position     : [1280.94, 966.849]
-Measurements : [1116.31, 445566, 0.535014, -1.16033]
----
-Label        : 1
-Position     : [1380.52, 967.415]
-Measurements : [1941.89, 153684, -0.157177, 0.0782797]
----
-Label        : 1
-Position     : [901.58, 967.689]
-Measurements : [1237.3, 315334, -0.00845597, -1.41541]
----
-Label        : 1
-Position     : [277.992, 968.56]
-Measurements : [1393.87, 376511, 0.354448, -0.664421]
----
-Label        : 1
-Position     : [881.1, 968.918]
-Measurements : [990.499, 202267, 0.648434, -0.236861]
----
-Label        : 1
-Position     : [834.601, 968.95]
-Measurements : [1321.05, 194508, 0.335078, -0.528258]
----
-Label        : 1
-Position     : [1381.85, 969.062]
-Measurements : [1861.88, 218240, -0.470967, 0.388907]
----
-Label        : 1
-Position     : [832.242, 969.803]
-Measurements : [1405.66, 195558, 0.164312, -0.749677]
----
-Label        : 1
-Position     : [1390.21, 969.824]
-Measurements : [1251.35, 199288, 0.139184, -0.902565]
----
-Label        : 1
-Position     : [881.902, 969.851]
-Measurements : [993.101, 152971, 0.309769, -0.891556]
----
-Label        : 1
-Position     : [1279.41, 970.221]
-Measurements : [1112.48, 367915, 0.449666, -1.15283]
----
-Label        : 1
-Position     : [266.216, 970.608]
-Measurements : [1597.04, 574038, -0.0380824, -1.50985]
----
-Label        : 1
-Position     : [1381.49, 970.79]
-Measurements : [1810.97, 259356, -0.737676, 0.505784]
----
-Label        : 1
-Position     : [834.041, 970.855]
-Measurements : [1349.53, 218768, 0.114165, -0.795617]
----
-Label        : 1
-Position     : [832.358, 971.375]
-Measurements : [1525.59, 227676, -0.0261145, -0.698119]
----
-Label        : 1
-Position     : [899.122, 971.785]
-Measurements : [1452.86, 159947, -0.238656, -0.489898]
----
-Label        : 1
-Position     : [829.576, 972.77]
-Measurements : [1547.52, 250192, 0.311495, -0.308267]
----
-Label        : 1
-Position     : [1282.32, 973.977]
-Measurements : [1526.38, 469876, -0.0336208, -0.84676]
----
-Label        : 1
-Position     : [896.581, 974.116]
-Measurements : [1309.6, 196984, 0.247839, -0.938235]
----
-Label        : 1
-Position     : [1385.54, 974.386]
-Measurements : [1645.3, 162172, -0.0592037, -0.591863]
----
-Label        : 1
-Position     : [270.791, 974.484]
-Measurements : [1152.94, 508081, 0.989463, -0.385044]
----
-Label        : 1
-Position     : [253.969, 974.856]
-Measurements : [1318.6, 512263, 0.413012, -1.39054]
----
-Label        : 1
-Position     : [831.129, 975.062]
-Measurements : [1679.04, 241175, 0.0265257, -0.246265]
----
-Label        : 1
-Position     : [897.535, 976.112]
-Measurements : [1358.78, 196563, 0.12645, -0.830182]
----
-Label        : 1
-Position     : [901.227, 976.191]
-Measurements : [1295.93, 264711, -0.0760443, -0.968626]
----
-Label        : 1
-Position     : [877.004, 976.29]
-Measurements : [1116.66, 225062, 0.377058, -0.670743]
----
-Label        : 1
-Position     : [826.286, 976.862]
-Measurements : [1351.26, 220933, 0.177212, -0.944346]
----
-Label        : 1
-Position     : [1284.15, 977.551]
-Measurements : [1821.92, 280682, 0.200975, -0.625485]
----
-Label        : 1
-Position     : [248.008, 978.166]
-Measurements : [1499.06, 699766, -0.0514878, -1.65725]
----
-Label        : 1
-Position     : [251.88, 978.288]
-Measurements : [1656.71, 488833, -0.117968, -1.45545]
----
-Label        : 1
-Position     : [876.193, 978.927]
-Measurements : [1149.59, 303422, 0.32204, -1.08348]
----
-Label        : 1
-Position     : [881.111, 979.819]
-Measurements : [1152.07, 218253, 1.06564, 0.74056]
----
-Label        : 1
-Position     : [897.484, 979.977]
-Measurements : [1162.16, 247030, 0.114829, -1.09992]
----
-Label        : 1
-Position     : [1386.36, 980.121]
-Measurements : [1369.07, 133664, 0.511641, 0.451447]
----
-Label        : 1
-Position     : [827.852, 980.386]
-Measurements : [1476.57, 191894, 0.0869782, -0.389603]
----
-Label        : 1
-Position     : [897.272, 980.399]
-Measurements : [1101.28, 259293, 0.35185, -1.09649]
----
-Label        : 1
-Position     : [955.127, 980.592]
-Measurements : [1214.9, 107748, 0.988645, 1.16339]
----
-Label        : 1
-Position     : [1281.46, 981.162]
-Measurements : [1485.92, 231315, 0.493536, 0.599135]
----
-Label        : 1
-Position     : [1392.4, 981.27]
-Measurements : [1260.96, 204932, 0.415416, 0.168656]
----
-Label        : 1
-Position     : [828.196, 981.294]
-Measurements : [1546.73, 213615, 0.311081, -0.251995]
----
-Label        : 1
-Position     : [1280.27, 981.759]
-Measurements : [1411.94, 194601, 0.310734, 0.383798]
----
-Label        : 1
-Position     : [1284.51, 982.712]
-Measurements : [1447.79, 338113, 0.547702, 0.110556]
----
-Label        : 1
-Position     : [1385.26, 983.696]
-Measurements : [1180.72, 177156, 0.0379326, -0.378221]
----
-Label        : 1
-Position     : [955.177, 983.774]
-Measurements : [1075.65, 180390, 0.709784, -0.102524]
----
-Label        : 1
-Position     : [829.41, 983.858]
-Measurements : [1389.14, 227555, -0.177149, -0.992502]
----
-Label        : 1
-Position     : [875.366, 984.073]
-Measurements : [1417.13, 539295, 0.154007, -1.31158]
----
-Label        : 1
-Position     : [897.658, 984.445]
-Measurements : [1169.97, 385368, 0.303398, -1.46837]
----
-Label        : 1
-Position     : [1384.29, 984.45]
-Measurements : [1051.99, 197370, 0.288829, -0.769384]
----
-Label        : 1
-Position     : [1392.5, 984.626]
-Measurements : [1346.61, 203993, 0.329467, -0.366172]
----
-Label        : 1
-Position     : [953.055, 984.735]
-Measurements : [1021.22, 203614, 0.831625, -0.242744]
----
-Label        : 1
-Position     : [820.918, 984.776]
-Measurements : [987.366, 151414, 0.459284, -0.507995]
----
-Label        : 1
-Position     : [831.953, 985.012]
-Measurements : [1129.68, 334292, 0.341506, -1.41518]
----
-Label        : 1
-Position     : [1400.35, 985.37]
-Measurements : [1050.77, 156916, 0.13651, -1.14777]
----
-Label        : 1
-Position     : [825.394, 985.711]
-Measurements : [1158.59, 302558, 0.171643, -1.38353]
----
-Label        : 1
-Position     : [1390.67, 986.844]
-Measurements : [1335.72, 231852, 0.10142, -0.421343]
----
-Label        : 1
-Position     : [874.373, 986.901]
-Measurements : [1497.22, 455005, 0.125584, -1.17985]
----
-Label        : 1
-Position     : [235.056, 987.666]
-Measurements : [823.383, 260125, 1.37442, 0.455146]
----
-Label        : 1
-Position     : [928.821, 987.682]
-Measurements : [864.292, 283639, 1.0375, -0.290745]
----
-Label        : 1
-Position     : [875.401, 988.633]
-Measurements : [1458.98, 484773, 0.172421, -1.21011]
----
-Label        : 1
-Position     : [876.574, 988.663]
-Measurements : [1443.8, 471873, 0.304372, -1.19915]
----
-Label        : 1
-Position     : [892.875, 988.736]
-Measurements : [1313.69, 352399, 0.0736347, -1.20572]
----
-Label        : 1
-Position     : [873.727, 988.988]
-Measurements : [1417.67, 548627, 0.119971, -1.31317]
----
-Label        : 1
-Position     : [895.436, 988.988]
-Measurements : [1323.42, 403326, -0.0106431, -1.40192]
----
-Label        : 1
-Position     : [1400.65, 988.995]
-Measurements : [1094.77, 157604, 0.125781, -1.12968]
----
-Label        : 1
-Position     : [1275.77, 989.542]
-Measurements : [957.331, 78178.5, 0.979546, 0.153178]
----
-Label        : 1
-Position     : [931.077, 989.802]
-Measurements : [976.837, 240082, 0.840538, -0.420916]
----
-Label        : 1
-Position     : [931.071, 989.807]
-Measurements : [976.837, 240082, 0.840538, -0.420916]
----
-Label        : 1
-Position     : [950.401, 990.117]
-Measurements : [1090.42, 340565, 0.620222, -1.06339]
----
-Label        : 1
-Position     : [1395.78, 990.361]
-Measurements : [1336.31, 173508, 0.508083, -0.226791]
----
-Label        : 1
-Position     : [823.788, 990.474]
-Measurements : [947.459, 263002, 0.662846, -0.981008]
----
-Label        : 1
-Position     : [877.057, 991.052]
-Measurements : [1147.23, 351626, 0.910869, -0.253719]
----
-Label        : 1
-Position     : [894.207, 991.446]
-Measurements : [1506.11, 233771, -0.0437177, -0.863989]
----
-Label        : 1
-Position     : [1271.75, 991.563]
-Measurements : [1068.1, 111909, 0.507661, -0.757213]
----
-Label        : 1
-Position     : [337.038, 991.959]
-Measurements : [1843.31, 597338, -0.380222, -1.28537]
----
-Label        : 1
-Position     : [234.472, 992.112]
-Measurements : [1199.61, 359850, 0.665756, -0.847942]
----
-Label        : 1
-Position     : [927.804, 992.513]
-Measurements : [905.049, 259122, 0.880369, -0.410013]
----
-Label        : 1
-Position     : [953.538, 992.785]
-Measurements : [1000.68, 358701, 0.877751, -0.825523]
----
-Label        : 1
-Position     : [890.335, 992.952]
-Measurements : [1244.63, 203391, 0.478306, -0.77062]
----
-Label        : 1
-Position     : [336.288, 993.472]
-Measurements : [1966.99, 667634, -0.431387, -1.31037]
----
-Label        : 1
-Position     : [228.84, 993.648]
-Measurements : [888.157, 219491, 0.977918, 0.430083]
----
-Label        : 1
-Position     : [338.687, 993.799]
-Measurements : [1777.53, 868985, -0.192584, -1.643]
----
-Label        : 1
-Position     : [1273.19, 993.931]
-Measurements : [1297.16, 227104, 0.700475, -0.527313]
----
-Label        : 1
-Position     : [1275.78, 994.132]
-Measurements : [1424.22, 238687, 0.447421, -0.910747]
----
-Label        : 1
-Position     : [822.937, 994.722]
-Measurements : [1076.47, 241128, 0.311301, -1.01506]
----
-Label        : 1
-Position     : [894.384, 995.16]
-Measurements : [1165.59, 344817, 0.441789, -1.02893]
----
-Label        : 1
-Position     : [899.112, 995.171]
-Measurements : [874.958, 377127, 1.30061, 0.185286]
----
-Label        : 1
-Position     : [236.654, 995.231]
-Measurements : [1108.41, 333085, 1.03938, -0.106948]
----
-Label        : 1
-Position     : [890.93, 995.542]
-Measurements : [1033.65, 241372, 0.688002, -0.503646]
----
-Label        : 1
-Position     : [891.275, 995.774]
-Measurements : [1090.8, 285980, 0.641451, -0.636577]
----
-Label        : 1
-Position     : [231.86, 996.209]
-Measurements : [1120.07, 309761, 1.00491, 0.103579]
----
-Label        : 1
-Position     : [1271.67, 996.505]
-Measurements : [1435.34, 134651, 0.466114, -0.459477]
----
-Label        : 1
-Position     : [950.422, 996.827]
-Measurements : [896.464, 380539, 1.05439, -0.539485]
----
-Label        : 1
-Position     : [224.103, 996.846]
-Measurements : [647.548, 91030.6, 0.941581, -0.386955]
----
-Label        : 1
-Position     : [931.881, 996.897]
-Measurements : [1069.97, 301124, 0.975649, 0.108209]
----
-Label        : 1
-Position     : [929.433, 997.18]
-Measurements : [1190.73, 388327, 0.616594, -0.605661]
----
-Label        : 1
-Position     : [1269.47, 998.164]
-Measurements : [1441.64, 93522.6, 0.56024, -0.13933]
----
-Label        : 1
-Position     : [923.878, 998.225]
-Measurements : [948.878, 366884, 0.777027, -0.704832]
----
-Label        : 1
-Position     : [1022.12, 999.198]
-Measurements : [1219.98, 493217, 0.551643, -1.08479]
----
-Label        : 1
-Position     : [213.992, 999.28]
-Measurements : [1030.47, 342705, 0.50527, -1.21772]
----
-Label        : 1
-Position     : [1392.66, 999.361]
-Measurements : [987.046, 257082, 0.705102, -0.484276]
----
-Label        : 1
-Position     : [995.609, 999.441]
-Measurements : [1377.52, 500426, 0.492417, -1.0831]
----
-Label        : 1
-Position     : [824.318, 999.503]
-Measurements : [1141.09, 178572, 0.568994, -0.35397]
----
-Label        : 1
-Position     : [1394.14, 1000.19]
-Measurements : [1184.25, 301255, 0.41854, -0.942255]
----
-Label        : 1
-Position     : [1392.1, 1000.64]
-Measurements : [984.914, 275909, 0.697065, -0.681816]
----
-Label        : 1
-Position     : [886.747, 1000.76]
-Measurements : [1089.03, 408982, 0.974528, -0.390945]
----
-Label        : 1
-Position     : [926.975, 1000.87]
-Measurements : [1275.47, 390118, 0.353751, -0.819639]
----
-Label        : 1
-Position     : [1267.72, 1000.92]
-Measurements : [1410.81, 161462, 0.262529, -0.405459]
----
-Label        : 1
-Position     : [1015.1, 1001.07]
-Measurements : [1273.03, 279041, 0.329967, -0.609171]
----
-Label        : 1
-Position     : [888.128, 1001.33]
-Measurements : [1127.05, 486644, 0.726622, -1.00996]
----
-Label        : 1
-Position     : [1019.48, 1001.39]
-Measurements : [1442.73, 360975, 0.00625498, -0.806646]
----
-Label        : 1
-Position     : [216.181, 1001.43]
-Measurements : [1105.2, 314518, 0.451184, -1.31583]
----
-Label        : 1
-Position     : [926.778, 1001.76]
-Measurements : [1284.46, 379248, 0.369351, -0.787604]
----
-Label        : 1
-Position     : [869.934, 1002.46]
-Measurements : [1390.57, 575316, 0.1615, -1.34199]
----
-Label        : 1
-Position     : [217.249, 1002.78]
-Measurements : [1067.01, 328301, 0.513509, -1.24531]
----
-Label        : 1
-Position     : [992.86, 1003.43]
-Measurements : [1779.6, 399661, -0.564617, -0.692851]
----
-Label        : 1
-Position     : [870.077, 1003.45]
-Measurements : [1440.52, 504865, 0.209036, -1.25108]
----
-Label        : 1
-Position     : [1269.21, 1003.88]
-Measurements : [1459.03, 128136, 0.663002, -0.357936]
----
-Label        : 0
-Position     : [282.567, 1003.91]
-Measurements : [1252.8, 25843.1, -0.0383469, 0.362406]
----
-Label        : 1
-Position     : [703.424, 1004.03]
-Measurements : [1048.61, 243968, 0.763644, -0.436417]
----
-Label        : 1
-Position     : [709.977, 1004.48]
-Measurements : [1061.13, 206013, 0.896454, 0.163068]
----
-Label        : 1
-Position     : [888.882, 1004.55]
-Measurements : [1141.59, 522293, 0.615074, -1.24156]
----
-Label        : 1
-Position     : [867.877, 1004.69]
-Measurements : [1655.86, 395553, -0.341958, -0.729228]
----
-Label        : 1
-Position     : [868.94, 1004.78]
-Measurements : [1633.78, 403401, -0.217203, -0.946224]
----
-Label        : 1
-Position     : [699.718, 1005.26]
-Measurements : [1138.25, 139985, 0.205838, -0.342353]
----
-Label        : 1
-Position     : [991.52, 1005.97]
-Measurements : [1882.88, 257856, -0.595033, -0.113627]
----
-Label        : 1
-Position     : [870.117, 1006.2]
-Measurements : [1621.85, 380527, 0.147772, -1.32299]
----
-Label        : 1
-Position     : [696.433, 1006.28]
-Measurements : [1140.91, 203703, 1.55049, 4.04098]
----
-Label        : 1
-Position     : [816.972, 1006.32]
-Measurements : [817.865, 171304, 0.782614, -0.658862]
----
-Label        : 1
-Position     : [995.586, 1006.45]
-Measurements : [1817.98, 382625, -0.518557, -0.947025]
----
-Label        : 1
-Position     : [867.066, 1006.56]
-Measurements : [1794.13, 276251, -0.372612, -0.366228]
----
-Label        : 1
-Position     : [712.407, 1006.69]
-Measurements : [1010.34, 158028, 0.929452, 0.548854]
----
-Label        : 1
-Position     : [696.714, 1006.9]
-Measurements : [1140.91, 203703, 1.55049, 4.04098]
----
-Label        : 1
-Position     : [946.753, 1006.9]
-Measurements : [1082.25, 462942, 0.647338, -1.08076]
----
-Label        : 1
-Position     : [710.077, 1007.22]
-Measurements : [1227.13, 301506, 0.866963, -0.1058]
----
-Label        : 1
-Position     : [1019.48, 1007.53]
-Measurements : [1693.31, 251576, -0.0321073, -0.569145]
----
-Label        : 1
-Position     : [693.992, 1007.61]
-Measurements : [1565.98, 376726, 0.746471, -0.134896]
----
-Label        : 1
-Position     : [924.927, 1007.83]
-Measurements : [1200.83, 331153, 0.368665, -0.861583]
----
-Label        : 1
-Position     : [704.215, 1007.92]
-Measurements : [1282.04, 377201, 0.612415, -0.585596]
----
-Label        : 1
-Position     : [947.394, 1007.94]
-Measurements : [1187.06, 489086, 0.440758, -1.25083]
----
-Label        : 1
-Position     : [1265.95, 1008.18]
-Measurements : [1211.42, 202578, 0.746548, 0.0767465]
----
-Label        : 1
-Position     : [992.45, 1008.35]
-Measurements : [1838.33, 274682, -0.375355, -0.516956]
----
-Label        : 1
-Position     : [1273.46, 1008.42]
-Measurements : [1608.58, 302901, -0.015788, -1.12544]
----
-Label        : 1
-Position     : [824.096, 1008.47]
-Measurements : [773.892, 144827, 1.03437, -0.0792007]
----
-Label        : 1
-Position     : [335.85, 1009.13]
-Measurements : [704.709, 180870, 1.46501, 0.967326]
----
-Label        : 1
-Position     : [80.4177, 1009.16]
-Measurements : [1237.15, 164794, 0.687169, -0.0888316]
----
-Label        : 1
-Position     : [987.753, 1009.31]
-Measurements : [1416.1, 393782, -0.182936, -1.09392]
----
-Label        : 1
-Position     : [918.862, 1009.34]
-Measurements : [851.816, 240039, 0.707326, -0.93859]
----
-Label        : 1
-Position     : [79.336, 1009.52]
-Measurements : [1249.22, 159618, 0.804945, -0.0250845]
----
-Label        : 1
-Position     : [186.436, 1009.55]
-Measurements : [1508.42, 512819, -0.437206, -1.35607]
----
-Label        : 1
-Position     : [1014.54, 1010.22]
-Measurements : [1347.25, 325720, 0.553551, -0.607395]
----
-Label        : 1
-Position     : [865.651, 1010.22]
-Measurements : [1790.28, 360478, -0.303782, -0.551975]
----
-Label        : 1
-Position     : [195.171, 1010.32]
-Measurements : [1209.92, 481432, 0.606674, -0.833103]
----
-Label        : 1
-Position     : [689.47, 1010.38]
-Measurements : [1805.01, 636897, 0.0295537, -1.13368]
----
-Label        : 1
-Position     : [673.432, 1010.39]
-Measurements : [1336.94, 384086, 0.00522749, -1.45692]
----
-Label        : 1
-Position     : [699.446, 1010.49]
-Measurements : [1230.52, 246358, 0.699893, 0.429139]
----
-Label        : 1
-Position     : [197.516, 1010.57]
-Measurements : [1007.05, 491115, 1.05784, -0.0912116]
----
-Label        : 0
-Position     : [284.955, 1010.59]
-Measurements : [1175.09, 34992.5, 0.439273, -0.52895]
----
-Label        : 1
-Position     : [1020.54, 1010.65]
-Measurements : [1638.64, 299475, 0.0354473, -0.446996]
----
-Label        : 1
-Position     : [819.962, 1010.66]
-Measurements : [1000.88, 192175, 0.401885, -0.845193]
----
-Label        : 1
-Position     : [865.838, 1010.66]
-Measurements : [1790.28, 360478, -0.303782, -0.551975]
----
-Label        : 1
-Position     : [1019.11, 1010.79]
-Measurements : [1665.97, 261209, 0.207698, -0.410138]
----
-Label        : 1
-Position     : [1021.94, 1010.79]
-Measurements : [1572.58, 380566, -0.0685909, -0.775831]
----
-Label        : 1
-Position     : [667.983, 1010.87]
-Measurements : [1403.72, 281906, 0.0296296, -0.897928]
----
-Label        : 1
-Position     : [984.209, 1011.02]
-Measurements : [1070.4, 341697, 0.165734, -1.55756]
----
-Label        : 1
-Position     : [949.623, 1011.02]
-Measurements : [1477.17, 489272, 0.202019, -1.11097]
----
-Label        : 1
-Position     : [925.642, 1011.05]
-Measurements : [1355, 168027, -0.0345495, -0.550903]
----
-Label        : 1
-Position     : [672.676, 1011.2]
-Measurements : [1410.35, 344015, -0.060858, -1.30959]
----
-Label        : 1
-Position     : [56.4424, 1011.35]
-Measurements : [1359.7, 108998, 0.983302, 0.0592867]
----
-Label        : 1
-Position     : [1266.52, 1011.39]
-Measurements : [1336.94, 247599, 1.14334, 0.649429]
----
-Label        : 1
-Position     : [949.78, 1011.48]
-Measurements : [1477.17, 489272, 0.202019, -1.11097]
----
-Label        : 1
-Position     : [986.242, 1011.82]
-Measurements : [1340.04, 355859, -0.313639, -1.18363]
----
-Label        : 1
-Position     : [1063.72, 1012.04]
-Measurements : [1334.52, 218216, 0.43014, -0.821782]
----
-Label        : 1
-Position     : [673.82, 1012.06]
-Measurements : [1313.82, 381209, 0.120558, -1.46653]
----
-Label        : 1
-Position     : [685.148, 1012.22]
-Measurements : [1354.64, 892285, 0.370112, -1.52039]
----
-Label        : 1
-Position     : [331.168, 1012.42]
-Measurements : [872.201, 167807, 0.808887, -0.581203]
----
-Label        : 1
-Position     : [186.477, 1012.43]
-Measurements : [1958.34, 311656, -0.87901, 0.25566]
----
-Label        : 1
-Position     : [945.756, 1012.45]
-Measurements : [1621.86, 332817, 0.286001, -0.772931]
----
-Label        : 1
-Position     : [195.048, 1012.59]
-Measurements : [1341.3, 493984, 0.368361, -1.10725]
----
-Label        : 1
-Position     : [922.879, 1012.74]
-Measurements : [1397.02, 194509, -0.394176, -0.492827]
----
-Label        : 1
-Position     : [927.255, 1012.75]
-Measurements : [1319.35, 168888, 0.345695, -0.781819]
----
-Label        : 1
-Position     : [870.076, 1012.77]
-Measurements : [1362.65, 346276, 0.995693, -0.378502]
----
-Label        : 1
-Position     : [944.969, 1012.9]
-Measurements : [1553.33, 335442, 0.422129, -0.641062]
----
-Label        : 1
-Position     : [1268.01, 1012.91]
-Measurements : [1505.08, 357987, 0.837311, -0.471997]
----
-Label        : 1
-Position     : [670.942, 1013.03]
-Measurements : [1398.96, 363892, -0.0279529, -1.35289]
----
-Label        : 1
-Position     : [720.199, 1013.06]
-Measurements : [2089.01, 248990, -0.384212, 0.283971]
----
-Label        : 1
-Position     : [721.875, 1013.18]
-Measurements : [2198.27, 219843, -0.155778, -0.182142]
----
-Label        : 1
-Position     : [184.294, 1013.21]
-Measurements : [1974.89, 352723, -0.964301, 0.507504]
----
-Label        : 1
-Position     : [1017.44, 1013.26]
-Measurements : [1531.1, 381005, 0.247374, -0.963339]
----
-Label        : 1
-Position     : [1088.62, 1013.6]
-Measurements : [930.082, 333463, 0.503889, -1.31492]
----
-Label        : 1
-Position     : [666.532, 1013.66]
-Measurements : [1087.4, 355167, 0.615583, -0.850368]
----
-Label        : 1
-Position     : [718.961, 1013.66]
-Measurements : [1858.75, 360391, -0.482358, -0.52879]
----
-Label        : 1
-Position     : [77.8269, 1013.67]
-Measurements : [1090.83, 296080, 0.508568, -1.00207]
----
-Label        : 1
-Position     : [186.856, 1014.13]
-Measurements : [2101.7, 221535, -0.704568, 0.395886]
----
-Label        : 1
-Position     : [1135.61, 1014.8]
-Measurements : [1228.02, 201853, 0.404409, -0.332593]
----
-Label        : 1
-Position     : [59.1503, 1014.96]
-Measurements : [1362.87, 193627, 0.434068, -0.849415]
----
-Label        : 1
-Position     : [1133.21, 1014.99]
-Measurements : [1159.18, 249625, 0.367655, -0.651623]
----
-Label        : 1
-Position     : [182.248, 1015.15]
-Measurements : [1803.83, 444958, -0.550203, -0.577508]
----
-Label        : 1
-Position     : [864.199, 1015.16]
-Measurements : [1580.98, 309313, 0.230618, -0.634304]
----
-Label        : 1
-Position     : [921.54, 1015.26]
-Measurements : [1374.97, 170005, -0.306728, -0.351232]
----
-Label        : 0
-Position     : [295.886, 1015.38]
-Measurements : [942.082, 26170.4, -1.51034, 2.19124]
----
-Label        : 1
-Position     : [333.215, 1015.51]
-Measurements : [657.631, 129639, 1.62728, 1.56926]
----
-Label        : 1
-Position     : [924.758, 1015.53]
-Measurements : [1375.63, 122818, 0.388242, -0.525013]
----
-Label        : 1
-Position     : [1086.67, 1015.6]
-Measurements : [1155.62, 297921, -0.082828, -1.31987]
----
-Label        : 1
-Position     : [55.272, 1015.66]
-Measurements : [1421.39, 228913, 0.114756, -1.18742]
----
-Label        : 1
-Position     : [988.764, 1015.72]
-Measurements : [1747, 192495, -0.70219, 0.628138]
----
-Label        : 1
-Position     : [916.676, 1015.95]
-Measurements : [873.293, 253077, 0.619499, -1.04358]
----
-Label        : 1
-Position     : [814.228, 1015.98]
-Measurements : [1596.2, 484646, -0.0122618, -1.15247]
----
-Label        : 1
-Position     : [1065.29, 1016.05]
-Measurements : [1479.7, 227645, -0.0332878, -1.08239]
----
-Label        : 1
-Position     : [1062.34, 1016.09]
-Measurements : [1544.05, 173198, -0.395395, -0.837399]
----
-Label        : 1
-Position     : [726.612, 1016.1]
-Measurements : [2505.57, 215771, -0.443571, -1.00279]
----
-Label        : 1
-Position     : [863.672, 1016.26]
-Measurements : [1480.3, 366424, 0.198295, -0.682477]
----
-Label        : 1
-Position     : [810.009, 1016.4]
-Measurements : [1611.51, 482474, 0.121139, -1.10883]
----
-Label        : 1
-Position     : [1135.03, 1016.42]
-Measurements : [1132.47, 264809, 0.479531, -0.858834]
----
-Label        : 1
-Position     : [882.738, 1016.43]
-Measurements : [808.791, 183831, 1.08666, -0.122231]
----
-Label        : 1
-Position     : [1012.11, 1016.54]
-Measurements : [1075.15, 284075, 0.640175, -0.200572]
----
-Label        : 1
-Position     : [1088.45, 1016.72]
-Measurements : [1174.37, 332319, -0.0538544, -1.48596]
----
-Label        : 1
-Position     : [1059.02, 1016.84]
-Measurements : [1415.14, 253189, -0.398233, -1.02097]
----
-Label        : 1
-Position     : [1007.46, 1017.03]
-Measurements : [808.232, 152855, 1.05815, 1.12507]
----
-Label        : 1
-Position     : [946.022, 1017.22]
-Measurements : [1264.41, 466567, 0.695817, -0.526606]
----
-Label        : 1
-Position     : [882.754, 1017.57]
-Measurements : [809.583, 181378, 1.1162, -0.0656009]
----
-Label        : 1
-Position     : [726.009, 1017.64]
-Measurements : [2507.08, 224688, -0.455013, -0.97684]
----
-Label        : 1
-Position     : [920.831, 1017.66]
-Measurements : [1313.54, 199176, -0.484826, -0.416592]
----
-Label        : 1
-Position     : [941.66, 1017.77]
-Measurements : [1053.78, 276813, 0.701267, -0.5894]
----
-Label        : 1
-Position     : [1062.49, 1017.77]
-Measurements : [1555.64, 169523, -0.333063, -0.878641]
----
-Label        : 1
-Position     : [736.771, 1017.96]
-Measurements : [2099.71, 384312, 0.314329, -0.894207]
----
-Label        : 1
-Position     : [738.224, 1018.28]
-Measurements : [1970.34, 390868, 0.566064, -0.615688]
----
-Label        : 1
-Position     : [886.533, 1018.6]
-Measurements : [718.274, 164740, 1.5961, 1.2792]
----
-Label        : 1
-Position     : [984.698, 1018.64]
-Measurements : [1664.76, 442059, -0.603316, -0.580731]
----
-Label        : 1
-Position     : [187.35, 1018.84]
-Measurements : [1859.34, 464470, -0.307346, -1.12286]
----
-Label        : 1
-Position     : [862.151, 1018.85]
-Measurements : [1264.47, 439200, 0.571673, -0.639777]
----
-Label        : 1
-Position     : [989.174, 1019]
-Measurements : [1744.47, 314479, -0.364403, -0.523934]
----
-Label        : 1
-Position     : [1264.32, 1019.05]
-Measurements : [1342.94, 74487.3, 0.300554, 0.745904]
----
-Label        : 1
-Position     : [1087.69, 1019.52]
-Measurements : [1344.85, 209870, -0.381023, -0.823602]
----
-Label        : 1
-Position     : [867.407, 1019.66]
-Measurements : [1107.94, 285563, 1.4988, 1.83825]
----
-Label        : 1
-Position     : [738.195, 1019.91]
-Measurements : [1991.97, 398039, 0.687494, -0.573591]
----
-Label        : 1
-Position     : [936.976, 1020.05]
-Measurements : [1033.79, 219848, 0.759106, -0.407318]
----
-Label        : 1
-Position     : [721.718, 1020.26]
-Measurements : [2227.96, 470670, -0.909593, -0.0630635]
----
-Label        : 1
-Position     : [738.533, 1020.27]
-Measurements : [2003.48, 415460, 0.699372, -0.6297]
----
-Label        : 1
-Position     : [1085.44, 1020.51]
-Measurements : [1376.22, 163704, -0.358114, -0.831619]
----
-Label        : 1
-Position     : [812.46, 1020.57]
-Measurements : [2077.83, 216722, -0.575687, 0.558243]
----
-Label        : 1
-Position     : [813.409, 1020.9]
-Measurements : [2067, 279280, -0.671777, 0.218464]
----
-Label        : 1
-Position     : [984.081, 1020.91]
-Measurements : [1795.22, 411441, -0.670199, -0.264932]
----
-Label        : 1
-Position     : [1016.45, 1020.92]
-Measurements : [854.084, 249593, 1.17708, 0.201372]
----
-Label        : 1
-Position     : [170.763, 1020.97]
-Measurements : [734.544, 129177, 0.817929, -0.615007]
----
-Label        : 1
-Position     : [986.102, 1020.99]
-Measurements : [1942.9, 225167, -0.391199, 0.0327143]
----
-Label        : 1
-Position     : [861.695, 1021.2]
-Measurements : [1126.9, 344118, 0.630967, -0.611473]
----
-Label        : 1
-Position     : [733.575, 1021.42]
-Measurements : [2325.61, 338787, 0.0441115, -1.03222]
----
-Label        : 1
-Position     : [741.358, 1021.42]
-Measurements : [1600.48, 132763, 0.217706, 0.087064]
----
-Label        : 1
-Position     : [1064.32, 1022.06]
-Measurements : [1382.81, 205260, 0.142206, -1.26915]
----
-Label        : 1
-Position     : [1268.34, 1022.33]
-Measurements : [1330.16, 197968, -0.223445, -0.612095]
----
-Label        : 1
-Position     : [1131.8, 1022.61]
-Measurements : [1085.66, 390413, 0.43084, -1.36876]
----
-Label        : 1
-Position     : [175.08, 1022.78]
-Measurements : [1166.78, 167020, -0.319599, -0.729617]
----
-Label        : 1
-Position     : [986.325, 1022.91]
-Measurements : [1866.08, 355468, -0.67631, -0.244939]
----
-Label        : 1
-Position     : [1009.93, 1022.98]
-Measurements : [1031.95, 522264, 0.837611, -0.843353]
----
-Label        : 1
-Position     : [986.306, 1023.1]
-Measurements : [1751.63, 460529, -0.473679, -0.913764]
----
-Label        : 1
-Position     : [1060.85, 1023.1]
-Measurements : [1576.69, 157170, -0.641684, -0.343446]
----
-Label        : 1
-Position     : [815.865, 1023.23]
-Measurements : [1805.28, 582916, -0.302783, -1.32167]
----
-Label        : 1
-Position     : [653.921, 1023.46]
-Measurements : [1388.13, 586669, 0.153146, -1.53759]
----
-Label        : 1
-Position     : [655.063, 1023.49]
-Measurements : [1428.91, 551402, 0.102909, -1.50477]
----
-Label        : 1
-Position     : [855.637, 1023.5]
-Measurements : [1093.63, 423964, 0.488439, -1.04901]
----
-Label        : 1
-Position     : [862.968, 1023.55]
-Measurements : [1119.25, 357591, 0.897059, -0.252146]
----
-Label        : 1
-Position     : [1267.46, 1023.56]
-Measurements : [1384.85, 187349, -0.237141, -0.541418]
----
-Label        : 1
-Position     : [1131.76, 1023.79]
-Measurements : [1121.9, 387088, 0.377765, -1.41704]
----
-Label        : 1
-Position     : [656.101, 1024.08]
-Measurements : [1418.41, 575588, 0.154365, -1.577]
----
-Label        : 1
-Position     : [749.55, 1024.29]
-Measurements : [2003.47, 254689, 0.190488, -0.639311]
----
-Label        : 1
-Position     : [1080.88, 1024.32]
-Measurements : [1165.23, 164307, 0.160771, -0.914066]
----
-Label        : 1
-Position     : [814.771, 1024.45]
-Measurements : [1751.83, 639973, -0.275082, -1.37547]
----
-Label        : 1
-Position     : [756.95, 1024.53]
-Measurements : [1505.41, 270464, -0.0122335, -1.01706]
----
-Label        : 1
-Position     : [1057.35, 1024.58]
-Measurements : [1583.02, 131644, -0.981531, 0.853314]
----
-Label        : 1
-Position     : [656.443, 1024.59]
-Measurements : [1418.41, 575588, 0.154365, -1.577]
----
-Label        : 1
-Position     : [761.921, 1024.92]
-Measurements : [1373.73, 222951, 0.158324, -0.943853]
----
-Label        : 1
-Position     : [1060.18, 1024.96]
-Measurements : [1554.76, 156984, -0.766471, -0.197774]
----
-Label        : 1
-Position     : [941.525, 1025]
-Measurements : [1312.09, 517932, 0.252852, -1.452]
----
-Label        : 1
-Position     : [940.841, 1025.14]
-Measurements : [1504.59, 491499, -0.129409, -1.33678]
----
-Label        : 1
-Position     : [1262.27, 1025.2]
-Measurements : [1701.02, 157066, -0.030413, -1.02152]
----
-Label        : 1
-Position     : [326.048, 1025.22]
-Measurements : [980.903, 218349, 0.906212, -0.191418]
----
-Label        : 1
-Position     : [1133.28, 1025.3]
-Measurements : [1191.19, 328797, 0.343022, -1.34542]
----
-Label        : 1
-Position     : [810.542, 1025.4]
-Measurements : [1539.92, 573228, -0.0647194, -1.34218]
----
-Label        : 1
-Position     : [1082.96, 1025.52]
-Measurements : [1277.9, 187131, -0.0419008, -1.03164]
----
-Label        : 1
-Position     : [642.366, 1025.53]
-Measurements : [1360.34, 487289, 0.210597, -1.41078]
----
-Label        : 1
-Position     : [880.863, 1025.66]
-Measurements : [1131.23, 314135, 0.380774, -1.07941]
----
-Label        : 1
-Position     : [762.185, 1025.69]
-Measurements : [1523.17, 215515, 0.0387865, -0.51673]
----
-Label        : 1
-Position     : [1083.4, 1025.84]
-Measurements : [1309.23, 185522, -0.123782, -1.0246]
----
-Label        : 1
-Position     : [177.093, 1025.86]
-Measurements : [1210.52, 113802, -0.172761, -0.929843]
----
-Label        : 1
-Position     : [944.637, 1025.93]
-Measurements : [1107.62, 572645, 0.802953, -0.963507]
----
-Label        : 1
-Position     : [328.101, 1026.07]
-Measurements : [843.462, 252753, 1.24953, 0.263152]
----
-Label        : 1
-Position     : [1257.29, 1026.1]
-Measurements : [1615.18, 266341, -0.198848, -1.00919]
----
-Label        : 1
-Position     : [858.874, 1026.22]
-Measurements : [1459.64, 420848, -0.0181147, -1.26278]
----
-Label        : 1
-Position     : [815.491, 1026.28]
-Measurements : [1355.87, 674522, 0.453067, -1.3458]
----
-Label        : 1
-Position     : [644.935, 1026.34]
-Measurements : [1294.27, 573366, 0.480333, -1.17723]
----
-Label        : 1
-Position     : [1057.99, 1026.37]
-Measurements : [1542.85, 137728, -0.791577, 0.323243]
----
-Label        : 1
-Position     : [935.254, 1026.67]
-Measurements : [1476.71, 354669, 0.173339, -1.11225]
----
-Label        : 1
-Position     : [1007.2, 1026.78]
-Measurements : [1350.49, 363882, 0.0987247, -0.793205]
----
-Label        : 1
-Position     : [812.409, 1026.82]
-Measurements : [1430.55, 598980, 0.169515, -1.4309]
----
-Label        : 0
-Position     : [272.167, 1027.14]
-Measurements : [1038.38, 48306.7, 0.966819, 0.267208]
----
-Label        : 1
-Position     : [756.103, 1027.16]
-Measurements : [1731.74, 230366, -0.0394879, -0.223761]
----
-Label        : 1
-Position     : [1064.07, 1027.57]
-Measurements : [1167.02, 145886, 0.587079, -0.65369]
----
-Label        : 0
-Position     : [257.6, 1027.78]
-Measurements : [1244.32, 27589.8, -0.135492, -0.0876443]
----
-Label        : 1
-Position     : [882.117, 1027.78]
-Measurements : [1285.63, 493198, 0.446053, -0.904536]
----
-Label        : 1
-Position     : [640.762, 1027.88]
-Measurements : [1659.11, 430891, -0.0117133, -0.967989]
----
-Label        : 1
-Position     : [1060.53, 1028.02]
-Measurements : [1464.46, 197097, -0.474405, -0.804553]
----
-Label        : 1
-Position     : [655.379, 1028.06]
-Measurements : [1125.46, 628663, 0.801665, -1.02351]
----
-Label        : 1
-Position     : [749.852, 1028.2]
-Measurements : [2075.55, 282163, -0.0782922, -0.504301]
----
-Label        : 0
-Position     : [251.691, 1028.21]
-Measurements : [1301.12, 23487.7, -0.680369, 0.843609]
----
-Label        : 1
-Position     : [860.775, 1028.35]
-Measurements : [1402.43, 398964, 0.309612, -1.18305]
----
-Label        : 1
-Position     : [754.064, 1028.61]
-Measurements : [1832.58, 232607, -0.0412702, 0.161256]
----
-Label        : 1
-Position     : [1080.66, 1028.79]
-Measurements : [1290.42, 163005, 0.151376, -0.800647]
----
-Label        : 1
-Position     : [324.001, 1028.87]
-Measurements : [997.57, 206857, 0.829232, 0.116221]
----
-Label        : 1
-Position     : [883.836, 1028.89]
-Measurements : [1301.99, 537376, 0.407466, -1.08298]
----
-Label        : 1
-Position     : [941.932, 1029.02]
-Measurements : [1701.05, 509993, -0.448159, -1.15055]
----
-Label        : 1
-Position     : [856.671, 1029.06]
-Measurements : [1398.6, 473694, 0.0240091, -1.35056]
----
-Label        : 1
-Position     : [763.886, 1029.21]
-Measurements : [1895.26, 241352, 0.54383, -0.635985]
----
-Label        : 1
-Position     : [940.022, 1029.24]
-Measurements : [1814.52, 390505, -0.638647, -0.609735]
----
-Label        : 1
-Position     : [880.454, 1029.34]
-Measurements : [1686.67, 360723, 0.0448314, -0.593499]
----
-Label        : 1
-Position     : [856.826, 1029.5]
-Measurements : [1398.6, 473694, 0.0240091, -1.35056]
----
-Label        : 1
-Position     : [1005.78, 1029.5]
-Measurements : [1460.45, 253642, 0.0529343, -0.417337]
----
-Label        : 1
-Position     : [1260.13, 1029.62]
-Measurements : [1903.15, 202993, -1.15059, 0.948008]
----
-Label        : 1
-Position     : [167.4, 1029.94]
-Measurements : [1184.95, 299723, 0.890291, -0.132169]
----
-Label        : 1
-Position     : [877.518, 1029.95]
-Measurements : [1681.92, 292992, 0.11127, -0.448425]
----
-Label        : 0
-Position     : [269.418, 1029.99]
-Measurements : [1007.05, 33156.2, 1.00998, 0.401464]
----
-Label        : 0
-Position     : [242.957, 1030.17]
-Measurements : [1255, 17424.4, 0.972226, 1.28589]
----
-Label        : 1
-Position     : [1085.1, 1030.21]
-Measurements : [1213.74, 312211, 0.187014, -1.36812]
----
-Label        : 1
-Position     : [1082.17, 1030.22]
-Measurements : [1386.25, 206264, -0.0311393, -0.962463]
----
-Label        : 1
-Position     : [857.55, 1030.27]
-Measurements : [1387.95, 471130, 0.100029, -1.37031]
----
-Label        : 1
-Position     : [1080.94, 1030.34]
-Measurements : [1387.24, 180290, 0.0585538, -0.683365]
----
-Label        : 1
-Position     : [935.021, 1030.51]
-Measurements : [1781.97, 356160, -0.486212, -0.757765]
----
-Label        : 1
-Position     : [159.303, 1030.58]
-Measurements : [1594.29, 338365, -0.0868325, -0.801627]
----
-Label        : 1
-Position     : [1265.33, 1030.69]
-Measurements : [1695.76, 273317, -0.462513, -0.875079]
----
-Label        : 1
-Position     : [1077.03, 1031.25]
-Measurements : [1282.05, 192334, 0.626232, 0.0199522]
----
-Label        : 0
-Position     : [238.223, 1031.41]
-Measurements : [1242.49, 20201.5, 1.26403, 1.00798]
----
-Label        : 1
-Position     : [1133.58, 1031.57]
-Measurements : [1138.15, 219688, 0.795919, -0.185524]
----
-Label        : 1
-Position     : [1007.2, 1031.7]
-Measurements : [1587, 215822, -0.011973, -0.360132]
----
-Label        : 1
-Position     : [1053.89, 1031.7]
-Measurements : [1632.77, 177635, -0.646424, 0.16489]
----
-Label        : 1
-Position     : [1261.45, 1031.75]
-Measurements : [1730.4, 392720, -0.76864, -0.749569]
----
-Label        : 1
-Position     : [935.162, 1031.77]
-Measurements : [1837.56, 326526, -0.571069, -0.575642]
----
-Label        : 1
-Position     : [987.652, 1031.91]
-Measurements : [1094.94, 289525, 0.761332, -0.686408]
----
-Label        : 0
-Position     : [286.021, 1032.02]
-Measurements : [809.406, 62497.4, -0.102264, -1.50675]
----
-Label        : 1
-Position     : [760.207, 1032.15]
-Measurements : [1838.53, 420923, -0.207162, -0.858116]
----
-Label        : 1
-Position     : [875.645, 1032.28]
-Measurements : [1668.09, 400150, -0.100869, -0.837956]
----
-Label        : 1
-Position     : [912.242, 1032.29]
-Measurements : [1383.41, 495121, -0.0460259, -1.38845]
----
-Label        : 1
-Position     : [146.655, 1032.44]
-Measurements : [976.944, 414042, 0.830243, -0.821906]
----
-Label        : 1
-Position     : [881.681, 1032.46]
-Measurements : [1866.71, 517759, -0.461058, -0.74473]
----
-Label        : 1
-Position     : [770.849, 1032.48]
-Measurements : [1482.36, 236619, -0.306471, -1.02113]
----
-Label        : 1
-Position     : [165.265, 1032.68]
-Measurements : [1441.79, 419345, 0.471949, -1.10492]
----
-Label        : 1
-Position     : [1054.74, 1032.72]
-Measurements : [1669.25, 137403, -0.218256, -0.588729]
----
-Label        : 1
-Position     : [167.408, 1032.75]
-Measurements : [1186.03, 287936, 1.0184, -0.0205003]
----
-Label        : 1
-Position     : [983.03, 1032.93]
-Measurements : [1266.25, 393476, 0.0919286, -1.56161]
----
-Label        : 1
-Position     : [1082.36, 1032.97]
-Measurements : [1400.67, 269406, 0.146483, -0.878449]
----
-Label        : 1
-Position     : [160.744, 1033.02]
-Measurements : [1654.36, 371864, -0.0919938, -1.01792]
----
-Label        : 1
-Position     : [641.956, 1033.32]
-Measurements : [1798.7, 652497, -0.262156, -1.22929]
----
-Label        : 1
-Position     : [150.804, 1033.44]
-Measurements : [1500.68, 423158, -0.400539, -0.989649]
----
-Label        : 1
-Position     : [913.804, 1033.56]
-Measurements : [1552.28, 446671, -0.225919, -1.07268]
----
-Label        : 1
-Position     : [1126.38, 1033.72]
-Measurements : [1046.26, 131728, -0.0776579, -1.03481]
----
-Label        : 1
-Position     : [915.27, 1033.85]
-Measurements : [1469.71, 511551, -0.0580154, -1.31591]
----
-Label        : 1
-Position     : [938.285, 1033.87]
-Measurements : [1870.49, 422287, -0.774424, -0.493746]
----
-Label        : 1
-Position     : [1129.3, 1034.03]
-Measurements : [1170.67, 120077, 0.0862773, -0.443696]
----
-Label        : 1
-Position     : [155.112, 1034.04]
-Measurements : [1866.39, 233003, -0.627476, 0.160293]
----
-Label        : 1
-Position     : [852.409, 1034.04]
-Measurements : [896.976, 279769, 1.03476, 0.430181]
----
-Label        : 1
-Position     : [637.977, 1034.07]
-Measurements : [1287.39, 779676, 0.484678, -1.39557]
----
-Label        : 1
-Position     : [1011.28, 1034.07]
-Measurements : [1293.2, 338822, 0.0345925, -1.18182]
----
-Label        : 1
-Position     : [813.164, 1034.09]
-Measurements : [975.84, 428454, 1.19036, -0.0895063]
----
-Label        : 1
-Position     : [1054.49, 1034.15]
-Measurements : [1674.4, 160525, -0.293266, -0.353772]
----
-Label        : 1
-Position     : [937.974, 1034.15]
-Measurements : [1875.16, 377493, -0.676508, -0.513657]
----
-Label        : 1
-Position     : [883.58, 1034.17]
-Measurements : [1658.68, 762804, -0.0607206, -1.51013]
----
-Label        : 1
-Position     : [1080.12, 1034.44]
-Measurements : [1502.55, 215302, -0.00869173, -0.625372]
----
-Label        : 1
-Position     : [1056.53, 1034.79]
-Measurements : [1610.14, 153409, -0.0891148, -0.630557]
----
-Label        : 1
-Position     : [807.369, 1034.87]
-Measurements : [1442.14, 509837, -0.0458841, -1.32057]
----
-Label        : 1
-Position     : [153.259, 1034.89]
-Measurements : [1870.4, 198087, -0.768268, 0.704529]
----
-Label        : 1
-Position     : [1005.16, 1035.2]
-Measurements : [1482.87, 282322, -0.213725, -0.869752]
----
-Label        : 1
-Position     : [929.824, 1035.22]
-Measurements : [1538.04, 338878, 0.272465, -1.4371]
----
-Label        : 1
-Position     : [808.494, 1035.23]
-Measurements : [1543.7, 523076, -0.0880556, -1.07464]
----
-Label        : 1
-Position     : [774.828, 1035.69]
-Measurements : [969.554, 332057, 1.07781, -0.334684]
----
-Label        : 1
-Position     : [1260.87, 1035.75]
-Measurements : [1154.42, 711934, 0.434936, -1.60446]
----
-Label        : 1
-Position     : [879.225, 1035.9]
-Measurements : [1967.05, 492325, -0.558617, -0.502236]
----
-Label        : 1
-Position     : [638.094, 1035.98]
-Measurements : [1348.38, 858416, 0.438947, -1.44851]
----
-Label        : 1
-Position     : [148.968, 1036.09]
-Measurements : [1426.17, 489730, -0.176841, -1.53226]
----
-Label        : 1
-Position     : [912.592, 1036.42]
-Measurements : [1529.38, 475893, -0.18154, -1.23275]
----
-Label        : 1
-Position     : [934.287, 1036.61]
-Measurements : [1907.55, 314310, -0.838271, -0.0506724]
----
-Label        : 1
-Position     : [770.767, 1036.78]
-Measurements : [1281.68, 328566, 0.208758, -1.37306]
----
-Label        : 0
-Position     : [239.025, 1036.85]
-Measurements : [1293.66, 16028.4, 1.08529, 0.360448]
----
-Label        : 1
-Position     : [911.26, 1037.02]
-Measurements : [1361.74, 564362, 0.162223, -1.46272]
----
-Label        : 1
-Position     : [913.631, 1037.12]
-Measurements : [1528.85, 468633, -0.0826088, -1.29753]
----
-Label        : 1
-Position     : [983.695, 1037.27]
-Measurements : [1497.89, 280322, -0.229051, -1.21935]
----
-Label        : 1
-Position     : [854.778, 1037.28]
-Measurements : [795.104, 129969, 0.519423, -1.2366]
----
-Label        : 1
-Position     : [158.596, 1037.38]
-Measurements : [1512.37, 464476, 0.205104, -1.25934]
----
-Label        : 1
-Position     : [627.62, 1037.41]
-Measurements : [1154.03, 300318, -0.0207254, -1.47387]
----
-Label        : 1
-Position     : [981.554, 1037.71]
-Measurements : [1611.52, 221362, -0.560527, -0.604136]
----
-Label        : 1
-Position     : [631.524, 1037.74]
-Measurements : [1015.36, 333822, 0.481501, -1.47823]
----
-Label        : 1
-Position     : [979.753, 1037.84]
-Measurements : [1644.13, 214514, -0.536419, -0.433746]
----
-Label        : 1
-Position     : [1055.53, 1038.25]
-Measurements : [1397.33, 349448, -0.0910156, -1.19059]
----
-Label        : 1
-Position     : [155.898, 1038.33]
-Measurements : [1628.8, 421966, -0.151455, -1.27603]
----
-Label        : 1
-Position     : [322.976, 1038.53]
-Measurements : [1139.71, 247121, 0.663428, -0.28784]
----
-Label        : 1
-Position     : [1080.92, 1038.65]
-Measurements : [1707.92, 285089, -0.225023, -0.595941]
----
-Label        : 0
-Position     : [289.017, 1038.73]
-Measurements : [1082.72, 22752.4, -2.76782, 7.6198]
----
-Label        : 1
-Position     : [1007.61, 1039.07]
-Measurements : [1363.53, 271353, 0.377418, -0.884089]
----
-Label        : 1
-Position     : [125.861, 1039.14]
-Measurements : [651.268, 187701, 2.35487, 4.8285]
----
-Label        : 1
-Position     : [321.93, 1039.41]
-Measurements : [1155.02, 217567, 0.711923, 0.0246444]
----
-Label        : 1
-Position     : [321.633, 1039.68]
-Measurements : [1155.02, 217567, 0.711923, 0.0246444]
----
-Label        : 1
-Position     : [622.903, 1040.3]
-Measurements : [713.301, 212250, 1.3097, 0.285215]
----
-Label        : 1
-Position     : [135.026, 1040.52]
-Measurements : [1656.79, 358402, -0.325768, -0.925886]
----
-Label        : 1
-Position     : [806.446, 1040.97]
-Measurements : [1907.42, 332193, 0.273794, -0.395531]
----
-Label        : 1
-Position     : [1079.3, 1040.99]
-Measurements : [1769.55, 232067, -0.216072, -0.34918]
----
-Label        : 1
-Position     : [1129.3, 1040.99]
-Measurements : [1334.24, 161281, 0.198236, -0.875272]
----
-Label        : 1
-Position     : [976.563, 1041.09]
-Measurements : [1606.62, 295623, -0.690447, -0.437781]
----
-Label        : 1
-Position     : [1051.44, 1041.11]
-Measurements : [1048.97, 312331, 0.602824, -0.978273]
----
-Label        : 1
-Position     : [1131.81, 1041.21]
-Measurements : [1272.24, 167795, 0.541475, -0.911862]
----
-Label        : 1
-Position     : [853.113, 1041.47]
-Measurements : [695.979, 130009, 0.928513, -0.739818]
----
-Label        : 1
-Position     : [138.728, 1041.72]
-Measurements : [1528.77, 400717, -0.0632972, -1.30892]
----
-Label        : 1
-Position     : [932.269, 1041.78]
-Measurements : [1658.61, 355829, -0.0486442, -0.947067]
----
-Label        : 1
-Position     : [1082.81, 1042.25]
-Measurements : [1521.01, 459423, -0.109999, -1.35876]
----
-Label        : 1
-Position     : [617.439, 1042.25]
-Measurements : [683.637, 107433, 1.58998, 3.88638]
----
-Label        : 1
-Position     : [1050.53, 1042.3]
-Measurements : [1041.54, 326445, 0.664316, -0.842964]
----
-Label        : 1
-Position     : [805.073, 1042.66]
-Measurements : [1821.69, 329339, 0.399071, -0.209585]
----
-Label        : 1
-Position     : [1003.57, 1042.9]
-Measurements : [1194.3, 219613, 0.969682, 0.253967]
----
-Label        : 1
-Position     : [1006.7, 1042.96]
-Measurements : [1234.41, 231249, 0.697452, -0.182632]
----
-Label        : 1
-Position     : [905.134, 1043.02]
-Measurements : [855.489, 273619, 0.9507, -0.646299]
----
-Label        : 1
-Position     : [1126.51, 1043.19]
-Measurements : [1514.7, 189144, -0.227025, -0.440306]
----
-Label        : 1
-Position     : [978.948, 1043.45]
-Measurements : [1564.47, 298323, -0.429589, -0.908748]
----
-Label        : 1
-Position     : [1258.19, 1043.57]
-Measurements : [867.112, 505976, 1.11019, -0.0693125]
----
-Label        : 1
-Position     : [129, 1043.77]
-Measurements : [813.898, 180564, 0.982528, -0.177614]
----
-Label        : 1
-Position     : [800.931, 1043.81]
-Measurements : [1365.89, 243373, 0.684081, 0.0443715]
----
-Label        : 1
-Position     : [809.213, 1044.01]
-Measurements : [1440.64, 670291, 0.518934, -0.90807]
----
-Label        : 1
-Position     : [872.671, 1044.09]
-Measurements : [1045.58, 211320, 0.219806, -0.887694]
----
-Label        : 1
-Position     : [1074.61, 1044.52]
-Measurements : [1560.07, 251991, -0.761766, -0.360482]
----
-Label        : 1
-Position     : [865.912, 1044.84]
-Measurements : [968.715, 60020.7, 0.143519, 0.358597]
----
-Label        : 1
-Position     : [1077.25, 1045.09]
-Measurements : [1772.23, 238859, -0.522419, -0.0823446]
----
-Label        : 1
-Position     : [617.38, 1045.19]
-Measurements : [954.533, 398827, 1.36306, 0.764816]
----
-Label        : 1
-Position     : [870.265, 1045.34]
-Measurements : [1098.49, 168294, 0.155758, -0.537022]
----
-Label        : 1
-Position     : [907.724, 1045.44]
-Measurements : [1015.01, 282826, 0.536376, -1.17681]
----
-Label        : 1
-Position     : [932.663, 1045.5]
-Measurements : [1180.45, 349897, 0.663551, -0.326637]
----
-Label        : 1
-Position     : [1127.43, 1045.54]
-Measurements : [1517.45, 179369, 0.137356, -0.868399]
----
-Label        : 1
-Position     : [982.624, 1045.68]
-Measurements : [1229.86, 235079, 0.368175, -1.04298]
----
-Label        : 1
-Position     : [909.126, 1045.73]
-Measurements : [1056.16, 263460, 0.519544, -1.18938]
----
-Label        : 1
-Position     : [134.316, 1045.82]
-Measurements : [1433.67, 392368, 0.120719, -1.12437]
----
-Label        : 1
-Position     : [803.169, 1045.88]
-Measurements : [1528.5, 261624, 0.239072, 0.147247]
----
-Label        : 1
-Position     : [871.946, 1045.89]
-Measurements : [1121.3, 183930, 0.051699, -0.663256]
----
-Label        : 1
-Position     : [1126.84, 1045.91]
-Measurements : [1542.98, 183047, 0.00208728, -0.749214]
----
-Label        : 1
-Position     : [937.331, 1046]
-Measurements : [842.393, 271272, 1.59062, 1.84349]
----
-Label        : 1
-Position     : [1007.36, 1046.25]
-Measurements : [1027.95, 126471, 0.395127, 0.0841846]
----
-Label        : 1
-Position     : [129.758, 1046.26]
-Measurements : [835.443, 191020, 0.735665, -0.829876]
----
-Label        : 1
-Position     : [1050.22, 1046.32]
-Measurements : [1166.11, 280870, 0.366481, -0.873089]
----
-Label        : 1
-Position     : [977.763, 1046.59]
-Measurements : [1381.23, 416021, 0.00481041, -1.44734]
----
-Label        : 1
-Position     : [1051.71, 1046.62]
-Measurements : [1128.98, 271536, 0.485715, -0.689879]
----
-Label        : 1
-Position     : [617.04, 1046.74]
-Measurements : [1071.1, 491430, 1.08382, -0.103324]
----
-Label        : 1
-Position     : [317.32, 1047.15]
-Measurements : [1051.57, 119132, 1.19844, 2.23283]
----
-Label        : 1
-Position     : [1079.83, 1047.45]
-Measurements : [1709.19, 330201, -0.498402, -0.741726]
----
-Label        : 1
-Position     : [316.186, 1047.52]
-Measurements : [1088.32, 93810.7, 1.79004, 3.65468]
----
-Label        : 1
-Position     : [1003.52, 1047.54]
-Measurements : [1304.44, 198918, 0.956867, 0.606773]
----
-Label        : 1
-Position     : [615.033, 1047.83]
-Measurements : [1035.56, 387285, 1.27463, 0.513677]
----
-Label        : 1
-Position     : [1256.13, 1048.14]
-Measurements : [1293.1, 506495, 0.514867, -0.861389]
----
-Label        : 1
-Position     : [870.214, 1048.59]
-Measurements : [1022.73, 216333, 0.219913, -0.987739]
----
-Label        : 1
-Position     : [1008.35, 1048.69]
-Measurements : [957.903, 178701, 0.957115, 1.44583]
----
-Label        : 1
-Position     : [1046.83, 1049.01]
-Measurements : [1520.06, 183308, -0.391479, -0.4481]
----
-Label        : 1
-Position     : [1079.76, 1049.24]
-Measurements : [1565.78, 348606, -0.172452, -1.18587]
----
-Label        : 1
-Position     : [925.042, 1049.38]
-Measurements : [987.199, 173607, 0.761037, -0.00246961]
----
-Label        : 1
-Position     : [997.141, 1049.77]
-Measurements : [1508.23, 214924, 0.0442669, -0.34706]
----
-Label        : 1
-Position     : [1121.95, 1050.21]
-Measurements : [1586.91, 392851, -0.360307, -0.806532]
----
-Label        : 1
-Position     : [910.547, 1050.22]
-Measurements : [1105.9, 189706, 0.586327, -0.596418]
----
-Label        : 1
-Position     : [318.88, 1050.3]
-Measurements : [952.444, 145415, 1.00934, 1.53209]
----
-Label        : 1
-Position     : [975.208, 1050.47]
-Measurements : [1533.34, 656235, 0.105515, -1.41531]
----
-Label        : 1
-Position     : [798.224, 1050.5]
-Measurements : [1153.53, 233636, 0.770138, -0.127555]
----
-Label        : 0
-Position     : [258.748, 1050.65]
-Measurements : [1095.94, 8304.45, -0.799745, 0.674058]
----
-Label        : 1
-Position     : [803.218, 1050.67]
-Measurements : [1384.5, 329222, 0.187012, -1.15357]
----
-Label        : 1
-Position     : [797.255, 1050.72]
-Measurements : [1074.87, 174195, 0.767915, -0.0886368]
----
-Label        : 1
-Position     : [1121.3, 1050.76]
-Measurements : [1586.91, 392851, -0.360307, -0.806532]
----
-Label        : 1
-Position     : [801.53, 1051.21]
-Measurements : [1281.85, 334847, 0.510889, -0.923391]
----
-Label        : 1
-Position     : [1048.99, 1051.23]
-Measurements : [1639.05, 160186, -0.186034, -0.907807]
----
-Label        : 1
-Position     : [1075.2, 1051.23]
-Measurements : [1777.11, 225173, -0.42666, -0.343258]
----
-Label        : 1
-Position     : [1125.61, 1051.23]
-Measurements : [1680.33, 256829, 0.313642, -0.747994]
----
-Label        : 0
-Position     : [288.453, 1051.36]
-Measurements : [1109.3, 5293.05, -0.468844, -0.386417]
----
-Label        : 1
-Position     : [998.609, 1051.64]
-Measurements : [1716.58, 219349, -0.309246, 0.065714]
----
-Label        : 1
-Position     : [115.87, 1051.99]
-Measurements : [799.408, 133161, 0.768401, -0.92898]
----
-Label        : 1
-Position     : [610.417, 1052.16]
-Measurements : [1142.33, 363484, 0.792953, -0.683519]
----
-Label        : 1
-Position     : [930.143, 1052.23]
-Measurements : [1134.03, 277817, 0.422687, -1.06236]
----
-Label        : 1
-Position     : [906.668, 1052.28]
-Measurements : [1341.53, 402028, 0.576998, -0.385132]
----
-Label        : 1
-Position     : [111.592, 1052.47]
-Measurements : [1077.79, 205038, 0.550374, -0.120052]
----
-Label        : 1
-Position     : [1076.54, 1052.6]
-Measurements : [1719.44, 267034, -0.481618, -0.39879]
----
-Label        : 1
-Position     : [928.127, 1052.67]
-Measurements : [1100.97, 257146, 0.569195, -0.773579]
----
-Label        : 1
-Position     : [846.177, 1052.84]
-Measurements : [964.73, 380438, 0.969626, -0.105411]
----
-Label        : 1
-Position     : [974.442, 1052.87]
-Measurements : [1697.81, 604654, -0.248171, -1.27509]
----
-Label        : 1
-Position     : [865.223, 1052.9]
-Measurements : [732.874, 61694.9, 0.568375, -0.298471]
----
-Label        : 1
-Position     : [1256.8, 1052.9]
-Measurements : [1059.92, 589559, 0.929202, -0.525249]
----
-Label        : 1
-Position     : [972.573, 1053.33]
-Measurements : [1837.58, 448769, -0.418098, -0.807762]
----
-Label        : 1
-Position     : [905.387, 1053.35]
-Measurements : [1505.94, 495612, 0.458989, -0.72498]
----
-Label        : 1
-Position     : [972.479, 1053.35]
-Measurements : [1837.58, 448769, -0.418098, -0.807762]
----
-Label        : 1
-Position     : [1070.35, 1053.57]
-Measurements : [1412.66, 299370, 0.0755788, -1.06022]
----
-Label        : 1
-Position     : [1001.8, 1053.9]
-Measurements : [1623.29, 318967, -0.107101, -0.908495]
----
-Label        : 1
-Position     : [1046.03, 1053.96]
-Measurements : [1738.85, 193868, -0.540937, -0.185425]
----
-Label        : 1
-Position     : [929.796, 1054.1]
-Measurements : [1217.79, 261489, 0.358849, -1.12273]
----
-Label        : 1
-Position     : [337.332, 1054.88]
-Measurements : [850.507, 324075, 1.46102, 1.45049]
----
-Label        : 1
-Position     : [844.012, 1055]
-Measurements : [1419.14, 510664, 0.266561, -1.12152]
----
-Label        : 1
-Position     : [105.448, 1055.03]
-Measurements : [1094.18, 181039, 1.02743, 0.853446]
----
-Label        : 1
-Position     : [1127.23, 1055.08]
-Measurements : [1594.68, 350975, 0.602476, -1.09504]
----
-Label        : 1
-Position     : [106.684, 1055.2]
-Measurements : [1111.09, 176408, 0.994577, 0.791618]
----
-Label        : 1
-Position     : [1117.07, 1055.26]
-Measurements : [1654.44, 484840, -0.658031, -0.876579]
----
-Label        : 1
-Position     : [1072.75, 1055.33]
-Measurements : [1546.28, 313498, -0.0150045, -0.962835]
----
-Label        : 1
-Position     : [611.919, 1055.36]
-Measurements : [1528.36, 490826, 0.133547, -1.3979]
----
-Label        : 1
-Position     : [850.808, 1055.79]
-Measurements : [1153.16, 505734, 1.02158, -0.149594]
----
-Label        : 1
-Position     : [1049, 1055.81]
-Measurements : [1702.35, 225970, -0.417514, -0.487913]
----
-Label        : 0
-Position     : [289.116, 1055.85]
-Measurements : [1135.28, 5788.38, -0.00519308, -0.0597098]
----
-Label        : 1
-Position     : [1046.3, 1055.85]
-Measurements : [1659.61, 300955, -0.571582, -0.577136]
----
-Label        : 1
-Position     : [997.856, 1055.89]
-Measurements : [1727.6, 268656, -0.353362, -0.680182]
----
-Label        : 1
-Position     : [1048.17, 1056.15]
-Measurements : [1632.04, 305645, -0.488434, -0.701371]
----
-Label        : 1
-Position     : [1068.69, 1056.52]
-Measurements : [1336.91, 292278, 0.0955927, -1.21503]
----
-Label        : 1
-Position     : [997.79, 1056.56]
-Measurements : [1748.74, 289518, -0.449271, -0.697178]
----
-Label        : 1
-Position     : [105.819, 1056.7]
-Measurements : [1066.3, 142990, 1.07015, 1.20709]
----
-Label        : 1
-Position     : [98.792, 1057.08]
-Measurements : [802.419, 177501, 1.07965, 0.648146]
----
-Label        : 1
-Position     : [904.654, 1057.1]
-Measurements : [2022.07, 438824, -0.296728, -1.06199]
----
-Label        : 1
-Position     : [101.372, 1057.14]
-Measurements : [974.655, 130285, 0.97067, 0.635444]
----
-Label        : 1
-Position     : [906.668, 1057.19]
-Measurements : [1966.3, 443170, -0.0517302, -1.31557]
----
-Label        : 1
-Position     : [976.976, 1057.22]
-Measurements : [1785.62, 347067, 0.0505175, -0.760573]
----
-Label        : 1
-Position     : [911.113, 1057.25]
-Measurements : [1420.77, 441843, 1.32058, 0.458534]
----
-Label        : 1
-Position     : [926.929, 1057.38]
-Measurements : [1042.01, 234798, 0.758304, -0.471581]
----
-Label        : 1
-Position     : [973.214, 1057.38]
-Measurements : [2010.68, 228552, -0.293219, -0.0684569]
----
-Label        : 1
-Position     : [1121.93, 1057.38]
-Measurements : [2000.37, 242978, -0.753109, -0.0060464]
----
-Label        : 1
-Position     : [339.872, 1057.47]
-Measurements : [1148.04, 340716, 1.04136, 0.425993]
----
-Label        : 1
-Position     : [868.985, 1057.6]
-Measurements : [784.432, 182482, 1.81052, 2.81234]
----
-Label        : 1
-Position     : [102.221, 1057.61]
-Measurements : [1025.33, 125675, 0.91573, 0.506751]
----
-Label        : 1
-Position     : [841.688, 1057.8]
-Measurements : [1294.57, 649347, 0.262355, -1.28919]
----
-Label        : 1
-Position     : [1126.57, 1057.87]
-Measurements : [1595.36, 347265, 0.588473, -1.04231]
----
-Label        : 1
-Position     : [607.171, 1057.95]
-Measurements : [1565.33, 337078, 0.124421, -0.827565]
----
-Label        : 1
-Position     : [868.796, 1058.07]
-Measurements : [845.924, 203528, 1.6002, 1.73355]
----
-Label        : 1
-Position     : [993.941, 1058.13]
-Measurements : [1508.46, 327185, 0.0190726, -1.05082]
----
-Label        : 1
-Position     : [924.641, 1058.15]
-Measurements : [925.107, 153068, 1.08353, 0.886399]
----
-Label        : 0
-Position     : [207.424, 1058.21]
-Measurements : [962.915, 7884.55, 0.396345, 0.364765]
----
-Label        : 1
-Position     : [340.703, 1058.28]
-Measurements : [1207.9, 284350, 1.29453, 0.898262]
----
-Label        : 1
-Position     : [1069.29, 1058.31]
-Measurements : [1519.54, 322567, -0.203577, -1.13118]
----
-Label        : 1
-Position     : [846.059, 1058.41]
-Measurements : [1712.39, 476106, -0.0555056, -1.10709]
----
-Label        : 1
-Position     : [905.675, 1058.44]
-Measurements : [2100.28, 379834, -0.342308, -1.08011]
----
-Label        : 1
-Position     : [800.302, 1058.58]
-Measurements : [1219.53, 356753, 0.833432, -0.54805]
----
-Label        : 1
-Position     : [846.996, 1058.58]
-Measurements : [1712.39, 476106, -0.0555056, -1.10709]
----
-Label        : 1
-Position     : [1121.44, 1058.67]
-Measurements : [1911.98, 346773, -0.678545, -0.581628]
----
-Label        : 1
-Position     : [103.624, 1059.05]
-Measurements : [994.706, 129850, 1.05942, 0.690652]
----
-Label        : 1
-Position     : [606.321, 1059.12]
-Measurements : [1773.98, 283211, 0.150544, -0.804767]
----
-Label        : 1
-Position     : [996.486, 1059.13]
-Measurements : [1671.17, 282950, -0.0334571, -0.997012]
----
-Label        : 1
-Position     : [968.705, 1059.56]
-Measurements : [1725.68, 370500, -0.532943, -0.693264]
----
-Label        : 1
-Position     : [1119.06, 1059.83]
-Measurements : [1708.38, 483007, -0.4506, -1.11343]
----
-Label        : 1
-Position     : [866.25, 1059.97]
-Measurements : [867.421, 177349, 1.68383, 2.31091]
----
-Label        : 1
-Position     : [804.462, 1059.99]
-Measurements : [1359.06, 438861, 0.542758, -1.20987]
----
-Label        : 1
-Position     : [999.118, 1060.01]
-Measurements : [1454.32, 434362, 0.182151, -1.27538]
----
-Label        : 1
-Position     : [924.319, 1060.19]
-Measurements : [970.069, 166881, 0.714521, -0.267998]
----
-Label        : 1
-Position     : [1071.11, 1060.24]
-Measurements : [1524.65, 352321, -0.203653, -1.27576]
----
-Label        : 1
-Position     : [863.633, 1060.45]
-Measurements : [780.231, 91256.6, 2.29349, 7.20465]
----
-Label        : 1
-Position     : [1069.23, 1060.56]
-Measurements : [1477.95, 387995, -0.225492, -1.27019]
----
-Label        : 1
-Position     : [921.279, 1060.58]
-Measurements : [885.65, 105641, 0.800119, 0.599259]
----
-Label        : 1
-Position     : [312.71, 1060.64]
-Measurements : [1365.12, 221263, 0.879898, -0.505644]
----
-Label        : 1
-Position     : [849.731, 1060.8]
-Measurements : [1515.81, 526526, 0.576047, -1.1026]
----
-Label        : 1
-Position     : [866.118, 1060.88]
-Measurements : [864.166, 178458, 1.68781, 2.29674]
----
-Label        : 1
-Position     : [995.332, 1061.06]
-Measurements : [1497.22, 291500, 0.422557, -0.754634]
----
-Label        : 1
-Position     : [903.559, 1061.06]
-Measurements : [2125.98, 400561, -0.77346, -0.27881]
----
-Label        : 1
-Position     : [319.267, 1061.85]
-Measurements : [971.91, 434783, 0.907669, -0.7131]
----
-Label        : 1
-Position     : [605.555, 1061.85]
-Measurements : [1930.81, 240604, 0.0233634, -0.761725]
----
-Label        : 1
-Position     : [314.784, 1062.08]
-Measurements : [1351.44, 315591, 0.322096, -1.01958]
----
-Label        : 1
-Position     : [799.932, 1062.09]
-Measurements : [1679.64, 467193, 0.090277, -1.34986]
----
-Label        : 1
-Position     : [1119.52, 1062.16]
-Measurements : [1320.5, 535895, 0.262037, -1.4792]
----
-Label        : 0
-Position     : [264.919, 1062.22]
-Measurements : [947.521, 9754.69, -2.22606, 6.17138]
----
-Label        : 1
-Position     : [845.358, 1062.26]
-Measurements : [1857.4, 361084, -0.216791, -0.73041]
----
-Label        : 1
-Position     : [610.995, 1062.44]
-Measurements : [1566.65, 553475, 0.164027, -1.41697]
----
-Label        : 1
-Position     : [971.166, 1063.11]
-Measurements : [1648.51, 277050, -0.0587585, -0.892408]
----
-Label        : 1
-Position     : [903.391, 1063.34]
-Measurements : [2034.85, 437816, -0.604398, -0.73877]
----
-Label        : 1
-Position     : [1259.12, 1063.4]
-Measurements : [1408, 480784, 0.0517758, -0.955122]
----
-Label        : 1
-Position     : [869.884, 1063.41]
-Measurements : [859.995, 206160, 1.54423, 1.43863]
----
-Label        : 1
-Position     : [600.996, 1063.63]
-Measurements : [1561.85, 299040, -0.108586, -0.62191]
----
-Label        : 1
-Position     : [792.851, 1063.67]
-Measurements : [1300.18, 343930, 0.587613, -0.640732]
----
-Label        : 1
-Position     : [905.344, 1063.86]
-Measurements : [1980.23, 477944, -0.338716, -1.22766]
----
-Label        : 1
-Position     : [866.677, 1064.28]
-Measurements : [925.403, 225097, 1.11015, 0.174159]
----
-Label        : 1
-Position     : [925.29, 1064.75]
-Measurements : [1024.01, 258943, 0.593828, -0.984644]
----
-Label        : 1
-Position     : [796.615, 1065.13]
-Measurements : [1758.95, 279434, 0.159316, -0.738881]
----
-Label        : 1
-Position     : [845.523, 1065.26]
-Measurements : [1644.56, 338287, 0.065939, -0.726038]
----
-Label        : 1
-Position     : [1260.22, 1065.34]
-Measurements : [1726.87, 382837, 0.238911, -0.796858]
----
-Label        : 1
-Position     : [966.954, 1065.73]
-Measurements : [1330.81, 283578, 0.341488, -0.602699]
----
-Label        : 1
-Position     : [1116.6, 1065.83]
-Measurements : [1212.69, 517389, 0.32524, -1.53127]
----
-Label        : 1
-Position     : [994.103, 1065.98]
-Measurements : [1482.39, 234906, 0.460918, -0.489004]
----
-Label        : 0
-Position     : [231.642, 1066.08]
-Measurements : [848.298, 35588, 0.140787, -0.506194]
----
-Label        : 1
-Position     : [1264.43, 1066.37]
-Measurements : [1894.16, 431908, -0.152023, -1.14118]
----
-Label        : 1
-Position     : [992.488, 1066.51]
-Measurements : [1469.24, 246718, 0.326009, -0.548977]
----
-Label        : 1
-Position     : [902.572, 1066.62]
-Measurements : [1937.24, 395620, -0.648701, -0.727676]
----
-Label        : 1
-Position     : [842.49, 1066.77]
-Measurements : [1637.13, 347456, -0.126214, -0.368328]
----
-Label        : 0
-Position     : [289.664, 1066.88]
-Measurements : [1471.52, 60326.6, 0.474587, -1.09782]
----
-Label        : 1
-Position     : [602.315, 1067]
-Measurements : [1699.82, 300423, -0.113697, -0.517193]
----
-Label        : 1
-Position     : [998.833, 1067.04]
-Measurements : [1295.64, 399196, 0.467405, -0.87565]
----
-Label        : 1
-Position     : [1068.52, 1067.27]
-Measurements : [1026.09, 352227, 0.795086, -0.529614]
----
-Label        : 1
-Position     : [335.48, 1067.6]
-Measurements : [1001.06, 223427, 0.538648, -0.846757]
----
-Label        : 1
-Position     : [898.804, 1067.67]
-Measurements : [1749.79, 509874, -0.613197, -0.866149]
----
-Label        : 1
-Position     : [844.011, 1067.84]
-Measurements : [1588.18, 319056, 0.176613, -0.452007]
----
-Label        : 1
-Position     : [968.298, 1068.02]
-Measurements : [1186.48, 319544, 0.971109, 0.500699]
----
-Label        : 1
-Position     : [794.383, 1068.1]
-Measurements : [1531.21, 369563, -0.146678, -0.79932]
----
-Label        : 1
-Position     : [862.431, 1068.25]
-Measurements : [1164.19, 327143, 0.40999, -0.918946]
----
-Label        : 1
-Position     : [790.878, 1068.61]
-Measurements : [1062.67, 268315, 0.437988, -0.950832]
----
-Label        : 0
-Position     : [180.523, 1068.69]
-Measurements : [1071.55, 18919.2, 0.469124, -0.0707115]
----
-Label        : 1
-Position     : [844.631, 1068.79]
-Measurements : [1465.66, 323926, 0.0957246, -0.738181]
----
-Label        : 1
-Position     : [600.989, 1069.08]
-Measurements : [1365.89, 411326, 0.227273, -1.10557]
----
-Label        : 1
-Position     : [995.106, 1069.22]
-Measurements : [1603.19, 308413, 0.183582, -1.20052]
----
-Label        : 1
-Position     : [860.674, 1069.33]
-Measurements : [1285.42, 343648, 0.320842, -0.878393]
----
-Label        : 1
-Position     : [600.586, 1069.36]
-Measurements : [1365.89, 411326, 0.227273, -1.10557]
----
-Label        : 0
-Position     : [276.915, 1069.5]
-Measurements : [1030.63, 44566, -1.1906, 0.792699]
----
-Label        : 1
-Position     : [1116.19, 1069.66]
-Measurements : [1524.84, 521870, -0.300372, -1.50815]
----
-Label        : 1
-Position     : [332.784, 1069.77]
-Measurements : [857.081, 262337, 0.870197, -0.727657]
----
-Label        : 1
-Position     : [900.114, 1069.89]
-Measurements : [1881.1, 263231, -0.563128, -0.26125]
----
-Label        : 1
-Position     : [794.567, 1070.05]
-Measurements : [1281.75, 396428, 0.132021, -1.19865]
----
-Label        : 1
-Position     : [922.189, 1070.08]
-Measurements : [1289, 453605, 0.249878, -1.479]
----
-Label        : 1
-Position     : [1112.63, 1070.3]
-Measurements : [1687.14, 348641, -0.606228, -0.744031]
----
-Label        : 1
-Position     : [1114.23, 1070.35]
-Measurements : [1746.72, 349510, -0.801723, -0.467484]
----
-Label        : 1
-Position     : [1114.58, 1070.41]
-Measurements : [1746.72, 349510, -0.801723, -0.467484]
----
-Label        : 1
-Position     : [896.297, 1070.56]
-Measurements : [1574.03, 471911, -0.441687, -1.05252]
----
-Label        : 1
-Position     : [843.719, 1070.87]
-Measurements : [1229.55, 349929, 0.214774, -1.21616]
----
-Label        : 1
-Position     : [1040.39, 1070.89]
-Measurements : [1013.16, 322562, 0.523158, -0.729431]
----
-Label        : 1
-Position     : [1066.19, 1070.89]
-Measurements : [931.271, 200962, 0.558388, -1.13704]
----
-Label        : 1
-Position     : [967.427, 1071.23]
-Measurements : [941.259, 131265, -0.0610348, -1.39455]
----
-Label        : 1
-Position     : [842.918, 1071.57]
-Measurements : [1110.06, 378066, 0.457115, -1.1367]
----
-Label        : 1
-Position     : [338.822, 1071.67]
-Measurements : [1018.08, 119680, 1.3749, 0.611555]
----
-Label        : 1
-Position     : [1253.36, 1071.74]
-Measurements : [1539.84, 421758, -0.0912068, -1.44408]
----
-Label        : 1
-Position     : [1068.76, 1071.76]
-Measurements : [830.833, 161066, 0.85298, -0.748251]
----
-Label        : 1
-Position     : [596.732, 1072.26]
-Measurements : [1088.59, 238493, 0.256296, -1.36753]
----
-Label        : 1
-Position     : [970.785, 1072.27]
-Measurements : [894.876, 123202, 0.502103, -0.646614]
----
-Label        : 1
-Position     : [994.922, 1072.53]
-Measurements : [1782.24, 231276, -0.343096, -0.735451]
----
-Label        : 1
-Position     : [895.714, 1072.61]
-Measurements : [1489.41, 469906, -0.35282, -1.16363]
----
-Label        : 1
-Position     : [866.36, 1072.77]
-Measurements : [1229.22, 471682, 0.455838, -1.23022]
----
-Label        : 1
-Position     : [916.774, 1072.95]
-Measurements : [1281.79, 415539, 0.486748, -1.14991]
----
-Label        : 0
-Position     : [286.474, 1073.27]
-Measurements : [1494.5, 107251, 0.528237, -1.1887]
----
-Label        : 1
-Position     : [921.604, 1073.35]
-Measurements : [1560.31, 507638, -0.086204, -1.25262]
----
-Label        : 1
-Position     : [960.695, 1073.5]
-Measurements : [857.156, 267104, 0.795523, -0.712916]
----
-Label        : 1
-Position     : [842.382, 1073.51]
-Measurements : [901.878, 272405, 0.770158, -0.837331]
----
-Label        : 1
-Position     : [861.612, 1073.58]
-Measurements : [1770.69, 275464, -0.415215, -0.684394]
----
-Label        : 1
-Position     : [1257.74, 1073.64]
-Measurements : [1933.22, 374694, -0.434486, -0.630972]
----
-Label        : 1
-Position     : [899.759, 1073.76]
-Measurements : [1838.89, 257462, -0.325163, -0.402379]
----
-Label        : 1
-Position     : [1044.41, 1073.9]
-Measurements : [1175.24, 465016, 0.940931, 0.0780993]
----
-Label        : 1
-Position     : [600.686, 1074.13]
-Measurements : [1241.33, 275759, 0.0843598, -1.2792]
----
-Label        : 1
-Position     : [991.703, 1074.41]
-Measurements : [1747.47, 203351, -0.254667, -0.48618]
----
-Label        : 1
-Position     : [1113.74, 1074.58]
-Measurements : [1940.71, 182133, -1.0065, 0.714931]
----
-Label        : 1
-Position     : [792.051, 1074.67]
-Measurements : [715.469, 228424, 1.44681, 0.596601]
----
-Label        : 1
-Position     : [899.295, 1074.81]
-Measurements : [1835.52, 268824, -0.262589, -0.454564]
----
-Label        : 1
-Position     : [599.746, 1074.88]
-Measurements : [1220.5, 269013, 0.0416882, -1.30075]
----
-Label        : 1
-Position     : [1038.78, 1075.17]
-Measurements : [1631.37, 426967, 0.0229473, -0.664653]
----
-Label        : 1
-Position     : [966.322, 1075.34]
-Measurements : [1158.12, 439663, 0.487083, -1.21011]
----
-Label        : 1
-Position     : [1037.3, 1075.37]
-Measurements : [1547.85, 496089, 0.0398388, -0.83847]
----
-Label        : 1
-Position     : [1042.74, 1075.57]
-Measurements : [1506.97, 438894, 0.491883, -0.674477]
----
-Label        : 1
-Position     : [1256.57, 1075.64]
-Measurements : [1985.18, 305919, -0.749865, -0.148024]
----
-Label        : 1
-Position     : [315.651, 1075.87]
-Measurements : [596.397, 101244, 2.07012, 3.22618]
----
-Label        : 1
-Position     : [77.8, 1076.02]
-Measurements : [1929.62, 458453, -0.111483, -1.18215]
----
-Label        : 1
-Position     : [896.631, 1076.25]
-Measurements : [1699.78, 271108, -0.550469, 0.140458]
----
-Label        : 1
-Position     : [916.334, 1076.8]
-Measurements : [1403.13, 391279, 0.346963, -1.17856]
----
-Label        : 1
-Position     : [894.636, 1076.99]
-Measurements : [1412.66, 425870, -0.290103, -1.1361]
----
-Label        : 1
-Position     : [965.431, 1077.04]
-Measurements : [1439.73, 533332, -0.0946199, -1.43516]
----
-Label        : 1
-Position     : [993.069, 1077.31]
-Measurements : [1643.59, 327515, -0.463382, -0.770623]
----
-Label        : 1
-Position     : [310.904, 1077.33]
-Measurements : [927.341, 162883, 0.594919, -0.649925]
----
-Label        : 1
-Position     : [77.286, 1077.38]
-Measurements : [1945.15, 439803, -0.099796, -1.20879]
----
-Label        : 1
-Position     : [333.001, 1077.42]
-Measurements : [1039.98, 270648, 0.813768, -0.396275]
----
-Label        : 1
-Position     : [991.236, 1077.45]
-Measurements : [1650.33, 249390, -0.382364, -0.559288]
----
-Label        : 1
-Position     : [987.44, 1077.69]
-Measurements : [1573.01, 233269, -0.163239, -0.518413]
----
-Label        : 1
-Position     : [73.2249, 1077.84]
-Measurements : [1438.74, 626886, 0.307536, -1.11043]
----
-Label        : 1
-Position     : [920.375, 1077.86]
-Measurements : [1738.94, 342593, -0.0267431, -0.827248]
----
-Label        : 1
-Position     : [1039.16, 1077.86]
-Measurements : [1547.48, 514159, 0.0941747, -1.05196]
----
-Label        : 1
-Position     : [920.966, 1077.86]
-Measurements : [1738.94, 342593, -0.0267431, -0.827248]
----
-Label        : 1
-Position     : [599.358, 1077.96]
-Measurements : [966.224, 232590, 0.643817, -1.08672]
----
-Label        : 0
-Position     : [214.447, 1078.07]
-Measurements : [721.977, 29834.3, -0.0459263, -1.38373]
----
-Label        : 1
-Position     : [311.36, 1078.2]
-Measurements : [866.952, 197828, 0.939155, -0.265792]
----
-Label        : 1
-Position     : [967.904, 1078.26]
-Measurements : [1397.09, 541304, 0.181655, -1.38845]
----
-Label        : 1
-Position     : [860.383, 1078.49]
-Measurements : [1567.44, 521605, -0.154939, -1.54392]
----
-Label        : 1
-Position     : [861.111, 1078.54]
-Measurements : [1595.14, 513244, -0.210322, -1.52303]
----
-Label        : 1
-Position     : [894.835, 1078.89]
-Measurements : [1437.07, 431862, -0.355293, -1.14035]
----
-Label        : 1
-Position     : [896.018, 1078.9]
-Measurements : [1690.76, 263301, -0.484804, -0.0525624]
----
-Label        : 1
-Position     : [1257.2, 1078.93]
-Measurements : [2076.1, 359988, -0.501825, -0.368702]
----
-Label        : 1
-Position     : [840.602, 1079.54]
-Measurements : [755.837, 189173, 1.54833, 1.52975]
----
-Label        : 1
-Position     : [920.037, 1079.92]
-Measurements : [1582.08, 431210, 0.214176, -1.04835]
----
-Label        : 1
-Position     : [331.896, 1080.4]
-Measurements : [1079.64, 292382, 0.545597, -0.813138]
----
-Label        : 1
-Position     : [837.166, 1080.7]
-Measurements : [869.584, 259128, 1.00008, -0.32103]
----
-Label        : 1
-Position     : [917.098, 1080.72]
-Measurements : [1234.31, 458614, 0.707147, -0.681752]
----
-Label        : 1
-Position     : [858.3, 1081.12]
-Measurements : [1244.4, 442540, 0.652034, -0.968102]
----
-Label        : 1
-Position     : [1111.28, 1081.13]
-Measurements : [1994.06, 277345, -0.218568, -0.189735]
----
-Label        : 1
-Position     : [857.654, 1081.17]
-Measurements : [1188.35, 401978, 0.80195, -0.655809]
----
-Label        : 1
-Position     : [987.55, 1081.54]
-Measurements : [1686.29, 203534, -0.465899, -0.140304]
----
-Label        : 1
-Position     : [920.487, 1082.01]
-Measurements : [1183.15, 471970, 1.06077, 0.191637]
----
-Label        : 0
-Position     : [257.478, 1082.03]
-Measurements : [1124.28, 24691.8, -0.74802, 1.9546]
----
-Label        : 1
-Position     : [1258.56, 1082.25]
-Measurements : [1682.68, 660515, 0.225929, -1.26408]
----
-Label        : 1
-Position     : [987.201, 1082.33]
-Measurements : [1754.46, 190202, -0.0437528, -0.751095]
----
-Label        : 1
-Position     : [1114.23, 1082.56]
-Measurements : [1754.38, 495281, -0.0284473, -1.2201]
----
-Label        : 1
-Position     : [990.889, 1082.89]
-Measurements : [1656.11, 317262, -0.523784, -0.681794]
----
-Label        : 1
-Position     : [896.428, 1083]
-Measurements : [1336.07, 490480, 0.171446, -1.22902]
----
-Label        : 1
-Position     : [963.383, 1083.18]
-Measurements : [2234.85, 198235, -0.567996, 0.269718]
----
-Label        : 1
-Position     : [894.069, 1083.46]
-Measurements : [1033.45, 480487, 0.688529, -0.967521]
----
-Label        : 1
-Position     : [900.901, 1083.68]
-Measurements : [1317.95, 372376, 0.568797, -0.575312]
----
-Label        : 1
-Position     : [1254.56, 1083.89]
-Measurements : [1192.77, 386288, 0.857423, -0.620612]
----
-Label        : 1
-Position     : [331.163, 1084.4]
-Measurements : [1143.3, 249384, 0.579623, -0.684709]
----
-Label        : 1
-Position     : [967.159, 1084.82]
-Measurements : [1895.45, 510439, -0.0225459, -1.42963]
----
-Label        : 1
-Position     : [963.393, 1084.97]
-Measurements : [2306.45, 209188, -0.657404, 0.575012]
----
-Label        : 1
-Position     : [1110.05, 1085.23]
-Measurements : [1925.52, 361631, -0.28424, -0.484604]
----
-Label        : 1
-Position     : [839.129, 1085.34]
-Measurements : [863.717, 179706, 1.10735, 0.620948]
----
-Label        : 1
-Position     : [1115.81, 1085.36]
-Measurements : [1520.48, 515730, 0.589413, -1.0736]
----
-Label        : 0
-Position     : [219.044, 1085.89]
-Measurements : [1206.72, 30036.2, -0.773169, -0.764504]
----
-Label        : 1
-Position     : [1105.82, 1085.89]
-Measurements : [1409.69, 559898, 0.0741824, -1.21507]
----
-Label        : 1
-Position     : [858.335, 1086.28]
-Measurements : [1309.72, 398950, 0.703431, -0.444962]
----
-Label        : 1
-Position     : [914.356, 1086.63]
-Measurements : [1140.36, 355302, 0.590514, -0.980791]
----
-Label        : 1
-Position     : [1111.94, 1086.98]
-Measurements : [1880.54, 396975, -0.210773, -0.79487]
----
-Label        : 1
-Position     : [310.231, 1087.07]
-Measurements : [1009.42, 515162, 1.00145, -0.545091]
----
-Label        : 1
-Position     : [1105, 1087.36]
-Measurements : [1260.09, 549398, 0.27972, -1.21554]
----
-Label        : 1
-Position     : [307.832, 1087.57]
-Measurements : [1279.73, 432804, 0.57088, -0.97877]
----
-Label        : 1
-Position     : [989.188, 1087.69]
-Measurements : [1723.64, 349520, -0.349601, -0.572529]
----
-Label        : 1
-Position     : [962.154, 1088.1]
-Measurements : [2283.52, 271865, -0.59973, -0.166411]
----
-Label        : 0
-Position     : [192.306, 1088.22]
-Measurements : [928.518, 48296.5, 0.110534, -0.0699811]
----
-Label        : 1
-Position     : [1027.18, 1088.36]
-Measurements : [775.299, 246501, 0.794162, -0.850706]
----
-Label        : 1
-Position     : [856.069, 1088.57]
-Measurements : [1638.53, 389914, 0.132686, -0.915477]
----
-Label        : 1
-Position     : [913.822, 1089.32]
-Measurements : [1025.2, 385520, 0.833213, -0.806066]
----
-Label        : 1
-Position     : [994.122, 1089.91]
-Measurements : [1095.31, 549862, 0.982881, -0.422543]
----
-Label        : 1
-Position     : [988.788, 1089.99]
-Measurements : [1689.6, 319573, -0.0963518, -0.663632]
----
-Label        : 1
-Position     : [309.636, 1090.01]
-Measurements : [1036.69, 511944, 1.00362, -0.492388]
----
-Label        : 1
-Position     : [957.325, 1090.26]
-Measurements : [1818.3, 586214, -0.51928, -0.803871]
----
-Label        : 1
-Position     : [861.099, 1090.5]
-Measurements : [1317.37, 630893, 0.594882, -1.03761]
----
-Label        : 1
-Position     : [856.483, 1090.61]
-Measurements : [1793.77, 390805, -0.0429731, -0.853561]
----
-Label        : 1
-Position     : [1032.9, 1090.67]
-Measurements : [900.749, 498700, 1.15203, -0.130886]
----
-Label        : 1
-Position     : [3.83146, 1091.01]
-Measurements : [1331.57, 196835, 1.24546, 0.672271]
----
-Label        : 1
-Position     : [1028.51, 1091.37]
-Measurements : [1172.9, 513420, 0.428752, -1.01562]
----
-Label        : 1
-Position     : [1108.41, 1091.37]
-Measurements : [1351.51, 535827, 0.399753, -0.853249]
----
-Label        : 0
-Position     : [142.98, 1091.38]
-Measurements : [1070, 9078.42, -0.88087, 0.923298]
----
-Label        : 1
-Position     : [856.697, 1091.6]
-Measurements : [1807.37, 393397, -0.0973794, -0.900549]
----
-Label        : 1
-Position     : [985.092, 1091.78]
-Measurements : [1734.76, 265564, -0.221991, -0.595334]
----
-Label        : 1
-Position     : [607.864, 1091.89]
-Measurements : [880.579, 542044, 0.951025, -0.64557]
----
-Label        : 1
-Position     : [1262.18, 1091.98]
-Measurements : [548.588, 93782.4, 1.38609, 1.61379]
----
-Label        : 1
-Position     : [1055.57, 1092.17]
-Measurements : [1272.1, 344471, 0.139039, -1.47984]
----
-Label        : 1
-Position     : [991.827, 1092.28]
-Measurements : [1418.46, 580540, 0.232185, -1.37755]
----
-Label        : 1
-Position     : [964.894, 1093.12]
-Measurements : [1877.96, 578463, 0.104338, -1.51049]
----
-Label        : 1
-Position     : [960.106, 1093.42]
-Measurements : [2092.33, 391258, -0.450804, -0.445903]
----
-Label        : 1
-Position     : [916.242, 1093.78]
-Measurements : [1121.09, 348810, 0.533025, -1.0389]
----
-Label        : 1
-Position     : [854.581, 1093.88]
-Measurements : [1592.07, 604030, 0.00240911, -1.34817]
----
-Label        : 1
-Position     : [958.886, 1094.17]
-Measurements : [2009.72, 343332, -0.533888, -0.0558652]
----
-Label        : 1
-Position     : [892.169, 1094.2]
-Measurements : [1186.33, 351057, 0.134356, -1.35697]
----
-Label        : 1
-Position     : [985.902, 1094.38]
-Measurements : [1843.62, 222345, -0.128628, -0.414821]
----
-Label        : 0
-Position     : [259.044, 1094.82]
-Measurements : [753.567, 68497.3, 0.272122, -1.48026]
----
-Label        : 1
-Position     : [853.83, 1094.88]
-Measurements : [1409.6, 714758, 0.297433, -1.47687]
----
-Label        : 1
-Position     : [1269.54, 1094.96]
-Measurements : [976.922, 240002, 0.417818, -0.905896]
----
-Label        : 1
-Position     : [7.656, 1094.97]
-Measurements : [1485.79, 395766, 0.0283435, -1.18202]
----
-Label        : 1
-Position     : [855.503, 1095.08]
-Measurements : [1441.48, 743631, 0.256967, -1.49925]
----
-Label        : 1
-Position     : [1107.51, 1095.19]
-Measurements : [814.851, 377390, 1.44917, 0.534495]
----
-Label        : 1
-Position     : [888.779, 1095.35]
-Measurements : [1335.52, 308509, -0.323976, -1.03263]
----
-Label        : 1
-Position     : [1267.17, 1095.35]
-Measurements : [967.295, 218363, 0.461424, -0.676289]
----
-Label        : 1
-Position     : [613.408, 1095.48]
-Measurements : [1703.96, 613294, -0.213562, -1.43754]
----
-Label        : 1
-Position     : [1058.41, 1095.88]
-Measurements : [1524.43, 347279, -0.191113, -1.3013]
----
-Label        : 0
-Position     : [96.7612, 1096.08]
-Measurements : [1269.01, 17415.6, 0.752649, 1.23866]
----
-Label        : 1
-Position     : [986.304, 1096.55]
-Measurements : [1694.49, 375471, -0.272519, -0.83505]
----
-Label        : 1
-Position     : [609.918, 1096.6]
-Measurements : [1610.28, 542468, -0.270672, -1.13973]
----
-Label        : 0
-Position     : [247.757, 1096.94]
-Measurements : [1293.76, 71110.3, 0.607419, -0.764484]
----
-Label        : 1
-Position     : [327, 1097]
-Measurements : [784.893, 157105, 1.30623, 1.11276]
----
-Label        : 1
-Position     : [1030.27, 1097.32]
-Measurements : [1681.5, 376593, -0.320268, -1.04321]
----
-Label        : 1
-Position     : [984.682, 1097.52]
-Measurements : [1761.07, 329786, -0.474931, -0.382438]
----
-Label        : 1
-Position     : [6.47254, 1097.54]
-Measurements : [1484.49, 401640, 0.00481478, -1.20688]
----
-Label        : 1
-Position     : [326.734, 1097.57]
-Measurements : [750.509, 165709, 1.39889, 1.17512]
----
-Label        : 1
-Position     : [912.622, 1097.71]
-Measurements : [1143.47, 359919, 0.249579, -1.42336]
----
-Label        : 1
-Position     : [889.055, 1097.74]
-Measurements : [1456.72, 196778, -0.348067, -0.47207]
----
-Label        : 1
-Position     : [303.904, 1097.82]
-Measurements : [1087.77, 189526, 0.66936, -0.24755]
----
-Label        : 0
-Position     : [253.41, 1098.11]
-Measurements : [895.033, 67286.7, -0.435044, -1.11304]
----
-Label        : 1
-Position     : [956.83, 1098.34]
-Measurements : [1539.5, 616414, 0.00355931, -1.40037]
----
-Label        : 0
-Position     : [168.583, 1098.67]
-Measurements : [752.491, 43880, 0.0205883, -1.39981]
----
-Label        : 1
-Position     : [985.723, 1098.98]
-Measurements : [1657.69, 404132, -0.281057, -0.918316]
----
-Label        : 1
-Position     : [913.822, 1099.15]
-Measurements : [1163.75, 338017, 0.246734, -1.38487]
----
-Label        : 0
-Position     : [270.11, 1099.24]
-Measurements : [1096.86, 10493.4, 0.281709, 0.572445]
----
-Label        : 1
-Position     : [858.791, 1099.45]
-Measurements : [787.524, 428708, 2.04554, 3.10989]
----
-Label        : 1
-Position     : [1060.11, 1099.56]
-Measurements : [1514.94, 429286, -0.074932, -1.28052]
----
-Label        : 0
-Position     : [134.613, 1099.81]
-Measurements : [973.458, 6331.39, -0.52856, -0.335983]
----
-Label        : 1
-Position     : [917.793, 1100.11]
-Measurements : [1094.8, 299121, 0.518578, -1.10227]
----
-Label        : 1
-Position     : [890.983, 1100.11]
-Measurements : [1400.35, 161844, 0.074681, -0.84253]
----
-Label        : 1
-Position     : [1359.6, 1100.5]
-Measurements : [1774.64, 377057, -0.788745, -0.456058]
----
-Label        : 1
-Position     : [309.43, 1100.51]
-Measurements : [559.242, 82491, 2.59435, 6.89053]
----
-Label        : 1
-Position     : [975.45, 1100.52]
-Measurements : [1073.3, 233622, 0.609561, -0.584929]
----
-Label        : 1
-Position     : [324.58, 1100.56]
-Measurements : [537.909, 48414.5, 2.28277, 5.78213]
----
-Label        : 1
-Position     : [978.538, 1100.79]
-Measurements : [1282.55, 392357, 0.334611, -0.943155]
----
-Label        : 1
-Position     : [1029.74, 1100.79]
-Measurements : [1784.61, 332989, -0.481679, -0.8367]
----
-Label        : 1
-Position     : [1055.13, 1100.79]
-Measurements : [1793.87, 165248, -0.0695641, -0.163157]
----
-Label        : 1
-Position     : [958.643, 1101.01]
-Measurements : [1300.85, 551935, 0.485265, -1.15511]
----
-Label        : 1
-Position     : [1374.05, 1101.19]
-Measurements : [1659.42, 357622, -0.350888, -0.380255]
----
-Label        : 1
-Position     : [304.76, 1101.39]
-Measurements : [1006.51, 251423, 0.519497, -1.10284]
----
-Label        : 1
-Position     : [887.826, 1101.43]
-Measurements : [1458.54, 187384, -0.414354, -0.208829]
----
-Label        : 1
-Position     : [1366.24, 1101.9]
-Measurements : [1712.72, 299374, -0.212772, -0.633687]
----
-Label        : 1
-Position     : [974.083, 1101.96]
-Measurements : [959.43, 184929, 0.758253, -0.131308]
----
-Label        : 1
-Position     : [1370.64, 1101.99]
-Measurements : [1396.58, 248339, -0.316641, -0.334658]
----
-Label        : 1
-Position     : [1058.75, 1102.49]
-Measurements : [1628.46, 302853, -0.188964, -0.753754]
----
-Label        : 1
-Position     : [1.57639, 1102.61]
-Measurements : [1601.33, 289616, -0.219549, -0.721911]
----
-Label        : 1
-Position     : [1351.91, 1102.71]
-Measurements : [1484.21, 352827, -0.0893716, -0.946487]
----
-Label        : 1
-Position     : [1374.8, 1102.88]
-Measurements : [1738.75, 288032, -0.372391, -0.0228555]
----
-Label        : 1
-Position     : [953.439, 1103.15]
-Measurements : [984.832, 346054, 0.856744, -0.588939]
----
-Label        : 0
-Position     : [160.971, 1103.19]
-Measurements : [724.351, 44779.5, -0.059758, -1.40541]
----
-Label        : 0
-Position     : [207.841, 1103.28]
-Measurements : [1796.71, 54799.9, -0.671429, -0.369486]
----
-Label        : 0
-Position     : [108.015, 1103.47]
-Measurements : [1269.7, 112492, 1.16842, 0.816407]
----
-Label        : 0
-Position     : [107.22, 1103.59]
-Measurements : [1285.44, 109878, 1.12114, 0.730062]
----
-Label        : 1
-Position     : [1026.96, 1103.87]
-Measurements : [1777.23, 320502, -0.294373, -0.329193]
----
-Label        : 1
-Position     : [890.33, 1104.27]
-Measurements : [1299.04, 187758, 0.438932, -0.610869]
----
-Label        : 1
-Position     : [1362.6, 1104.36]
-Measurements : [1950.16, 219665, -0.46113, -0.819057]
----
-Label        : 1
-Position     : [1383.49, 1104.36]
-Measurements : [1244.92, 331576, 1.1062, 0.490336]
----
-Label        : 1
-Position     : [1382.66, 1104.39]
-Measurements : [1401.5, 352386, 0.886507, -0.481211]
----
-Label        : 1
-Position     : [1354.91, 1104.62]
-Measurements : [1682.52, 273612, -0.373785, -0.51851]
----
-Label        : 1
-Position     : [1059.7, 1104.76]
-Measurements : [1350.82, 406200, 0.37374, -1.02033]
----
-Label        : 1
-Position     : [1368.34, 1104.77]
-Measurements : [1691.7, 200827, 0.368456, -0.26652]
----
-Label        : 1
-Position     : [1023.87, 1104.96]
-Measurements : [1458, 389818, -0.209666, -0.829614]
----
-Label        : 1
-Position     : [1025.89, 1105.49]
-Measurements : [1756.79, 279987, -0.117236, -0.0488144]
----
-Label        : 1
-Position     : [8.95123, 1105.63]
-Measurements : [1303.79, 454884, 0.291148, -1.36364]
----
-Label        : 1
-Position     : [1358.7, 1105.7]
-Measurements : [2031.7, 158278, -0.423964, -0.477682]
----
-Label        : 1
-Position     : [5.096, 1105.72]
-Measurements : [1570.48, 340261, -0.103748, -1.17403]
----
-Label        : 1
-Position     : [906.602, 1105.98]
-Measurements : [964.055, 268656, 0.725827, -0.919944]
----
-Label        : 1
-Position     : [1376.12, 1106]
-Measurements : [1828.25, 224641, -0.0527603, -0.740408]
----
-Label        : 1
-Position     : [1027.23, 1106.06]
-Measurements : [1864.37, 211691, 0.211352, -0.57113]
----
-Label        : 1
-Position     : [1054.68, 1106.47]
-Measurements : [1572.47, 307838, -0.072663, -0.763482]
----
-Label        : 1
-Position     : [1343.89, 1106.63]
-Measurements : [981.832, 344030, 0.488675, -1.10683]
----
-Label        : 1
-Position     : [1347.04, 1106.82]
-Measurements : [1366.16, 267692, -0.259933, -0.695874]
----
-Label        : 1
-Position     : [1101.96, 1107.06]
-Measurements : [693.533, 246960, 1.72661, 1.89091]
----
-Label        : 1
-Position     : [1297.39, 1107.21]
-Measurements : [1697.71, 187214, -0.204008, -0.379521]
----
-Label        : 1
-Position     : [1366.5, 1107.48]
-Measurements : [1897.71, 183652, 0.0371842, -1.19696]
----
-Label        : 1
-Position     : [1280.99, 1107.58]
-Measurements : [1486.57, 370590, -0.40729, -0.873565]
----
-Label        : 1
-Position     : [956.079, 1107.69]
-Measurements : [1066.09, 285122, 0.601048, -0.64029]
----
-Label        : 1
-Position     : [1388.23, 1107.98]
-Measurements : [735.539, 93974.7, 0.727868, -1.10259]
----
-Label        : 1
-Position     : [1286.68, 1108]
-Measurements : [1931.54, 412761, -0.216404, -1.05659]
----
-Label        : 1
-Position     : [1278.63, 1108.05]
-Measurements : [1336.12, 378464, -0.312573, -1.35284]
----
-Label        : 1
-Position     : [1354, 1108.05]
-Measurements : [1738.64, 198563, -0.142728, -0.353238]
----
-Label        : 1
-Position     : [1045.38, 1108.09]
-Measurements : [1177.11, 274813, 0.64846, -0.664975]
----
-Label        : 1
-Position     : [1286.83, 1108.46]
-Measurements : [1931.06, 413266, -0.226095, -1.04297]
----
-Label        : 1
-Position     : [1053.66, 1108.46]
-Measurements : [1422.39, 325971, 0.100455, -1.05721]
----
-Label        : 1
-Position     : [1104.34, 1108.46]
-Measurements : [575.281, 57501.1, 1.22683, 1.04365]
----
-Label        : 1
-Position     : [946.603, 1108.5]
-Measurements : [782.057, 193687, 1.07718, 0.646128]
----
-Label        : 1
-Position     : [1054.17, 1108.78]
-Measurements : [1383.63, 338687, 0.129883, -1.06391]
----
-Label        : 1
-Position     : [1333.11, 1108.87]
-Measurements : [1033.58, 287961, 0.39674, -1.13897]
----
-Label        : 1
-Position     : [10.8959, 1108.96]
-Measurements : [1170.48, 463215, 0.493087, -1.38174]
----
-Label        : 1
-Position     : [1028.03, 1108.97]
-Measurements : [1773.71, 216997, 0.405007, -0.17]
----
-Label        : 1
-Position     : [1052.52, 1109.13]
-Measurements : [1367.04, 357078, 0.155066, -1.24615]
----
-Label        : 1
-Position     : [956.372, 1109.34]
-Measurements : [1172.45, 242434, 0.337028, -0.490947]
----
-Label        : 1
-Position     : [1289.57, 1109.87]
-Measurements : [1979.6, 404496, -0.406364, -0.864684]
----
-Label        : 1
-Position     : [978.567, 1109.96]
-Measurements : [1150.55, 377732, 0.396928, -1.21534]
----
-Label        : 1
-Position     : [911.574, 1110.01]
-Measurements : [845.849, 213549, 1.41013, 0.460357]
----
-Label        : 1
-Position     : [908.039, 1110.16]
-Measurements : [945.205, 241040, 0.875315, -0.74]
----
-Label        : 1
-Position     : [1049.76, 1110.16]
-Measurements : [1329.51, 413382, 0.208955, -1.4339]
----
-Label        : 1
-Position     : [1101.37, 1110.57]
-Measurements : [995.652, 389863, 0.814415, -0.643937]
----
-Label        : 1
-Position     : [1324.85, 1110.69]
-Measurements : [884.812, 314874, 1.11923, -0.151081]
----
-Label        : 1
-Position     : [1337.67, 1110.81]
-Measurements : [957.856, 354605, 0.610579, -1.23341]
----
-Label        : 1
-Position     : [7.656, 1110.84]
-Measurements : [1562, 411152, -0.244827, -1.25374]
----
-Label        : 1
-Position     : [978.49, 1110.98]
-Measurements : [1232.67, 377358, 0.163689, -1.34218]
----
-Label        : 1
-Position     : [612.892, 1111.5]
-Measurements : [864.653, 307860, 0.687751, -1.14504]
----
-Label        : 1
-Position     : [1096.4, 1111.57]
-Measurements : [1354.82, 395499, 0.0452553, -1.24968]
----
-Label        : 1
-Position     : [951.457, 1111.8]
-Measurements : [1278.37, 129893, 0.122527, 0.827308]
----
-Label        : 1
-Position     : [1025.59, 1111.8]
-Measurements : [1434.87, 383222, 0.206401, -0.280155]
----
-Label        : 1
-Position     : [1307.06, 1112.04]
-Measurements : [1687.16, 264750, 0.130994, -1.141]
----
-Label        : 1
-Position     : [2.80576, 1112.05]
-Measurements : [1442.89, 286329, 0.0951319, -1.16083]
----
-Label        : 1
-Position     : [1293.79, 1112.15]
-Measurements : [1753.35, 306211, -0.230339, -0.333576]
----
-Label        : 1
-Position     : [1280.12, 1112.24]
-Measurements : [1545.92, 294644, -0.352696, -0.902354]
----
-Label        : 1
-Position     : [618.399, 1112.39]
-Measurements : [1400.61, 378591, -0.269551, -1.18181]
----
-Label        : 1
-Position     : [1328.58, 1112.93]
-Measurements : [796.678, 196306, 1.02998, -0.154111]
----
-Label        : 1
-Position     : [617.7, 1113.39]
-Measurements : [1425.42, 362603, -0.337889, -1.06499]
----
-Label        : 0
-Position     : [130.119, 1113.8]
-Measurements : [984.168, 59335, 0.30838, -1.12156]
----
-Label        : 1
-Position     : [8.58797, 1113.86]
-Measurements : [1536.36, 404599, -0.164655, -1.29883]
----
-Label        : 1
-Position     : [956.635, 1113.88]
-Measurements : [1268.47, 153921, 0.618902, -0.11014]
----
-Label        : 1
-Position     : [984.364, 1114.12]
-Measurements : [1046.4, 337437, 0.667562, -0.749976]
----
-Label        : 0
-Position     : [248.516, 1114.17]
-Measurements : [1113.12, 11579.1, -1.39855, 3.19304]
----
-Label        : 1
-Position     : [1101.55, 1114.5]
-Measurements : [1282.52, 374272, 0.506245, -0.888592]
----
-Label        : 1
-Position     : [1320.41, 1114.6]
-Measurements : [1032.15, 270371, 0.861253, -0.49313]
----
-Label        : 1
-Position     : [948.112, 1114.65]
-Measurements : [1270.24, 179928, -0.104498, -0.519677]
----
-Label        : 1
-Position     : [891.655, 1114.67]
-Measurements : [1530.64, 390562, -0.0528693, -1.10978]
----
-Label        : 1
-Position     : [1295.07, 1114.68]
-Measurements : [1653.16, 179768, -0.267496, -0.691445]
----
-Label        : 1
-Position     : [1302.8, 1115.01]
-Measurements : [1648.35, 236677, -0.464077, -1.00253]
----
-Label        : 1
-Position     : [1098.09, 1115.08]
-Measurements : [1475.44, 305910, 0.0457305, -0.926588]
----
-Label        : 1
-Position     : [1302.74, 1115.3]
-Measurements : [1648.35, 236677, -0.464077, -1.00253]
----
-Label        : 1
-Position     : [296.146, 1115.3]
-Measurements : [1233.36, 173292, 0.214674, -0.832506]
----
-Label        : 0
-Position     : [260.476, 1115.4]
-Measurements : [823.993, 24804.4, -0.332099, -0.353432]
----
-Label        : 1
-Position     : [894.226, 1115.45]
-Measurements : [1443.88, 406293, 0.214301, -1.19304]
----
-Label        : 1
-Position     : [320.12, 1115.73]
-Measurements : [1070.28, 292634, 0.670746, -0.554849]
----
-Label        : 1
-Position     : [1302.22, 1115.74]
-Measurements : [1648.35, 236677, -0.464077, -1.00253]
----
-Label        : 1
-Position     : [974.292, 1115.86]
-Measurements : [1336.8, 240706, -0.242379, -0.928976]
----
-Label        : 1
-Position     : [1310.58, 1116.24]
-Measurements : [1252.35, 204340, 0.579078, -0.194194]
----
-Label        : 1
-Position     : [1024.84, 1116.43]
-Measurements : [925.682, 275505, 0.602451, -1.18428]
----
-Label        : 1
-Position     : [953.459, 1116.57]
-Measurements : [1343.78, 154165, 0.183803, -0.887349]
----
-Label        : 1
-Position     : [1315.21, 1116.59]
-Measurements : [1089.48, 148798, 0.326079, -0.771989]
----
-Label        : 1
-Position     : [621.295, 1116.65]
-Measurements : [1077.61, 392418, 0.611573, -1.22381]
----
-Label        : 1
-Position     : [950.638, 1116.71]
-Measurements : [1398.97, 142219, -0.0764231, -0.526]
----
-Label        : 1
-Position     : [297.592, 1116.75]
-Measurements : [1148.73, 207589, 0.288315, -1.13186]
----
-Label        : 1
-Position     : [7.144, 1116.98]
-Measurements : [1672.28, 250227, -0.613578, -0.382394]
----
-Label        : 1
-Position     : [1315.69, 1117.06]
-Measurements : [1052.25, 128330, 0.30612, -0.789024]
----
-Label        : 1
-Position     : [322.204, 1117.2]
-Measurements : [1072.93, 231534, 1.07337, 0.251528]
----
-Label        : 1
-Position     : [976.936, 1117.26]
-Measurements : [1466.07, 232995, 0.150008, -0.445359]
----
-Label        : 1
-Position     : [980.538, 1117.53]
-Measurements : [1380.98, 200485, 0.198664, -0.4273]
----
-Label        : 1
-Position     : [318.379, 1117.76]
-Measurements : [922.922, 330255, 0.989479, -0.28201]
----
-Label        : 1
-Position     : [293.031, 1118.43]
-Measurements : [1183.39, 110523, 0.586584, -0.21553]
----
-Label        : 1
-Position     : [896.518, 1118.63]
-Measurements : [1135.73, 502124, 0.773855, -0.946832]
----
-Label        : 0
-Position     : [162.013, 1118.89]
-Measurements : [1046.11, 3723.81, -0.18434, -0.555536]
----
-Label        : 1
-Position     : [947.969, 1119.13]
-Measurements : [1296.02, 313995, -0.281319, -1.34654]
----
-Label        : 1
-Position     : [1040.98, 1119.33]
-Measurements : [817.424, 132441, 0.391018, -0.924471]
----
-Label        : 0
-Position     : [107.701, 1119.51]
-Measurements : [1004.92, 15855.4, -0.504019, 1.26513]
----
-Label        : 1
-Position     : [617.7, 1119.53]
-Measurements : [1110.42, 314501, 0.461469, -1.24448]
----
-Label        : 1
-Position     : [954.222, 1119.68]
-Measurements : [1350.9, 197683, 0.187335, -1.30852]
----
-Label        : 1
-Position     : [979.157, 1120.44]
-Measurements : [1218.54, 187873, 0.34507, 0.00234448]
----
-Label        : 1
-Position     : [1022.52, 1120.46]
-Measurements : [1025.14, 321899, 0.33598, -1.43068]
----
-Label        : 1
-Position     : [1095.19, 1120.64]
-Measurements : [1535.75, 232272, -0.142176, -0.500953]
----
-Label        : 1
-Position     : [1097.72, 1120.92]
-Measurements : [1554.26, 258599, 0.0481866, -0.942775]
----
-Label        : 0
-Position     : [224.089, 1120.93]
-Measurements : [1030.74, 2676.05, -2.31253, 8.00231]
----
-Label        : 1
-Position     : [1019.45, 1121.22]
-Measurements : [1185.69, 358416, -0.0286825, -1.36273]
----
-Label        : 1
-Position     : [1095.64, 1121.22]
-Measurements : [1529.92, 191916, -0.126115, -0.578863]
----
-Label        : 1
-Position     : [6.71789, 1121.62]
-Measurements : [1591.16, 264087, -0.287199, -1.10858]
----
-Label        : 1
-Position     : [949.825, 1121.73]
-Measurements : [1363.53, 299022, -0.430466, -1.25047]
----
-Label        : 1
-Position     : [1021.64, 1122.08]
-Measurements : [1250.54, 324483, -0.13649, -1.24278]
----
-Label        : 0
-Position     : [230.059, 1122.35]
-Measurements : [929.305, 11586.8, -0.75956, -0.103885]
----
-Label        : 1
-Position     : [974.394, 1123.27]
-Measurements : [1524.68, 369930, 0.49282, -0.548381]
----
-Label        : 1
-Position     : [1044.44, 1123.27]
-Measurements : [1032.55, 276660, -0.0447536, -1.51575]
----
-Label        : 1
-Position     : [1022.65, 1123.3]
-Measurements : [1290.52, 294234, -0.0652611, -1.0898]
----
-Label        : 1
-Position     : [968.949, 1123.43]
-Measurements : [1471.81, 415163, 0.457305, -0.784827]
----
-Label        : 1
-Position     : [624.191, 1124]
-Measurements : [890.2, 244990, 1.03644, -0.172235]
----
-Label        : 1
-Position     : [621.857, 1124.07]
-Measurements : [696.259, 94737.2, 2.18233, 5.84234]
----
-Label        : 1
-Position     : [949.818, 1124.09]
-Measurements : [1065.72, 362022, 0.449653, -1.43843]
----
-Label        : 1
-Position     : [631.038, 1124.12]
-Measurements : [1591.81, 319505, -0.41229, -0.844146]
----
-Label        : 1
-Position     : [9.704, 1124.15]
-Measurements : [1231.3, 422557, 0.200027, -1.68301]
----
-Label        : 0
-Position     : [157.119, 1124.41]
-Measurements : [1056.4, 38740.7, 0.247114, 1.08397]
----
-Label        : 1
-Position     : [626.302, 1124.45]
-Measurements : [1135.07, 375979, 0.387306, -1.30277]
----
-Label        : 1
-Position     : [1018.56, 1124.71]
-Measurements : [1454.8, 237028, -0.350559, -0.532075]
----
-Label        : 1
-Position     : [1018.22, 1124.91]
-Measurements : [1454.8, 237028, -0.350559, -0.532075]
----
-Label        : 1
-Position     : [978.837, 1125.23]
-Measurements : [1029.9, 317605, 1.10817, 0.583133]
----
-Label        : 1
-Position     : [1091.56, 1125.33]
-Measurements : [1160.73, 394681, 0.120183, -1.66112]
----
-Label        : 1
-Position     : [10.8516, 1125.62]
-Measurements : [1072.72, 420117, 0.609403, -1.38314]
----
-Label        : 1
-Position     : [1094, 1125.73]
-Measurements : [1281.12, 329526, -0.17595, -1.51126]
----
-Label        : 1
-Position     : [1047.27, 1125.95]
-Measurements : [1123.06, 295589, 0.135125, -1.40774]
----
-Label        : 1
-Position     : [744.838, 1126.11]
-Measurements : [1022.72, 313192, 0.0629765, -1.35426]
----
-Label        : 1
-Position     : [969.889, 1126.14]
-Measurements : [1628.39, 366728, 0.126048, -0.745168]
----
-Label        : 1
-Position     : [295.032, 1126.48]
-Measurements : [1047.8, 249877, 0.483722, -1.19177]
----
-Label        : 1
-Position     : [291.874, 1126.57]
-Measurements : [1226.69, 138531, 0.392667, -0.314183]
----
-Label        : 1
-Position     : [292.404, 1126.67]
-Measurements : [1184.46, 174180, 0.208548, -0.657442]
----
-Label        : 1
-Position     : [969.433, 1126.79]
-Measurements : [1628.39, 366728, 0.126048, -0.745168]
----
-Label        : 0
-Position     : [151.959, 1126.84]
-Measurements : [1303.66, 157811, 0.0185304, -1.25052]
----
-Label        : 0
-Position     : [120.577, 1127.36]
-Measurements : [928.118, 13857.8, -1.64526, 1.98989]
----
-Label        : 1
-Position     : [1039.26, 1127.91]
-Measurements : [1241.12, 142161, -0.0150767, -0.759667]
----
-Label        : 1
-Position     : [5.30779, 1128.1]
-Measurements : [944.431, 304391, 1.04353, -0.335558]
----
-Label        : 1
-Position     : [1044.95, 1128.21]
-Measurements : [1454.37, 136002, -0.408306, -0.050401]
----
-Label        : 1
-Position     : [311.796, 1128.43]
-Measurements : [516.136, 43139.8, 1.83871, 2.18098]
----
-Label        : 1
-Position     : [746.724, 1128.54]
-Measurements : [1272.59, 222451, -0.216323, -0.631394]
----
-Label        : 0
-Position     : [100.428, 1128.93]
-Measurements : [969.132, 17879.2, -1.87672, 3.23088]
----
-Label        : 1
-Position     : [629.988, 1128.95]
-Measurements : [1700.89, 271813, -0.587899, -0.553474]
----
-Label        : 1
-Position     : [1086.68, 1129]
-Measurements : [787.301, 243765, 0.993342, -0.472551]
----
-Label        : 1
-Position     : [317.693, 1129]
-Measurements : [683.774, 58613.4, 0.188041, -0.887551]
----
-Label        : 1
-Position     : [971.558, 1129.4]
-Measurements : [1583.45, 291772, 0.569015, -0.192093]
----
-Label        : 1
-Position     : [969.959, 1129.88]
-Measurements : [1568.55, 315171, 0.451701, -0.295612]
----
-Label        : 1
-Position     : [1093.55, 1130.14]
-Measurements : [1096.95, 319763, 0.296364, -1.56766]
----
-Label        : 0
-Position     : [159.72, 1130.31]
-Measurements : [1085.67, 24078.9, -1.41563, 0.937455]
----
-Label        : 1
-Position     : [632.224, 1130.54]
-Measurements : [1875.29, 224853, -0.527495, -0.187398]
----
-Label        : 1
-Position     : [36.0026, 1130.6]
-Measurements : [1136.47, 392664, 0.141498, -1.26417]
----
-Label        : 1
-Position     : [1042.8, 1130.64]
-Measurements : [1521.63, 124932, -0.389979, -0.22042]
----
-Label        : 1
-Position     : [758.59, 1130.77]
-Measurements : [1512.8, 209622, -0.204781, -0.762893]
----
-Label        : 1
-Position     : [744.207, 1130.96]
-Measurements : [1195.6, 321731, -0.103009, -1.15426]
----
-Label        : 1
-Position     : [972.346, 1131.46]
-Measurements : [1481.66, 277398, 0.499083, 0.146027]
----
-Label        : 1
-Position     : [1091.02, 1131.51]
-Measurements : [1122.69, 319490, 0.114157, -1.64666]
----
-Label        : 0
-Position     : [205.482, 1131.59]
-Measurements : [1024.32, 12456.4, -2.56799, 8.61018]
----
-Label        : 1
-Position     : [43.844, 1131.87]
-Measurements : [1165.39, 284950, 0.863729, -0.753485]
----
-Label        : 1
-Position     : [39.4, 1131.9]
-Measurements : [1323.52, 251333, 0.317063, -1.07014]
----
-Label        : 1
-Position     : [314.488, 1132.62]
-Measurements : [766.555, 98758.9, 0.502569, -0.347876]
----
-Label        : 1
-Position     : [755.735, 1132.64]
-Measurements : [1504.91, 199923, 0.0839969, -1.0132]
----
-Label        : 1
-Position     : [631.11, 1133.04]
-Measurements : [1912.48, 211997, -0.537191, -0.172032]
----
-Label        : 1
-Position     : [1013.17, 1133.05]
-Measurements : [894.744, 184817, 0.300538, -1.50086]
----
-Label        : 1
-Position     : [1091.54, 1133.92]
-Measurements : [1186.44, 283275, -0.077929, -1.60438]
----
-Label        : 1
-Position     : [636.554, 1134.26]
-Measurements : [1660.44, 458292, -0.295868, -1.13566]
----
-Label        : 1
-Position     : [763.518, 1134.28]
-Measurements : [1230.6, 175525, 0.292462, -0.451196]
----
-Label        : 1
-Position     : [632.855, 1134.69]
-Measurements : [1893.81, 243747, -0.403782, -0.526413]
----
-Label        : 0
-Position     : [138.906, 1135.02]
-Measurements : [853.322, 12556.1, -1.76641, 2.77119]
----
-Label        : 0
-Position     : [200.477, 1135.77]
-Measurements : [828.799, 54698.7, -0.23034, -1.74816]
----
-Label        : 0
-Position     : [108.981, 1135.89]
-Measurements : [983.519, 5901.38, 0.460685, -1.0713]
----
-Label        : 1
-Position     : [1041.57, 1135.97]
-Measurements : [1251.27, 327451, -0.15749, -1.4196]
----
-Label        : 1
-Position     : [627.992, 1135.99]
-Measurements : [1501.21, 319429, 0.354041, -1.01453]
----
-Label        : 1
-Position     : [291.948, 1136.01]
-Measurements : [932.205, 216500, 0.937441, 0.266747]
----
-Label        : 1
-Position     : [1014.94, 1136.38]
-Measurements : [1153.14, 210896, -0.307712, -1.17327]
----
-Label        : 1
-Position     : [751.069, 1136.78]
-Measurements : [1308.03, 278297, 0.186299, -1.09681]
----
-Label        : 1
-Position     : [653.314, 1136.83]
-Measurements : [1675.46, 782722, -0.111543, -1.20664]
----
-Label        : 1
-Position     : [964.966, 1136.94]
-Measurements : [896.149, 238106, 0.953832, -0.326273]
----
-Label        : 0
-Position     : [132.735, 1137.13]
-Measurements : [872.972, 4561.19, -0.534553, -0.715854]
----
-Label        : 1
-Position     : [969.07, 1137.19]
-Measurements : [1169.75, 268077, 0.0518946, -1.35931]
----
-Label        : 1
-Position     : [756.638, 1137.43]
-Measurements : [1260.57, 167288, 0.543398, -0.0136713]
----
-Label        : 0
-Position     : [141.091, 1137.53]
-Measurements : [1042.07, 130453, 0.966673, -0.26523]
----
-Label        : 1
-Position     : [636.132, 1137.97]
-Measurements : [1670.41, 480113, -0.268542, -1.1685]
----
-Label        : 1
-Position     : [1042.9, 1138.02]
-Measurements : [1005.13, 312595, 0.562031, -1.28514]
----
-Label        : 1
-Position     : [289.4, 1138.26]
-Measurements : [1010.6, 192603, 0.756089, 0.267923]
----
-Label        : 1
-Position     : [634.692, 1138.36]
-Measurements : [1785.04, 378250, -0.29383, -1.0051]
----
-Label        : 1
-Position     : [637.73, 1138.36]
-Measurements : [1490.32, 572827, -0.012165, -1.43545]
----
-Label        : 1
-Position     : [767.328, 1138.98]
-Measurements : [714.19, 180572, 1.65842, 1.85807]
----
-Label        : 1
-Position     : [1087.85, 1139.65]
-Measurements : [1557.74, 150628, -0.833591, 0.385313]
----
-Label        : 1
-Position     : [1044.49, 1139.7]
-Measurements : [926.791, 294133, 0.952724, -0.73062]
----
-Label        : 1
-Position     : [286.235, 1139.74]
-Measurements : [1169.68, 114625, 0.984141, 1.90722]
----
-Label        : 1
-Position     : [1092.81, 1139.97]
-Measurements : [1459.3, 216384, -0.329166, -1.1956]
----
-Label        : 0
-Position     : [228.639, 1140.23]
-Measurements : [1232.22, 46859.2, 0.371178, -1.35799]
----
-Label        : 1
-Position     : [1017.97, 1140.42]
-Measurements : [1381.77, 200423, -0.277902, -0.420345]
----
-Label        : 1
-Position     : [651.697, 1140.42]
-Measurements : [1749.46, 814711, -0.220851, -1.42414]
----
-Label        : 0
-Position     : [156.826, 1140.82]
-Measurements : [1283.51, 161811, 0.675848, -0.56946]
----
-Label        : 1
-Position     : [1013.54, 1141.32]
-Measurements : [1565.07, 120026, -0.53445, 1.17169]
----
-Label        : 1
-Position     : [647.501, 1141.55]
-Measurements : [1495.26, 867369, 0.101414, -1.50972]
----
-Label        : 1
-Position     : [1014.54, 1141.7]
-Measurements : [1576.32, 107979, -0.135096, 0.499446]
----
-Label        : 1
-Position     : [721.202, 1141.72]
-Measurements : [956.677, 196307, 0.142456, -0.763618]
----
-Label        : 1
-Position     : [964.79, 1141.74]
-Measurements : [625.868, 172911, 2.54853, 5.27219]
----
-Label        : 0
-Position     : [169.854, 1141.85]
-Measurements : [1308.13, 58658.9, 0.526328, -0.868855]
----
-Label        : 0
-Position     : [171.863, 1141.92]
-Measurements : [1435.59, 59089.7, 0.149777, -1.40351]
----
-Label        : 1
-Position     : [1088.57, 1142.41]
-Measurements : [1621.93, 137380, -0.648513, -0.0471067]
----
-Label        : 0
-Position     : [129.945, 1142.46]
-Measurements : [919.733, 933.24, -0.472886, 0.434218]
----
-Label        : 1
-Position     : [1009.14, 1143.37]
-Measurements : [1468.03, 216957, -0.476265, -0.181204]
----
-Label        : 0
-Position     : [240.962, 1143.41]
-Measurements : [843.451, 43046.5, -0.0668802, -1.1608]
----
-Label        : 1
-Position     : [1088.97, 1143.47]
-Measurements : [1593.35, 153600, -0.526202, -0.464171]
----
-Label        : 1
-Position     : [1012.99, 1144.63]
-Measurements : [1660.72, 121411, -0.0882883, -0.218307]
----
-Label        : 0
-Position     : [126.5, 1144.64]
-Measurements : [918.687, 3970.85, -0.876945, 3.51086]
----
-Label        : 1
-Position     : [6.632, 1144.7]
-Measurements : [2221.2, 349450, -0.814199, 0.21863]
----
-Label        : 1
-Position     : [720.51, 1144.93]
-Measurements : [1024.62, 192598, -0.0422643, -0.732742]
----
-Label        : 1
-Position     : [1038.29, 1145.39]
-Measurements : [1146.85, 292515, 0.493896, -0.273585]
----
-Label        : 0
-Position     : [136.404, 1145.43]
-Measurements : [905.554, 1004.83, 0.788542, -0.0894318]
----
-Label        : 1
-Position     : [1010.03, 1145.8]
-Measurements : [1591.95, 179658, -0.444554, 0.0879009]
----
-Label        : 1
-Position     : [1085.4, 1145.8]
-Measurements : [1588.85, 150307, -0.56307, -0.154259]
----
-Label        : 1
-Position     : [722.799, 1146]
-Measurements : [1136.63, 106376, 0.292177, 0.284196]
----
-Label        : 1
-Position     : [287.199, 1146.22]
-Measurements : [1101.02, 247833, 0.400411, -1.08682]
----
-Label        : 1
-Position     : [1088.31, 1146.43]
-Measurements : [1467.95, 222410, -0.324458, -1.12877]
----
-Label        : 1
-Position     : [1041.03, 1146.46]
-Measurements : [1114.59, 438922, 0.88341, -0.170194]
----
-Label        : 0
-Position     : [165.737, 1146.89]
-Measurements : [1149.03, 11686.3, 0.378348, -0.73669]
----
-Label        : 1
-Position     : [3.14686, 1147.61]
-Measurements : [2315.14, 211255, -0.643725, 0.380212]
----
-Label        : 1
-Position     : [1006.06, 1147.66]
-Measurements : [1407.08, 273096, -0.286826, -0.823738]
----
-Label        : 1
-Position     : [5.76968, 1147.75]
-Measurements : [2361.71, 192047, -0.574013, 0.0944329]
----
-Label        : 0
-Position     : [95.8535, 1148.89]
-Measurements : [1043.14, 4039.13, 0.34265, -0.976442]
----
-Label        : 1
-Position     : [286.84, 1149.01]
-Measurements : [1117.53, 249389, 0.324471, -1.20021]
----
-Label        : 1
-Position     : [1086.57, 1149.1]
-Measurements : [1433.75, 258862, -0.295462, -1.1583]
----
-Label        : 1
-Position     : [314.043, 1149.17]
-Measurements : [826.213, 111604, 2.41388, 5.83775]
----
-Label        : 0
-Position     : [192.486, 1149.6]
-Measurements : [1209.73, 54018, 0.352959, -1.42971]
----
-Label        : 1
-Position     : [1003.13, 1149.7]
-Measurements : [1219.37, 389379, 0.0325397, -1.45289]
----
-Label        : 1
-Position     : [1034.21, 1149.78]
-Measurements : [1454.99, 245800, 0.853194, 0.595]
----
-Label        : 1
-Position     : [1035.42, 1149.89]
-Measurements : [1502.71, 269280, 0.806998, 0.273687]
----
-Label        : 1
-Position     : [309.224, 1150.05]
-Measurements : [953.735, 197743, 1.02165, 0.178332]
----
-Label        : 0
-Position     : [230.115, 1150.06]
-Measurements : [1163.99, 13498.4, 0.267976, 0.623753]
----
-Label        : 1
-Position     : [1007.35, 1150.61]
-Measurements : [1595.08, 253254, -0.341438, -0.521532]
----
-Label        : 1
-Position     : [1084.17, 1150.71]
-Measurements : [1475.29, 253947, -0.285451, -1.11393]
----
-Label        : 0
-Position     : [220.38, 1150.72]
-Measurements : [1406.21, 45677.3, -0.887135, -0.654873]
----
-Label        : 1
-Position     : [6.64686, 1150.84]
-Measurements : [2067.21, 313072, -0.488555, -0.721966]
----
-Label        : 1
-Position     : [774.755, 1151.02]
-Measurements : [905.172, 304152, 0.737353, -0.883288]
----
-Label        : 0
-Position     : [91.127, 1151.09]
-Measurements : [1173.03, 21051.2, 1.37188, 2.70561]
----
-Label        : 1
-Position     : [6.12, 1151.35]
-Measurements : [1990.35, 281745, -0.410493, -0.84822]
----
-Label        : 1
-Position     : [1037.28, 1151.55]
-Measurements : [1595.3, 336847, 0.242418, -0.754099]
----
-Label        : 0
-Position     : [227.787, 1151.76]
-Measurements : [1181.88, 21940.6, 0.713167, 0.331678]
----
-Label        : 1
-Position     : [666.065, 1151.78]
-Measurements : [1255.1, 705566, 0.311059, -1.2594]
----
-Label        : 1
-Position     : [1080.88, 1152.84]
-Measurements : [1460.67, 278986, -0.15895, -0.692329]
----
-Label        : 1
-Position     : [1110.92, 1152.98]
-Measurements : [1654.6, 296910, 0.40103, -1.11604]
----
-Label        : 1
-Position     : [1007.16, 1153.17]
-Measurements : [1409.85, 367620, 0.140601, -1.3886]
----
-Label        : 0
-Position     : [229.56, 1153.27]
-Measurements : [1206.73, 15553.6, -0.114988, 1.07142]
----
-Label        : 1
-Position     : [1037.59, 1153.44]
-Measurements : [1598.85, 354198, 0.19774, -0.92183]
----
-Label        : 1
-Position     : [288.516, 1153.69]
-Measurements : [772.077, 259186, 1.52119, 0.813144]
----
-Label        : 1
-Position     : [776.225, 1153.75]
-Measurements : [1026.53, 339644, 0.545387, -1.15853]
----
-Label        : 1
-Position     : [2.78325, 1153.99]
-Measurements : [1864.55, 216033, -0.0864642, -1.06612]
----
-Label        : 1
-Position     : [1087.3, 1154.25]
-Measurements : [1103.6, 225363, 0.64597, -0.747493]
----
-Label        : 1
-Position     : [1110.26, 1154.52]
-Measurements : [1739.89, 238706, 0.335358, -0.886881]
----
-Label        : 0
-Position     : [174.137, 1154.67]
-Measurements : [1427.73, 47665.8, -0.630245, 0.509506]
----
-Label        : 0
-Position     : [145.05, 1154.7]
-Measurements : [1221.8, 217789, 0.157037, -1.34233]
----
-Label        : 1
-Position     : [308.506, 1154.71]
-Measurements : [940.75, 113844, 0.931214, 0.922325]
----
-Label        : 0
-Position     : [146.191, 1154.85]
-Measurements : [1310.59, 242056, -0.125762, -1.39595]
----
-Label        : 0
-Position     : [102.193, 1155.2]
-Measurements : [1118.24, 13183, 2.62639, 11.1511]
----
-Label        : 1
-Position     : [666.852, 1155.58]
-Measurements : [1504.53, 639924, 0.0798386, -1.17231]
----
-Label        : 1
-Position     : [1034.2, 1155.63]
-Measurements : [1637.8, 254615, 0.313633, -0.432779]
----
-Label        : 1
-Position     : [45.6109, 1155.75]
-Measurements : [950.641, 388082, 0.550202, -1.27312]
----
-Label        : 1
-Position     : [1037.82, 1155.83]
-Measurements : [1584.5, 376728, 0.0635747, -0.84991]
----
-Label        : 1
-Position     : [46.8161, 1156.08]
-Measurements : [1136.68, 416802, 0.115468, -1.46727]
----
-Label        : 1
-Position     : [1032.58, 1157.1]
-Measurements : [1525.62, 196565, -0.348416, -0.261578]
----
-Label        : 1
-Position     : [10.4649, 1157.13]
-Measurements : [1282.26, 370987, 0.432619, -0.768665]
----
-Label        : 1
-Position     : [775.569, 1157.18]
-Measurements : [1327.56, 259850, -0.136, -1.26029]
----
-Label        : 1
-Position     : [1081.8, 1157.22]
-Measurements : [1610.31, 315715, 0.163968, -0.849958]
----
-Label        : 1
-Position     : [774.257, 1157.31]
-Measurements : [1382.79, 219603, -0.214492, -1.06328]
----
-Label        : 1
-Position     : [1105, 1157.62]
-Measurements : [1425.5, 190806, 0.0835614, -0.512457]
----
-Label        : 1
-Position     : [1080.89, 1157.67]
-Measurements : [1666.01, 289439, 0.0934961, -0.818089]
----
-Label        : 0
-Position     : [171.875, 1157.77]
-Measurements : [1355.3, 47895.1, -0.920909, 0.891197]
----
-Label        : 1
-Position     : [1111.32, 1157.98]
-Measurements : [1760.22, 302281, -0.161825, -0.755027]
----
-Label        : 0
-Position     : [115.068, 1158.51]
-Measurements : [994.761, 21197.4, -1.6234, 1.83583]
----
-Label        : 1
-Position     : [7.656, 1159.03]
-Measurements : [1305.08, 295855, -0.0831315, -1.50138]
----
-Label        : 1
-Position     : [774.586, 1159.08]
-Measurements : [1431.5, 203821, -0.396619, -0.917594]
----
-Label        : 1
-Position     : [769.236, 1159.26]
-Measurements : [1335.92, 164932, 0.319891, -1.04671]
----
-Label        : 1
-Position     : [1034.28, 1159.48]
-Measurements : [1450.07, 277183, -0.222387, -1.00844]
----
-Label        : 1
-Position     : [44.52, 1159.54]
-Measurements : [1239.65, 490685, -0.0903567, -1.46974]
----
-Label        : 0
-Position     : [179.332, 1159.58]
-Measurements : [1205.49, 43796.6, -0.0434319, -0.203013]
----
-Label        : 1
-Position     : [1037.62, 1159.82]
-Measurements : [1319.67, 355350, 0.0921585, -1.41574]
----
-Label        : 1
-Position     : [671.115, 1160.14]
-Measurements : [855.894, 444276, 1.88032, 2.42662]
----
-Label        : 1
-Position     : [1106.98, 1160.26]
-Measurements : [1417.53, 144462, 0.596014, 0.463787]
----
-Label        : 1
-Position     : [305.64, 1160.29]
-Measurements : [914.347, 122039, 0.866925, 0.920378]
----
-Label        : 1
-Position     : [1032.97, 1160.95]
-Measurements : [1314, 325452, -0.0550434, -1.31711]
----
-Label        : 1
-Position     : [50.5872, 1160.97]
-Measurements : [1673.48, 106613, -0.250052, 0.330115]
----
-Label        : 0
-Position     : [118.672, 1161.44]
-Measurements : [943.731, 18417.6, -1.08217, -0.117994]
----
-Label        : 1
-Position     : [1081.16, 1161.54]
-Measurements : [1778.86, 359125, 0.0385953, -0.998229]
----
-Label        : 1
-Position     : [306.024, 1161.67]
-Measurements : [957.765, 98584.5, 1.28924, 1.91503]
----
-Label        : 1
-Position     : [48.798, 1161.95]
-Measurements : [1687.78, 173141, -0.453277, 1.15164]
----
-Label        : 1
-Position     : [306.365, 1162.03]
-Measurements : [967.185, 101075, 1.47147, 2.27644]
----
-Label        : 0
-Position     : [93.0062, 1162.4]
-Measurements : [1360.46, 232997, 0.935395, -0.174343]
----
-Label        : 1
-Position     : [12.2981, 1162.52]
-Measurements : [894.349, 254483, 1.09828, -0.34333]
----
-Label        : 1
-Position     : [679.14, 1162.95]
-Measurements : [1225.94, 277101, 0.162187, -0.65047]
----
-Label        : 1
-Position     : [1078.84, 1163]
-Measurements : [1769.8, 333630, -0.0293483, -0.710707]
----
-Label        : 1
-Position     : [282.684, 1163.14]
-Measurements : [1146.41, 459797, 0.384399, -1.49957]
----
-Label        : 1
-Position     : [281.166, 1163.16]
-Measurements : [1227.07, 403801, 0.23897, -1.44882]
----
-Label        : 1
-Position     : [775.34, 1163.24]
-Measurements : [1368.95, 322228, -0.187189, -1.3608]
----
-Label        : 1
-Position     : [774.177, 1163.99]
-Measurements : [1458.28, 268717, -0.362289, -1.03724]
----
-Label        : 1
-Position     : [678.286, 1164.26]
-Measurements : [1244.35, 241009, -0.0883215, -0.634315]
----
-Label        : 1
-Position     : [280.552, 1164.38]
-Measurements : [1255.74, 352484, 0.247431, -1.28641]
----
-Label        : 1
-Position     : [770.095, 1164.39]
-Measurements : [1449.94, 272127, -0.241911, -0.944929]
----
-Label        : 1
-Position     : [1082.31, 1164.49]
-Measurements : [1629.05, 450304, 0.211624, -1.18485]
----
-Label        : 1
-Position     : [682.569, 1164.63]
-Measurements : [1591.97, 263869, 0.0242676, -0.852369]
----
-Label        : 1
-Position     : [53.736, 1164.66]
-Measurements : [1796.13, 157909, 0.450942, -0.454492]
----
-Label        : 1
-Position     : [707.639, 1165.03]
-Measurements : [1271.67, 634350, 0.194827, -1.31768]
----
-Label        : 1
-Position     : [1107.74, 1165.1]
-Measurements : [1294.07, 183733, -0.123783, -0.809899]
----
-Label        : 1
-Position     : [1080.77, 1165.63]
-Measurements : [1773.51, 357820, -0.043212, -0.953411]
----
-Label        : 1
-Position     : [776.707, 1165.82]
-Measurements : [1175.26, 343226, 0.274219, -1.43895]
----
-Label        : 1
-Position     : [1103.3, 1165.99]
-Measurements : [1388.72, 111477, 0.094887, -0.0160851]
----
-Label        : 0
-Position     : [178.895, 1166.25]
-Measurements : [1201.14, 27570.1, 1.00641, 1.99209]
----
-Label        : 1
-Position     : [302.207, 1166.63]
-Measurements : [1052.22, 283675, 0.725463, -0.484432]
----
-Label        : 1
-Position     : [686.513, 1166.64]
-Measurements : [1588.11, 374684, -0.160246, -1.22808]
----
-Label        : 1
-Position     : [61.2249, 1166.72]
-Measurements : [1381.32, 483799, 0.404876, -1.14896]
----
-Label        : 1
-Position     : [1100.73, 1166.73]
-Measurements : [1330.61, 135362, 0.478571, 0.565417]
----
-Label        : 1
-Position     : [1078.02, 1167.1]
-Measurements : [1667.27, 358577, 0.223234, -0.891751]
----
-Label        : 1
-Position     : [689.403, 1167.11]
-Measurements : [1324.63, 501103, 0.433018, -1.4523]
----
-Label        : 1
-Position     : [771.719, 1167.27]
-Measurements : [1276.21, 392712, 0.0712801, -1.50023]
----
-Label        : 1
-Position     : [1073.6, 1167.6]
-Measurements : [1424.16, 411550, -0.282248, -1.18686]
----
-Label        : 1
-Position     : [708.044, 1168]
-Measurements : [1499.85, 524059, -0.165003, -0.937737]
----
-Label        : 1
-Position     : [709.86, 1168.28]
-Measurements : [1627.81, 372373, -0.135262, -0.359293]
----
-Label        : 1
-Position     : [304.408, 1168.35]
-Measurements : [1142.16, 211147, 1.00798, 0.0174553]
----
-Label        : 1
-Position     : [302.568, 1168.99]
-Measurements : [1102.22, 259636, 0.694823, -0.419347]
----
-Label        : 1
-Position     : [689.815, 1169.03]
-Measurements : [1196.13, 470720, 0.763316, -0.956375]
----
-Label        : 1
-Position     : [60.904, 1169.27]
-Measurements : [1368.07, 562764, 0.498212, -1.17687]
----
-Label        : 1
-Position     : [1097.62, 1169.43]
-Measurements : [1213.18, 201338, 0.523949, 0.112324]
----
-Label        : 0
-Position     : [166.876, 1169.93]
-Measurements : [1096.64, 6676.84, 1.02148, 1.16828]
----
-Label        : 1
-Position     : [1104.49, 1170]
-Measurements : [1626.49, 183840, -0.02518, -0.151867]
----
-Label        : 1
-Position     : [806.033, 1170.33]
-Measurements : [1158.68, 355309, 0.0438268, -1.25804]
----
-Label        : 1
-Position     : [278.397, 1170.37]
-Measurements : [1205.98, 347297, 0.444187, -1.05963]
----
-Label        : 1
-Position     : [1100.84, 1170.5]
-Measurements : [1525.53, 171933, 0.236063, 0.244859]
----
-Label        : 0
-Position     : [139.794, 1170.86]
-Measurements : [930.684, 4478.8, 0.844888, -0.191425]
----
-Label        : 1
-Position     : [4.93162, 1171.5]
-Measurements : [1118.23, 221427, 0.238215, -1.23187]
----
-Label        : 1
-Position     : [771.066, 1171.65]
-Measurements : [830.07, 360156, 1.38665, 0.414918]
----
-Label        : 1
-Position     : [808.583, 1171.77]
-Measurements : [1239.92, 313375, -0.109397, -1.03812]
----
-Label        : 0
-Position     : [118.333, 1171.89]
-Measurements : [1020.45, 12099.2, -0.818138, 1.12655]
----
-Label        : 1
-Position     : [55.9968, 1172.8]
-Measurements : [1544.15, 681175, 0.189277, -1.53925]
----
-Label        : 1
-Position     : [8.68, 1172.86]
-Measurements : [1303.49, 426137, 0.651849, -0.78275]
----
-Label        : 1
-Position     : [1076.35, 1172.94]
-Measurements : [1655.4, 363428, -0.100214, -1.25256]
----
-Label        : 1
-Position     : [1099.97, 1173.19]
-Measurements : [1568.65, 202352, -0.171849, -0.172079]
----
-Label        : 1
-Position     : [5.95018, 1173.32]
-Measurements : [1141.07, 267697, 0.616905, -0.542866]
----
-Label        : 1
-Position     : [272.168, 1173.36]
-Measurements : [1493.27, 200158, 0.957997, -0.386417]
----
-Label        : 1
-Position     : [1074.75, 1173.65]
-Measurements : [1720.63, 332586, -0.233922, -1.15701]
----
-Label        : 1
-Position     : [809.513, 1174.98]
-Measurements : [1475.58, 172448, -0.12461, -0.319519]
----
-Label        : 1
-Position     : [274.92, 1175.14]
-Measurements : [1414.44, 313497, 0.292329, -0.810036]
----
-Label        : 1
-Position     : [1103.28, 1175.18]
-Measurements : [1840.97, 145460, -0.709086, 0.577184]
----
-Label        : 0
-Position     : [147.316, 1175.59]
-Measurements : [1016.22, 5487.3, -0.104575, 1.26667]
----
-Label        : 1
-Position     : [807.354, 1175.87]
-Measurements : [1582.88, 137255, -0.126631, -0.136175]
----
-Label        : 1
-Position     : [808.479, 1175.91]
-Measurements : [1557.25, 146285, 0.00798069, -0.47452]
----
-Label        : 1
-Position     : [804.68, 1176.08]
-Measurements : [1436.92, 254438, -0.571786, -0.327179]
----
-Label        : 0
-Position     : [173.258, 1176.28]
-Measurements : [1160.75, 9792.88, -0.58472, 0.246237]
----
-Label        : 1
-Position     : [69.4278, 1176.54]
-Measurements : [1811.43, 412728, -0.200677, -0.851505]
----
-Label        : 1
-Position     : [1102.07, 1177.05]
-Measurements : [1789.93, 141051, -0.503698, 0.21021]
----
-Label        : 1
-Position     : [772.021, 1177.11]
-Measurements : [765.338, 332384, 1.60682, 0.936659]
----
-Label        : 1
-Position     : [770.353, 1177.7]
-Measurements : [870.617, 395075, 1.062, -0.561307]
----
-Label        : 1
-Position     : [65, 1177.98]
-Measurements : [1710.7, 431309, -0.195393, -0.948929]
----
-Label        : 1
-Position     : [1150.42, 1178.15]
-Measurements : [951.68, 212839, 0.349942, -0.967092]
----
-Label        : 1
-Position     : [1074.22, 1178.51]
-Measurements : [1714.99, 309998, -0.321104, -0.952352]
----
-Label        : 1
-Position     : [821.954, 1178.58]
-Measurements : [897.679, 150305, 0.42116, -0.794245]
----
-Label        : 1
-Position     : [1150.02, 1179.53]
-Measurements : [996.775, 237733, 0.377424, -0.815537]
----
-Label        : 1
-Position     : [90.1359, 1180.11]
-Measurements : [1068.05, 45901.2, 1.80289, 5.12569]
----
-Label        : 1
-Position     : [804.078, 1180.38]
-Measurements : [1258.64, 277823, 0.00212332, -1.18351]
----
-Label        : 1
-Position     : [1104.13, 1180.45]
-Measurements : [1603.25, 292510, -0.584487, -1.05308]
----
-Label        : 1
-Position     : [1076.57, 1180.46]
-Measurements : [1433.87, 379487, 0.199152, -1.22763]
----
-Label        : 1
-Position     : [1073.93, 1180.61]
-Measurements : [1447.55, 408477, -0.0256431, -1.23079]
----
-Label        : 1
-Position     : [769.262, 1181.19]
-Measurements : [1289.29, 436584, 0.0565775, -1.55561]
----
-Label        : 1
-Position     : [6.12, 1181.56]
-Measurements : [1267.28, 375035, 0.517701, -0.664949]
----
-Label        : 1
-Position     : [803.898, 1181.71]
-Measurements : [1236.23, 307134, 0.0525878, -1.33434]
----
-Label        : 1
-Position     : [75.335, 1181.87]
-Measurements : [1552.96, 800826, 0.402943, -1.29492]
----
-Label        : 1
-Position     : [1074.32, 1181.9]
-Measurements : [1342.13, 373976, 0.146331, -1.28879]
----
-Label        : 1
-Position     : [1153.68, 1181.97]
-Measurements : [1207.04, 246005, 0.0483445, -1.05673]
----
-Label        : 1
-Position     : [762.975, 1181.97]
-Measurements : [1231.07, 278627, 0.389004, -1.07186]
----
-Label        : 1
-Position     : [11.102, 1181.99]
-Measurements : [1413.08, 486277, 0.211868, -1.29281]
----
-Label        : 1
-Position     : [73.192, 1182.07]
-Measurements : [1802.21, 810669, 0.037417, -1.50906]
----
-Label        : 1
-Position     : [66.443, 1182.3]
-Measurements : [2019.14, 590751, -0.524916, -0.643552]
----
-Label        : 1
-Position     : [1097.15, 1182.38]
-Measurements : [1527.3, 221353, -0.175875, -1.04613]
----
-Label        : 1
-Position     : [825.786, 1182.42]
-Measurements : [1182.26, 286006, -0.0928366, -1.23431]
----
-Label        : 1
-Position     : [4.09723, 1182.5]
-Measurements : [1179.43, 295213, 0.545959, -0.490188]
----
-Label        : 1
-Position     : [1151, 1182.52]
-Measurements : [1252.11, 257518, 0.0621691, -0.767241]
----
-Label        : 1
-Position     : [1102.21, 1182.96]
-Measurements : [1655.51, 252755, -0.665866, -0.796063]
----
-Label        : 1
-Position     : [73.1307, 1182.99]
-Measurements : [1802.21, 810669, 0.037417, -1.50906]
----
-Label        : 1
-Position     : [825.112, 1183.15]
-Measurements : [1271.38, 244428, -0.315896, -0.939105]
----
-Label        : 1
-Position     : [1097.56, 1183.19]
-Measurements : [1487.83, 213545, 0.0659557, -1.1985]
----
-Label        : 1
-Position     : [1154.09, 1183.6]
-Measurements : [1396.51, 230610, 0.187407, -0.703307]
----
-Label        : 1
-Position     : [766.394, 1183.65]
-Measurements : [1588.02, 251511, -0.507433, -0.756907]
----
-Label        : 0
-Position     : [127.434, 1183.75]
-Measurements : [948.533, 20332.5, -0.523438, -0.341544]
----
-Label        : 0
-Position     : [232.217, 1183.76]
-Measurements : [1189.62, 27441.2, 0.0170941, -0.820611]
----
-Label        : 0
-Position     : [185.352, 1183.84]
-Measurements : [1177.2, 5451.08, -0.058732, -0.683641]
----
-Label        : 1
-Position     : [87.528, 1184.12]
-Measurements : [958.423, 119859, 0.322424, 0.165602]
----
-Label        : 1
-Position     : [91.2962, 1184.46]
-Measurements : [1033.72, 33959.5, -0.458446, 1.763]
----
-Label        : 1
-Position     : [1100.25, 1184.95]
-Measurements : [1531.14, 249588, -0.248127, -1.10074]
----
-Label        : 1
-Position     : [1099.03, 1184.95]
-Measurements : [1530.41, 219911, -0.141532, -1.06876]
----
-Label        : 1
-Position     : [1153.44, 1185.01]
-Measurements : [1598.93, 257100, -0.155389, -1.01089]
----
-Label        : 1
-Position     : [762.156, 1185.34]
-Measurements : [1296.5, 340204, 0.0615162, -1.40969]
----
-Label        : 1
-Position     : [803.97, 1185.35]
-Measurements : [1256.88, 326282, 0.10677, -1.45978]
----
-Label        : 1
-Position     : [1092.13, 1185.7]
-Measurements : [1008.44, 171793, 0.79629, -0.0759009]
----
-Label        : 1
-Position     : [1093.23, 1186.01]
-Measurements : [1033.28, 198643, 0.819167, 0.00458842]
----
-Label        : 1
-Position     : [799.162, 1186.11]
-Measurements : [1355, 291078, -0.416914, -1.17096]
----
-Label        : 1
-Position     : [824.558, 1186.11]
-Measurements : [1522.09, 153982, -0.232506, -0.131787]
----
-Label        : 1
-Position     : [1096.06, 1186.86]
-Measurements : [1291.83, 210552, 0.428369, -0.748787]
----
-Label        : 1
-Position     : [798.694, 1186.94]
-Measurements : [1289.91, 322788, -0.271621, -1.37939]
----
-Label        : 1
-Position     : [819.753, 1187.13]
-Measurements : [1269.05, 226137, 0.0833932, -1.1808]
----
-Label        : 1
-Position     : [1097.74, 1187.34]
-Measurements : [1269.99, 226143, 0.560891, -0.55951]
----
-Label        : 0
-Position     : [107.795, 1187.46]
-Measurements : [974.298, 18497, -0.1773, -0.0338076]
----
-Label        : 1
-Position     : [1095.11, 1187.7]
-Measurements : [1131.48, 221926, 0.653684, -0.257936]
----
-Label        : 1
-Position     : [1095.52, 1187.7]
-Measurements : [1131.48, 221926, 0.653684, -0.257936]
----
-Label        : 1
-Position     : [1156.24, 1188.51]
-Measurements : [1640.19, 261126, -0.23606, -1.13799]
----
-Label        : 1
-Position     : [826.156, 1188.61]
-Measurements : [1394.35, 282487, -0.236088, -0.982104]
----
-Label        : 1
-Position     : [9.192, 1188.73]
-Measurements : [1795.61, 156376, 0.41132, -0.33843]
----
-Label        : 1
-Position     : [766.394, 1189.39]
-Measurements : [1274.08, 326507, 0.286603, -1.30143]
----
-Label        : 1
-Position     : [802.198, 1189.39]
-Measurements : [1440.98, 246023, -0.415642, -1.16846]
----
-Label        : 1
-Position     : [768.045, 1189.66]
-Measurements : [1195.73, 362902, 0.465562, -1.33141]
----
-Label        : 1
-Position     : [1091.93, 1189.68]
-Measurements : [711.534, 82232.5, 0.94323, 0.64927]
----
-Label        : 1
-Position     : [798.879, 1190]
-Measurements : [1584.3, 188729, -1.05308, 0.550662]
----
-Label        : 1
-Position     : [1152.48, 1190.3]
-Measurements : [1672.47, 364311, -0.511787, -1.1885]
----
-Label        : 1
-Position     : [820.502, 1190.42]
-Measurements : [1295, 269247, 0.1181, -1.21844]
----
-Label        : 1
-Position     : [1152.86, 1190.57]
-Measurements : [1672.47, 364311, -0.511787, -1.1885]
----
-Label        : 1
-Position     : [13.8267, 1190.64]
-Measurements : [1710.02, 199292, -0.326539, -0.647723]
----
-Label        : 1
-Position     : [821.69, 1191.02]
-Measurements : [1331.21, 266615, 0.0752261, -1.15059]
----
-Label        : 1
-Position     : [1153.84, 1191.06]
-Measurements : [1622.26, 391575, -0.391323, -1.31254]
----
-Label        : 1
-Position     : [1149.59, 1191.23]
-Measurements : [1375.61, 524379, 0.0222752, -1.71337]
----
-Label        : 1
-Position     : [825.051, 1191.3]
-Measurements : [1306.23, 295348, 0.0187257, -1.17552]
----
-Label        : 1
-Position     : [859.374, 1191.84]
-Measurements : [1304.06, 396412, 0.130115, -1.16986]
----
-Label        : 1
-Position     : [5.81273, 1191.94]
-Measurements : [1492.18, 147510, 0.0304225, -0.833112]
----
-Label        : 0
-Position     : [196.511, 1192.22]
-Measurements : [1607.13, 44011.5, 0.123893, -1.41548]
----
-Label        : 1
-Position     : [761.952, 1192.6]
-Measurements : [1265.09, 402702, 0.0570166, -1.51692]
----
-Label        : 1
-Position     : [1152.86, 1192.62]
-Measurements : [1521.03, 511762, -0.23247, -1.65025]
----
-Label        : 1
-Position     : [75.5997, 1192.84]
-Measurements : [749.381, 215968, 1.15818, 0.410867]
----
-Label        : 1
-Position     : [857.466, 1193.25]
-Measurements : [1407.08, 322798, -0.0847183, -0.998472]
----
-Label        : 1
-Position     : [864.373, 1193.35]
-Measurements : [1257.72, 212586, 0.994952, 0.534599]
----
-Label        : 1
-Position     : [799.162, 1193.48]
-Measurements : [1620.7, 154920, -0.801872, -0.115901]
----
-Label        : 1
-Position     : [795.008, 1193.6]
-Measurements : [1386.23, 330501, -0.58523, -0.985151]
----
-Label        : 1
-Position     : [798.663, 1193.86]
-Measurements : [1609.82, 167327, -0.937791, 0.320673]
----
-Label        : 1
-Position     : [768.778, 1194.21]
-Measurements : [932.05, 300184, 1.09552, -0.281007]
----
-Label        : 1
-Position     : [792.253, 1195.43]
-Measurements : [1055.97, 354882, 0.22741, -1.40818]
----
-Label        : 0
-Position     : [161.728, 1195.56]
-Measurements : [1050.87, 5899.31, -0.303962, -0.044112]
----
-Label        : 1
-Position     : [798.343, 1195.94]
-Measurements : [1594.06, 172516, -0.800125, -0.0638567]
----
-Label        : 1
-Position     : [761.07, 1196.35]
-Measurements : [1432.35, 364425, -0.190549, -1.39131]
----
-Label        : 1
-Position     : [857.326, 1196.35]
-Measurements : [1250.1, 385819, 0.267622, -1.1927]
----
-Label        : 1
-Position     : [79.336, 1196.41]
-Measurements : [1180.75, 443880, 0.317155, -1.13477]
----
-Label        : 1
-Position     : [765.898, 1197.04]
-Measurements : [1071.85, 359810, 0.723553, -1.05485]
----
-Label        : 1
-Position     : [801.746, 1197.09]
-Measurements : [1369.86, 230534, 0.126528, -1.48602]
----
-Label        : 1
-Position     : [294.771, 1197.31]
-Measurements : [924.689, 354266, 0.825889, -0.750758]
----
-Label        : 1
-Position     : [853.573, 1197.33]
-Measurements : [971.671, 333839, 0.739649, -0.695533]
----
-Label        : 1
-Position     : [877.806, 1198.4]
-Measurements : [711.088, 104285, 1.4406, 1.44004]
----
-Label        : 1
-Position     : [10.216, 1198.46]
-Measurements : [1827.32, 240774, 0.0304515, -0.774381]
----
-Label        : 1
-Position     : [818.237, 1198.82]
-Measurements : [1047, 371466, 0.87564, -0.519433]
----
-Label        : 1
-Position     : [289.835, 1199.1]
-Measurements : [718.394, 255371, 1.38507, 0.540872]
----
-Label        : 1
-Position     : [294.376, 1199.2]
-Measurements : [1001.89, 306094, 0.757925, -0.666724]
----
-Label        : 1
-Position     : [795.476, 1199.22]
-Measurements : [1185.12, 365745, 0.0183278, -1.53179]
----
-Label        : 1
-Position     : [757.378, 1199.59]
-Measurements : [1315.24, 408113, 0.0787407, -1.49655]
----
-Label        : 1
-Position     : [80.1549, 1199.7]
-Measurements : [1244.74, 405225, 0.41905, -1.17794]
----
-Label        : 0
-Position     : [132.888, 1200.69]
-Measurements : [1081.44, 27934, 0.356593, 4.06093]
----
-Label        : 1
-Position     : [856.943, 1200.87]
-Measurements : [1099.61, 348047, 0.500254, -1.09179]
----
-Label        : 1
-Position     : [798.717, 1200.99]
-Measurements : [1171.85, 313919, 0.174347, -1.44847]
----
-Label        : 1
-Position     : [8.26564, 1201.04]
-Measurements : [1593.37, 238480, -0.0750373, -0.905243]
----
-Label        : 1
-Position     : [14.6304, 1201.25]
-Measurements : [1989.93, 375142, -0.568585, -0.623087]
----
-Label        : 1
-Position     : [11.872, 1201.47]
-Measurements : [1878.07, 283262, -0.108716, -0.884632]
----
-Label        : 1
-Position     : [757.383, 1201.67]
-Measurements : [1203.89, 346874, 0.377234, -1.15645]
----
-Label        : 1
-Position     : [753.746, 1202.28]
-Measurements : [1018.77, 206945, 0.724485, -0.404962]
----
-Label        : 1
-Position     : [874.79, 1202.42]
-Measurements : [823.945, 180336, 1.15259, 0.370505]
----
-Label        : 1
-Position     : [816.775, 1202.49]
-Measurements : [1277.91, 407298, 0.225137, -1.16466]
----
-Label        : 1
-Position     : [12.264, 1202.55]
-Measurements : [1975.23, 295764, -0.320646, -0.838866]
----
-Label        : 0
-Position     : [186.377, 1202.61]
-Measurements : [1372.58, 147226, -0.363546, -1.33675]
----
-Label        : 1
-Position     : [270.087, 1202.61]
-Measurements : [731.651, 228259, 1.58597, 1.25361]
----
-Label        : 1
-Position     : [878.836, 1203.11]
-Measurements : [848.244, 242834, 1.07867, -0.18974]
----
-Label        : 1
-Position     : [265.192, 1203.3]
-Measurements : [1165.77, 273250, 0.505811, -0.885315]
----
-Label        : 0
-Position     : [162.979, 1204.42]
-Measurements : [812.26, 45876.6, 0.0554185, -1.4658]
----
-Label        : 1
-Position     : [855.278, 1204.54]
-Measurements : [922.078, 166029, 0.900278, -0.257132]
----
-Label        : 0
-Position     : [160.943, 1204.57]
-Measurements : [808.898, 44084.3, 0.00983514, -1.36082]
----
-Label        : 1
-Position     : [811.336, 1204.86]
-Measurements : [1218.67, 233231, 0.778767, -0.254009]
----
-Label        : 1
-Position     : [872.931, 1205.06]
-Measurements : [880.312, 221325, 0.954574, -0.190436]
----
-Label        : 1
-Position     : [8.02011, 1205.07]
-Measurements : [1608.5, 230530, -0.220706, -0.820422]
----
-Label        : 1
-Position     : [818.772, 1205.09]
-Measurements : [1470.3, 357246, -0.0182837, -1.11492]
----
-Label        : 1
-Position     : [813.839, 1205.21]
-Measurements : [1405.77, 289029, 0.283281, -0.859455]
----
-Label        : 1
-Position     : [859.546, 1205.65]
-Measurements : [890.991, 108297, 1.24734, 1.57051]
----
-Label        : 1
-Position     : [11.1202, 1205.67]
-Measurements : [1982.09, 188002, 0.0591524, -0.617607]
----
-Label        : 0
-Position     : [172.906, 1205.7]
-Measurements : [701.565, 6990.93, 2.07489, 5.58847]
----
-Label        : 1
-Position     : [1146.87, 1206.73]
-Measurements : [916.242, 277081, 0.410514, -1.41405]
----
-Label        : 1
-Position     : [79.1713, 1206.84]
-Measurements : [911.106, 310157, 1.20421, 0.573365]
----
-Label        : 1
-Position     : [757.383, 1207]
-Measurements : [1287.94, 379562, 0.422226, -0.753552]
----
-Label        : 1
-Position     : [874.529, 1207.41]
-Measurements : [883.549, 250160, 0.901673, -0.566962]
----
-Label        : 1
-Position     : [266.636, 1207.49]
-Measurements : [973.078, 346547, 0.909499, -0.593301]
----
-Label        : 1
-Position     : [814.727, 1207.82]
-Measurements : [1486.97, 307317, 0.101435, -0.940271]
----
-Label        : 1
-Position     : [1151.88, 1207.93]
-Measurements : [856.073, 274754, 0.639899, -1.25517]
----
-Label        : 1
-Position     : [854.621, 1208.13]
-Measurements : [1060.52, 172373, 0.739862, -0.671865]
----
-Label        : 1
-Position     : [14.824, 1208.7]
-Measurements : [2171.92, 155829, 0.227236, -0.919945]
----
-Label        : 1
-Position     : [758.404, 1208.73]
-Measurements : [1359.35, 521184, 0.589396, -0.784245]
----
-Label        : 1
-Position     : [1146.5, 1208.96]
-Measurements : [1080.61, 235520, -0.0865575, -1.38126]
----
-Label        : 1
-Position     : [1147.94, 1209]
-Measurements : [1084.39, 240852, -0.113844, -1.41867]
----
-Label        : 1
-Position     : [848.343, 1209.1]
-Measurements : [825.078, 217935, 0.86336, -0.354854]
----
-Label        : 1
-Position     : [1147.54, 1209.41]
-Measurements : [1165.1, 205559, -0.350789, -1.13496]
----
-Label        : 1
-Position     : [1146.95, 1209.71]
-Measurements : [1166.03, 199265, -0.338016, -1.08855]
----
-Label        : 1
-Position     : [82.408, 1209.72]
-Measurements : [1303.49, 380234, 0.222019, -0.862375]
----
-Label        : 1
-Position     : [791.848, 1210.35]
-Measurements : [1033.7, 405911, 0.534803, -1.01415]
----
-Label        : 1
-Position     : [759.246, 1210.7]
-Measurements : [1427.21, 542382, 0.482749, -1.06428]
----
-Label        : 1
-Position     : [871.913, 1211.07]
-Measurements : [1151.41, 386125, 0.459999, -1.05337]
----
-Label        : 1
-Position     : [869.578, 1211.09]
-Measurements : [1068.34, 302377, 0.751652, -0.373732]
----
-Label        : 1
-Position     : [847.912, 1211.42]
-Measurements : [742.205, 183218, 1.13478, 0.276318]
----
-Label        : 1
-Position     : [15.8737, 1211.89]
-Measurements : [2343.75, 165428, 0.0743857, -1.45722]
----
-Label        : 1
-Position     : [755.745, 1211.91]
-Measurements : [1817.41, 357409, -0.036646, -0.721701]
----
-Label        : 1
-Position     : [751.627, 1211.99]
-Measurements : [1516.84, 466227, 0.366788, -0.83318]
----
-Label        : 1
-Position     : [871.766, 1212.2]
-Measurements : [1215.53, 441193, 0.350756, -1.28659]
----
-Label        : 1
-Position     : [814.318, 1212.73]
-Measurements : [1191.83, 406019, 0.391043, -1.12124]
----
-Label        : 1
-Position     : [852.001, 1212.73]
-Measurements : [958.28, 155298, 0.944017, 0.0482365]
----
-Label        : 1
-Position     : [909.531, 1212.96]
-Measurements : [884.748, 342927, 0.886771, -0.582627]
----
-Label        : 1
-Position     : [260.584, 1213.02]
-Measurements : [1077.25, 312499, 0.623861, -0.982408]
----
-Label        : 1
-Position     : [284.136, 1213.02]
-Measurements : [1371.41, 329253, -0.091794, -1.14797]
----
-Label        : 1
-Position     : [86.8254, 1213.03]
-Measurements : [1458.97, 325044, 0.0850041, -1.01114]
----
-Label        : 1
-Position     : [9.87187, 1213.4]
-Measurements : [1711.85, 417815, 0.0331565, -0.88982]
----
-Label        : 1
-Position     : [792.199, 1213.55]
-Measurements : [1462.62, 450200, 0.148354, -0.833265]
----
-Label        : 1
-Position     : [871.662, 1213.55]
-Measurements : [1271.39, 476000, 0.308982, -1.25782]
----
-Label        : 1
-Position     : [82.5704, 1213.6]
-Measurements : [1698.48, 184574, 0.0132581, -0.401171]
----
-Label        : 1
-Position     : [282.796, 1213.68]
-Measurements : [1230.26, 412366, 0.164402, -1.39135]
----
-Label        : 1
-Position     : [793.948, 1213.96]
-Measurements : [1421.52, 469665, 0.21813, -0.831042]
----
-Label        : 1
-Position     : [1143.74, 1214.11]
-Measurements : [1133.24, 213930, -0.226796, -1.28842]
----
-Label        : 1
-Position     : [905.413, 1214.14]
-Measurements : [1207.88, 461935, 0.0915895, -1.5239]
----
-Label        : 0
-Position     : [178.36, 1214.28]
-Measurements : [766.149, 4079.33, 1.56613, 1.86491]
----
-Label        : 1
-Position     : [15.336, 1214.33]
-Measurements : [2423.45, 183125, 0.0486293, -1.10514]
----
-Label        : 0
-Position     : [131.742, 1214.34]
-Measurements : [936.518, 20172.8, -0.304679, 1.13836]
----
-Label        : 1
-Position     : [756.203, 1214.35]
-Measurements : [1799.29, 481028, -0.197371, -0.988624]
----
-Label        : 1
-Position     : [1142.67, 1214.61]
-Measurements : [1034.69, 228523, 0.0839063, -1.38911]
----
-Label        : 1
-Position     : [909.78, 1214.87]
-Measurements : [1117.69, 418789, 0.380851, -1.31459]
----
-Label        : 1
-Position     : [258.906, 1214.98]
-Measurements : [1078.44, 277833, 0.53751, -0.890986]
----
-Label        : 1
-Position     : [280.156, 1215.14]
-Measurements : [1027.23, 379387, 0.612957, -1.09361]
----
-Label        : 0
-Position     : [119.654, 1215.16]
-Measurements : [973.622, 44681.7, 0.4596, 0.253037]
----
-Label        : 0
-Position     : [128.804, 1215.37]
-Measurements : [926.183, 28247.1, 0.260325, 2.06074]
----
-Label        : 1
-Position     : [755.335, 1215.6]
-Measurements : [1837.2, 445531, -0.274624, -0.802054]
----
-Label        : 1
-Position     : [759.726, 1215.7]
-Measurements : [1359.43, 705840, 0.650318, -1.11076]
----
-Label        : 1
-Position     : [746.562, 1216.14]
-Measurements : [1225.45, 224906, 0.503518, -0.982275]
----
-Label        : 1
-Position     : [811.113, 1216.19]
-Measurements : [730.386, 246836, 1.74971, 1.85232]
----
-Label        : 1
-Position     : [756.649, 1216.32]
-Measurements : [1703.19, 588354, -0.048937, -1.34199]
----
-Label        : 0
-Position     : [131.871, 1216.33]
-Measurements : [909.844, 13797, -0.984392, 1.27645]
----
-Label        : 1
-Position     : [253.915, 1216.33]
-Measurements : [1080.04, 179154, 0.369279, -0.0178993]
----
-Label        : 1
-Position     : [1146.31, 1216.37]
-Measurements : [1190.47, 158488, -0.554648, -1.05723]
----
-Label        : 1
-Position     : [791.38, 1216.42]
-Measurements : [1755.74, 313424, -0.00816374, -0.518683]
----
-Label        : 1
-Position     : [851.948, 1216.73]
-Measurements : [1177.64, 293207, 0.408663, -1.03527]
----
-Label        : 1
-Position     : [914.089, 1216.85]
-Measurements : [972.153, 207751, 0.844733, 0.167141]
----
-Label        : 1
-Position     : [285.672, 1217.12]
-Measurements : [1415.82, 249102, -0.0727781, -0.674173]
----
-Label        : 1
-Position     : [288.55, 1217.19]
-Measurements : [1322.11, 280795, 0.148007, -0.88388]
----
-Label        : 1
-Position     : [788.228, 1217.69]
-Measurements : [1601.6, 462082, -0.261452, -0.710461]
----
-Label        : 1
-Position     : [812.188, 1217.72]
-Measurements : [701.541, 237729, 1.99031, 2.78772]
----
-Label        : 1
-Position     : [907.322, 1217.74]
-Measurements : [1682.85, 390793, -0.0135373, -0.575758]
----
-Label        : 1
-Position     : [909.516, 1217.75]
-Measurements : [1541, 482589, 0.239899, -0.923021]
----
-Label        : 1
-Position     : [80.36, 1217.91]
-Measurements : [1679.26, 171675, -0.130206, -0.141252]
----
-Label        : 1
-Position     : [259.674, 1217.92]
-Measurements : [758.745, 248822, 1.68135, 1.685]
----
-Label        : 1
-Position     : [17.5562, 1218.03]
-Measurements : [2678.93, 191799, -1.42829, 3.37401]
----
-Label        : 1
-Position     : [793.29, 1218.25]
-Measurements : [1656.77, 333908, 0.463085, -0.929399]
----
-Label        : 1
-Position     : [747.371, 1218.3]
-Measurements : [1298.58, 254042, 0.325729, -1.26416]
----
-Label        : 1
-Position     : [249.182, 1218.5]
-Measurements : [1069.04, 101005, -0.607746, -0.712342]
----
-Label        : 1
-Position     : [1162.5, 1218.76]
-Measurements : [1505.7, 491152, 0.805507, -0.674457]
----
-Label        : 1
-Position     : [871.252, 1218.88]
-Measurements : [1798.52, 387780, -0.338564, -0.862378]
----
-Label        : 1
-Position     : [904.748, 1218.97]
-Measurements : [1768.93, 440880, -0.231233, -0.696289]
----
-Label        : 1
-Position     : [843.182, 1219.1]
-Measurements : [1122.98, 588369, 0.693368, -0.763251]
----
-Label        : 1
-Position     : [11.4749, 1219.13]
-Measurements : [2197.52, 364364, -0.729895, -0.229045]
----
-Label        : 1
-Position     : [287.453, 1219.31]
-Measurements : [1207.18, 282762, 0.341719, -0.770938]
----
-Label        : 1
-Position     : [794.615, 1219.42]
-Measurements : [1572.63, 372173, 0.618228, -0.934499]
----
-Label        : 1
-Position     : [234.885, 1219.54]
-Measurements : [1162.35, 104704, 0.371147, 1.63789]
----
-Label        : 1
-Position     : [846.17, 1219.78]
-Measurements : [1373.06, 541971, 0.217375, -1.04107]
----
-Label        : 1
-Position     : [868.473, 1219.85]
-Measurements : [1724.47, 490118, -0.230996, -1.06146]
----
-Label        : 1
-Position     : [750.83, 1220.11]
-Measurements : [1540.65, 326390, 0.246965, -0.853089]
----
-Label        : 1
-Position     : [290.28, 1220.19]
-Measurements : [967.021, 301911, 0.893497, -0.0993775]
----
-Label        : 1
-Position     : [287.753, 1220.38]
-Measurements : [1118.73, 295328, 0.530871, -0.626394]
----
-Label        : 1
-Position     : [847.905, 1220.52]
-Measurements : [1516.89, 553376, 0.133567, -1.15221]
----
-Label        : 1
-Position     : [866.581, 1220.55]
-Measurements : [1526.49, 467194, 0.12961, -1.24029]
----
-Label        : 1
-Position     : [249.832, 1220.7]
-Measurements : [952.769, 145228, -0.0548567, -1.53415]
----
-Label        : 1
-Position     : [754.386, 1220.73]
-Measurements : [1505.02, 452253, 0.229136, -0.981314]
----
-Label        : 1
-Position     : [790.151, 1220.93]
-Measurements : [1785.59, 310558, -0.0502628, -0.763834]
----
-Label        : 1
-Position     : [807.622, 1221.32]
-Measurements : [878.987, 168161, 0.666003, -0.491093]
----
-Label        : 1
-Position     : [786.966, 1221.57]
-Measurements : [1433.63, 479609, -0.15224, -1.17562]
----
-Label        : 1
-Position     : [78.3397, 1221.58]
-Measurements : [1571.64, 202256, -0.481934, -0.0621826]
----
-Label        : 1
-Position     : [930.767, 1221.62]
-Measurements : [1282.96, 459300, 0.00763679, -1.48934]
----
-Label        : 1
-Position     : [864.789, 1221.62]
-Measurements : [1328.81, 360256, 0.487199, -1.06278]
----
-Label        : 1
-Position     : [867.829, 1221.71]
-Measurements : [1688.18, 461851, -0.229008, -1.0514]
----
-Label        : 1
-Position     : [926.704, 1221.78]
-Measurements : [1113.68, 341650, 0.448803, -1.0555]
----
-Label        : 1
-Position     : [906.094, 1221.84]
-Measurements : [1920.02, 277201, -0.0198953, -0.571137]
----
-Label        : 1
-Position     : [15.336, 1222.01]
-Measurements : [2516.24, 202144, -0.148118, -0.0875051]
----
-Label        : 1
-Position     : [1172.23, 1222.03]
-Measurements : [1599.01, 391892, 0.691466, 0.345097]
----
-Label        : 1
-Position     : [809.838, 1222.25]
-Measurements : [938.059, 224223, 0.483807, -0.898122]
----
-Label        : 1
-Position     : [804.888, 1222.39]
-Measurements : [970.848, 133092, 0.634874, 0.195407]
----
-Label        : 1
-Position     : [238.52, 1222.49]
-Measurements : [1310.99, 195029, 0.0953162, -0.732769]
----
-Label        : 0
-Position     : [140.699, 1222.6]
-Measurements : [967.235, 2961.46, 0.860597, 0.738803]
----
-Label        : 1
-Position     : [931.316, 1222.81]
-Measurements : [1369.78, 434520, -0.191234, -1.43647]
----
-Label        : 1
-Position     : [901.789, 1222.87]
-Measurements : [1458.44, 600982, -0.0139851, -1.27951]
----
-Label        : 1
-Position     : [928.444, 1222.91]
-Measurements : [1346.44, 365050, -0.0697131, -1.29736]
----
-Label        : 1
-Position     : [875.049, 1223]
-Measurements : [1197.35, 653274, 0.837206, -0.80181]
----
-Label        : 1
-Position     : [82.9643, 1223.24]
-Measurements : [1803.34, 134873, 0.1435, -0.49312]
----
-Label        : 1
-Position     : [1164.74, 1223.74]
-Measurements : [2229.77, 575814, -0.292431, -1.11282]
----
-Label        : 1
-Position     : [1170.06, 1223.74]
-Measurements : [1868.77, 549650, 0.385324, -0.908998]
----
-Label        : 1
-Position     : [239.592, 1223.78]
-Measurements : [1251.76, 245777, 0.0664219, -1.06259]
----
-Label        : 1
-Position     : [846.676, 1223.79]
-Measurements : [1905.05, 360387, -0.429257, -0.684733]
----
-Label        : 1
-Position     : [80.872, 1224.06]
-Measurements : [1744.35, 155098, -0.0915156, -0.578833]
----
-Label        : 1
-Position     : [1162.13, 1224.16]
-Measurements : [2096.91, 692154, -0.115876, -1.49859]
----
-Label        : 1
-Position     : [870.023, 1224.2]
-Measurements : [1763.44, 413281, -0.237713, -0.871015]
----
-Label        : 1
-Position     : [863.664, 1224.27]
-Measurements : [1290.95, 276000, 0.48197, -1.03283]
----
-Label        : 1
-Position     : [906.844, 1224.58]
-Measurements : [1845.35, 340240, -0.0395007, -0.766385]
----
-Label        : 1
-Position     : [751.674, 1224.7]
-Measurements : [1371.12, 288650, 0.0519448, -1.0595]
----
-Label        : 1
-Position     : [785.941, 1224.92]
-Measurements : [1133.53, 464075, 0.493464, -1.10058]
----
-Label        : 1
-Position     : [294.499, 1225.02]
-Measurements : [650.489, 96289.7, 1.36371, 1.16223]
----
-Label        : 1
-Position     : [787.284, 1225.02]
-Measurements : [1233.36, 422995, 0.487997, -0.952479]
----
-Label        : 1
-Position     : [843.835, 1225.13]
-Measurements : [1869.01, 452044, -0.751668, -0.379219]
----
-Label        : 1
-Position     : [17.3172, 1225.28]
-Measurements : [2492.97, 143042, 0.321103, -0.0593158]
----
-Label        : 1
-Position     : [844.595, 1225.63]
-Measurements : [1959.6, 360340, -0.785183, 0.0399021]
----
-Label        : 1
-Position     : [296.669, 1225.88]
-Measurements : [742.942, 130932, 0.859113, -0.313118]
----
-Label        : 1
-Position     : [745.869, 1225.97]
-Measurements : [1151.33, 226392, 0.580858, -0.701615]
----
-Label        : 1
-Position     : [1177.05, 1225.98]
-Measurements : [1585.6, 189304, 0.0633345, -0.444408]
----
-Label        : 1
-Position     : [1176.21, 1226.2]
-Measurements : [1633.13, 178764, 0.153143, -0.785366]
----
-Label        : 1
-Position     : [865.927, 1226.25]
-Measurements : [1501.94, 324477, 0.166657, -0.889444]
----
-Label        : 0
-Position     : [150.771, 1226.62]
-Measurements : [945.835, 2810.44, -1.40093, 3.20244]
----
-Label        : 1
-Position     : [904.865, 1226.75]
-Measurements : [1784.36, 410944, -0.0403627, -0.759294]
----
-Label        : 1
-Position     : [748.782, 1226.83]
-Measurements : [1227.29, 257607, 0.375343, -0.911056]
----
-Label        : 1
-Position     : [844.218, 1227.48]
-Measurements : [1991.9, 331418, -0.790508, 0.0393777]
----
-Label        : 1
-Position     : [808.609, 1227.57]
-Measurements : [1098.06, 209074, 0.144377, -1.00202]
----
-Label        : 1
-Position     : [928.31, 1227.76]
-Measurements : [1639.48, 235764, -0.482709, -0.606112]
----
-Label        : 1
-Position     : [747.578, 1227.98]
-Measurements : [1102.9, 237964, 0.540202, -0.77443]
----
-Label        : 1
-Position     : [83.1913, 1228.3]
-Measurements : [1725.95, 168715, -0.143545, -0.522532]
----
-Label        : 1
-Position     : [926.96, 1228.37]
-Measurements : [1537.55, 226853, -0.255072, -0.693078]
----
-Label        : 1
-Position     : [302.761, 1228.43]
-Measurements : [1143.77, 133976, 0.450963, 1.17834]
----
-Label        : 0
-Position     : [156.879, 1228.46]
-Measurements : [946.406, 18109.5, -0.191883, 0.487]
----
-Label        : 1
-Position     : [743.704, 1228.51]
-Measurements : [960.514, 213048, 0.993258, 0.113225]
----
-Label        : 1
-Position     : [1172.41, 1228.64]
-Measurements : [1880.01, 537214, 0.460628, -0.437212]
----
-Label        : 1
-Position     : [905.202, 1228.65]
-Measurements : [1658.58, 325013, 0.0669244, -0.69995]
----
-Label        : 1
-Position     : [845.157, 1228.7]
-Measurements : [1973.87, 354655, -0.675772, -0.538657]
----
-Label        : 1
-Position     : [902.611, 1228.71]
-Measurements : [1599.41, 362335, -0.285628, -0.409707]
----
-Label        : 1
-Position     : [1183.99, 1229.07]
-Measurements : [1416.03, 104399, 0.989837, 1.2258]
----
-Label        : 1
-Position     : [300.52, 1229.41]
-Measurements : [1179.08, 265119, 0.927807, 0.811799]
----
-Label        : 1
-Position     : [1184.65, 1229.41]
-Measurements : [1411.18, 125542, 0.739785, 1.45012]
----
-Label        : 1
-Position     : [904.496, 1229.55]
-Measurements : [1655.59, 291582, -0.126127, -0.620944]
----
-Label        : 1
-Position     : [928.939, 1229.76]
-Measurements : [1552, 222588, -0.27606, -0.609991]
----
-Label        : 1
-Position     : [813.407, 1229.8]
-Measurements : [845.924, 211077, 1.00438, -0.36928]
----
-Label        : 1
-Position     : [805.472, 1229.82]
-Measurements : [874.327, 213249, 0.71872, -0.841291]
----
-Label        : 1
-Position     : [785.645, 1229.82]
-Measurements : [998.748, 287450, 0.755282, -0.432779]
----
-Label        : 1
-Position     : [1172.12, 1230]
-Measurements : [1829.53, 606080, 0.376467, -0.610032]
----
-Label        : 1
-Position     : [1179.78, 1230.02]
-Measurements : [1552.48, 144827, 0.708302, -0.33234]
----
-Label        : 1
-Position     : [294.209, 1230.04]
-Measurements : [1231.29, 558679, 0.475679, -1.1597]
----
-Label        : 0
-Position     : [135.652, 1230.22]
-Measurements : [1132.88, 24218.5, 1.04485, 0.947635]
----
-Label        : 1
-Position     : [871.499, 1230.59]
-Measurements : [1271.54, 387666, 0.228329, -1.38369]
----
-Label        : 1
-Position     : [897.3, 1230.81]
-Measurements : [1107.45, 483480, 0.443123, -1.11515]
----
-Label        : 1
-Position     : [788.412, 1230.85]
-Measurements : [1006.32, 225117, 0.956939, 0.236453]
----
-Label        : 0
-Position     : [172.006, 1231.09]
-Measurements : [764.245, 6700.82, 1.10045, 2.44211]
----
-Label        : 1
-Position     : [925.442, 1231.45]
-Measurements : [1457.06, 201568, -0.0827904, -0.449099]
----
-Label        : 1
-Position     : [901.588, 1231.67]
-Measurements : [1649.82, 432288, -0.393316, -0.599881]
----
-Label        : 1
-Position     : [837.017, 1231.98]
-Measurements : [1234.63, 569450, 0.154681, -1.56023]
----
-Label        : 1
-Position     : [784.852, 1232.08]
-Measurements : [1106.64, 287540, 0.669004, -0.199733]
----
-Label        : 1
-Position     : [840.967, 1232.08]
-Measurements : [1762.09, 384542, -0.961169, -0.191973]
----
-Label        : 1
-Position     : [867.182, 1232.49]
-Measurements : [1359.8, 289117, 0.286787, -0.967843]
----
-Label        : 1
-Position     : [927.035, 1232.5]
-Measurements : [1456.32, 265473, -0.20073, -0.921721]
----
-Label        : 1
-Position     : [215.016, 1232.61]
-Measurements : [1668.05, 361488, -0.212671, -0.527731]
----
-Label        : 1
-Position     : [786.979, 1233.6]
-Measurements : [1154.52, 278076, 0.705189, -0.117734]
----
-Label        : 1
-Position     : [215.742, 1234.14]
-Measurements : [1805.04, 245802, -0.257069, 0.147681]
----
-Label        : 1
-Position     : [863.242, 1234.26]
-Measurements : [1038.03, 202727, 0.760403, -0.245087]
----
-Label        : 1
-Position     : [214.635, 1234.37]
-Measurements : [1854.5, 185586, 0.0271868, 0.552599]
----
-Label        : 1
-Position     : [786.343, 1234.37]
-Measurements : [1197.42, 250329, 0.709552, 0.0957804]
----
-Label        : 1
-Position     : [923.953, 1234.44]
-Measurements : [1447.6, 208263, -0.041822, -0.701972]
----
-Label        : 1
-Position     : [17.896, 1234.66]
-Measurements : [2239.97, 878718, -0.500571, -1.11511]
----
-Label        : 1
-Position     : [16.6519, 1234.82]
-Measurements : [2245.42, 844234, -0.440372, -1.03476]
----
-Label        : 1
-Position     : [900.359, 1234.94]
-Measurements : [1416.86, 551278, 0.11982, -1.18663]
----
-Label        : 1
-Position     : [297.448, 1235.04]
-Measurements : [1814.39, 448896, -0.119873, -1.35972]
----
-Label        : 1
-Position     : [800.13, 1235.18]
-Measurements : [915.996, 184923, 0.49921, -0.877147]
----
-Label        : 1
-Position     : [1184.07, 1235.45]
-Measurements : [1703.55, 224413, 1.11423, 0.171697]
----
-Label        : 1
-Position     : [840.304, 1235.55]
-Measurements : [1828.01, 310526, -1.04268, 0.33815]
----
-Label        : 1
-Position     : [839.32, 1235.63]
-Measurements : [1739.61, 394281, -0.905096, -0.232115]
----
-Label        : 1
-Position     : [863.561, 1235.71]
-Measurements : [1011.11, 195394, 0.886399, 0.0760186]
----
-Label        : 1
-Position     : [898.668, 1235.95]
-Measurements : [1169.53, 518051, 0.545714, -1.00207]
----
-Label        : 1
-Position     : [922.985, 1235.95]
-Measurements : [1329.86, 269506, 0.0793324, -0.969957]
----
-Label        : 1
-Position     : [79.3361, 1236.06]
-Measurements : [1297.88, 329390, 0.257138, -0.939452]
----
-Label        : 1
-Position     : [16.3183, 1236.08]
-Measurements : [1942.73, 1.2736e+06, -0.0682841, -1.64411]
----
-Label        : 1
-Position     : [865.543, 1236.17]
-Measurements : [1090.45, 243359, 0.778857, -0.384085]
----
-Label        : 1
-Position     : [83.944, 1236.19]
-Measurements : [1426.26, 322624, 0.0424581, -1.08061]
----
-Label        : 1
-Position     : [780.375, 1236.46]
-Measurements : [879.165, 325633, 1.00037, 0.109566]
----
-Label        : 1
-Position     : [872.181, 1236.47]
-Measurements : [822.466, 279109, 1.52797, 0.988733]
----
-Label        : 1
-Position     : [79.1963, 1236.51]
-Measurements : [1297.88, 329390, 0.257138, -0.939452]
----
-Label        : 1
-Position     : [746.35, 1236.58]
-Measurements : [1067.85, 313847, 0.780247, -0.470879]
----
-Label        : 1
-Position     : [784.442, 1236.58]
-Measurements : [1171.59, 285270, 0.586534, -0.316596]
----
-Label        : 1
-Position     : [1187.42, 1236.63]
-Measurements : [2030.98, 282792, 0.0142445, -1.23582]
----
-Label        : 1
-Position     : [1188.89, 1236.87]
-Measurements : [2093.61, 240983, -0.0320629, -1.21898]
----
-Label        : 1
-Position     : [213.48, 1237.22]
-Measurements : [1859.73, 217907, -0.13619, 0.0246956]
----
-Label        : 1
-Position     : [212.732, 1237.23]
-Measurements : [1814.92, 211519, -0.129132, -0.14362]
----
-Label        : 0
-Position     : [171.098, 1237.92]
-Measurements : [881.646, 10935, 0.0708465, -1.03185]
----
-Label        : 1
-Position     : [294.482, 1238.02]
-Measurements : [1698.97, 609698, -0.128204, -1.50719]
----
-Label        : 1
-Position     : [841.377, 1238.22]
-Measurements : [1880.89, 254191, -0.636922, -0.557618]
----
-Label        : 1
-Position     : [211.392, 1238.84]
-Measurements : [1747.73, 190447, -0.0580938, -0.171229]
----
-Label        : 1
-Position     : [919.333, 1238.92]
-Measurements : [923.99, 208645, 0.773501, -0.68262]
----
-Label        : 1
-Position     : [802.465, 1239.04]
-Measurements : [1185.7, 306360, 0.16626, -1.08458]
----
-Label        : 1
-Position     : [781.429, 1239.41]
-Measurements : [1023.85, 345005, 0.6991, -0.393158]
----
-Label        : 1
-Position     : [746.759, 1239.49]
-Measurements : [1163.49, 299606, 0.599099, -0.744458]
----
-Label        : 1
-Position     : [213.229, 1239.83]
-Measurements : [1824.79, 233312, -0.0712011, -0.0846081]
----
-Label        : 1
-Position     : [742.467, 1239.94]
-Measurements : [1096.43, 288625, 0.714364, -0.380117]
----
-Label        : 1
-Position     : [901.974, 1240.12]
-Measurements : [1125, 397928, 0.914923, -0.0284579]
----
-Label        : 1
-Position     : [292.84, 1240.67]
-Measurements : [1346.63, 724605, 0.476662, -1.43048]
----
-Label        : 1
-Position     : [743.892, 1240.68]
-Measurements : [1170.87, 291753, 0.547246, -0.677062]
----
-Label        : 1
-Position     : [747.71, 1240.9]
-Measurements : [1118.82, 303959, 0.741731, -0.599327]
----
-Label        : 1
-Position     : [1198.72, 1240.97]
-Measurements : [2259.05, 347432, -0.0445919, -1.06256]
----
-Label        : 1
-Position     : [1196.13, 1241.16]
-Measurements : [2348.43, 326410, -0.205738, -0.877876]
----
-Label        : 1
-Position     : [742.604, 1241.47]
-Measurements : [1123.63, 294928, 0.580539, -0.597594]
----
-Label        : 1
-Position     : [896.742, 1241.99]
-Measurements : [1150.34, 484377, 0.670076, -0.664179]
----
-Label        : 1
-Position     : [806.138, 1242.01]
-Measurements : [1069.13, 337481, 0.676933, -0.867978]
----
-Label        : 1
-Position     : [783.194, 1242.19]
-Measurements : [1060.78, 232843, 0.78743, 0.361256]
----
-Label        : 1
-Position     : [296.008, 1242.3]
-Measurements : [1188.2, 516637, 1.09348, -0.0784587]
----
-Label        : 1
-Position     : [863.905, 1242.32]
-Measurements : [1017.85, 226619, 0.604561, -0.764185]
----
-Label        : 1
-Position     : [216.04, 1242.34]
-Measurements : [1737.25, 425200, -0.407536, -1.10453]
----
-Label        : 1
-Position     : [969.394, 1242.5]
-Measurements : [1244.53, 475935, 0.0207841, -1.55861]
----
-Label        : 0
-Position     : [131.564, 1242.59]
-Measurements : [931.007, 23518.6, -0.398983, -0.302945]
----
-Label        : 1
-Position     : [1223, 1242.7]
-Measurements : [1580.05, 303862, 0.235173, -0.588387]
----
-Label        : 1
-Position     : [801.236, 1242.73]
-Measurements : [1436.53, 186326, -0.0495089, -0.33619]
----
-Label        : 1
-Position     : [898.721, 1242.73]
-Measurements : [1297.07, 548093, 0.576645, -0.684907]
----
-Label        : 1
-Position     : [841.892, 1242.88]
-Measurements : [1765.02, 276807, -0.16917, -1.11542]
----
-Label        : 1
-Position     : [860.555, 1243.01]
-Measurements : [1137.74, 320185, 0.46322, -1.00322]
----
-Label        : 1
-Position     : [1204.87, 1243.02]
-Measurements : [2382.69, 269984, -0.332389, -1.1192]
----
-Label        : 1
-Position     : [861.824, 1243.37]
-Measurements : [1119, 293150, 0.472796, -0.918419]
----
-Label        : 1
-Position     : [1199.67, 1243.59]
-Measurements : [2396.51, 406919, -0.646015, -0.766349]
----
-Label        : 1
-Position     : [915.992, 1243.62]
-Measurements : [908.361, 145896, 0.969562, 0.714171]
----
-Label        : 1
-Position     : [969.679, 1243.74]
-Measurements : [1263.38, 450661, 0.0245447, -1.52338]
----
-Label        : 0
-Position     : [134.449, 1243.89]
-Measurements : [936.617, 24021.8, -0.364755, -0.597952]
----
-Label        : 1
-Position     : [779.527, 1243.95]
-Measurements : [1065.56, 249369, 0.131148, -1.2332]
----
-Label        : 1
-Position     : [1222.44, 1243.99]
-Measurements : [1644.93, 282358, 0.00611915, -0.867025]
----
-Label        : 1
-Position     : [915.266, 1244.21]
-Measurements : [974.785, 182502, 0.897241, 0.38456]
----
-Label        : 1
-Position     : [1214.09, 1244.56]
-Measurements : [2159.01, 165035, 0.208915, -0.211125]
----
-Label        : 1
-Position     : [1207.06, 1244.65]
-Measurements : [2438.12, 240250, -0.469927, -0.684881]
----
-Label        : 1
-Position     : [898.311, 1244.77]
-Measurements : [1520.01, 497180, 0.256235, -0.887349]
----
-Label        : 1
-Position     : [19.432, 1244.9]
-Measurements : [1152.88, 435171, 0.743054, -0.855253]
----
-Label        : 1
-Position     : [863.482, 1244.97]
-Measurements : [1060.45, 262489, 0.596244, -0.994629]
----
-Label        : 1
-Position     : [1211.42, 1245.06]
-Measurements : [2318.13, 238176, -0.118575, -0.564816]
----
-Label        : 1
-Position     : [863.467, 1245.12]
-Measurements : [1110.82, 289337, 0.466025, -1.14926]
----
-Label        : 1
-Position     : [212.377, 1245.14]
-Measurements : [1902.8, 241339, -0.620028, -0.379369]
----
-Label        : 1
-Position     : [898.864, 1245.17]
-Measurements : [1618.2, 435098, 0.190588, -0.806567]
----
-Label        : 0
-Position     : [168.186, 1245.19]
-Measurements : [1064.65, 7322.56, 0.328272, 0.563073]
----
-Label        : 1
-Position     : [291.038, 1245.22]
-Measurements : [984.714, 324931, 1.08294, -0.143452]
----
-Label        : 1
-Position     : [20.5982, 1245.26]
-Measurements : [1322.32, 579161, 0.409905, -1.32241]
----
-Label        : 1
-Position     : [1221.66, 1245.47]
-Measurements : [1699, 251977, -0.222801, -0.634156]
----
-Label        : 1
-Position     : [18.0231, 1245.57]
-Measurements : [1285.78, 541081, 0.506737, -1.17024]
----
-Label        : 1
-Position     : [838.919, 1245.59]
-Measurements : [1833.08, 177023, -0.208719, -0.387439]
----
-Label        : 1
-Position     : [210.799, 1245.61]
-Measurements : [1781, 231927, -0.446551, -0.568587]
----
-Label        : 1
-Position     : [896.627, 1245.69]
-Measurements : [1667.21, 434272, -0.0512293, -0.715904]
----
-Label        : 1
-Position     : [891.224, 1246.27]
-Measurements : [1233.78, 592214, 0.220704, -1.53333]
----
-Label        : 1
-Position     : [776.355, 1246.29]
-Measurements : [1303.16, 248183, -0.365057, -0.864135]
----
-Label        : 1
-Position     : [799.913, 1246.43]
-Measurements : [1366.77, 296133, 0.16384, -0.815227]
----
-Label        : 0
-Position     : [122.155, 1246.45]
-Measurements : [1202.03, 43292.8, -0.825552, 0.087116]
----
-Label        : 1
-Position     : [896.16, 1246.54]
-Measurements : [1767.4, 382927, -0.165061, -0.543131]
----
-Label        : 1
-Position     : [282.127, 1246.67]
-Measurements : [957.635, 257902, 0.414426, -1.20054]
----
-Label        : 1
-Position     : [1209.15, 1246.75]
-Measurements : [2401.75, 303733, -0.453457, -0.588507]
----
-Label        : 1
-Position     : [967.486, 1246.95]
-Measurements : [1160.41, 438712, 0.388608, -1.42383]
----
-Label        : 1
-Position     : [220.081, 1247.15]
-Measurements : [1118.06, 571152, 0.868769, -0.823116]
----
-Label        : 1
-Position     : [288.463, 1247.23]
-Measurements : [1111.55, 288619, 0.522288, -0.920139]
----
-Label        : 1
-Position     : [805.873, 1247.38]
-Measurements : [1109.86, 402200, 0.783666, -0.839501]
----
-Label        : 1
-Position     : [285.672, 1247.46]
-Measurements : [1176.35, 287250, 0.246708, -1.05309]
----
-Label        : 1
-Position     : [834.215, 1247.54]
-Measurements : [1731.9, 256776, -0.627676, 0.146996]
----
-Label        : 1
-Position     : [859.809, 1247.64]
-Measurements : [1383.61, 328618, -0.187224, -1.30354]
----
-Label        : 1
-Position     : [842.102, 1247.76]
-Measurements : [1409.2, 183754, 0.568346, -0.607575]
----
-Label        : 1
-Position     : [742.35, 1248.15]
-Measurements : [1287.64, 318864, -0.0125858, -1.46992]
----
-Label        : 1
-Position     : [919.708, 1248.24]
-Measurements : [1483.8, 322515, -0.102679, -0.438587]
----
-Label        : 1
-Position     : [1228.82, 1248.27]
-Measurements : [2091.18, 397670, -0.606103, -0.961399]
----
-Label        : 1
-Position     : [741.025, 1248.46]
-Measurements : [1323.79, 311335, -0.153769, -1.37594]
----
-Label        : 1
-Position     : [778.298, 1248.46]
-Measurements : [1579.87, 161782, 0.090404, -0.214226]
----
-Label        : 1
-Position     : [998.672, 1248.46]
-Measurements : [684.731, 360047, 2.21223, 3.46351]
----
-Label        : 1
-Position     : [1215.93, 1248.51]
-Measurements : [2010.97, 450985, 0.0196436, -0.435956]
----
-Label        : 1
-Position     : [836.871, 1248.87]
-Measurements : [1821.98, 192820, -0.44287, -0.172729]
----
-Label        : 1
-Position     : [24.9721, 1248.94]
-Measurements : [1711.89, 944472, -0.00861559, -1.56485]
----
-Label        : 1
-Position     : [771.471, 1248.98]
-Measurements : [940.486, 461815, 0.614761, -1.26091]
----
-Label        : 1
-Position     : [213.992, 1248.99]
-Measurements : [1884.12, 234227, -0.706126, 0.348482]
----
-Label        : 1
-Position     : [836.845, 1249.27]
-Measurements : [1823.32, 175264, -0.429781, -0.116832]
----
-Label        : 1
-Position     : [798.778, 1249.28]
-Measurements : [1161.2, 313868, 0.622282, -0.629611]
----
-Label        : 1
-Position     : [964.289, 1249.31]
-Measurements : [1014.56, 301887, 0.484466, -1.17381]
----
-Label        : 0
-Position     : [126.196, 1249.45]
-Measurements : [1154.42, 43557.8, -0.491892, -0.90433]
----
-Label        : 1
-Position     : [1231.46, 1249.66]
-Measurements : [2185.08, 300673, -0.760805, -0.561286]
----
-Label        : 1
-Position     : [774.339, 1249.8]
-Measurements : [1341.07, 479289, -0.206209, -1.28169]
----
-Label        : 1
-Position     : [835.149, 1249.82]
-Measurements : [1842.2, 146143, -0.229768, -0.0816093]
----
-Label        : 1
-Position     : [895.854, 1250.1]
-Measurements : [2043.17, 327401, -0.760018, 0.243777]
----
-Label        : 1
-Position     : [1227.8, 1250.39]
-Measurements : [2035.41, 455928, -0.464992, -1.28888]
----
-Label        : 1
-Position     : [284.829, 1250.43]
-Measurements : [1338.11, 234083, -0.189229, -0.730715]
----
-Label        : 1
-Position     : [795.306, 1250.79]
-Measurements : [1001.59, 182792, 0.542941, -0.786473]
----
-Label        : 1
-Position     : [280.41, 1251.08]
-Measurements : [1279.93, 289634, -0.283567, -1.04502]
----
-Label        : 1
-Position     : [889.134, 1251.5]
-Measurements : [1403.17, 689504, 0.0846717, -1.49233]
----
-Label        : 1
-Position     : [213.231, 1251.51]
-Measurements : [1898.26, 227479, -0.818888, 0.673467]
----
-Label        : 0
-Position     : [131.08, 1251.59]
-Measurements : [1068.91, 54518.2, -0.125231, -1.21105]
----
-Label        : 1
-Position     : [1255.21, 1251.62]
-Measurements : [809.48, 216319, 1.37975, 0.787938]
----
-Label        : 1
-Position     : [741.171, 1251.74]
-Measurements : [1498.39, 164459, -0.205465, -0.77866]
----
-Label        : 1
-Position     : [994.255, 1251.93]
-Measurements : [1353.6, 769906, 0.203548, -1.54386]
----
-Label        : 1
-Position     : [1247.06, 1252.03]
-Measurements : [1352.12, 470873, 0.42204, -1.19798]
----
-Label        : 1
-Position     : [858.17, 1252.15]
-Measurements : [1239.63, 361798, 0.137347, -1.48773]
----
-Label        : 1
-Position     : [739.716, 1252.19]
-Measurements : [1419.02, 171493, 0.0461638, -0.749297]
----
-Label        : 1
-Position     : [20.968, 1252.58]
-Measurements : [2323.47, 397117, -0.570539, -0.34185]
----
-Label        : 1
-Position     : [282.088, 1252.58]
-Measurements : [1425.74, 250745, 0.0803986, -0.622793]
----
-Label        : 1
-Position     : [1245.1, 1252.62]
-Measurements : [1564.4, 393715, -0.0302333, -1.18573]
----
-Label        : 1
-Position     : [776.25, 1252.97]
-Measurements : [1415.54, 343092, 0.00101286, -1.12996]
----
-Label        : 1
-Position     : [796.754, 1253.13]
-Measurements : [1099.52, 346600, 0.669797, -0.738685]
----
-Label        : 1
-Position     : [919.298, 1253.16]
-Measurements : [1740.04, 272901, -0.244013, -0.188017]
----
-Label        : 1
-Position     : [964.764, 1253.16]
-Measurements : [1164.82, 196364, -0.221582, -1.12304]
----
-Label        : 1
-Position     : [800.747, 1253.32]
-Measurements : [1167.87, 386391, 0.685791, -0.814127]
----
-Label        : 1
-Position     : [834.004, 1253.38]
-Measurements : [1808.95, 254158, -0.475557, -0.350112]
----
-Label        : 1
-Position     : [284.78, 1253.45]
-Measurements : [1418.34, 297475, 0.377753, -0.491705]
----
-Label        : 1
-Position     : [212.456, 1253.6]
-Measurements : [1871.4, 149892, -0.658298, 0.660001]
----
-Label        : 1
-Position     : [993.956, 1253.99]
-Measurements : [1546.86, 560871, -0.0527651, -1.22589]
----
-Label        : 1
-Position     : [893.396, 1254.19]
-Measurements : [1960.99, 295063, -0.904191, 0.359902]
----
-Label        : 1
-Position     : [967.939, 1254.24]
-Measurements : [1039.92, 203228, 0.276857, -1.13304]
----
-Label        : 1
-Position     : [855.455, 1254.29]
-Measurements : [1065.32, 284217, 0.395776, -1.15303]
----
-Label        : 1
-Position     : [17.6999, 1254.29]
-Measurements : [2124.75, 311027, -0.0198567, -0.888139]
----
-Label        : 1
-Position     : [963.952, 1254.34]
-Measurements : [1306.4, 168288, -0.21038, -0.309538]
----
-Label        : 1
-Position     : [1397.09, 1254.5]
-Measurements : [1978.58, 475627, 0.527454, -0.552366]
----
-Label        : 1
-Position     : [1253.25, 1254.53]
-Measurements : [873.655, 271370, 1.1682, 0.100972]
----
-Label        : 1
-Position     : [741.025, 1254.6]
-Measurements : [1370.28, 136539, 0.535164, -0.577723]
----
-Label        : 1
-Position     : [894.181, 1254.72]
-Measurements : [1959.17, 293305, -0.815807, -0.0205787]
----
-Label        : 1
-Position     : [994.717, 1254.97]
-Measurements : [1589.52, 539948, -0.0692888, -1.27923]
----
-Label        : 1
-Position     : [280.04, 1255.14]
-Measurements : [1682.6, 238647, -0.393966, 0.256378]
----
-Label        : 1
-Position     : [210.648, 1255.19]
-Measurements : [1632.35, 236906, -0.626587, -0.657645]
----
-Label        : 1
-Position     : [1258.11, 1255.3]
-Measurements : [1033.28, 283631, 0.526914, -0.785717]
----
-Label        : 1
-Position     : [796.73, 1255.42]
-Measurements : [1028.65, 347205, 0.882684, -0.458077]
----
-Label        : 1
-Position     : [215.983, 1255.56]
-Measurements : [1635.83, 315763, -0.599883, -0.900548]
----
-Label        : 1
-Position     : [889.5, 1255.63]
-Measurements : [1567.75, 597446, -0.241598, -1.30015]
----
-Label        : 1
-Position     : [285.139, 1255.73]
-Measurements : [1351.31, 301722, 0.529562, -0.337382]
----
-Label        : 1
-Position     : [861.634, 1255.74]
-Measurements : [865.982, 264823, 1.15112, -0.097197]
----
-Label        : 1
-Position     : [832.775, 1255.83]
-Measurements : [1465.58, 523468, -0.11953, -1.45124]
----
-Label        : 1
-Position     : [1248.58, 1255.88]
-Measurements : [1093.55, 523795, 1.05032, -0.464598]
----
-Label        : 1
-Position     : [834.79, 1255.9]
-Measurements : [1568.81, 441889, -0.295195, -1.21334]
----
-Label        : 1
-Position     : [914.679, 1256.1]
-Measurements : [1550.43, 256988, 0.0884644, -0.328219]
----
-Label        : 1
-Position     : [836.937, 1256.11]
-Measurements : [1464.72, 485482, 0.0467023, -1.49397]
----
-Label        : 1
-Position     : [920.038, 1256.6]
-Measurements : [1415.53, 358529, 0.116888, -0.869241]
----
-Label        : 1
-Position     : [859.898, 1256.64]
-Measurements : [950.642, 273064, 0.700891, -1.03008]
----
-Label        : 1
-Position     : [83.844, 1256.91]
-Measurements : [1098.37, 678677, 0.587056, -1.24661]
----
-Label        : 1
-Position     : [834.932, 1257.2]
-Measurements : [1358.13, 509395, 0.241541, -1.41618]
----
-Label        : 1
-Position     : [916.022, 1257.25]
-Measurements : [1577.41, 261326, -0.104453, -0.318685]
----
-Label        : 1
-Position     : [909.325, 1257.4]
-Measurements : [1132.17, 169953, 0.697982, -0.296762]
----
-Label        : 1
-Position     : [801.6, 1257.46]
-Measurements : [901.677, 294916, 1.53917, 1.18786]
----
-Label        : 1
-Position     : [28.304, 1257.56]
-Measurements : [1911.88, 1.06338e+06, -0.0284124, -1.69962]
----
-Label        : 1
-Position     : [920.38, 1257.56]
-Measurements : [1400.48, 395022, 0.0962397, -1.07264]
----
-Label        : 1
-Position     : [211.47, 1257.56]
-Measurements : [1739.01, 246583, -0.455685, -0.510702]
----
-Label        : 1
-Position     : [778.193, 1257.82]
-Measurements : [1205.55, 300699, 0.847396, -0.256126]
----
-Label        : 1
-Position     : [910.534, 1257.97]
-Measurements : [1227.3, 220119, 0.523979, -0.567578]
----
-Label        : 1
-Position     : [963.535, 1258.07]
-Measurements : [1405.6, 195275, 0.400352, -0.38213]
----
-Label        : 1
-Position     : [1236.49, 1258.13]
-Measurements : [2336.81, 692175, -0.529384, -0.758764]
----
-Label        : 1
-Position     : [85.2091, 1258.16]
-Measurements : [1513.75, 682946, -0.195229, -1.50802]
----
-Label        : 1
-Position     : [916.107, 1258.22]
-Measurements : [1581.97, 261065, -0.121111, -0.336849]
----
-Label        : 1
-Position     : [1272.41, 1258.46]
-Measurements : [1451.77, 342337, 0.413854, -0.932567]
----
-Label        : 1
-Position     : [737.402, 1258.5]
-Measurements : [1069.23, 25067.2, 2.09175, 5.49735]
----
-Label        : 1
-Position     : [831.051, 1258.51]
-Measurements : [1173.1, 472178, 0.526862, -1.06173]
----
-Label        : 1
-Position     : [1392.5, 1258.63]
-Measurements : [2228.93, 326304, -0.0816162, -1.40713]
----
-Label        : 1
-Position     : [890.529, 1258.7]
-Measurements : [1567.02, 604066, -0.162801, -1.3794]
----
-Label        : 1
-Position     : [990.159, 1258.89]
-Measurements : [1689.43, 227558, 0.210985, -0.182801]
----
-Label        : 1
-Position     : [87.528, 1259.23]
-Measurements : [1741.37, 558693, -0.657493, -0.935365]
----
-Label        : 1
-Position     : [212.968, 1259.23]
-Measurements : [1827.59, 242623, -0.094315, -0.435854]
----
-Label        : 1
-Position     : [774.202, 1259.52]
-Measurements : [1064.08, 182308, 0.759521, 0.732401]
----
-Label        : 1
-Position     : [831.235, 1259.84]
-Measurements : [1144.36, 430027, 0.581452, -0.885287]
----
-Label        : 1
-Position     : [770.459, 1259.88]
-Measurements : [948.922, 177271, 0.150379, -0.978193]
----
-Label        : 1
-Position     : [855.713, 1259.93]
-Measurements : [1089.67, 243019, 0.050132, -1.38737]
----
-Label        : 1
-Position     : [961.46, 1259.93]
-Measurements : [1488.74, 245611, 0.335207, -0.882394]
----
-Label        : 1
-Position     : [1277.75, 1259.95]
-Measurements : [1462.48, 212929, 0.561237, -0.302647]
----
-Label        : 1
-Position     : [777.782, 1259.98]
-Measurements : [1052.17, 173258, 1.03168, 1.08609]
----
-Label        : 0
-Position     : [141.864, 1260.11]
-Measurements : [1161.23, 14197.5, -0.856282, 0.146767]
----
-Label        : 1
-Position     : [891.858, 1260.53]
-Measurements : [1371.03, 571419, 0.068168, -1.55675]
----
-Label        : 1
-Position     : [988.008, 1260.63]
-Measurements : [1698.91, 161983, 0.0458537, -0.200945]
----
-Label        : 1
-Position     : [968.25, 1260.74]
-Measurements : [1026.67, 104432, 0.823349, 0.608202]
----
-Label        : 1
-Position     : [24.552, 1260.77]
-Measurements : [1878.79, 902667, -0.0910636, -1.56025]
----
-Label        : 1
-Position     : [1389.15, 1260.93]
-Measurements : [2280.33, 312004, -0.255748, -1.20516]
----
-Label        : 1
-Position     : [776.543, 1260.97]
-Measurements : [1019.25, 122517, 0.488638, -0.334487]
----
-Label        : 1
-Position     : [1262.19, 1261.26]
-Measurements : [1470.99, 306118, 0.474048, -0.398873]
----
-Label        : 1
-Position     : [1233.54, 1261.45]
-Measurements : [2478.92, 755106, -0.435004, -0.86253]
----
-Label        : 0
-Position     : [162.204, 1261.46]
-Measurements : [1024.62, 8851.47, -0.999245, 1.00363]
----
-Label        : 1
-Position     : [962.306, 1261.76]
-Measurements : [1402.54, 251502, 0.618139, -0.659768]
----
-Label        : 1
-Position     : [913.154, 1262.17]
-Measurements : [1471.81, 204942, 0.467327, 0.333337]
----
-Label        : 1
-Position     : [277.992, 1262.3]
-Measurements : [1786.09, 274001, -0.495025, -0.336688]
----
-Label        : 1
-Position     : [276.954, 1262.42]
-Measurements : [1723.27, 321413, -0.710078, -0.23199]
----
-Label        : 1
-Position     : [858.017, 1262.64]
-Measurements : [966.708, 250361, 0.555003, -1.2046]
----
-Label        : 1
-Position     : [1380.62, 1262.73]
-Measurements : [2367.41, 208529, -0.250931, -0.146135]
----
-Label        : 1
-Position     : [279.011, 1262.75]
-Measurements : [1799.52, 301108, -0.466854, -0.633814]
----
-Label        : 1
-Position     : [855.162, 1262.77]
-Measurements : [1215.53, 195811, -0.28758, -1.0922]
----
-Label        : 1
-Position     : [851.069, 1262.93]
-Measurements : [1289.93, 135313, -0.328325, -0.593033]
----
-Label        : 1
-Position     : [961.328, 1263.05]
-Measurements : [1442.31, 229359, 0.425861, -0.617068]
----
-Label        : 1
-Position     : [1261.39, 1263.09]
-Measurements : [1538.63, 348359, 0.114679, -0.898842]
----
-Label        : 1
-Position     : [1276.14, 1263.09]
-Measurements : [1463.62, 225533, 0.491045, -0.586498]
----
-Label        : 1
-Position     : [853.255, 1263.21]
-Measurements : [1320.13, 154674, -0.552602, -0.596894]
----
-Label        : 1
-Position     : [990.159, 1263.4]
-Measurements : [1870.1, 236787, -0.295546, -0.301379]
----
-Label        : 1
-Position     : [22.5714, 1263.57]
-Measurements : [1545.46, 740838, 0.522742, -1.02236]
----
-Label        : 1
-Position     : [1355.8, 1263.8]
-Measurements : [797.289, 65883.1, 0.258388, -1.07459]
----
-Label        : 1
-Position     : [1232.42, 1263.89]
-Measurements : [2440.02, 718967, -0.320991, -0.893494]
----
-Label        : 1
-Position     : [19.8285, 1264.15]
-Measurements : [1283.39, 460026, 0.786823, -0.271953]
----
-Label        : 1
-Position     : [1263.39, 1264.22]
-Measurements : [1746.48, 399371, -0.0778575, -0.905062]
----
-Label        : 1
-Position     : [957.556, 1264.33]
-Measurements : [1537.36, 233231, -0.280746, -0.0402842]
----
-Label        : 1
-Position     : [831.956, 1264.43]
-Measurements : [1095.41, 217123, 0.113882, -1.11371]
----
-Label        : 1
-Position     : [794.669, 1264.59]
-Measurements : [852.248, 248790, 1.14469, -0.174633]
----
-Label        : 1
-Position     : [1358.51, 1264.77]
-Measurements : [927.305, 51318.3, -0.117746, -0.782376]
----
-Label        : 1
-Position     : [770.926, 1264.84]
-Measurements : [1140.39, 125648, -0.177019, 0.274811]
----
-Label        : 1
-Position     : [215.528, 1264.86]
-Measurements : [1940.97, 284119, -0.253913, -0.144384]
----
-Label        : 1
-Position     : [836.597, 1265.02]
-Measurements : [981.066, 140089, 0.629907, -0.361248]
----
-Label        : 1
-Position     : [1372.02, 1265.18]
-Measurements : [1255.18, 275730, 0.221153, -1.24464]
----
-Label        : 1
-Position     : [1374.9, 1265.41]
-Measurements : [1407.62, 410678, 0.292982, -1.04976]
----
-Label        : 1
-Position     : [1267.13, 1265.54]
-Measurements : [1797.68, 347339, -0.0682253, -0.648295]
----
-Label        : 1
-Position     : [909.892, 1265.66]
-Measurements : [1262.16, 190904, -0.236929, -0.991898]
----
-Label        : 1
-Position     : [1356.12, 1265.76]
-Measurements : [828.752, 64321.5, 0.126462, -1.15868]
----
-Label        : 1
-Position     : [848.874, 1265.89]
-Measurements : [1281.12, 148392, -0.17597, -0.815121]
----
-Label        : 1
-Position     : [87.2103, 1266.14]
-Measurements : [1816.03, 371552, -0.583664, -0.689621]
----
-Label        : 1
-Position     : [211.147, 1266.16]
-Measurements : [1463.62, 447437, 0.0565107, -1.24945]
----
-Label        : 1
-Position     : [1371, 1266.57]
-Measurements : [1125.29, 237328, 0.411838, -1.31055]
----
-Label        : 1
-Position     : [911.516, 1266.67]
-Measurements : [1438.42, 170534, -0.275625, -0.264899]
----
-Label        : 1
-Position     : [1384.73, 1266.8]
-Measurements : [2255.6, 452318, -0.187656, -1.04375]
----
-Label        : 1
-Position     : [1326.89, 1266.96]
-Measurements : [1422.6, 356425, 0.90661, 0.245215]
----
-Label        : 1
-Position     : [988.032, 1267.02]
-Measurements : [1720.89, 294120, -0.213187, -0.818371]
----
-Label        : 0
-Position     : [143.171, 1267.03]
-Measurements : [1126.34, 5577.71, 0.00119126, 0.066821]
----
-Label        : 1
-Position     : [276.633, 1267.24]
-Measurements : [1697.35, 293153, -0.316405, -0.794437]
----
-Label        : 1
-Position     : [989.911, 1267.25]
-Measurements : [1739.56, 333620, -0.227823, -0.951713]
----
-Label        : 1
-Position     : [792.634, 1267.3]
-Measurements : [993.373, 277716, 0.672034, -1.04451]
----
-Label        : 1
-Position     : [956.782, 1267.39]
-Measurements : [1493.11, 185979, -0.553917, 0.497812]
----
-Label        : 1
-Position     : [88.04, 1267.42]
-Measurements : [1767.38, 342539, -0.683385, -0.662016]
----
-Label        : 1
-Position     : [276.968, 1267.42]
-Measurements : [1697.35, 293153, -0.316405, -0.794437]
----
-Label        : 1
-Position     : [218.741, 1267.62]
-Measurements : [1396.54, 642949, 0.314594, -1.38164]
----
-Label        : 1
-Position     : [852.026, 1267.71]
-Measurements : [1427.76, 232056, -0.322138, -0.29812]
----
-Label        : 1
-Position     : [1375.94, 1267.72]
-Measurements : [1520.37, 421227, 0.245601, -0.843611]
----
-Label        : 1
-Position     : [851.033, 1267.74]
-Measurements : [1478.78, 203214, -0.30586, -0.020615]
----
-Label        : 1
-Position     : [1264.87, 1267.85]
-Measurements : [1902.4, 311784, -0.272121, -0.387927]
----
-Label        : 1
-Position     : [1337.96, 1267.87]
-Measurements : [1371.52, 495454, 0.828779, -0.641853]
----
-Label        : 1
-Position     : [959.439, 1267.9]
-Measurements : [1518.89, 144257, -0.116293, 0.122405]
----
-Label        : 1
-Position     : [20.968, 1267.94]
-Measurements : [1305.88, 421491, 0.425273, -1.34135]
----
-Label        : 1
-Position     : [770.269, 1268.25]
-Measurements : [1154.15, 61894.7, 0.79354, 3.19206]
----
-Label        : 1
-Position     : [87.3082, 1268.27]
-Measurements : [1643.83, 371150, -0.583751, -0.957718]
----
-Label        : 1
-Position     : [985.029, 1268.52]
-Measurements : [1510.67, 231324, -0.040573, -0.65032]
----
-Label        : 1
-Position     : [831.137, 1268.53]
-Measurements : [1289.83, 128331, -0.0455321, -0.354233]
----
-Label        : 1
-Position     : [829.7, 1268.6]
-Measurements : [1309.19, 144735, -0.394333, -0.229632]
----
-Label        : 1
-Position     : [1318.33, 1268.66]
-Measurements : [1489.87, 430070, 0.558454, -0.690285]
----
-Label        : 1
-Position     : [215.349, 1269.55]
-Measurements : [1348.37, 436328, 0.158105, -1.3495]
----
-Label        : 1
-Position     : [276.067, 1269.73]
-Measurements : [1634.96, 259204, -0.250051, -1.31033]
----
-Label        : 1
-Position     : [913.98, 1269.74]
-Measurements : [1590.94, 303890, 0.268524, -0.436501]
----
-Label        : 1
-Position     : [916.012, 1269.89]
-Measurements : [1322.41, 455273, 0.481862, -0.874612]
----
-Label        : 1
-Position     : [830.664, 1269.9]
-Measurements : [1300.54, 128599, -0.0110866, -0.485615]
----
-Label        : 1
-Position     : [984.425, 1269.95]
-Measurements : [1354.8, 267468, 0.051039, -0.875478]
----
-Label        : 1
-Position     : [274.408, 1269.98]
-Measurements : [1710.64, 220996, -0.607287, -0.680576]
----
-Label        : 1
-Position     : [790.909, 1270.03]
-Measurements : [1009.64, 228475, 0.790661, -0.702848]
----
-Label        : 1
-Position     : [829.089, 1270.17]
-Measurements : [1260.05, 157168, -0.221084, -0.576477]
----
-Label        : 1
-Position     : [1266.47, 1270.31]
-Measurements : [1528.04, 463861, 0.0818214, -0.944515]
----
-Label        : 1
-Position     : [216.552, 1270.5]
-Measurements : [1292.89, 435018, 0.341703, -1.29119]
----
-Label        : 1
-Position     : [980.25, 1270.53]
-Measurements : [971.972, 183987, 0.463825, -0.904142]
----
-Label        : 1
-Position     : [850.388, 1270.58]
-Measurements : [1791.48, 305852, 0.236115, -0.435699]
----
-Label        : 1
-Position     : [272.602, 1270.59]
-Measurements : [1709.99, 221587, -0.83505, 0.0882693]
----
-Label        : 1
-Position     : [1341.51, 1270.61]
-Measurements : [1636.54, 876339, 0.406497, -1.34153]
----
-Label        : 1
-Position     : [1339.22, 1270.87]
-Measurements : [1672.11, 821933, 0.411704, -1.28192]
----
-Label        : 1
-Position     : [882.049, 1270.97]
-Measurements : [730.39, 291352, 1.49659, 0.77032]
----
-Label        : 1
-Position     : [915.274, 1271.38]
-Measurements : [1415.48, 483783, 0.322776, -1.11401]
----
-Label        : 1
-Position     : [1330.2, 1271.69]
-Measurements : [1883.21, 734004, 0.20238, -1.38058]
----
-Label        : 1
-Position     : [87.8088, 1271.74]
-Measurements : [1409.39, 485721, -0.0731958, -1.42397]
----
-Label        : 1
-Position     : [849.929, 1271.89]
-Measurements : [1864.68, 346751, 0.145787, -0.555148]
----
-Label        : 1
-Position     : [843.19, 1271.93]
-Measurements : [1304.97, 427993, 1.18084, 0.251304]
----
-Label        : 1
-Position     : [912.335, 1272]
-Measurements : [1676.71, 318031, 0.0110329, -0.679424]
----
-Label        : 1
-Position     : [833.846, 1272.01]
-Measurements : [1154.08, 111580, 0.451155, 0.0667646]
----
-Label        : 1
-Position     : [217.268, 1272.16]
-Measurements : [1273.29, 497893, 0.610457, -1.01856]
----
-Label        : 1
-Position     : [20.1124, 1272.48]
-Measurements : [1518.92, 434892, -0.0169752, -1.60539]
----
-Label        : 1
-Position     : [824.266, 1272.59]
-Measurements : [843.047, 220276, 0.856368, -0.413498]
----
-Label        : 0
-Position     : [155.044, 1272.63]
-Measurements : [998.884, 9513.87, -0.615159, -1.08871]
----
-Label        : 1
-Position     : [87.7067, 1272.71]
-Measurements : [1258.22, 481950, 0.229136, -1.36867]
----
-Label        : 1
-Position     : [1321.6, 1272.92]
-Measurements : [1535.69, 372124, 0.323465, -0.853967]
----
-Label        : 1
-Position     : [271.795, 1272.92]
-Measurements : [1717.79, 191248, -0.775414, -0.0244705]
----
-Label        : 1
-Position     : [1319.38, 1273.82]
-Measurements : [1733.55, 579491, 0.254928, -1.03958]
----
-Label        : 1
-Position     : [272.18, 1273.97]
-Measurements : [1688.14, 207070, -0.614185, -0.601518]
----
-Label        : 1
-Position     : [956.982, 1274.05]
-Measurements : [1401.2, 322769, -0.458076, -1.20576]
----
-Label        : 1
-Position     : [888.481, 1274.08]
-Measurements : [938.682, 279865, 0.983311, -0.0747808]
----
-Label        : 1
-Position     : [1031.94, 1274.46]
-Measurements : [1513.22, 286206, -0.609127, -0.540951]
----
-Label        : 1
-Position     : [1334.49, 1274.66]
-Measurements : [1957.52, 880910, -0.112217, -1.50568]
----
-Label        : 1
-Position     : [847.111, 1275.08]
-Measurements : [1983.82, 444925, -0.334283, -0.835614]
----
-Label        : 1
-Position     : [884.385, 1275.08]
-Measurements : [1246.37, 323448, 0.0199728, -1.2167]
----
-Label        : 1
-Position     : [91.112, 1275.1]
-Measurements : [1171.22, 397123, 0.631661, -0.986173]
----
-Label        : 1
-Position     : [855.084, 1275.5]
-Measurements : [1314.45, 718846, 0.560956, -1.25662]
----
-Label        : 1
-Position     : [958.968, 1276.2]
-Measurements : [1262.02, 393797, -0.0187911, -1.60684]
----
-Label        : 1
-Position     : [846.588, 1276.28]
-Measurements : [1896.2, 528793, -0.199987, -1.21472]
----
-Label        : 1
-Position     : [1030.64, 1276.46]
-Measurements : [1598.17, 156800, -0.109607, -0.760337]
----
-Label        : 0
-Position     : [128.04, 1276.49]
-Measurements : [991.299, 7790.14, 0.064431, -0.870962]
----
-Label        : 1
-Position     : [270.312, 1276.64]
-Measurements : [1593.83, 167078, -0.457771, -0.818316]
----
-Label        : 1
-Position     : [908.649, 1276.91]
-Measurements : [1711.3, 353313, -0.0488718, -0.944461]
----
-Label        : 1
-Position     : [887.404, 1277.37]
-Measurements : [1249.65, 262145, 0.185639, -0.900697]
----
-Label        : 0
-Position     : [129.743, 1277.84]
-Measurements : [1003.63, 7396.67, -0.209893, -1.03153]
----
-Label        : 1
-Position     : [1030.17, 1277.91]
-Measurements : [1580.75, 146128, 0.0477945, -0.799761]
----
-Label        : 1
-Position     : [274.75, 1277.93]
-Measurements : [1297.25, 250047, 0.484192, -1.08746]
----
-Label        : 1
-Position     : [957.019, 1278.06]
-Measurements : [1040.58, 459401, 0.576061, -1.43294]
----
-Label        : 1
-Position     : [1035.07, 1278.09]
-Measurements : [1308.67, 237155, 0.492969, -0.964064]
----
-Label        : 1
-Position     : [216.04, 1278.18]
-Measurements : [1466.14, 301373, 0.242406, -0.86261]
----
-Label        : 1
-Position     : [845.997, 1278.49]
-Measurements : [1694.7, 656378, 0.0389483, -1.39865]
----
-Label        : 0
-Position     : [147.283, 1278.52]
-Measurements : [1004.62, 10409.4, -0.395005, -0.081651]
----
-Label        : 1
-Position     : [1028.66, 1278.55]
-Measurements : [1501.99, 134401, -0.113138, 0.0213176]
----
-Label        : 1
-Position     : [1312.18, 1278.65]
-Measurements : [2170.1, 460425, 0.00151945, -1.37389]
----
-Label        : 1
-Position     : [220.876, 1279.07]
-Measurements : [1343.88, 464903, 0.384356, -1.15198]
----
-Label        : 1
-Position     : [887.442, 1279.07]
-Measurements : [1373.82, 278442, 0.461498, -0.587649]
----
-Label        : 1
-Position     : [885.585, 1279.15]
-Measurements : [1500.34, 254637, 0.156553, -0.71584]
----
-Label        : 1
-Position     : [268.394, 1279.16]
-Measurements : [1546.53, 177055, -0.0186647, -0.696369]
----
-Label        : 1
-Position     : [211.056, 1279.61]
-Measurements : [1261.95, 131954, 0.423172, -0.969613]
----
-Label        : 1
-Position     : [903.99, 1279.7]
-Measurements : [1184.96, 251650, 0.422302, -0.378776]
----
-Label        : 1
-Position     : [1028.73, 1279.84]
-Measurements : [1498.25, 107090, 0.112483, -0.219468]
----
-Label        : 1
-Position     : [821.212, 1279.97]
-Measurements : [584.705, 75054.7, 2.47731, 5.77632]
----
-Label        : 1
-Position     : [884.794, 1280]
-Measurements : [1551.68, 227235, 0.0728988, -0.574533]
----
-Label        : 1
-Position     : [1027.8, 1280.05]
-Measurements : [1496.35, 79258, -0.183097, 0.0157085]
----
-Label        : 1
-Position     : [1052.41, 1280.26]
-Measurements : [692.831, 123755, 0.87654, -0.506265]
----
-Label        : 1
-Position     : [847.111, 1280.41]
-Measurements : [1675.81, 718393, 0.0118482, -1.38391]
----
-Label        : 1
-Position     : [31.5608, 1280.81]
-Measurements : [1074.84, 519498, 1.13997, -0.281376]
----
-Label        : 1
-Position     : [30.86, 1280.87]
-Measurements : [1158.96, 534948, 0.9088, -0.781694]
----
-Label        : 1
-Position     : [1311.38, 1280.97]
-Measurements : [2190.12, 534243, -0.0713197, -1.45898]
----
-Label        : 1
-Position     : [904.631, 1281.38]
-Measurements : [1110.87, 311620, 0.560807, -0.429911]
----
-Label        : 1
-Position     : [265.704, 1281.76]
-Measurements : [1605.43, 290249, -0.197736, -0.743859]
----
-Label        : 1
-Position     : [980.738, 1281.83]
-Measurements : [1217.45, 301303, -0.0627685, -1.23875]
----
-Label        : 1
-Position     : [263.58, 1281.92]
-Measurements : [1562.99, 354345, -0.324655, -0.787033]
----
-Label        : 1
-Position     : [905.633, 1281.98]
-Measurements : [1198.26, 347487, 0.538262, -0.35413]
----
-Label        : 0
-Position     : [138.748, 1282]
-Measurements : [1078.39, 4122.25, -1.31527, 2.95209]
----
-Label        : 1
-Position     : [845.776, 1282.08]
-Measurements : [1226.5, 593189, 0.744271, -0.893227]
----
-Label        : 1
-Position     : [1053.11, 1282.15]
-Measurements : [883.654, 208383, 0.55272, -0.935005]
----
-Label        : 1
-Position     : [983.482, 1282.32]
-Measurements : [1189.96, 385567, 0.354785, -1.20446]
----
-Label        : 1
-Position     : [905.782, 1282.65]
-Measurements : [1088.53, 308535, 0.641278, -0.167966]
----
-Label        : 1
-Position     : [267.892, 1282.85]
-Measurements : [1587.21, 295656, 0.321701, -0.924107]
----
-Label        : 1
-Position     : [882.746, 1282.87]
-Measurements : [1620.12, 270193, -0.00614568, -0.732935]
----
-Label        : 1
-Position     : [880.472, 1283.03]
-Measurements : [1629.69, 382163, -0.283007, -0.797636]
----
-Label        : 1
-Position     : [979.726, 1283.3]
-Measurements : [1552.01, 289379, -0.0322378, -0.50485]
----
-Label        : 1
-Position     : [1316.15, 1283.34]
-Measurements : [2019.45, 652099, -0.119188, -1.3273]
----
-Label        : 1
-Position     : [1027.43, 1283.88]
-Measurements : [1588.91, 142617, 0.0784781, 0.0895234]
----
-Label        : 1
-Position     : [1052.3, 1284.23]
-Measurements : [1116.56, 250040, 0.359402, -0.953017]
----
-Label        : 1
-Position     : [28.648, 1284.32]
-Measurements : [1369.61, 504197, 0.496128, -1.29258]
----
-Label        : 1
-Position     : [975.996, 1284.45]
-Measurements : [1456.06, 226183, 0.106559, -0.349473]
----
-Label        : 1
-Position     : [824.993, 1284.5]
-Measurements : [777.24, 101012, 0.645523, -0.0665529]
----
-Label        : 1
-Position     : [1051.27, 1284.83]
-Measurements : [1097.76, 250196, 0.450734, -0.915886]
----
-Label        : 1
-Position     : [263.144, 1284.83]
-Measurements : [1797.54, 346579, 0.00165704, -0.597132]
----
-Label        : 1
-Position     : [821.972, 1285.1]
-Measurements : [803.352, 86063, 0.527319, 0.176368]
----
-Label        : 1
-Position     : [849.633, 1285.16]
-Measurements : [969.021, 412674, 1.30352, 0.523496]
----
-Label        : 0
-Position     : [149.084, 1285.89]
-Measurements : [937.225, 14747.5, 0.690499, -0.914493]
----
-Label        : 1
-Position     : [902.142, 1286.4]
-Measurements : [764.617, 134051, 0.805115, -0.849881]
----
-Label        : 1
-Position     : [979.775, 1286.55]
-Measurements : [1692.08, 202153, -0.222333, 0.223186]
----
-Label        : 1
-Position     : [1051.77, 1286.75]
-Measurements : [1197.8, 211037, 0.23475, -0.806127]
----
-Label        : 1
-Position     : [842.606, 1286.96]
-Measurements : [763.475, 108156, 1.50014, 2.19371]
----
-Label        : 1
-Position     : [258.976, 1287.05]
-Measurements : [1336.58, 616761, 0.448759, -1.17947]
----
-Label        : 1
-Position     : [881.824, 1287.12]
-Measurements : [1554.23, 492880, -0.103141, -1.32353]
----
-Label        : 1
-Position     : [1055.29, 1287.86]
-Measurements : [1206.71, 259315, 0.257619, -0.948606]
----
-Label        : 1
-Position     : [979.22, 1288.14]
-Measurements : [1734.56, 221384, -0.481802, 0.104913]
----
-Label        : 1
-Position     : [1052.3, 1288.29]
-Measurements : [1371.44, 218768, 0.402421, -0.376686]
----
-Label        : 1
-Position     : [1029.72, 1288.3]
-Measurements : [1321.65, 313501, 0.272091, -0.930014]
----
-Label        : 1
-Position     : [879.47, 1288.6]
-Measurements : [1362.79, 616098, 0.193422, -1.50539]
----
-Label        : 1
-Position     : [1030.22, 1288.62]
-Measurements : [1263.72, 288958, 0.481594, -0.715563]
----
-Label        : 1
-Position     : [245.326, 1288.87]
-Measurements : [919.186, 242214, 0.262161, -1.57769]
----
-Label        : 1
-Position     : [847.105, 1289.01]
-Measurements : [618.814, 67529.9, 2.39973, 5.69829]
----
-Label        : 1
-Position     : [1026.2, 1289.2]
-Measurements : [1307.15, 419216, 0.134594, -1.27735]
----
-Label        : 1
-Position     : [257.613, 1289.41]
-Measurements : [1213.13, 514020, 0.530758, -1.20613]
----
-Label        : 1
-Position     : [262.12, 1289.44]
-Measurements : [1504.81, 631578, 0.177676, -1.35678]
----
-Label        : 1
-Position     : [1029.37, 1289.65]
-Measurements : [1239.88, 342466, 0.452851, -0.882981]
----
-Label        : 1
-Position     : [883.894, 1291.42]
-Measurements : [1113.42, 481308, 0.955155, -0.43973]
----
-Label        : 1
-Position     : [1050.66, 1291.57]
-Measurements : [1452.92, 269077, -0.0365557, -0.611046]
----
-Label        : 1
-Position     : [1048, 1291.74]
-Measurements : [1332.31, 239550, 0.0927713, -0.789175]
----
-Label        : 1
-Position     : [947.826, 1291.87]
-Measurements : [1284.8, 442684, -0.045098, -1.29949]
----
-Label        : 1
-Position     : [247.784, 1292.51]
-Measurements : [1189.18, 147835, -0.331024, -0.800488]
----
-Label        : 1
-Position     : [234.432, 1292.69]
-Measurements : [784.546, 174269, 0.863796, -0.492083]
----
-Label        : 1
-Position     : [976.908, 1292.69]
-Measurements : [1814.38, 105590, -0.0835875, 0.619116]
----
-Label        : 1
-Position     : [972.332, 1292.73]
-Measurements : [1521.5, 219603, -0.555199, -0.674268]
----
-Label        : 0
-Position     : [129.859, 1292.76]
-Measurements : [1101.52, 4788.56, -0.57896, 2.62287]
----
-Label        : 1
-Position     : [243.619, 1293.22]
-Measurements : [1205.13, 114724, -0.496095, -0.772061]
----
-Label        : 1
-Position     : [952.219, 1293.29]
-Measurements : [1203.54, 372327, 0.325149, -1.04675]
----
-Label        : 1
-Position     : [266.455, 1293.42]
-Measurements : [1091.52, 342609, 1.79936, 3.39022]
----
-Label        : 1
-Position     : [899.823, 1293.5]
-Measurements : [1230.89, 273047, 0.189006, -0.938034]
----
-Label        : 1
-Position     : [981.806, 1293.51]
-Measurements : [1493.08, 358657, -0.161643, -1.11082]
----
-Label        : 1
-Position     : [241.128, 1293.54]
-Measurements : [1189.55, 127694, -0.330533, -0.951602]
----
-Label        : 1
-Position     : [251.88, 1293.54]
-Measurements : [1161.08, 224081, 0.321028, -1.06579]
----
-Label        : 1
-Position     : [904.409, 1293.92]
-Measurements : [1270.29, 332790, 0.0623967, -1.29094]
----
-Label        : 1
-Position     : [1046.2, 1294.07]
-Measurements : [1401.63, 352376, 0.289789, -0.802118]
----
-Label        : 1
-Position     : [231.646, 1294.63]
-Measurements : [625.734, 84893.5, 1.40675, 0.786302]
----
-Label        : 1
-Position     : [242.785, 1295.22]
-Measurements : [1201.73, 114580, -0.222575, -1.07302]
----
-Label        : 1
-Position     : [944.165, 1295.72]
-Measurements : [1274.46, 297008, 0.135623, -0.748177]
----
-Label        : 1
-Position     : [235.496, 1296.1]
-Measurements : [914.635, 160515, 0.579154, -0.723332]
----
-Label        : 1
-Position     : [1052.76, 1296.35]
-Measurements : [1481.06, 484212, 0.189049, -1.26211]
----
-Label        : 1
-Position     : [1020.76, 1296.49]
-Measurements : [1123.55, 275943, 0.0951406, -1.25244]
----
-Label        : 1
-Position     : [1017.42, 1296.52]
-Measurements : [1112.06, 306191, 0.105569, -1.32919]
----
-Label        : 1
-Position     : [1278.33, 1296.57]
-Measurements : [1080.19, 323320, 0.213425, -1.06319]
----
-Label        : 1
-Position     : [943.056, 1296.81]
-Measurements : [1169.21, 294729, 0.372983, -0.743316]
----
-Label        : 1
-Position     : [903.626, 1296.95]
-Measurements : [1500.36, 247677, -0.23278, -0.886629]
----
-Label        : 1
-Position     : [900.722, 1297.2]
-Measurements : [1605.72, 253697, -0.164983, -0.436129]
----
-Label        : 1
-Position     : [1109.2, 1297.33]
-Measurements : [664.282, 220213, 1.26221, 0.033141]
----
-Label        : 1
-Position     : [948.646, 1297.61]
-Measurements : [1424.45, 228712, 0.262428, -0.431817]
----
-Label        : 1
-Position     : [1048.2, 1297.71]
-Measurements : [1635.77, 363263, 0.00734187, -1.0482]
----
-Label        : 1
-Position     : [1024.04, 1297.85]
-Measurements : [942.811, 231741, 0.602363, -1.05447]
----
-Label        : 1
-Position     : [902.728, 1297.86]
-Measurements : [1574.79, 288975, -0.16999, -0.733606]
----
-Label        : 1
-Position     : [980.837, 1298.09]
-Measurements : [1512.38, 290944, -0.262152, -1.09098]
----
-Label        : 1
-Position     : [254.458, 1298.11]
-Measurements : [1016.3, 150699, 1.47541, 1.93021]
----
-Label        : 1
-Position     : [241.451, 1298.22]
-Measurements : [1106.94, 92663.9, 0.389068, -0.54831]
----
-Label        : 1
-Position     : [943.898, 1298.38]
-Measurements : [1312.01, 404374, 0.671227, -0.272285]
----
-Label        : 1
-Position     : [249.409, 1298.41]
-Measurements : [1055.93, 119827, 1.20531, 1.66093]
----
-Label        : 1
-Position     : [876.193, 1298.43]
-Measurements : [1111.02, 375501, 0.251819, -1.26465]
----
-Label        : 1
-Position     : [1095.77, 1298.56]
-Measurements : [868.841, 522024, 1.18092, -0.100358]
----
-Label        : 1
-Position     : [977.318, 1299.25]
-Measurements : [1659.96, 167972, -0.402616, 0.00383845]
----
-Label        : 1
-Position     : [1279, 1299.54]
-Measurements : [1197.4, 312665, 0.201561, -1.01274]
----
-Label        : 1
-Position     : [1016.34, 1299.64]
-Measurements : [1289.29, 259736, -0.126745, -0.912542]
----
-Label        : 1
-Position     : [1107.46, 1299.67]
-Measurements : [973.579, 389147, 0.366617, -1.37815]
----
-Label        : 1
-Position     : [1017.76, 1299.76]
-Measurements : [1340.19, 226188, -0.159394, -0.784173]
----
-Label        : 1
-Position     : [975.329, 1299.96]
-Measurements : [1644.75, 117759, -0.0282118, -0.109477]
----
-Label        : 1
-Position     : [899.731, 1300.02]
-Measurements : [1759.81, 252505, 0.264865, -0.246757]
----
-Label        : 1
-Position     : [876.954, 1300.08]
-Measurements : [1400.31, 402736, -0.0257444, -0.864611]
----
-Label        : 1
-Position     : [1278.17, 1300.19]
-Measurements : [1151.09, 352506, 0.229328, -1.16205]
----
-Label        : 1
-Position     : [1303.35, 1300.31]
-Measurements : [1247.42, 364716, 0.749556, -0.406762]
----
-Label        : 1
-Position     : [1303.03, 1300.68]
-Measurements : [1247.42, 364716, 0.749556, -0.406762]
----
-Label        : 1
-Position     : [873.989, 1300.86]
-Measurements : [1393.78, 402490, -0.0772356, -0.855223]
----
-Label        : 1
-Position     : [872.429, 1301.3]
-Measurements : [1463.42, 392224, -0.185586, -0.916678]
----
-Label        : 1
-Position     : [1106.36, 1301.81]
-Measurements : [1176.02, 329423, -0.0908292, -1.18279]
----
-Label        : 1
-Position     : [1090.74, 1302.65]
-Measurements : [1602.41, 383050, -0.500256, -0.769327]
----
-Label        : 1
-Position     : [978.946, 1302.68]
-Measurements : [1461.16, 276998, -0.0681581, -0.901551]
----
-Label        : 1
-Position     : [1092.44, 1303.04]
-Measurements : [1698.65, 358681, -0.764296, -0.361357]
----
-Label        : 1
-Position     : [901.658, 1303.49]
-Measurements : [1625.82, 458929, -0.151398, -1.01566]
----
-Label        : 1
-Position     : [1287.62, 1303.63]
-Measurements : [1594.12, 405681, -0.0167183, -1.14954]
----
-Label        : 1
-Position     : [1021.17, 1303.73]
-Measurements : [1293.88, 184891, 0.35287, -0.836941]
----
-Label        : 1
-Position     : [1020.76, 1303.86]
-Measurements : [1359.71, 214893, 0.371214, -0.818615]
----
-Label        : 1
-Position     : [64.5144, 1303.97]
-Measurements : [1963.91, 250748, -0.758677, 0.0597732]
----
-Label        : 1
-Position     : [897.036, 1304.16]
-Measurements : [1770.24, 215962, 0.413377, 0.0899878]
----
-Label        : 1
-Position     : [1296.11, 1304.27]
-Measurements : [1932.16, 281025, -0.504242, -0.651714]
----
-Label        : 1
-Position     : [975.679, 1304.57]
-Measurements : [1385.1, 153055, -0.225421, -0.351467]
----
-Label        : 1
-Position     : [1016.08, 1304.8]
-Measurements : [1387.8, 255431, 0.100429, -0.956067]
----
-Label        : 1
-Position     : [876.146, 1304.98]
-Measurements : [1843.93, 315213, 0.0379573, -0.771951]
----
-Label        : 1
-Position     : [69.173, 1305.07]
-Measurements : [2000.06, 395692, -0.428954, -0.505336]
----
-Label        : 1
-Position     : [222.84, 1305.14]
-Measurements : [1075.16, 146844, 0.0414129, -0.744638]
----
-Label        : 1
-Position     : [1307.68, 1305.28]
-Measurements : [938.427, 121598, 0.816699, -0.150508]
----
-Label        : 1
-Position     : [1089.63, 1305.57]
-Measurements : [1678.54, 410824, -0.545004, -0.940127]
----
-Label        : 1
-Position     : [1048.54, 1305.7]
-Measurements : [1792.35, 686658, -0.0542441, -1.33292]
----
-Label        : 1
-Position     : [203.531, 1305.81]
-Measurements : [1279.7, 191392, 0.829117, 0.359532]
----
-Label        : 1
-Position     : [1046.56, 1305.91]
-Measurements : [1773.79, 639600, 0.0380616, -1.24927]
----
-Label        : 1
-Position     : [1287.42, 1306.03]
-Measurements : [1612.31, 414251, 0.00757947, -1.15186]
----
-Label        : 1
-Position     : [898.521, 1306.13]
-Measurements : [1711.11, 311933, -0.0518588, -0.231079]
----
-Label        : 1
-Position     : [1046.17, 1306.74]
-Measurements : [1753.3, 651650, 0.0661669, -1.23661]
----
-Label        : 1
-Position     : [1045.45, 1307.01]
-Measurements : [1700.51, 625055, 0.0962782, -1.19543]
----
-Label        : 1
-Position     : [942.911, 1307.03]
-Measurements : [1821.26, 457168, -0.167818, -1.26576]
----
-Label        : 1
-Position     : [891.46, 1307.07]
-Measurements : [1356.31, 180761, 0.0181037, -1.12644]
----
-Label        : 1
-Position     : [1115.72, 1307.13]
-Measurements : [877.471, 221693, 0.31113, -1.49547]
----
-Label        : 1
-Position     : [1287.2, 1307.32]
-Measurements : [1616.54, 417166, 0.00516001, -1.16522]
----
-Label        : 1
-Position     : [1297.44, 1307.32]
-Measurements : [1844.23, 459064, -0.448991, -1.13823]
----
-Label        : 1
-Position     : [1119.08, 1307.41]
-Measurements : [572.121, 122755, 1.76644, 1.57128]
----
-Label        : 1
-Position     : [968.716, 1307.44]
-Measurements : [1122.78, 243379, -0.082707, -1.55788]
----
-Label        : 1
-Position     : [71.144, 1307.87]
-Measurements : [1874.11, 478684, -0.0578206, -1.00147]
----
-Label        : 1
-Position     : [1019.94, 1307.95]
-Measurements : [1437.86, 287350, 0.344329, -1.03668]
----
-Label        : 1
-Position     : [893.499, 1308.17]
-Measurements : [1601.11, 224758, -0.0473255, -0.164566]
----
-Label        : 1
-Position     : [874.918, 1308.26]
-Measurements : [2001.01, 269378, -0.462906, -0.385251]
----
-Label        : 1
-Position     : [895.398, 1308.26]
-Measurements : [1702.74, 217549, -0.0173452, -0.193424]
----
-Label        : 1
-Position     : [63.464, 1308.38]
-Measurements : [2091.74, 177450, -0.605216, -0.167407]
----
-Label        : 1
-Position     : [52.9436, 1308.58]
-Measurements : [2396.48, 243525, -0.655844, -0.187843]
----
-Label        : 1
-Position     : [977.276, 1308.87]
-Measurements : [947.372, 199620, 0.656709, -1.18114]
----
-Label        : 1
-Position     : [204.776, 1308.9]
-Measurements : [1268.92, 287573, 0.5939, -0.569668]
----
-Label        : 1
-Position     : [205.458, 1309.39]
-Measurements : [1178.51, 355079, 0.601239, -0.811588]
----
-Label        : 1
-Position     : [1300.06, 1309.61]
-Measurements : [1547.19, 606793, 0.180677, -1.66337]
----
-Label        : 1
-Position     : [880.849, 1309.69]
-Measurements : [1446.04, 301160, 1.12097, 0.0218886]
----
-Label        : 1
-Position     : [899.513, 1309.78]
-Measurements : [1554.62, 436688, -0.0295516, -1.01249]
----
-Label        : 1
-Position     : [971.311, 1309.91]
-Measurements : [1020.75, 258859, 0.25137, -1.58033]
----
-Label        : 1
-Position     : [52.712, 1309.92]
-Measurements : [2489.45, 219399, -0.697646, -0.117475]
----
-Label        : 1
-Position     : [221.16, 1309.92]
-Measurements : [1231.95, 319143, 0.184855, -0.929334]
----
-Label        : 1
-Position     : [1092.03, 1310]
-Measurements : [1830.11, 182334, -0.727102, 0.373403]
----
-Label        : 1
-Position     : [944.084, 1310.26]
-Measurements : [1611.3, 361606, 0.112868, -0.98271]
----
-Label        : 1
-Position     : [37.1531, 1310.74]
-Measurements : [1818.07, 347091, -0.0132461, -1.35249]
----
-Label        : 1
-Position     : [944.37, 1311.09]
-Measurements : [1468.89, 326165, 0.26123, -0.97454]
----
-Label        : 1
-Position     : [871.231, 1311.12]
-Measurements : [1917.48, 296230, -0.537008, 0.0507425]
----
-Label        : 1
-Position     : [876.025, 1311.28]
-Measurements : [1741.13, 411771, 0.108182, -1.38274]
----
-Label        : 1
-Position     : [71.9168, 1311.3]
-Measurements : [1754.99, 444855, 0.343359, -0.740937]
----
-Label        : 1
-Position     : [970.319, 1311.52]
-Measurements : [834.653, 246444, 0.989766, -0.631592]
----
-Label        : 1
-Position     : [38.7906, 1311.54]
-Measurements : [1930.26, 331406, -0.187449, -1.26945]
----
-Label        : 1
-Position     : [939.61, 1311.54]
-Measurements : [1132.66, 349886, 0.744953, -0.275352]
----
-Label        : 1
-Position     : [1041.65, 1311.64]
-Measurements : [1359.79, 309708, 0.199126, -0.684238]
----
-Label        : 1
-Position     : [1013.51, 1311.84]
-Measurements : [1400.59, 554639, 0.06974, -1.41732]
----
-Label        : 1
-Position     : [1016.46, 1311.9]
-Measurements : [1577.26, 407891, -0.0390692, -1.13643]
----
-Label        : 1
-Position     : [1116.6, 1312.05]
-Measurements : [1258.37, 364290, 0.0737243, -0.960195]
----
-Label        : 1
-Position     : [1091.4, 1312.26]
-Measurements : [1807.8, 192872, -0.583877, -0.0512258]
----
-Label        : 1
-Position     : [219.056, 1312.27]
-Measurements : [1432.78, 404600, -0.143565, -1.06002]
----
-Label        : 1
-Position     : [870.611, 1312.33]
-Measurements : [1814.56, 390739, -0.452088, -0.499928]
----
-Label        : 1
-Position     : [893.759, 1312.35]
-Measurements : [1780.37, 197400, -0.0722917, 0.448701]
----
-Label        : 1
-Position     : [877.092, 1312.56]
-Measurements : [1562.26, 413992, 0.588014, -1.01357]
----
-Label        : 1
-Position     : [224.568, 1312.62]
-Measurements : [1348.31, 227152, 0.51743, -0.564394]
----
-Label        : 1
-Position     : [60.9692, 1312.65]
-Measurements : [2092.48, 268651, -0.18664, -0.315039]
----
-Label        : 1
-Position     : [1015.43, 1312.87]
-Measurements : [1481.93, 489326, 0.0581409, -1.31392]
----
-Label        : 1
-Position     : [47.6352, 1313.1]
-Measurements : [2422.46, 310526, -1.00005, 0.241473]
----
-Label        : 1
-Position     : [220.108, 1313.97]
-Measurements : [1521.66, 352754, -0.0880711, -0.960449]
----
-Label        : 1
-Position     : [52.4728, 1314.26]
-Measurements : [2257.54, 555768, -0.656299, -0.82843]
----
-Label        : 1
-Position     : [873.182, 1314.51]
-Measurements : [1635.64, 347752, -0.0966372, -1.25582]
----
-Label        : 1
-Position     : [1090.8, 1314.51]
-Measurements : [1759.43, 230099, -0.601054, -0.174954]
----
-Label        : 1
-Position     : [44.52, 1314.53]
-Measurements : [2294.61, 290795, -0.731813, -0.0650435]
----
-Label        : 1
-Position     : [875.18, 1314.79]
-Measurements : [1564.48, 364534, 0.178236, -1.3786]
----
-Label        : 1
-Position     : [941.682, 1314.81]
-Measurements : [981.848, 178299, 0.344346, -1.13886]
----
-Label        : 1
-Position     : [1089.79, 1314.94]
-Measurements : [1709.32, 233326, -0.579034, -0.312489]
----
-Label        : 1
-Position     : [37.352, 1315.04]
-Measurements : [1717.94, 356852, 0.294923, -1.27952]
----
-Label        : 1
-Position     : [220.136, 1315.04]
-Measurements : [1596.44, 320048, -0.0372491, -1.14698]
----
-Label        : 1
-Position     : [892.448, 1315.17]
-Measurements : [1693.19, 281184, -0.209503, -0.33508]
----
-Label        : 1
-Position     : [44.5377, 1315.27]
-Measurements : [2193.27, 419334, -0.689739, -0.504618]
----
-Label        : 1
-Position     : [890.586, 1315.32]
-Measurements : [1556, 302679, -0.00125402, -0.758852]
----
-Label        : 1
-Position     : [1036.08, 1315.38]
-Measurements : [1274.77, 330210, 0.294655, -1.02092]
----
-Label        : 1
-Position     : [870.822, 1315.63]
-Measurements : [1511.51, 445933, -0.225569, -1.3706]
----
-Label        : 1
-Position     : [946.35, 1316]
-Measurements : [914.94, 139810, 0.637199, -0.743085]
----
-Label        : 1
-Position     : [1090.58, 1316.25]
-Measurements : [1717.1, 188884, -0.713842, 0.0164106]
----
-Label        : 1
-Position     : [1042.99, 1316.36]
-Measurements : [1589.96, 257704, -0.350439, -0.670034]
----
-Label        : 1
-Position     : [215.102, 1317.07]
-Measurements : [1697.26, 456729, -0.453818, -0.429782]
----
-Label        : 1
-Position     : [1110.03, 1317.51]
-Measurements : [1078.43, 231753, 0.526966, -0.899589]
----
-Label        : 1
-Position     : [214.016, 1317.56]
-Measurements : [1622, 506725, -0.301859, -0.772521]
----
-Label        : 1
-Position     : [891.302, 1317.68]
-Measurements : [1559.72, 365709, 0.0457323, -0.988123]
----
-Label        : 1
-Position     : [1086.98, 1317.8]
-Measurements : [1552.81, 266504, -0.531659, -0.428131]
----
-Label        : 1
-Position     : [887.466, 1318.56]
-Measurements : [1208.13, 216550, 0.710414, -0.443342]
----
-Label        : 1
-Position     : [1039.6, 1318.6]
-Measurements : [1651.32, 248948, -0.404652, -0.645923]
----
-Label        : 1
-Position     : [941.802, 1318.71]
-Measurements : [913.476, 193404, 0.511469, -1.267]
----
-Label        : 1
-Position     : [941.932, 1319.08]
-Measurements : [924.102, 220751, 0.724954, -0.684596]
----
-Label        : 1
-Position     : [217.576, 1319.65]
-Measurements : [1823.71, 417133, 0.127804, -0.86612]
----
-Label        : 1
-Position     : [869.549, 1319.83]
-Measurements : [1080.1, 369406, 0.874968, -0.571578]
----
-Label        : 1
-Position     : [1087.52, 1320.24]
-Measurements : [1698.86, 201962, -0.15985, -0.337135]
----
-Label        : 1
-Position     : [1043.74, 1320.38]
-Measurements : [1497.44, 401010, -0.21268, -1.3805]
----
-Label        : 1
-Position     : [1114.14, 1321.06]
-Measurements : [1350.95, 181017, -0.14243, -1.10173]
----
-Label        : 1
-Position     : [212.968, 1321.7]
-Measurements : [1776.1, 616859, -0.309671, -0.945149]
----
-Label        : 1
-Position     : [1085.11, 1322.19]
-Measurements : [1645.56, 314442, -0.450896, -0.564527]
----
-Label        : 1
-Position     : [937.586, 1322.59]
-Measurements : [1119.32, 256289, 0.264803, -1.19099]
----
-Label        : 1
-Position     : [220.624, 1322.68]
-Measurements : [1333.74, 331630, 1.023, -0.422394]
----
-Label        : 1
-Position     : [1113.23, 1322.78]
-Measurements : [1356.74, 187156, -0.277567, -1.1924]
----
-Label        : 1
-Position     : [1084.08, 1323.55]
-Measurements : [1543.34, 396985, -0.24635, -1.02168]
----
-Label        : 1
-Position     : [1034.64, 1323.62]
-Measurements : [1247.68, 232300, 0.158599, -0.886861]
----
-Label        : 1
-Position     : [1040.78, 1324.01]
-Measurements : [1646.53, 275005, -0.254766, -0.755246]
----
-Label        : 1
-Position     : [962.501, 1324.12]
-Measurements : [1188.32, 418831, 0.295935, -0.90213]
----
-Label        : 1
-Position     : [885.503, 1324.22]
-Measurements : [1339.04, 335668, 0.646289, -1.07745]
----
-Label        : 1
-Position     : [1036.66, 1324.26]
-Measurements : [1521.52, 249289, 0.155506, -0.6279]
----
-Label        : 1
-Position     : [1038.78, 1324.34]
-Measurements : [1648.71, 228938, 0.0062626, -0.786374]
----
-Label        : 1
-Position     : [1085.06, 1324.34]
-Measurements : [1577.87, 336021, -0.145536, -0.915619]
----
-Label        : 1
-Position     : [1108.77, 1324.37]
-Measurements : [1188.77, 195140, 0.0129395, -1.20501]
----
-Label        : 1
-Position     : [212.055, 1324.41]
-Measurements : [1869.87, 502797, -0.228788, -0.763631]
----
-Label        : 1
-Position     : [1109.74, 1324.93]
-Measurements : [1241.67, 204417, -0.089655, -1.11295]
----
-Label        : 1
-Position     : [959.621, 1325.05]
-Measurements : [1160.3, 227966, -0.113435, -1.1584]
----
-Label        : 1
-Position     : [1109.23, 1325.16]
-Measurements : [1253, 197803, -0.122267, -1.04868]
----
-Label        : 1
-Position     : [212.572, 1325.19]
-Measurements : [1867.71, 479306, -0.119474, -0.837442]
----
-Label        : 1
-Position     : [1082.65, 1325.2]
-Measurements : [1355.99, 379338, 0.252832, -0.797388]
----
-Label        : 1
-Position     : [962.572, 1325.46]
-Measurements : [1301.02, 382402, 0.0394973, -0.819866]
----
-Label        : 1
-Position     : [888.025, 1326.28]
-Measurements : [1691.27, 420564, 0.235849, -0.969007]
----
-Label        : 1
-Position     : [1041.87, 1326.64]
-Measurements : [1583.87, 375788, -0.235487, -1.00124]
----
-Label        : 1
-Position     : [1005.87, 1326.64]
-Measurements : [767.13, 196445, 0.773894, -0.989564]
----
-Label        : 1
-Position     : [890.448, 1327.09]
-Measurements : [1776.79, 420014, 0.15671, -1.06311]
----
-Label        : 1
-Position     : [1010.11, 1328.02]
-Measurements : [1034.87, 208061, -0.161357, -1.38112]
----
-Label        : 1
-Position     : [962.021, 1328.41]
-Measurements : [1687.99, 234360, 0.0141727, -0.411767]
----
-Label        : 1
-Position     : [1036.73, 1328.43]
-Measurements : [1750.04, 259453, 0.0946967, -0.883668]
----
-Label        : 1
-Position     : [203.632, 1328.66]
-Measurements : [1066.95, 434547, 0.302328, -1.57838]
----
-Label        : 1
-Position     : [1005.66, 1328.82]
-Measurements : [927.061, 251058, 0.274468, -1.52142]
----
-Label        : 1
-Position     : [1083.83, 1328.84]
-Measurements : [1453.46, 235202, 0.428073, -0.185369]
----
-Label        : 1
-Position     : [1083.83, 1329.25]
-Measurements : [1472.37, 186843, 0.336424, -0.325738]
----
-Label        : 1
-Position     : [202.951, 1329.32]
-Measurements : [1031.45, 417980, 0.38989, -1.47656]
----
-Label        : 1
-Position     : [210.92, 1329.38]
-Measurements : [1682.02, 403155, 0.0554528, -0.913074]
----
-Label        : 1
-Position     : [205.732, 1329.62]
-Measurements : [1392.06, 421998, -0.342022, -1.27645]
----
-Label        : 1
-Position     : [936.019, 1329.95]
-Measurements : [1037.7, 216098, 0.598226, -0.73039]
----
-Label        : 1
-Position     : [200.546, 1330.55]
-Measurements : [916.041, 389195, 0.73859, -1.00794]
----
-Label        : 1
-Position     : [930.207, 1331.09]
-Measurements : [833.478, 137570, 0.680452, -0.65201]
----
-Label        : 1
-Position     : [961.343, 1331.6]
-Measurements : [1615.36, 216538, 0.267333, -0.630965]
----
-Label        : 1
-Position     : [208.36, 1331.94]
-Measurements : [1533.87, 383342, 0.0817045, -0.981815]
----
-Label        : 1
-Position     : [211.104, 1332]
-Measurements : [1434.25, 382381, 0.528883, -0.908814]
----
-Label        : 1
-Position     : [1107.18, 1332.12]
-Measurements : [1488.82, 182643, -0.128261, -0.592243]
----
-Label        : 1
-Position     : [1082.76, 1332.38]
-Measurements : [1311.58, 166648, -0.0332113, 0.0124142]
----
-Label        : 1
-Position     : [1086.17, 1332.4]
-Measurements : [1306.43, 134188, 0.327458, -0.299825]
----
-Label        : 1
-Position     : [935.129, 1332.42]
-Measurements : [963.229, 116310, 0.44043, -0.954927]
----
-Label        : 1
-Position     : [1088.2, 1332.79]
-Measurements : [1232.9, 107412, 0.599771, 0.0705997]
----
-Label        : 1
-Position     : [1031.61, 1332.82]
-Measurements : [1411.46, 394940, 0.349675, -0.597819]
----
-Label        : 1
-Position     : [204.776, 1332.96]
-Measurements : [1415.48, 312966, -0.393476, -1.11989]
----
-Label        : 1
-Position     : [1081.38, 1333.35]
-Measurements : [1218.72, 202133, -0.297212, -0.809967]
----
-Label        : 1
-Position     : [1086.57, 1333.55]
-Measurements : [1252.11, 148525, 0.174646, -0.431307]
----
-Label        : 1
-Position     : [1010.11, 1333.76]
-Measurements : [1338.37, 142730, -0.37403, -0.740992]
----
-Label        : 1
-Position     : [1035.91, 1333.76]
-Measurements : [1895.88, 379316, 0.0541412, -0.369077]
----
-Label        : 1
-Position     : [1011.92, 1333.77]
-Measurements : [1294.03, 144761, -0.183736, -0.896126]
----
-Label        : 1
-Position     : [1007.17, 1334.09]
-Measurements : [1414.44, 174034, -0.602613, -0.24203]
----
-Label        : 1
-Position     : [1014.34, 1334.09]
-Measurements : [1101.03, 96307.8, 0.189611, -0.766939]
----
-Label        : 1
-Position     : [1082.31, 1334.24]
-Measurements : [1155.18, 199033, -0.324596, -1.3479]
----
-Label        : 1
-Position     : [198.004, 1335.02]
-Measurements : [1176.41, 398729, 0.00739016, -1.51755]
----
-Label        : 1
-Position     : [205.008, 1335.25]
-Measurements : [1347.55, 267229, 0.160481, -1.42401]
----
-Label        : 1
-Position     : [964.443, 1335.33]
-Measurements : [1415.62, 326990, 0.053222, -0.967151]
----
-Label        : 1
-Position     : [954.461, 1335.52]
-Measurements : [1050.63, 98191.3, 0.288471, -0.468764]
----
-Label        : 1
-Position     : [200.68, 1335.52]
-Measurements : [1305.33, 339941, -0.236251, -1.28093]
----
-Label        : 1
-Position     : [1080.43, 1335.71]
-Measurements : [1075.66, 243875, -0.121086, -1.62054]
----
-Label        : 1
-Position     : [202.606, 1335.85]
-Measurements : [1387.93, 284884, -0.262247, -1.21935]
----
-Label        : 1
-Position     : [1010.68, 1336.06]
-Measurements : [1327.47, 167515, -0.237885, -0.913615]
----
-Label        : 1
-Position     : [1104.71, 1336.29]
-Measurements : [1392.99, 213359, -0.331121, -0.548384]
----
-Label        : 1
-Position     : [1037.82, 1336.4]
-Measurements : [1842.17, 531701, -0.167324, -0.914085]
----
-Label        : 1
-Position     : [1111.1, 1336.5]
-Measurements : [1260.47, 387608, 0.214244, -1.4822]
----
-Label        : 1
-Position     : [934.956, 1336.65]
-Measurements : [1130.51, 135065, 0.379975, -0.239017]
----
-Label        : 1
-Position     : [201.317, 1337.28]
-Measurements : [1403.75, 285657, -0.101102, -1.19929]
----
-Label        : 1
-Position     : [1106.36, 1338.26]
-Measurements : [1493.63, 187347, -0.197667, -0.594758]
----
-Label        : 1
-Position     : [198.12, 1338.59]
-Measurements : [1371.62, 364326, -0.196164, -1.18324]
----
-Label        : 1
-Position     : [1007.24, 1338.67]
-Measurements : [1467.74, 159950, -0.324834, -0.785349]
----
-Label        : 1
-Position     : [958.066, 1338.98]
-Measurements : [1468.65, 156102, 0.261484, -0.727416]
----
-Label        : 1
-Position     : [1005.61, 1339.2]
-Measurements : [1522.85, 165111, -0.490292, -0.491183]
----
-Label        : 1
-Position     : [934.31, 1339.39]
-Measurements : [1134.29, 167900, 0.335453, -0.820453]
----
-Label        : 1
-Position     : [1027.08, 1339.54]
-Measurements : [1254.46, 204678, 0.49336, -0.469979]
----
-Label        : 1
-Position     : [961.115, 1339.65]
-Measurements : [1454.56, 179069, -0.115474, -0.587089]
----
-Label        : 1
-Position     : [1030.59, 1339.9]
-Measurements : [1500.28, 282772, 0.373387, -0.581496]
----
-Label        : 1
-Position     : [1076.42, 1340.93]
-Measurements : [1086.82, 424972, 0.495136, -1.06757]
----
-Label        : 1
-Position     : [1101.75, 1341.08]
-Measurements : [1186.92, 234980, 0.0104893, -1.29114]
----
-Label        : 1
-Position     : [1006.9, 1341.49]
-Measurements : [1531.96, 184549, -0.439923, -0.819245]
----
-Label        : 1
-Position     : [1105.19, 1341.53]
-Measurements : [1417.8, 206917, -0.333818, -0.868903]
----
-Label        : 1
-Position     : [196.908, 1341.56]
-Measurements : [1391.56, 379297, -0.315684, -1.1364]
----
-Label        : 1
-Position     : [928.389, 1341.71]
-Measurements : [966.719, 160637, 0.114591, -1.08712]
----
-Label        : 1
-Position     : [931.876, 1341.75]
-Measurements : [1082.87, 152359, 0.0190296, -0.952794]
----
-Label        : 1
-Position     : [956.528, 1341.84]
-Measurements : [1475.74, 214437, -0.0808765, -0.790369]
----
-Label        : 1
-Position     : [958.066, 1341.84]
-Measurements : [1554.55, 200191, -0.203989, -0.838431]
----
-Label        : 1
-Position     : [1104.72, 1342.77]
-Measurements : [1312.89, 258570, -0.215759, -1.22044]
----
-Label        : 1
-Position     : [1003.96, 1343.18]
-Measurements : [1711.76, 219450, -0.653427, 0.101185]
----
-Label        : 1
-Position     : [195.56, 1343.2]
-Measurements : [1430.41, 420351, -0.175269, -1.10667]
----
-Label        : 1
-Position     : [199.066, 1343.26]
-Measurements : [1308.5, 307133, 0.410709, -1.15532]
----
-Label        : 1
-Position     : [1077.28, 1343.59]
-Measurements : [1413.36, 410465, -0.18025, -1.10319]
----
-Label        : 1
-Position     : [1027.78, 1343.75]
-Measurements : [1474.19, 381456, 0.320688, -0.865835]
----
-Label        : 1
-Position     : [931.852, 1344.3]
-Measurements : [1180.13, 86288, 0.300817, -0.455208]
----
-Label        : 1
-Position     : [1029.77, 1344.41]
-Measurements : [1672.23, 368575, 0.10691, -0.97739]
----
-Label        : 1
-Position     : [187.798, 1344.84]
-Measurements : [766.17, 380279, 1.33126, 0.25942]
----
-Label        : 1
-Position     : [1005.35, 1346.01]
-Measurements : [1753.23, 319899, -0.373227, -0.853522]
----
-Label        : 1
-Position     : [1103.55, 1346.15]
-Measurements : [927.715, 322546, 0.700054, -1.08091]
----
-Label        : 1
-Position     : [1030.78, 1346.28]
-Measurements : [1642.54, 377454, 0.153002, -0.963774]
----
-Label        : 1
-Position     : [955.199, 1346.35]
-Measurements : [1677.91, 209809, -0.144251, -0.655183]
----
-Label        : 1
-Position     : [193.757, 1346.38]
-Measurements : [1524.22, 433222, -0.289101, -1.08446]
----
-Label        : 1
-Position     : [194.45, 1346.41]
-Measurements : [1513.46, 423640, -0.172241, -1.20138]
----
-Label        : 1
-Position     : [1079.75, 1346.63]
-Measurements : [1599, 250273, -0.337679, -0.25206]
----
-Label        : 1
-Position     : [962.652, 1346.66]
-Measurements : [1301.35, 487098, 0.25086, -1.44225]
----
-Label        : 1
-Position     : [1026.74, 1346.72]
-Measurements : [1430.11, 284626, 0.481911, -0.219725]
----
-Label        : 1
-Position     : [191.903, 1346.89]
-Measurements : [1414.96, 511919, -0.193563, -1.28437]
----
-Label        : 1
-Position     : [1103.97, 1347.07]
-Measurements : [837.351, 314036, 1.04937, -0.48434]
----
-Label        : 1
-Position     : [953.134, 1347.5]
-Measurements : [1562.99, 234177, -0.184157, -0.84746]
----
-Label        : 1
-Position     : [951.017, 1347.61]
-Measurements : [1334.72, 270887, 0.12313, -1.07814]
----
-Label        : 1
-Position     : [930.032, 1347.76]
-Measurements : [1179.15, 62709, 0.787222, 0.379866]
----
-Label        : 1
-Position     : [1075.06, 1347.83]
-Measurements : [1500.15, 178217, -0.185162, -0.0376738]
----
-Label        : 1
-Position     : [1076.46, 1348.91]
-Measurements : [1552.56, 190178, 0.0781478, -0.0661939]
----
-Label        : 1
-Position     : [998.434, 1349.05]
-Measurements : [1597.79, 478159, -0.318914, -1.16057]
----
-Label        : 1
-Position     : [190.764, 1349.28]
-Measurements : [1468.86, 358433, -0.13488, -0.7986]
----
-Label        : 1
-Position     : [1002.32, 1349.32]
-Measurements : [1964.24, 214191, -0.630874, -0.318155]
----
-Label        : 1
-Position     : [195.151, 1349.72]
-Measurements : [1386.04, 372566, 0.406746, -1.24631]
----
-Label        : 1
-Position     : [1007.11, 1350.31]
-Measurements : [1655.7, 426894, 0.0381281, -1.40369]
----
-Label        : 1
-Position     : [954.79, 1351.26]
-Measurements : [1398.96, 381571, -0.0266855, -1.26696]
----
-Label        : 1
-Position     : [1026.9, 1352.19]
-Measurements : [1502.91, 233766, 0.246975, -0.0219934]
----
-Label        : 1
-Position     : [1022.5, 1352.22]
-Measurements : [1294.98, 184964, 0.0286022, -0.521713]
----
-Label        : 1
-Position     : [1003.58, 1352.48]
-Measurements : [1881.56, 318137, -0.2688, -1.22873]
----
-Label        : 1
-Position     : [188.39, 1352.6]
-Measurements : [1393.1, 310796, 0.168832, -0.630014]
----
-Label        : 1
-Position     : [1000.69, 1352.6]
-Measurements : [1815.09, 350378, -0.300662, -0.902512]
----
-Label        : 1
-Position     : [959.379, 1353]
-Measurements : [1067.63, 408215, 0.761021, -0.893085]
----
-Label        : 1
-Position     : [1072.81, 1353.02]
-Measurements : [1366.2, 189996, -0.764581, -0.391958]
----
-Label        : 1
-Position     : [956.435, 1353.16]
-Measurements : [1196.01, 397855, 0.382504, -1.24667]
----
-Label        : 1
-Position     : [1185.12, 1353.31]
-Measurements : [753.949, 186336, 0.593775, -1.14592]
----
-Label        : 1
-Position     : [1073.18, 1353.42]
-Measurements : [1411.63, 158037, -0.850258, -0.0751179]
----
-Label        : 1
-Position     : [1024.81, 1353.75]
-Measurements : [1455.4, 176964, -0.0422201, -0.470655]
----
-Label        : 1
-Position     : [1149.31, 1354.14]
-Measurements : [821.773, 187973, 0.612616, -0.710248]
----
-Label        : 1
-Position     : [1184.19, 1355.01]
-Measurements : [953.618, 234215, 0.290703, -0.954065]
----
-Label        : 1
-Position     : [182.124, 1355.23]
-Measurements : [842.557, 225318, 0.535452, -1.19607]
----
-Label        : 1
-Position     : [1184.71, 1355.23]
-Measurements : [953.618, 234215, 0.290703, -0.954065]
----
-Label        : 1
-Position     : [1024.92, 1355.93]
-Measurements : [1467.53, 167820, 0.0242755, -0.542963]
----
-Label        : 1
-Position     : [1150.25, 1356.21]
-Measurements : [977.626, 172943, 0.101855, -0.931218]
----
-Label        : 1
-Position     : [184.21, 1356.24]
-Measurements : [968.651, 188089, 0.249335, -0.922126]
----
-Label        : 1
-Position     : [1151.83, 1356.29]
-Measurements : [973.282, 180168, 0.0667811, -0.998109]
----
-Label        : 1
-Position     : [1024.03, 1357.11]
-Measurements : [1484.26, 172589, 0.155084, -0.827578]
----
-Label        : 1
-Position     : [1100.34, 1357.4]
-Measurements : [1106.35, 299674, -0.0810147, -1.52512]
----
-Label        : 1
-Position     : [1097.35, 1357.93]
-Measurements : [1131.1, 260119, -0.198241, -1.29917]
----
-Label        : 1
-Position     : [1075.61, 1357.95]
-Measurements : [1394.87, 236344, -0.254585, -1.133]
----
-Label        : 1
-Position     : [1076.57, 1358.09]
-Measurements : [1297.11, 289487, 0.013206, -1.44407]
----
-Label        : 1
-Position     : [1025.8, 1358.2]
-Measurements : [1494.99, 181646, 0.10445, -0.839606]
----
-Label        : 1
-Position     : [1075.55, 1358.32]
-Measurements : [1331.63, 282864, -0.132641, -1.38113]
----
-Label        : 1
-Position     : [1100.97, 1358.59]
-Measurements : [1208.42, 279292, -0.244758, -1.35779]
----
-Label        : 1
-Position     : [1001.79, 1358.93]
-Measurements : [1690.19, 297700, 0.117575, -0.952567]
----
-Label        : 1
-Position     : [1022.94, 1358.99]
-Measurements : [1385.21, 178032, 0.304549, -0.562026]
----
-Label        : 1
-Position     : [993.733, 1359.47]
-Measurements : [971.489, 414647, 0.842298, -0.664308]
----
-Label        : 1
-Position     : [999.866, 1359.56]
-Measurements : [1631.14, 380547, -0.196531, -0.879983]
----
-Label        : 1
-Position     : [1070.94, 1359.89]
-Measurements : [1100.93, 380884, 0.278185, -1.50769]
----
-Label        : 1
-Position     : [1153.2, 1360.6]
-Measurements : [1205.67, 164683, -0.0187007, -0.817942]
----
-Label        : 1
-Position     : [998.862, 1360.93]
-Measurements : [1607.86, 416249, -0.247642, -0.935206]
----
-Label        : 1
-Position     : [1153.37, 1361.04]
-Measurements : [1277.85, 165326, -0.117376, -0.889717]
----
-Label        : 1
-Position     : [1072.78, 1361.2]
-Measurements : [1088.75, 337198, 0.428055, -1.32598]
----
-Label        : 1
-Position     : [1184.46, 1361.65]
-Measurements : [1803.66, 424299, 0.249264, -0.85302]
----
-Label        : 1
-Position     : [1099.1, 1361.77]
-Measurements : [1505.52, 176025, -0.338427, -0.529592]
----
-Label        : 1
-Position     : [1025.24, 1362.2]
-Measurements : [1418.88, 222432, 0.268715, -0.958194]
----
-Label        : 1
-Position     : [1095.71, 1362.43]
-Measurements : [1481.55, 200900, -0.406638, -0.424187]
----
-Label        : 1
-Position     : [1021.98, 1362.8]
-Measurements : [1327.14, 210877, 0.462766, -0.537684]
----
-Label        : 1
-Position     : [1181.32, 1364.02]
-Measurements : [1878.69, 345188, 0.0477768, -0.566984]
----
-Label        : 1
-Position     : [996.59, 1364.07]
-Measurements : [1720.79, 341476, -0.68393, -0.265323]
----
-Label        : 1
-Position     : [1016.23, 1364.75]
-Measurements : [1096.47, 176590, 0.787439, 0.0655558]
----
-Label        : 1
-Position     : [1302.98, 1364.84]
-Measurements : [867.585, 284755, 1.08671, 0.299825]
----
-Label        : 1
-Position     : [184.644, 1365.19]
-Measurements : [936.212, 120838, 1.53389, 1.92177]
----
-Label        : 1
-Position     : [180.114, 1365.25]
-Measurements : [1142.42, 296578, 0.766775, -0.0976057]
----
-Label        : 1
-Position     : [1149.78, 1365.25]
-Measurements : [1571.08, 192387, -0.0894727, -0.575235]
----
-Label        : 1
-Position     : [177.998, 1365.36]
-Measurements : [1160.89, 370657, 0.354042, -0.803761]
----
-Label        : 1
-Position     : [1017.56, 1365.38]
-Measurements : [1225.36, 226767, 0.314942, -0.853632]
----
-Label        : 1
-Position     : [1307.82, 1365.39]
-Measurements : [822.402, 232789, 1.56415, 1.74868]
----
-Label        : 1
-Position     : [1073.67, 1365.49]
-Measurements : [946.061, 260971, 0.993882, -0.29622]
----
-Label        : 1
-Position     : [1092.71, 1365.8]
-Measurements : [1536.53, 293731, 0.0273829, -0.65317]
----
-Label        : 1
-Position     : [1088.52, 1365.93]
-Measurements : [1219.66, 266961, 0.722213, -0.0842241]
----
-Label        : 1
-Position     : [1020.76, 1366.48]
-Measurements : [1430.08, 214155, -0.117515, -0.672]
----
-Label        : 1
-Position     : [1174, 1366.72]
-Measurements : [1375.9, 345637, 0.113011, -1.06138]
----
-Label        : 1
-Position     : [1067.24, 1366.73]
-Measurements : [965.522, 260123, 0.343479, -1.47959]
----
-Label        : 1
-Position     : [1183.54, 1366.8]
-Measurements : [1910.46, 492821, -0.409365, -0.855105]
----
-Label        : 1
-Position     : [1088.67, 1367.19]
-Measurements : [1173.67, 298480, 0.720606, -0.295204]
----
-Label        : 1
-Position     : [1153.35, 1367.19]
-Measurements : [1595.63, 419111, -0.0411243, -1.09396]
----
-Label        : 1
-Position     : [1092.03, 1367.3]
-Measurements : [1477.61, 355314, 0.013439, -0.95761]
----
-Label        : 1
-Position     : [1176.72, 1367.76]
-Measurements : [1700, 335349, -0.390805, -0.730935]
----
-Label        : 1
-Position     : [1298.04, 1368.25]
-Measurements : [682.765, 268536, 1.87527, 2.5242]
----
-Label        : 1
-Position     : [998.743, 1368.45]
-Measurements : [1856.1, 239627, -0.54793, -0.789999]
----
-Label        : 1
-Position     : [177.657, 1368.53]
-Measurements : [1355.55, 278715, 0.19252, -0.600856]
----
-Label        : 1
-Position     : [995.77, 1368.53]
-Measurements : [1867.98, 236956, -1.04351, 0.794239]
----
-Label        : 1
-Position     : [1069.5, 1368.53]
-Measurements : [1059.71, 255647, 0.160926, -1.54322]
----
-Label        : 1
-Position     : [992.358, 1368.77]
-Measurements : [1571.75, 418141, -0.5873, -0.947838]
----
-Label        : 1
-Position     : [177.235, 1369.09]
-Measurements : [1375.14, 251553, 0.306837, -0.487]
----
-Label        : 1
-Position     : [179.391, 1369.16]
-Measurements : [1292.91, 245143, 0.803953, -0.316779]
----
-Label        : 1
-Position     : [179.593, 1369.62]
-Measurements : [1292.91, 245143, 0.803953, -0.316779]
----
-Label        : 1
-Position     : [1069.21, 1369.67]
-Measurements : [1150.15, 265769, 0.109308, -1.24753]
----
-Label        : 1
-Position     : [1178.87, 1369.76]
-Measurements : [1935.54, 314627, -0.416534, -0.717754]
----
-Label        : 1
-Position     : [155.11, 1370.43]
-Measurements : [898.497, 83665.5, 0.809224, 1.13075]
----
-Label        : 1
-Position     : [173.97, 1370.58]
-Measurements : [1146.17, 388341, 0.421906, -0.915549]
----
-Label        : 1
-Position     : [1148.96, 1370.58]
-Measurements : [1864.5, 251316, -0.37612, 0.161728]
----
-Label        : 1
-Position     : [1062.24, 1371.33]
-Measurements : [1182.58, 326935, -0.0871565, -1.26764]
----
-Label        : 1
-Position     : [1018.3, 1371.4]
-Measurements : [1652.24, 124859, -0.716329, 0.307692]
----
-Label        : 1
-Position     : [1022.01, 1371.63]
-Measurements : [1560.68, 225751, -0.707548, -0.415069]
----
-Label        : 1
-Position     : [993.255, 1371.68]
-Measurements : [1887.18, 233264, -0.873702, 0.621119]
----
-Label        : 1
-Position     : [1092.45, 1372.39]
-Measurements : [1397.61, 433966, 0.199129, -1.22151]
----
-Label        : 1
-Position     : [998.701, 1372.75]
-Measurements : [1694.68, 326766, -0.139148, -1.31076]
----
-Label        : 1
-Position     : [178.51, 1372.92]
-Measurements : [1251.96, 241711, 1.0048, 0.00686376]
----
-Label        : 1
-Position     : [1066.63, 1373.04]
-Measurements : [1534.44, 199772, -0.348793, 0.0111119]
----
-Label        : 1
-Position     : [995.662, 1373.35]
-Measurements : [1861.08, 269298, -0.733931, -0.33968]
----
-Label        : 1
-Position     : [1147.15, 1373.51]
-Measurements : [1943.46, 207606, -0.554311, 0.345599]
----
-Label        : 1
-Position     : [1016.76, 1373.71]
-Measurements : [1636.35, 174565, -0.847295, 0.210384]
----
-Label        : 1
-Position     : [154.31, 1374.26]
-Measurements : [851.446, 102360, 0.760562, 0.493657]
----
-Label        : 1
-Position     : [993.722, 1374.26]
-Measurements : [1884.84, 266969, -0.844671, 0.18332]
----
-Label        : 1
-Position     : [1017.94, 1374.4]
-Measurements : [1738.95, 127092, -0.490263, 0.0571056]
----
-Label        : 1
-Position     : [1088.77, 1374.71]
-Measurements : [1251.6, 331486, 0.559561, -0.490234]
----
-Label        : 1
-Position     : [991.037, 1374.89]
-Measurements : [1820.27, 310665, -0.883694, 0.196792]
----
-Label        : 1
-Position     : [1176, 1375.49]
-Measurements : [2045.03, 230201, -0.497997, 0.0569878]
----
-Label        : 1
-Position     : [1147.73, 1375.9]
-Measurements : [1950.53, 206992, -0.553765, 0.299728]
----
-Label        : 1
-Position     : [161.571, 1375.94]
-Measurements : [766.396, 324712, 1.67905, 2.02554]
----
-Label        : 1
-Position     : [1151.55, 1376.26]
-Measurements : [1900.42, 361863, -0.530857, -0.904881]
----
-Label        : 1
-Position     : [1089.98, 1376.31]
-Measurements : [1311.23, 275586, 0.425736, -0.400587]
----
-Label        : 1
-Position     : [1144.68, 1376.63]
-Measurements : [1704.26, 264833, -0.418202, -0.472335]
----
-Label        : 1
-Position     : [1015.84, 1376.72]
-Measurements : [1532.33, 208836, -0.348124, -0.61448]
----
-Label        : 1
-Position     : [1013.24, 1377.12]
-Measurements : [1358.12, 195154, -0.199751, -0.913695]
----
-Label        : 1
-Position     : [1178.47, 1377.19]
-Measurements : [1959.73, 449950, -0.621468, -0.687523]
----
-Label        : 1
-Position     : [1141.49, 1377.97]
-Measurements : [1333.61, 328045, -0.20812, -1.1193]
----
-Label        : 1
-Position     : [153.198, 1378.61]
-Measurements : [656.227, 64945.2, 0.759967, -0.903768]
----
-Label        : 1
-Position     : [991.265, 1378.77]
-Measurements : [1794.4, 276768, -0.338358, -0.845714]
----
-Label        : 1
-Position     : [1062.94, 1378.77]
-Measurements : [1398.69, 432334, 0.0389976, -1.26124]
----
-Label        : 1
-Position     : [991.969, 1379.05]
-Measurements : [1705.55, 317140, -0.145849, -1.05466]
----
-Label        : 1
-Position     : [1179.28, 1379.54]
-Measurements : [1734.93, 608911, -0.139491, -1.38664]
----
-Label        : 1
-Position     : [989.916, 1379.6]
-Measurements : [1698, 305147, -0.386229, -0.827094]
----
-Label        : 1
-Position     : [1173.95, 1380]
-Measurements : [1726.45, 375725, -0.438284, -0.500703]
----
-Label        : 1
-Position     : [1090.42, 1380.25]
-Measurements : [1371.35, 265996, 0.378799, -0.57978]
----
-Label        : 1
-Position     : [162.092, 1380.41]
-Measurements : [1132.17, 434529, 0.627327, -0.659126]
----
-Label        : 1
-Position     : [166.188, 1380.82]
-Measurements : [1172.68, 358293, 0.883996, -0.207957]
----
-Label        : 1
-Position     : [170.85, 1380.84]
-Measurements : [964.773, 282651, 1.98103, 2.99222]
----
-Label        : 1
-Position     : [1170.51, 1381.17]
-Measurements : [1235.98, 464100, 0.0746034, -1.71099]
----
-Label        : 1
-Position     : [1087.11, 1381.23]
-Measurements : [1236.34, 215612, 0.658555, 0.216557]
----
-Label        : 1
-Position     : [159.308, 1381.58]
-Measurements : [877.895, 292959, 0.844727, -0.480249]
----
-Label        : 1
-Position     : [1063.62, 1381.62]
-Measurements : [1205.71, 492456, 0.448215, -1.263]
----
-Label        : 1
-Position     : [1144.86, 1381.64]
-Measurements : [1889.67, 218673, -1.00638, 0.631386]
----
-Label        : 1
-Position     : [1063.67, 1381.69]
-Measurements : [1205.71, 492456, 0.448215, -1.263]
----
-Label        : 1
-Position     : [1173.72, 1382.07]
-Measurements : [1350.14, 457072, -0.0540226, -1.6479]
----
-Label        : 1
-Position     : [993.497, 1382.12]
-Measurements : [1363.32, 271723, 0.570036, -0.815521]
----
-Label        : 1
-Position     : [164.967, 1382.53]
-Measurements : [1255.64, 327034, 0.712949, -0.294942]
----
-Label        : 1
-Position     : [1013.38, 1383.28]
-Measurements : [1136.54, 306071, 0.279356, -1.30131]
----
-Label        : 1
-Position     : [988.807, 1384.1]
-Measurements : [1391.93, 242040, 0.735717, -0.738857]
----
-Label        : 1
-Position     : [158.379, 1384.11]
-Measurements : [809.824, 244179, 0.914108, -0.243215]
----
-Label        : 1
-Position     : [1138.24, 1384.59]
-Measurements : [1401.05, 546060, -0.0265815, -1.46583]
----
-Label        : 1
-Position     : [159.225, 1384.91]
-Measurements : [878.321, 267152, 0.787482, -0.430444]
----
-Label        : 1
-Position     : [1010, 1384.95]
-Measurements : [909.582, 225923, 0.749187, -0.903175]
----
-Label        : 1
-Position     : [169.118, 1385.32]
-Measurements : [936.153, 208541, 2.61297, 6.13453]
----
-Label        : 1
-Position     : [1011.11, 1385.77]
-Measurements : [871.412, 247884, 0.929244, -0.632586]
----
-Label        : 1
-Position     : [1147.86, 1385.85]
-Measurements : [1804.06, 369755, -0.634474, -0.839687]
----
-Label        : 1
-Position     : [1083.74, 1385.86]
-Measurements : [1039.81, 114759, -0.16334, -1.03408]
----
-Label        : 1
-Position     : [1089.75, 1386.58]
-Measurements : [1153.2, 123729, -0.131298, -0.974438]
----
-Label        : 1
-Position     : [1137.8, 1387.08]
-Measurements : [1129, 528683, 0.620096, -1.1659]
----
-Label        : 1
-Position     : [1088.97, 1387.48]
-Measurements : [1192.95, 126224, -0.0182112, -0.73282]
----
-Label        : 1
-Position     : [1173.41, 1387.8]
-Measurements : [1093.9, 308364, 0.441249, -1.20178]
----
-Label        : 1
-Position     : [1086.7, 1388.19]
-Measurements : [1255.24, 130257, 0.343242, -0.020842]
----
-Label        : 1
-Position     : [1142, 1388.19]
-Measurements : [1561.03, 613464, -0.202352, -1.61665]
----
-Label        : 1
-Position     : [1169.04, 1390.65]
-Measurements : [1192.66, 242162, 0.122252, -0.982615]
----
-Label        : 1
-Position     : [1088.41, 1390.81]
-Measurements : [1258.22, 162981, 0.174248, -0.3389]
----
-Label        : 1
-Position     : [137.839, 1390.99]
-Measurements : [1023.5, 190082, 0.947116, 0.347867]
----
-Label        : 1
-Position     : [1058.01, 1391.07]
-Measurements : [1080.69, 368579, 0.101656, -1.49106]
----
-Label        : 1
-Position     : [135.893, 1391.39]
-Measurements : [1064.06, 166593, 1.02346, 0.679916]
----
-Label        : 1
-Position     : [1089.22, 1391.41]
-Measurements : [1201.15, 206593, 0.199094, -0.71187]
----
-Label        : 1
-Position     : [1085.06, 1391.47]
-Measurements : [1411.72, 149262, -0.205306, -0.163591]
----
-Label        : 1
-Position     : [1173.37, 1391.51]
-Measurements : [1094.93, 221983, 0.31752, -1.22651]
----
-Label        : 1
-Position     : [136.697, 1391.88]
-Measurements : [1031.84, 182707, 1.0036, 0.463269]
----
-Label        : 1
-Position     : [1059.67, 1391.88]
-Measurements : [1063.22, 371497, 0.161157, -1.50979]
----
-Label        : 1
-Position     : [155.129, 1392.29]
-Measurements : [941.025, 259222, 0.453849, -1.27346]
----
-Label        : 1
-Position     : [148.844, 1392.64]
-Measurements : [873.434, 304059, 0.582619, -1.26325]
----
-Label        : 1
-Position     : [157.979, 1394.63]
-Measurements : [893.001, 169323, 0.741747, -0.732229]
----
-Label        : 1
-Position     : [1167.46, 1394.77]
-Measurements : [1595.33, 204390, -0.260359, -0.802122]
----
-Label        : 1
-Position     : [153.867, 1395.69]
-Measurements : [1155.01, 220069, 0.0415576, -1.0836]
----
-Label        : 1
-Position     : [151.852, 1395.97]
-Measurements : [1233.48, 261589, -0.161204, -0.906199]
----
-Label        : 1
-Position     : [1056.69, 1396.66]
-Measurements : [1538.99, 186069, -0.567154, -0.290382]
----
-Label        : 1
-Position     : [1164.94, 1397.2]
-Measurements : [1549.25, 162773, 0.153652, -0.686134]
----
-Label        : 1
-Position     : [153.418, 1397.74]
-Measurements : [1189.11, 169365, 0.221753, -0.832834]
----
-Label        : 1
-Position     : [1160.03, 1399.1]
-Measurements : [1212.64, 210005, 0.552384, -0.419835]
----
-Label        : 1
-Position     : [1056.39, 1399.25]
-Measurements : [1558.89, 218940, -0.683988, -0.441213]
diff --git a/Data/Baseline/OTB/Files/TvDescriptorsSVMModelCreation.svm b/Data/Baseline/OTB/Files/TvDescriptorsSVMModelCreation.svm
deleted file mode 100644
index b557bcfbe569174f8d48c93d4d7926275540d020..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/TvDescriptorsSVMModelCreation.svm
+++ /dev/null
@@ -1,232 +0,0 @@
-svm_type c_svc
-kernel_type linear
-nr_class 2
-total_sv 224
-rho -0.898435
-label 1 0
-nr_sv 111 113
-SV
-1 1:0.69109237 2:-0.20162838 3:-0.65376578 4:-0.43547766 
-1 1:0.46324437 2:-0.079541522 3:-0.72899212 4:-0.45271813 
-1 1:0.75094097 2:-0.19616619 3:-0.33190814 4:-0.30877904 
-1 1:0.70365619 2:0.01759753 3:-0.6909989 4:-0.41240323 
-1 1:-0.97853178 2:-0.42895003 3:0.48181126 4:-0.26463967 
-1 1:0.372286 2:0.014274367 3:-1.1031219 4:-0.43038233 
-1 1:-0.49667527 2:-0.14551467 3:0.02117055 4:-0.4017121 
-1 1:-0.88133649 2:-0.035018372 3:1.7800309 4:0.74981121 
-1 1:-0.84875076 2:-0.33219283 3:0.13992409 4:-0.41925118 
-1 1:0.55389122 2:-0.022533338 3:-0.40316594 4:-0.45013169 
-1 1:0.49940573 2:-0.23194414 3:-1.4055887 4:-0.323277 
-1 1:-0.11959717 2:-0.071099793 3:-0.68969274 4:-0.53344103 
-1 1:-0.78710927 2:-0.21299915 3:0.62594993 4:-0.22865958 
-1 1:0.17328549 2:-0.026583638 3:-0.95232954 4:-0.48307589 
-1 1:-0.60848895 2:-0.07361427 3:1.1913011 4:0.17146374 
-1 1:-0.82937399 2:-0.11821296 3:1.6883694 4:0.6160756 
-1 1:-0.22614497 2:-0.035118228 3:0.095960618 4:-0.39662361 
-1 1:0.35976138 2:-0.26508256 3:-0.79837598 4:-0.44047181 
-1 1:1.4136505 2:-0.22623662 3:-0.80293519 4:-0.37971557 
-1 1:-0.057883661 2:-0.074718622 3:-0.22316161 4:-0.45417397 
-1 1:0.34142508 2:-0.16644706 3:-0.89833509 4:-0.43656116 
-1 1:0.20811258 2:-0.17127593 3:-0.80754391 4:-0.43693097 
-1 1:0.56352464 2:-0.078147148 3:-0.73359259 4:-0.43729587 
-1 1:-0.068562106 2:-0.068225633 3:-0.28849653 4:-0.38850409 
-1 1:-0.86171966 2:-0.10027429 3:1.219222 4:0.19381764 
-1 1:-0.77921774 2:-0.10009336 3:1.1271584 4:0.20730184 
-1 1:0.33212738 2:0.009098241 3:0.98020011 4:0.13148285 
-1 1:1.512446 2:-0.18200812 3:-0.88196447 4:-0.38624303 
-1 1:0.48918021 2:-0.0012251123 3:-0.97430606 4:-0.46020262 
-1 1:2.0860009 2:-0.0063752669 3:-0.68361571 4:-0.42379254 
-1 1:-0.87208013 2:-0.4150814 3:0.50629156 4:-0.1761484 
-1 1:1.7266081 2:-0.03750803 3:-0.85200042 4:-0.40133951 
-1 1:1.9339253 2:0.016708231 3:-0.75966763 4:-0.41751742 
-1 1:0.56523315 2:-0.1044057 3:0.65940812 4:0.20014864 
-1 1:-0.92273872 2:-0.39317803 3:0.50638368 4:-0.20743168 
-1 1:-0.92370021 2:-0.44687694 3:0.86164992 4:0.029039189 
-1 1:1.5727291 2:0.092365881 3:-0.97327116 4:-0.36244619 
-1 1:0.13733606 2:-0.073301928 3:-0.44568539 4:-0.42804072 
-1 1:-0.032415082 2:-0.37652828 3:-0.52366102 4:-0.42556547 
-1 1:1.1851067 2:-0.047089841 3:-0.92608619 4:-0.45080471 
-1 1:2.2866981 2:-0.34545889 3:-0.12254126 4:-0.15527653 
-1 1:1.8973903 2:-0.280334 3:-1.3076557 4:-0.28408126 
-1 1:0.16879578 2:-0.06757977 3:-0.48014022 4:-0.44416969 
-1 1:-0.2215064 2:-0.24241052 3:-0.58856 4:-0.45861151 
-1 1:-0.032415082 2:-0.37652828 3:-0.52366102 4:-0.42556547 
-1 1:1.5295631 2:0.062467254 3:-1.2455611 4:-0.31239908 
-1 1:1.3467356 2:-0.075583702 3:-0.57949293 4:-0.29200399 
-1 1:-0.77288794 2:-0.10532933 3:0.43846003 4:-0.2389637 
-1 1:0.056304597 2:-0.094894655 3:0.23959198 4:-0.28954645 
-1 1:1.7621595 2:0.097137499 3:-0.7358019 4:-0.35727314 
-1 1:1.9913826 2:-0.21983291 3:-0.87068772 4:-0.27983657 
-1 1:2.101546 2:-0.21067344 3:-0.93514116 4:-0.14310347 
-1 1:1.3565879 2:-0.28580341 3:-0.77616578 4:-0.39223145 
-1 1:1.4539944 2:-0.17492955 3:-1.0562497 4:-0.3780657 
-1 1:1.0409292 2:-0.10301682 3:0.04371679 4:-0.38037114 
-1 1:1.286188 2:-0.15582611 3:-0.79700877 4:-0.48019886 
-1 1:0.90751355 2:-0.2106515 3:-0.84041874 4:-0.45697936 
-1 1:2.668085 2:0.094488919 3:-0.48645964 4:-0.41309118 
-1 1:-0.021307331 2:-0.056257295 3:-0.16943256 4:-0.40388938 
-1 1:0.74359 2:-0.27485327 3:0.13326728 4:-0.11390012 
-1 1:1.4549764 2:-0.32147401 3:-0.85853111 4:-0.38362505 
-1 1:1.2986204 2:-0.2546904 3:-0.76302084 4:-0.43112508 
-1 1:1.0353747 2:-0.10637342 3:-0.71608318 4:-0.43852742 
-1 1:1.2953587 2:-0.093156666 3:-0.41319252 4:-0.43514228 
-1 1:1.3127638 2:-0.024176066 3:-0.4492193 4:-0.45765616 
-1 1:0.86088155 2:-0.13058913 3:0.39216167 4:-0.2669108 
-1 1:1.1979613 2:0.067102152 3:-0.55743443 4:-0.45871979 
-1 1:1.4008246 2:-0.21219721 3:-0.7547644 4:-0.46573774 
-1 1:1.5851317 2:0.095144665 3:0.16600064 4:-0.16255216 
-1 1:0.38117004 2:-0.063339724 3:0.31259805 4:-0.22152706 
-1 1:0.53653398 2:-0.042885446 3:0.10098396 4:-0.068918142 
-1 1:1.5732366 2:-0.01661684 3:-0.99798455 4:-0.36599303 
-1 1:0.82059321 2:-0.23681127 3:-0.75534324 4:-0.45190902 
-1 1:1.0234628 2:-0.2309679 3:-0.82208803 4:-0.45548031 
-1 1:1.5116328 2:-0.031742743 3:0.055790594 4:-0.17368776 
-1 1:1.6078525 2:-0.079505937 3:0.13048795 4:-0.17886508 
-1 1:2.1981257 2:-0.053697485 3:0.12310795 4:-0.15823516 
-1 1:2.4741225 2:-0.062043755 3:0.30332224 4:-0.28796509 
-1 1:-0.8317382 2:-0.25498416 3:1.4472377 4:0.43160469 
-1 1:-0.87909265 2:-0.095235953 3:1.1700185 4:0.12621143 
-1 1:0.46456664 2:-0.092642951 3:-0.97513248 4:-0.41183384 
-1 1:3.4447302 2:0.10728527 3:-1.0337478 4:-0.27979557 
-1 1:3.376198 2:0.28636335 3:-1.514457 4:-0.19848459 
-1 1:-0.61527688 2:-0.23027023 3:0.73808236 4:-0.078835402 
-1 1:0.91841614 2:-0.42982468 3:-1.4218277 4:-0.10252584 
-1 1:0.77797033 2:-0.33225323 3:-0.79382982 4:-0.24158934 
-1 1:1.418123 2:-0.052881491 3:-0.3952341 4:-0.28615214 
-1 1:0.36637428 2:-0.025712765 3:0.11964145 4:-0.35096155 
-1 1:-0.24582847 2:-0.14703666 3:-0.19214692 4:-0.40034545 
-1 1:0.39742377 2:-0.15935885 3:-0.51431281 4:-0.32850083 
-1 1:1.6873039 2:0.087223584 3:-0.19831611 4:-0.38294477 
-1 1:-0.77759166 2:-0.24478352 3:1.1078669 4:0.26451484 
-1 1:-0.37974709 2:-0.1697171 3:-0.48055168 4:-0.46475615 
-1 1:-0.8369749 2:-0.28360645 3:0.77113861 4:-0.12923923 
-1 1:-0.67565832 2:-0.17790374 3:0.30715305 4:-0.25359594 
-0.8863690227343468 1:2.319659 2:0.1835753 3:-0.81275531 4:-0.33161499 
-1 1:0.57472058 2:-0.351176 3:-0.97077936 4:-0.17494202 
-1 1:0.66835373 2:-0.26328208 3:0.74398001 4:0.19273866 
-1 1:2.7039442 2:0.1760433 3:-0.68652624 4:-0.30001531 
-1 1:0.28447999 2:-0.22341078 3:-0.7124288 4:-0.45325616 
-1 1:0.67158288 2:-0.41662505 3:0.96301587 4:0.23337737 
-1 1:0.90320409 2:-0.14556563 3:-0.021405682 4:-0.018686568 
-1 1:-0.64995648 2:-0.048705093 3:1.255384 4:0.26387963 
-1 1:-0.55692325 2:-0.10408914 3:1.1965585 4:0.2553477 
-1 1:1.8365334 2:-0.017767553 3:-0.76198391 4:-0.36599264 
-1 1:0.015677252 2:-0.12770387 3:-0.52724684 4:-0.49440128 
-1 1:-0.070136805 2:-0.11621001 3:-0.42720804 4:-0.48520764 
-1 1:0.97404423 2:0.03397514 3:-0.39503505 4:-0.4174832 
-1 1:-0.45488195 2:-0.12311357 3:-0.046863915 4:-0.46652937 
-1 1:0.20590504 2:0.014672613 3:-0.0095125754 4:-0.24407214 
-1 1:0.97137365 2:-0.13957271 3:-0.026196808 4:-0.3261752 
--1 1:0.67905954 2:-0.32198607 3:-0.10361163 4:-0.26307534 
--1 1:0.40977245 2:-0.24329323 3:-1.1700738 4:-0.45960816 
--1 1:0.20237853 2:-0.30559202 3:-0.54458161 4:-0.56373692 
--1 1:0.063805304 2:-0.48046644 3:-0.26975819 4:-0.4274501 
--1 1:0.84341609 2:-0.26485617 3:-1.1488738 4:-0.16304561 
--1 1:1.0009787 2:-0.28952698 3:-0.060632821 4:-0.38263647 
--1 1:0.38612517 2:-0.41797433 3:-0.43981481 4:-0.53603847 
--1 1:0.22236172 2:-0.36681128 3:-0.74264232 4:-0.54649243 
--1 1:0.40591592 2:-0.13843111 3:-1.0256277 4:-0.48199669 
--1 1:-0.028194286 2:-0.45655737 3:-0.67568004 4:-0.45637164 
--1 1:0.086757566 2:-0.44096704 3:-1.4310455 4:-0.35315115 
--1 1:0.96341375 2:-0.24809227 3:0.72880266 4:0.045645918 
--1 1:0.5246276 2:-0.089883916 3:0.070256213 4:-0.30750328 
--1 1:0.36915589 2:-0.22653022 3:-0.62629283 4:-0.44174838 
--1 1:0.40565836 2:-0.3815908 3:-1.2144396 4:-0.32684519 
--1 1:0.57637087 2:-0.34075732 3:1.0465222 4:0.38072802 
--1 1:0.62383165 2:-0.022326182 3:-0.17094881 4:-0.26699698 
--1 1:0.49647867 2:-0.34652513 3:-1.5867846 4:-0.29243194 
--1 1:0.6412277 2:-0.090061224 3:0.27456083 4:0.047593754 
--1 1:0.85440682 2:-0.35026828 3:1.4090375 4:0.81042355 
--1 1:0.15985446 2:-0.35801858 3:-0.47844024 4:-0.4587022 
--1 1:0.75002174 2:-0.43089801 3:0.59142388 4:-0.14180762 
--1 1:-0.053832104 2:-0.35684063 3:-0.56691524 4:-0.48508529 
--1 1:1.107728 2:-0.35826441 3:-0.24832036 4:-0.4491882 
--1 1:0.53064122 2:0.089574585 3:1.79279 4:0.76032869 
--1 1:0.32847691 2:-0.20085814 3:1.1787359 4:0.34540129 
--1 1:0.77755258 2:0.30043325 3:0.75576467 4:-0.0019102279 
--1 1:1.2735135 2:-0.030869051 3:-0.22330967 4:-0.44458663 
--1 1:0.13599429 2:0.36237528 3:-0.10859952 4:-0.42109448 
--1 1:0.74681935 2:0.26293238 3:0.76392239 4:-0.087439117 
--1 1:0.59492399 2:-0.2158359 3:0.86146666 4:0.12649503 
--1 1:-0.089461801 2:-0.45549616 3:-0.72593266 4:-0.30518351 
--1 1:0.8184493 2:0.23290742 3:0.84804676 4:0.062307258 
--1 1:0.92511845 2:0.14706418 3:1.0348556 4:0.39331142 
--1 1:0.7281503 2:-0.41664704 3:-0.024347992 4:-0.37974868 
--1 1:1.6609121 2:0.17963063 3:1.2427246 4:0.303052 
--1 1:-0.076010771 2:-0.31201704 3:0.76220674 4:0.45782572 
--1 1:0.69879267 2:0.62585375 3:0.70186956 4:-0.072852815 
--0.127906883094633 1:0.17675613 2:-0.45930231 3:0.1313935 4:-0.075258066 
--1 1:1.0989463 2:-0.39513995 3:-0.61316319 4:-0.49446711 
--1 1:-0.10816998 2:-0.47443976 3:-0.79639366 4:-0.51077326 
--1 1:0.79214127 2:0.17098995 3:1.2664871 4:0.48574072 
--1 1:0.14827523 2:-0.094726896 3:0.47203635 4:0.0013064268 
--1 1:1.2431048 2:-0.043847913 3:-0.24449396 4:-0.42600401 
--1 1:0.22462991 2:-0.39176543 3:1.7181466 4:0.67122043 
--1 1:0.43074908 2:-0.29091281 3:0.23671211 4:-0.024399796 
--1 1:0.16798276 2:-0.37313523 3:0.1820774 4:0.034538256 
--1 1:0.94235843 2:-0.29938736 3:-0.71633522 4:-0.45122958 
--1 1:-0.12051732 2:-0.32739602 3:-0.64349613 4:-0.38607614 
--1 1:0.36424492 2:-0.19876865 3:2.0557255 4:1.0987078 
--1 1:0.12511024 2:-0.2850475 3:-0.81436075 4:-0.4777417 
--1 1:0.5102292 2:-0.20064496 3:0.21188252 4:-0.11019956 
--1 1:-0.40001266 2:-0.44883638 3:0.25831088 4:-0.16642447 
--1 1:0.56333716 2:-0.23080413 3:0.18054123 4:-0.06591376 
--1 1:0.61769663 2:-0.43835494 3:-0.25921368 4:-0.36702427 
--1 1:0.27469223 2:-0.18248259 3:0.90116534 4:0.17224712 
--1 1:0.25631333 2:-0.19409265 3:1.7638615 4:0.86122914 
--0.3451287109572377 1:-0.21107832 2:-0.49353693 3:-1.0471541 4:-0.40473992 
--1 1:0.96032043 2:-0.34357237 3:-0.29004457 4:-0.42554627 
--1 1:0.58743595 2:-0.24557672 3:0.10999064 4:-0.33849341 
--1 1:-0.03708779 2:-0.14113016 3:-0.70068839 4:-0.53246066 
--1 1:0.50197341 2:-0.35708826 3:0.14271648 4:-0.3238136 
--1 1:0.32478169 2:-0.40850575 3:-1.7684244 4:-0.1281177 
--1 1:0.055769624 2:-0.28429312 3:-0.6738572 4:-0.49463315 
--1 1:2.6557568 2:-0.19778546 3:-1.1322828 4:-0.40811028 
--1 1:1.8314785 2:0.18826773 3:-0.22258378 4:-0.4976845 
--1 1:0.28778834 2:-0.24565165 3:-0.53932509 4:-0.37536204 
--1 1:0.56630351 2:-0.27310961 3:-1.5259696 4:-0.2810355 
--1 1:1.7688056 2:-0.15710732 3:-0.2632662 4:-0.48774699 
--1 1:1.0465847 2:-0.38005255 3:-1.2094317 4:-0.451302 
--1 1:-0.18938881 2:-0.096969262 3:-0.41679385 4:-0.52956321 
--1 1:1.3109916 2:0.56040034 3:-0.60909088 4:-0.50444415 
--1 1:1.2183418 2:0.22683989 3:0.26285983 4:-0.27844331 
--1 1:1.2839872 2:-0.077736632 3:-0.16254052 4:-0.45129981 
--1 1:1.1161328 2:-0.25623105 3:-0.34168012 4:-0.51619477 
--1 1:0.59750888 2:0.35904153 3:0.10987952 4:-0.3967108 
--1 1:0.068990155 2:-0.33918935 3:-0.51638461 4:-0.4230581 
--1 1:1.2612796 2:0.20760424 3:0.22700797 4:-0.28788431 
--1 1:0.19645885 2:-0.10587959 3:-0.95303352 4:-0.48941085 
--1 1:1.6708124 2:-0.16621109 3:-0.50956753 4:-0.52117133 
--1 1:1.2560159 2:0.58984576 3:-0.11065066 4:-0.42997574 
--1 1:0.6365864 2:-0.3159853 3:-0.43575745 4:-0.24918789 
--1 1:-0.27554846 2:-0.38153805 3:-0.65796797 4:-0.51900905 
--1 1:-0.19232176 2:-0.27815867 3:-0.60753037 4:-0.52076717 
--1 1:0.015804563 2:-0.19853049 3:-0.79780762 4:-0.55885602 
--1 1:1.3231804 2:-0.16938208 3:-0.22403075 4:-0.4627119 
--1 1:0.0026969903 2:-0.41855948 3:-0.87497128 4:-0.40635496 
--1 1:0.43957179 2:-0.16440573 3:-0.38929989 4:-0.49034286 
--1 1:-0.2690738 2:-0.27153781 3:-0.66845649 4:-0.52137948 
--1 1:0.28141871 2:-0.3932208 3:-0.42573926 4:-0.14238624 
--1 1:1.6493723 2:-0.25029374 3:-1.1010529 4:-0.31200023 
--1 1:2.138692 2:-0.27719065 3:-0.52919492 4:-0.52248088 
--1 1:-0.02930289 2:-0.26346287 3:-0.58111883 4:-0.5279823 
--1 1:0.41080693 2:-0.27225805 3:-0.2746303 4:-0.3400428 
--1 1:1.0547766 2:-0.20354031 3:-0.35549573 4:-0.52403621 
--1 1:-0.038473041 2:-0.27665462 3:-0.61568444 4:-0.51650441 
--1 1:1.4659046 2:1.113788 3:0.086161524 4:-0.3867731 
--1 1:1.0877119 2:1.0018544 3:-0.50406188 4:-0.5144821 
--1 1:1.0313572 2:-0.39820351 3:0.14001203 4:-0.14989309 
--1 1:1.3298706 2:1.1804648 3:-0.71850716 4:-0.52034533 
--1 1:1.5906871 2:-0.26492985 3:-1.2958511 4:-0.43931484 
--1 1:0.99994562 2:-0.39915208 3:-0.61018 4:-0.4574368 
--1 1:1.0432105 2:-0.27877234 3:-0.65607653 4:-0.38990796 
--1 1:0.84517848 2:-0.42287191 3:0.16916266 4:-0.26409466 
--1 1:0.3423789 2:-0.45147406 3:-1.020062 4:-0.40505505 
--1 1:1.4989444 2:0.48249017 3:-0.89881716 4:-0.51387248 
--0.4133334286824741 1:0.70487226 2:-0.39552501 3:-0.35274026 4:0.076316467 
--1 1:1.4518186 2:-0.24860617 3:-1.3214617 4:-0.27026562 
--1 1:0.90394036 2:-0.28053002 3:-0.99614087 4:-0.46659073 
--1 1:1.0337892 2:-0.28248027 3:-1.2491535 4:-0.35818484 
--1 1:0.29457572 2:-0.42802317 3:-0.92568876 4:-0.40083456 
--1 1:0.30987783 2:-0.4243198 3:-0.89973376 4:-0.433091 
--1 1:0.67069754 2:-0.19985884 3:-0.71810461 4:-0.50012774 
diff --git a/Data/Baseline/OTB/Files/TvLabeledSampleLocalizationGeneratorOutput.dbf b/Data/Baseline/OTB/Files/TvLabeledSampleLocalizationGeneratorOutput.dbf
deleted file mode 100644
index c2df5113bb5e7daca9989707ac56662bf674c99d..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/TvLabeledSampleLocalizationGeneratorOutput.dbf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:0998367ed4a1fea79be1a27a82f0d76d5dcba84214aa63678b660f1bc6245120
-size 365538
diff --git a/Data/Baseline/OTB/Files/TvLabeledSampleLocalizationGeneratorOutput.shp b/Data/Baseline/OTB/Files/TvLabeledSampleLocalizationGeneratorOutput.shp
deleted file mode 100644
index faedfa80a00e469dc0335ebf155879adb2577d5d..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/TvLabeledSampleLocalizationGeneratorOutput.shp
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:2ead83092b50a373b6a026a6553bfdd1d5f3c5f3fde4e7a88b6a8f76c696e707
-size 126436
diff --git a/Data/Baseline/OTB/Files/TvLabeledSampleLocalizationGeneratorOutput.shx b/Data/Baseline/OTB/Files/TvLabeledSampleLocalizationGeneratorOutput.shx
deleted file mode 100644
index 3f9ded68080230718f13932438adbb2909f07d44..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/TvLabeledSampleLocalizationGeneratorOutput.shx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:fe4b9505e67c0b6c3e673e27fe9ff518641795a00339addc53de6af47aefb2dc
-size 36196
diff --git a/Data/Baseline/OTB/Files/TvObjectDetectionClassifierOutput.txt b/Data/Baseline/OTB/Files/TvObjectDetectionClassifierOutput.txt
deleted file mode 100644
index ebbdaef1e82f329c4a9bfcdeff19f822b2cdd682..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/TvObjectDetectionClassifierOutput.txt
+++ /dev/null
@@ -1,790 +0,0 @@
-[16.5, 0.5]
-[18.5, 0.5]
-[20.5, 0.5]
-[22.5, 0.5]
-[16.5, 2.5]
-[18.5, 2.5]
-[20.5, 2.5]
-[22.5, 2.5]
-[24.5, 2.5]
-[28.5, 2.5]
-[22.5, 4.5]
-[24.5, 4.5]
-[26.5, 4.5]
-[28.5, 4.5]
-[30.5, 4.5]
-[26.5, 6.5]
-[28.5, 6.5]
-[30.5, 6.5]
-[86.5, 6.5]
-[26.5, 8.5]
-[28.5, 8.5]
-[30.5, 8.5]
-[84.5, 8.5]
-[86.5, 8.5]
-[22.5, 10.5]
-[24.5, 10.5]
-[26.5, 10.5]
-[28.5, 10.5]
-[30.5, 10.5]
-[50.5, 10.5]
-[14.5, 12.5]
-[16.5, 12.5]
-[18.5, 12.5]
-[20.5, 12.5]
-[22.5, 12.5]
-[24.5, 12.5]
-[26.5, 12.5]
-[28.5, 12.5]
-[30.5, 12.5]
-[42.5, 12.5]
-[44.5, 12.5]
-[48.5, 12.5]
-[50.5, 12.5]
-[10.5, 14.5]
-[12.5, 14.5]
-[14.5, 14.5]
-[16.5, 14.5]
-[18.5, 14.5]
-[20.5, 14.5]
-[22.5, 14.5]
-[24.5, 14.5]
-[26.5, 14.5]
-[28.5, 14.5]
-[30.5, 14.5]
-[32.5, 14.5]
-[42.5, 14.5]
-[44.5, 14.5]
-[46.5, 14.5]
-[48.5, 14.5]
-[50.5, 14.5]
-[60.5, 14.5]
-[10.5, 16.5]
-[12.5, 16.5]
-[14.5, 16.5]
-[16.5, 16.5]
-[18.5, 16.5]
-[20.5, 16.5]
-[22.5, 16.5]
-[24.5, 16.5]
-[26.5, 16.5]
-[28.5, 16.5]
-[30.5, 16.5]
-[42.5, 16.5]
-[44.5, 16.5]
-[48.5, 16.5]
-[60.5, 16.5]
-[88.5, 16.5]
-[90.5, 16.5]
-[10.5, 18.5]
-[12.5, 18.5]
-[14.5, 18.5]
-[16.5, 18.5]
-[18.5, 18.5]
-[20.5, 18.5]
-[22.5, 18.5]
-[24.5, 18.5]
-[26.5, 18.5]
-[28.5, 18.5]
-[30.5, 18.5]
-[32.5, 18.5]
-[34.5, 18.5]
-[88.5, 18.5]
-[90.5, 18.5]
-[10.5, 20.5]
-[12.5, 20.5]
-[14.5, 20.5]
-[16.5, 20.5]
-[18.5, 20.5]
-[20.5, 20.5]
-[22.5, 20.5]
-[24.5, 20.5]
-[26.5, 20.5]
-[28.5, 20.5]
-[30.5, 20.5]
-[32.5, 20.5]
-[34.5, 20.5]
-[88.5, 20.5]
-[110.5, 20.5]
-[112.5, 20.5]
-[10.5, 22.5]
-[12.5, 22.5]
-[14.5, 22.5]
-[16.5, 22.5]
-[18.5, 22.5]
-[20.5, 22.5]
-[22.5, 22.5]
-[24.5, 22.5]
-[26.5, 22.5]
-[28.5, 22.5]
-[30.5, 22.5]
-[32.5, 22.5]
-[34.5, 22.5]
-[110.5, 22.5]
-[112.5, 22.5]
-[10.5, 24.5]
-[12.5, 24.5]
-[14.5, 24.5]
-[16.5, 24.5]
-[18.5, 24.5]
-[20.5, 24.5]
-[22.5, 24.5]
-[24.5, 24.5]
-[26.5, 24.5]
-[28.5, 24.5]
-[30.5, 24.5]
-[32.5, 24.5]
-[34.5, 24.5]
-[10.5, 26.5]
-[12.5, 26.5]
-[14.5, 26.5]
-[16.5, 26.5]
-[18.5, 26.5]
-[20.5, 26.5]
-[22.5, 26.5]
-[24.5, 26.5]
-[26.5, 26.5]
-[28.5, 26.5]
-[30.5, 26.5]
-[32.5, 26.5]
-[34.5, 26.5]
-[36.5, 26.5]
-[18.5, 28.5]
-[20.5, 28.5]
-[22.5, 28.5]
-[24.5, 28.5]
-[26.5, 28.5]
-[28.5, 28.5]
-[30.5, 28.5]
-[32.5, 28.5]
-[34.5, 28.5]
-[36.5, 28.5]
-[20.5, 30.5]
-[22.5, 30.5]
-[24.5, 30.5]
-[26.5, 30.5]
-[28.5, 30.5]
-[30.5, 30.5]
-[32.5, 30.5]
-[34.5, 30.5]
-[36.5, 30.5]
-[38.5, 30.5]
-[20.5, 32.5]
-[22.5, 32.5]
-[24.5, 32.5]
-[26.5, 32.5]
-[28.5, 32.5]
-[30.5, 32.5]
-[32.5, 32.5]
-[34.5, 32.5]
-[36.5, 32.5]
-[38.5, 32.5]
-[40.5, 32.5]
-[34.5, 34.5]
-[36.5, 34.5]
-[38.5, 34.5]
-[40.5, 34.5]
-[34.5, 36.5]
-[36.5, 36.5]
-[38.5, 36.5]
-[28.5, 38.5]
-[30.5, 38.5]
-[32.5, 38.5]
-[34.5, 38.5]
-[36.5, 38.5]
-[38.5, 38.5]
-[40.5, 38.5]
-[120.5, 38.5]
-[20.5, 40.5]
-[22.5, 40.5]
-[24.5, 40.5]
-[26.5, 40.5]
-[28.5, 40.5]
-[30.5, 40.5]
-[32.5, 40.5]
-[34.5, 40.5]
-[36.5, 40.5]
-[38.5, 40.5]
-[40.5, 40.5]
-[18.5, 42.5]
-[20.5, 42.5]
-[22.5, 42.5]
-[24.5, 42.5]
-[26.5, 42.5]
-[28.5, 42.5]
-[30.5, 42.5]
-[32.5, 42.5]
-[34.5, 42.5]
-[36.5, 42.5]
-[38.5, 42.5]
-[40.5, 42.5]
-[16.5, 44.5]
-[18.5, 44.5]
-[20.5, 44.5]
-[22.5, 44.5]
-[24.5, 44.5]
-[26.5, 44.5]
-[28.5, 44.5]
-[30.5, 44.5]
-[32.5, 44.5]
-[34.5, 44.5]
-[36.5, 44.5]
-[38.5, 44.5]
-[40.5, 44.5]
-[16.5, 46.5]
-[18.5, 46.5]
-[20.5, 46.5]
-[22.5, 46.5]
-[24.5, 46.5]
-[26.5, 46.5]
-[28.5, 46.5]
-[30.5, 46.5]
-[32.5, 46.5]
-[34.5, 46.5]
-[36.5, 46.5]
-[38.5, 46.5]
-[40.5, 46.5]
-[48.5, 46.5]
-[50.5, 46.5]
-[16.5, 48.5]
-[18.5, 48.5]
-[20.5, 48.5]
-[22.5, 48.5]
-[24.5, 48.5]
-[26.5, 48.5]
-[28.5, 48.5]
-[30.5, 48.5]
-[32.5, 48.5]
-[34.5, 48.5]
-[36.5, 48.5]
-[38.5, 48.5]
-[40.5, 48.5]
-[48.5, 48.5]
-[50.5, 48.5]
-[52.5, 48.5]
-[16.5, 50.5]
-[18.5, 50.5]
-[20.5, 50.5]
-[22.5, 50.5]
-[24.5, 50.5]
-[26.5, 50.5]
-[28.5, 50.5]
-[30.5, 50.5]
-[32.5, 50.5]
-[34.5, 50.5]
-[36.5, 50.5]
-[38.5, 50.5]
-[40.5, 50.5]
-[42.5, 50.5]
-[48.5, 50.5]
-[50.5, 50.5]
-[52.5, 50.5]
-[18.5, 52.5]
-[20.5, 52.5]
-[22.5, 52.5]
-[24.5, 52.5]
-[26.5, 52.5]
-[28.5, 52.5]
-[30.5, 52.5]
-[32.5, 52.5]
-[34.5, 52.5]
-[36.5, 52.5]
-[38.5, 52.5]
-[40.5, 52.5]
-[42.5, 52.5]
-[44.5, 52.5]
-[48.5, 52.5]
-[60.5, 52.5]
-[62.5, 52.5]
-[20.5, 54.5]
-[22.5, 54.5]
-[24.5, 54.5]
-[26.5, 54.5]
-[28.5, 54.5]
-[30.5, 54.5]
-[32.5, 54.5]
-[34.5, 54.5]
-[36.5, 54.5]
-[38.5, 54.5]
-[40.5, 54.5]
-[42.5, 54.5]
-[60.5, 54.5]
-[62.5, 54.5]
-[122.5, 54.5]
-[38.5, 56.5]
-[40.5, 56.5]
-[42.5, 56.5]
-[60.5, 56.5]
-[62.5, 56.5]
-[122.5, 56.5]
-[38.5, 58.5]
-[40.5, 58.5]
-[42.5, 58.5]
-[60.5, 58.5]
-[62.5, 58.5]
-[122.5, 58.5]
-[36.5, 60.5]
-[38.5, 60.5]
-[40.5, 60.5]
-[42.5, 60.5]
-[60.5, 60.5]
-[62.5, 60.5]
-[120.5, 60.5]
-[122.5, 60.5]
-[0.5, 62.5]
-[2.5, 62.5]
-[4.5, 62.5]
-[6.5, 62.5]
-[36.5, 62.5]
-[38.5, 62.5]
-[40.5, 62.5]
-[42.5, 62.5]
-[62.5, 62.5]
-[120.5, 62.5]
-[122.5, 62.5]
-[0.5, 64.5]
-[2.5, 64.5]
-[4.5, 64.5]
-[6.5, 64.5]
-[8.5, 64.5]
-[36.5, 64.5]
-[38.5, 64.5]
-[40.5, 64.5]
-[42.5, 64.5]
-[62.5, 64.5]
-[64.5, 64.5]
-[0.5, 66.5]
-[2.5, 66.5]
-[4.5, 66.5]
-[6.5, 66.5]
-[8.5, 66.5]
-[26.5, 66.5]
-[28.5, 66.5]
-[30.5, 66.5]
-[32.5, 66.5]
-[34.5, 66.5]
-[36.5, 66.5]
-[38.5, 66.5]
-[40.5, 66.5]
-[42.5, 66.5]
-[0.5, 68.5]
-[2.5, 68.5]
-[4.5, 68.5]
-[6.5, 68.5]
-[8.5, 68.5]
-[22.5, 68.5]
-[24.5, 68.5]
-[26.5, 68.5]
-[28.5, 68.5]
-[30.5, 68.5]
-[32.5, 68.5]
-[34.5, 68.5]
-[36.5, 68.5]
-[38.5, 68.5]
-[40.5, 68.5]
-[42.5, 68.5]
-[44.5, 68.5]
-[0.5, 70.5]
-[2.5, 70.5]
-[4.5, 70.5]
-[6.5, 70.5]
-[8.5, 70.5]
-[22.5, 70.5]
-[24.5, 70.5]
-[26.5, 70.5]
-[28.5, 70.5]
-[30.5, 70.5]
-[32.5, 70.5]
-[34.5, 70.5]
-[36.5, 70.5]
-[38.5, 70.5]
-[40.5, 70.5]
-[42.5, 70.5]
-[44.5, 70.5]
-[0.5, 72.5]
-[2.5, 72.5]
-[4.5, 72.5]
-[6.5, 72.5]
-[8.5, 72.5]
-[22.5, 72.5]
-[24.5, 72.5]
-[26.5, 72.5]
-[28.5, 72.5]
-[30.5, 72.5]
-[32.5, 72.5]
-[34.5, 72.5]
-[36.5, 72.5]
-[38.5, 72.5]
-[40.5, 72.5]
-[42.5, 72.5]
-[44.5, 72.5]
-[0.5, 74.5]
-[2.5, 74.5]
-[4.5, 74.5]
-[6.5, 74.5]
-[8.5, 74.5]
-[22.5, 74.5]
-[24.5, 74.5]
-[26.5, 74.5]
-[28.5, 74.5]
-[30.5, 74.5]
-[32.5, 74.5]
-[34.5, 74.5]
-[36.5, 74.5]
-[38.5, 74.5]
-[40.5, 74.5]
-[42.5, 74.5]
-[44.5, 74.5]
-[46.5, 74.5]
-[0.5, 76.5]
-[2.5, 76.5]
-[4.5, 76.5]
-[6.5, 76.5]
-[22.5, 76.5]
-[24.5, 76.5]
-[26.5, 76.5]
-[28.5, 76.5]
-[30.5, 76.5]
-[32.5, 76.5]
-[34.5, 76.5]
-[36.5, 76.5]
-[38.5, 76.5]
-[40.5, 76.5]
-[42.5, 76.5]
-[44.5, 76.5]
-[46.5, 76.5]
-[22.5, 78.5]
-[24.5, 78.5]
-[26.5, 78.5]
-[28.5, 78.5]
-[30.5, 78.5]
-[32.5, 78.5]
-[34.5, 78.5]
-[36.5, 78.5]
-[38.5, 78.5]
-[40.5, 78.5]
-[42.5, 78.5]
-[44.5, 78.5]
-[46.5, 78.5]
-[48.5, 78.5]
-[24.5, 80.5]
-[26.5, 80.5]
-[28.5, 80.5]
-[30.5, 80.5]
-[32.5, 80.5]
-[34.5, 80.5]
-[36.5, 80.5]
-[38.5, 80.5]
-[40.5, 80.5]
-[42.5, 80.5]
-[44.5, 80.5]
-[46.5, 80.5]
-[48.5, 80.5]
-[50.5, 80.5]
-[106.5, 80.5]
-[42.5, 82.5]
-[44.5, 82.5]
-[46.5, 82.5]
-[48.5, 82.5]
-[50.5, 82.5]
-[106.5, 82.5]
-[46.5, 84.5]
-[48.5, 84.5]
-[50.5, 84.5]
-[106.5, 84.5]
-[46.5, 86.5]
-[48.5, 86.5]
-[50.5, 86.5]
-[98.5, 86.5]
-[48.5, 88.5]
-[88.5, 88.5]
-[98.5, 88.5]
-[100.5, 88.5]
-[86.5, 90.5]
-[88.5, 90.5]
-[98.5, 90.5]
-[86.5, 92.5]
-[88.5, 92.5]
-[98.5, 92.5]
-[100.5, 92.5]
-[124.5, 92.5]
-[126.5, 92.5]
-[56.5, 94.5]
-[58.5, 94.5]
-[60.5, 94.5]
-[62.5, 94.5]
-[64.5, 94.5]
-[88.5, 94.5]
-[98.5, 94.5]
-[100.5, 94.5]
-[118.5, 94.5]
-[120.5, 94.5]
-[122.5, 94.5]
-[124.5, 94.5]
-[126.5, 94.5]
-[56.5, 96.5]
-[58.5, 96.5]
-[60.5, 96.5]
-[62.5, 96.5]
-[64.5, 96.5]
-[100.5, 96.5]
-[118.5, 96.5]
-[120.5, 96.5]
-[122.5, 96.5]
-[124.5, 96.5]
-[126.5, 96.5]
-[48.5, 98.5]
-[50.5, 98.5]
-[56.5, 98.5]
-[58.5, 98.5]
-[60.5, 98.5]
-[62.5, 98.5]
-[64.5, 98.5]
-[100.5, 98.5]
-[102.5, 98.5]
-[118.5, 98.5]
-[120.5, 98.5]
-[122.5, 98.5]
-[124.5, 98.5]
-[126.5, 98.5]
-[48.5, 100.5]
-[50.5, 100.5]
-[54.5, 100.5]
-[56.5, 100.5]
-[58.5, 100.5]
-[60.5, 100.5]
-[62.5, 100.5]
-[64.5, 100.5]
-[102.5, 100.5]
-[118.5, 100.5]
-[120.5, 100.5]
-[122.5, 100.5]
-[124.5, 100.5]
-[126.5, 100.5]
-[0.5, 102.5]
-[2.5, 102.5]
-[4.5, 102.5]
-[48.5, 102.5]
-[50.5, 102.5]
-[54.5, 102.5]
-[56.5, 102.5]
-[58.5, 102.5]
-[60.5, 102.5]
-[62.5, 102.5]
-[64.5, 102.5]
-[92.5, 102.5]
-[102.5, 102.5]
-[120.5, 102.5]
-[122.5, 102.5]
-[0.5, 104.5]
-[2.5, 104.5]
-[4.5, 104.5]
-[6.5, 104.5]
-[48.5, 104.5]
-[50.5, 104.5]
-[54.5, 104.5]
-[56.5, 104.5]
-[58.5, 104.5]
-[60.5, 104.5]
-[62.5, 104.5]
-[64.5, 104.5]
-[90.5, 104.5]
-[92.5, 104.5]
-[0.5, 106.5]
-[2.5, 106.5]
-[4.5, 106.5]
-[6.5, 106.5]
-[48.5, 106.5]
-[50.5, 106.5]
-[52.5, 106.5]
-[58.5, 106.5]
-[60.5, 106.5]
-[62.5, 106.5]
-[64.5, 106.5]
-[90.5, 106.5]
-[92.5, 106.5]
-[94.5, 106.5]
-[104.5, 106.5]
-[0.5, 108.5]
-[2.5, 108.5]
-[4.5, 108.5]
-[6.5, 108.5]
-[48.5, 108.5]
-[50.5, 108.5]
-[52.5, 108.5]
-[54.5, 108.5]
-[56.5, 108.5]
-[58.5, 108.5]
-[60.5, 108.5]
-[62.5, 108.5]
-[64.5, 108.5]
-[66.5, 108.5]
-[92.5, 108.5]
-[94.5, 108.5]
-[102.5, 108.5]
-[104.5, 108.5]
-[118.5, 108.5]
-[120.5, 108.5]
-[122.5, 108.5]
-[124.5, 108.5]
-[0.5, 110.5]
-[2.5, 110.5]
-[4.5, 110.5]
-[6.5, 110.5]
-[48.5, 110.5]
-[50.5, 110.5]
-[52.5, 110.5]
-[54.5, 110.5]
-[56.5, 110.5]
-[58.5, 110.5]
-[60.5, 110.5]
-[62.5, 110.5]
-[64.5, 110.5]
-[66.5, 110.5]
-[92.5, 110.5]
-[94.5, 110.5]
-[102.5, 110.5]
-[104.5, 110.5]
-[114.5, 110.5]
-[116.5, 110.5]
-[118.5, 110.5]
-[120.5, 110.5]
-[122.5, 110.5]
-[124.5, 110.5]
-[126.5, 110.5]
-[0.5, 112.5]
-[2.5, 112.5]
-[4.5, 112.5]
-[6.5, 112.5]
-[48.5, 112.5]
-[50.5, 112.5]
-[52.5, 112.5]
-[54.5, 112.5]
-[58.5, 112.5]
-[60.5, 112.5]
-[62.5, 112.5]
-[64.5, 112.5]
-[66.5, 112.5]
-[94.5, 112.5]
-[102.5, 112.5]
-[104.5, 112.5]
-[106.5, 112.5]
-[112.5, 112.5]
-[114.5, 112.5]
-[116.5, 112.5]
-[118.5, 112.5]
-[120.5, 112.5]
-[122.5, 112.5]
-[124.5, 112.5]
-[126.5, 112.5]
-[48.5, 114.5]
-[50.5, 114.5]
-[52.5, 114.5]
-[54.5, 114.5]
-[58.5, 114.5]
-[60.5, 114.5]
-[62.5, 114.5]
-[64.5, 114.5]
-[66.5, 114.5]
-[94.5, 114.5]
-[102.5, 114.5]
-[104.5, 114.5]
-[106.5, 114.5]
-[112.5, 114.5]
-[114.5, 114.5]
-[116.5, 114.5]
-[118.5, 114.5]
-[42.5, 116.5]
-[44.5, 116.5]
-[46.5, 116.5]
-[48.5, 116.5]
-[50.5, 116.5]
-[52.5, 116.5]
-[54.5, 116.5]
-[58.5, 116.5]
-[60.5, 116.5]
-[62.5, 116.5]
-[64.5, 116.5]
-[66.5, 116.5]
-[102.5, 116.5]
-[104.5, 116.5]
-[106.5, 116.5]
-[112.5, 116.5]
-[114.5, 116.5]
-[116.5, 116.5]
-[38.5, 118.5]
-[40.5, 118.5]
-[42.5, 118.5]
-[44.5, 118.5]
-[46.5, 118.5]
-[48.5, 118.5]
-[50.5, 118.5]
-[52.5, 118.5]
-[54.5, 118.5]
-[104.5, 118.5]
-[106.5, 118.5]
-[112.5, 118.5]
-[114.5, 118.5]
-[116.5, 118.5]
-[36.5, 120.5]
-[38.5, 120.5]
-[40.5, 120.5]
-[42.5, 120.5]
-[44.5, 120.5]
-[46.5, 120.5]
-[48.5, 120.5]
-[50.5, 120.5]
-[52.5, 120.5]
-[54.5, 120.5]
-[104.5, 120.5]
-[106.5, 120.5]
-[112.5, 120.5]
-[114.5, 120.5]
-[116.5, 120.5]
-[0.5, 122.5]
-[2.5, 122.5]
-[4.5, 122.5]
-[36.5, 122.5]
-[38.5, 122.5]
-[40.5, 122.5]
-[42.5, 122.5]
-[44.5, 122.5]
-[46.5, 122.5]
-[48.5, 122.5]
-[50.5, 122.5]
-[52.5, 122.5]
-[54.5, 122.5]
-[56.5, 122.5]
-[106.5, 122.5]
-[114.5, 122.5]
-[0.5, 124.5]
-[2.5, 124.5]
-[4.5, 124.5]
-[36.5, 124.5]
-[38.5, 124.5]
-[40.5, 124.5]
-[42.5, 124.5]
-[44.5, 124.5]
-[46.5, 124.5]
-[48.5, 124.5]
-[50.5, 124.5]
-[52.5, 124.5]
-[54.5, 124.5]
-[56.5, 124.5]
-[106.5, 124.5]
-[108.5, 124.5]
-[0.5, 126.5]
-[2.5, 126.5]
-[4.5, 126.5]
-[6.5, 126.5]
-[36.5, 126.5]
-[38.5, 126.5]
-[40.5, 126.5]
-[42.5, 126.5]
-[44.5, 126.5]
-[46.5, 126.5]
-[48.5, 126.5]
-[50.5, 126.5]
-[52.5, 126.5]
-[54.5, 126.5]
-[56.5, 126.5]
diff --git a/Data/Baseline/OTB/Files/bfBoundingRegionCalculatorOutput.txt b/Data/Baseline/OTB/Files/bfBoundingRegionCalculatorOutput.txt
deleted file mode 100644
index 607b28d732cbd88ed00155282488e63c212b0ace..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/bfBoundingRegionCalculatorOutput.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Test results from otbBinaryImageBoundingRegionCalculator test.
-[8, 48]	[81, 39]
-[7, 7]	[83, 41]
-[7, 9]	[45, 36]
-[25, 11]	[47, 30]
-
-Testing the pad option
-
-[7, 47]	[83, 41]
-[6, 6]	[85, 43]
-[6, 8]	[47, 38]
-[24, 10]	[49, 32]
diff --git a/Data/Baseline/OTB/Files/bfTvDBOverlapDataNodeFeatureFunctionOutput.1.dbf b/Data/Baseline/OTB/Files/bfTvDBOverlapDataNodeFeatureFunctionOutput.1.dbf
deleted file mode 100644
index e514113af135119bc8425acf01f592628df9b0ee..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/bfTvDBOverlapDataNodeFeatureFunctionOutput.1.dbf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:9a91a7b2a449168136030deb765d660dc0851638543eced30eb006db94bc2123
-size 6583
diff --git a/Data/Baseline/OTB/Files/bfTvDBOverlapDataNodeFeatureFunctionOutput.1.shp b/Data/Baseline/OTB/Files/bfTvDBOverlapDataNodeFeatureFunctionOutput.1.shp
deleted file mode 100644
index 0e5a1e7088d245322c2dea9711dc61f0d147bbc4..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/bfTvDBOverlapDataNodeFeatureFunctionOutput.1.shp
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:2ca53f866c1773b1ea1329e910073eb8c2c25513dca65b8e5ab21a047d31e333
-size 12860
diff --git a/Data/Baseline/OTB/Files/bfTvDBOverlapDataNodeFeatureFunctionOutput.1.shx b/Data/Baseline/OTB/Files/bfTvDBOverlapDataNodeFeatureFunctionOutput.1.shx
deleted file mode 100644
index e4f82fd5c32949defffebc072ec21aab04dd54d3..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/bfTvDBOverlapDataNodeFeatureFunctionOutput.1.shx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:cd9270880008ed009e4e0e08ea105d91f40eb911f7c27e773348dfc74857bec2
-size 668
diff --git a/Data/Baseline/OTB/Files/bfTvDBOverlapDataNodeFeatureFunctionOutput.dbf b/Data/Baseline/OTB/Files/bfTvDBOverlapDataNodeFeatureFunctionOutput.dbf
deleted file mode 100644
index 5c2e63d063ed9d1cb3951b1af6ae1f47ad6bdf14..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/bfTvDBOverlapDataNodeFeatureFunctionOutput.dbf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:539f3f381fe619efbf813b1f6a407f236ca577cd2f62f0d35cf8a717c30f3210
-size 6583
diff --git a/Data/Baseline/OTB/Files/bfTvDBOverlapDataNodeFeatureFunctionOutput.shp b/Data/Baseline/OTB/Files/bfTvDBOverlapDataNodeFeatureFunctionOutput.shp
deleted file mode 100644
index d5ff96b9922859ed04a1f8c4479c89507f6c4daa..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/bfTvDBOverlapDataNodeFeatureFunctionOutput.shp
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:d0b6e77ff1d3acae9432b63b929050ed0089e9aace8a831c817b07ac02b04063
-size 18388
diff --git a/Data/Baseline/OTB/Files/bfTvDBOverlapDataNodeFeatureFunctionOutput.shx b/Data/Baseline/OTB/Files/bfTvDBOverlapDataNodeFeatureFunctionOutput.shx
deleted file mode 100644
index 72bda750b8f93dbb743c133f9cdcb57e5d489314..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/bfTvDBOverlapDataNodeFeatureFunctionOutput.shx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:8e3f91df5a62beb63ba9b17a952d2673a732aa428b20861dce0c6dd986e588db
-size 668
diff --git a/Data/Baseline/OTB/Files/bfTvNDVIDataNodeFeatureFunctionOutput_Line.dbf b/Data/Baseline/OTB/Files/bfTvNDVIDataNodeFeatureFunctionOutput_Line.dbf
deleted file mode 100644
index 7c908dfa514d47a20b9e25bfb6e6d9b379d01ef6..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/bfTvNDVIDataNodeFeatureFunctionOutput_Line.dbf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:5e03911f8e9f9eecd908084083cbed86b2084a1a8ec469a0bf58296ba9ca93f4
-size 6583
diff --git a/Data/Baseline/OTB/Files/bfTvNDVIDataNodeFeatureFunctionOutput_Line.shp b/Data/Baseline/OTB/Files/bfTvNDVIDataNodeFeatureFunctionOutput_Line.shp
deleted file mode 100644
index b3adb3d3bb2ccb2ae5bfefd4abb19bd64970103a..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/bfTvNDVIDataNodeFeatureFunctionOutput_Line.shp
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:ff01566163097422211e31b35823cc6ede15efa3965bcc72f2e89f8b95fc2b30
-size 12860
diff --git a/Data/Baseline/OTB/Files/bfTvNDVIDataNodeFeatureFunctionOutput_Line.shx b/Data/Baseline/OTB/Files/bfTvNDVIDataNodeFeatureFunctionOutput_Line.shx
deleted file mode 100644
index 8eb95e8e60e8cf4597630573a9dcfa4c795487fc..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/bfTvNDVIDataNodeFeatureFunctionOutput_Line.shx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:b033aa81a9212511ecb13bf36bb9b92d26a2272e8fd2e7106fd938f623084664
-size 668
diff --git a/Data/Baseline/OTB/Files/bfTvNDVIDataNodeFeatureFunctionOutput_Polygon.dbf b/Data/Baseline/OTB/Files/bfTvNDVIDataNodeFeatureFunctionOutput_Polygon.dbf
deleted file mode 100644
index 6cf192268251981989263ef6d65b1d2c3490290f..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/bfTvNDVIDataNodeFeatureFunctionOutput_Polygon.dbf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:2a314fb6c853dd6ed9864eb50da057c96bad6802b1d35e1c27e63f7c54ac5e6c
-size 1517
diff --git a/Data/Baseline/OTB/Files/bfTvNDVIDataNodeFeatureFunctionOutput_Polygon.shp b/Data/Baseline/OTB/Files/bfTvNDVIDataNodeFeatureFunctionOutput_Polygon.shp
deleted file mode 100644
index 4df7fd5f11a76ae2d527a9be87e52e380efe6edd..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/bfTvNDVIDataNodeFeatureFunctionOutput_Polygon.shp
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:a02afbec1aac0b3b812282d4877310d5ce035b9fce9aa4d2427244a0c4404840
-size 3228
diff --git a/Data/Baseline/OTB/Files/bfTvNDVIDataNodeFeatureFunctionOutput_Polygon.shx b/Data/Baseline/OTB/Files/bfTvNDVIDataNodeFeatureFunctionOutput_Polygon.shx
deleted file mode 100644
index e8977f2d43cf2cc9b3b6dc1bd080b67d024f7573..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/bfTvNDVIDataNodeFeatureFunctionOutput_Polygon.shx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:ce4dc76a26a8fafad2f5e083c3aea4f5494319c7a46cfa7a339a0fd48161aa1d
-size 252
diff --git a/Data/Baseline/OTB/Files/bfTvPersistentVectorizationImageFilterOutput.txt b/Data/Baseline/OTB/Files/bfTvPersistentVectorizationImageFilterOutput.txt
index be8d26528fdb6e53c48a6a5b67c58eb5dd40d5cb..9f0a2569d3082b2e1322feed4a06fdfc469748bd 100644
--- a/Data/Baseline/OTB/Files/bfTvPersistentVectorizationImageFilterOutput.txt
+++ b/Data/Baseline/OTB/Files/bfTvPersistentVectorizationImageFilterOutput.txt
@@ -1,4 +1,3 @@
-[ 55.5, 123.5] [ 57, 123.5] [ 58, 123.5] [ 59, 123.5] [ 60, 123.5] [ 61, 123.5] [ 62, 123.5] [ 63, 123.5] [ 64, 123.5] [ 65, 123.5] [ 66, 123.5] [ 67.5, 123.5] [ 68, 124.5] [ 69, 124.5] [ 70, 124.5] [ 71.5, 124.5] [ 72, 125.5] [ 73.5, 125.5] [ 74, 126.5] [ 75, 126.5] [ 76.5, 126.5] [ 77, 127.5] [ 78.5, 127.5] [ 79.5, 128.5] [ 80, 129.5] [ 81.5, 129.5] [ 82.5, 130.5] [ 83.5, 131.5] [ 84.5, 132.5] [ 85.5, 133.5] [ 86.5, 134.5] [ 87.5, 135.5] [ 88.5, 136.5] [ 89.5, 137.5] [ 90.5, 138.5] [ 91.5, 139.5] [ 91.5, 141] [ 92.5, 141.5] [ 93.5, 142.5] [ 93.5, 144] [ 94.5, 144.5] [ 94.5, 146] [ 95.5, 146.5] [ 95.5, 148] [ 96.5, 148.5] [ 96.5, 150] [ 96.5, 151] [ 97.5, 151.5] [ 97.5, 153] [ 97.5, 154] [ 98.5, 154.5] [ 98.5, 156] [ 98.5, 157] [ 99.5, 157.5] [ 99.5, 159] [ 99.5, 160] [ 99.5, 161] [ 99.5, 162] [ 99.5, 163] [ 100.5, 163.5] [ 100.5, 165] [ 100.5, 166] [ 100.5, 167] [ 100.5, 168] [ 100.5, 169] [ 100.5, 170] [ 100.5, 171] [ 100.5, 172] [ 100.5, 173] [ 100.5, 174] [ 100.5, 175] [ 100.5, 176] [ 100.5, 177] [ 100.5, 178.5] [ 99.5, 179] [ 99.5, 180] [ 99.5, 181] [ 99.5, 182] [ 99.5, 183] [ 99.5, 184.5] [ 98.5, 185] [ 98.5, 186] [ 98.5, 187.5] [ 97.5, 188] [ 97.5, 189] [ 97.5, 190.5] [ 96.5, 191] [ 96.5, 192] [ 96.5, 193.5] [ 95.5, 194] [ 95.5, 195.5] [ 94.5, 196] [ 94.5, 197.5] [ 93.5, 198] [ 93.5, 199.5] [ 92.5, 200.5] [ 91.5, 201] [ 91.5, 202.5] [ 90.5, 203.5] [ 89.5, 204.5] [ 88.5, 205.5] [ 87.5, 206.5] [ 86.5, 207.5] [ 85.5, 208.5] [ 84.5, 209.5] [ 83.5, 210.5] [ 82.5, 211.5] [ 81.5, 212.5] [ 80, 212.5] [ 79.5, 213.5] [ 78.5, 214.5] [ 77, 214.5] [ 76.5, 215.5] [ 75, 215.5] [ 74, 215.5] [ 73.5, 216.5] [ 72, 216.5] [ 71.5, 217.5] [ 70, 217.5] [ 69, 217.5] [ 68, 217.5] [ 67.5, 218.5] [ 66, 218.5] [ 65, 218.5] [ 64, 218.5] [ 63, 218.5] [ 62, 218.5] [ 61, 218.5] [ 60, 218.5] [ 59, 218.5] [ 58, 218.5] [ 57, 218.5] [ 55.5, 218.5] [ 55, 217.5] [ 54, 217.5] [ 53, 217.5] [ 51.5, 217.5] [ 51, 216.5] [ 49.5, 216.5] [ 49, 215.5] [ 48, 215.5] [ 46.5, 215.5] [ 46, 214.5] [ 44.5, 214.5] [ 43.5, 213.5] [ 43, 212.5] [ 41.5, 212.5] [ 40.5, 211.5] [ 39.5, 210.5] [ 38.5, 209.5] [ 37.5, 208.5] [ 36.5, 207.5] [ 35.5, 206.5] [ 34.5, 205.5] [ 33.5, 204.5] [ 32.5, 203.5] [ 31.5, 202.5] [ 31.5, 201] [ 30.5, 200.5] [ 29.5, 199.5] [ 29.5, 198] [ 28.5, 197.5] [ 28.5, 196] [ 27.5, 195.5] [ 27.5, 194] [ 26.5, 193.5] [ 26.5, 192] [ 26.5, 191] [ 25.5, 190.5] [ 25.5, 189] [ 25.5, 188] [ 24.5, 187.5] [ 24.5, 186] [ 24.5, 185] [ 23.5, 184.5] [ 23.5, 183] [ 23.5, 182] [ 23.5, 181] [ 23.5, 180] [ 23.5, 179] [ 22.5, 178.5] [ 22.5, 177] [ 22.5, 176] [ 22.5, 175] [ 22.5, 174] [ 22.5, 173] [ 22.5, 172] [ 22.5, 171] [ 22.5, 170] [ 22.5, 169] [ 22.5, 168] [ 22.5, 167] [ 22.5, 166] [ 22.5, 165] [ 22.5, 163.5] [ 23.5, 163] [ 23.5, 162] [ 23.5, 161] [ 23.5, 160] [ 23.5, 159] [ 23.5, 157.5] [ 24.5, 157] [ 24.5, 156] [ 24.5, 154.5] [ 25.5, 154] [ 25.5, 153] [ 25.5, 151.5] [ 26.5, 151] [ 26.5, 150] [ 26.5, 148.5] [ 27.5, 148] [ 27.5, 146.5] [ 28.5, 146] [ 28.5, 144.5] [ 29.5, 144] [ 29.5, 142.5] [ 30.5, 141.5] [ 31.5, 141] [ 31.5, 139.5] [ 32.5, 138.5] [ 33.5, 137.5] [ 34.5, 136.5] [ 35.5, 135.5] [ 36.5, 134.5] [ 37.5, 133.5] [ 38.5, 132.5] [ 39.5, 131.5] [ 40.5, 130.5] [ 41.5, 129.5] [ 43, 129.5] [ 43.5, 128.5] [ 44.5, 127.5] [ 46, 127.5] [ 46.5, 126.5] [ 48, 126.5] [ 49, 126.5] [ 49.5, 125.5] [ 51, 125.5] [ 51.5, 124.5] [ 53, 124.5] [ 54, 124.5] [ 55, 124.5] 
-[ 187.5, 31.5] [ 189, 31.5] [ 190, 31.5] [ 191, 31.5] [ 192, 31.5] [ 193, 31.5] [ 194, 31.5] [ 195, 31.5] [ 196, 31.5] [ 197, 31.5] [ 198, 31.5] [ 199, 31.5] [ 200, 31.5] [ 201, 31.5] [ 202, 31.5] [ 203, 31.5] [ 204, 31.5] [ 205, 31.5] [ 206, 31.5] [ 207, 31.5] [ 208, 31.5] [ 209, 31.5] [ 210, 31.5] [ 211, 31.5] [ 212, 31.5] [ 213, 31.5] [ 214, 31.5] [ 215, 31.5] [ 216, 31.5] [ 217, 31.5] [ 218, 31.5] [ 219, 31.5] [ 220, 31.5] [ 221.5, 31.5] [ 221.5, 33] [ 221.5, 34] [ 221.5, 35] [ 221.5, 36] [ 221.5, 37] [ 221.5, 38] [ 221.5, 39] [ 221.5, 40] [ 221.5, 41] [ 221.5, 42] [ 221.5, 43] [ 221.5, 44] [ 221.5, 45] [ 221.5, 46] [ 221.5, 47] [ 221.5, 48] [ 221.5, 49] [ 221.5, 50] [ 221.5, 51] [ 221.5, 52] [ 221.5, 53] [ 221.5, 54] [ 221.5, 55] [ 221.5, 56] [ 221.5, 57] [ 221.5, 58] [ 221.5, 59] [ 221.5, 60] [ 221.5, 61] [ 221.5, 62] [ 221.5, 63] [ 221.5, 64] [ 221.5, 65] [ 221.5, 66] [ 221.5, 67] [ 221.5, 68] [ 221.5, 69] [ 221.5, 70] [ 221.5, 71] [ 221.5, 72] [ 221.5, 73] [ 221.5, 74] [ 221.5, 75] [ 221.5, 76] [ 221.5, 77] [ 221.5, 78] [ 221.5, 79] [ 221.5, 80] [ 221.5, 81] [ 221.5, 82] [ 221.5, 83] [ 221.5, 84] [ 221.5, 85] [ 221.5, 86] [ 221.5, 87] [ 221.5, 88] [ 221.5, 89] [ 221.5, 90] [ 221.5, 91] [ 221.5, 92] [ 221.5, 93] [ 221.5, 94] [ 221.5, 95] [ 221.5, 96] [ 221.5, 97] [ 221.5, 98] [ 221.5, 99] [ 221.5, 100] [ 221.5, 101] [ 221.5, 102] [ 221.5, 103] [ 221.5, 104] [ 221.5, 105] [ 221.5, 106] [ 221.5, 107] [ 221.5, 108] [ 221.5, 109] [ 221.5, 110] [ 221.5, 111] [ 221.5, 112] [ 221.5, 113] [ 221.5, 114] [ 221.5, 115] [ 221.5, 116] [ 221.5, 117] [ 221.5, 118] [ 221.5, 119] [ 221.5, 120] [ 221.5, 121] [ 221.5, 122] [ 221.5, 123] [ 221.5, 124] [ 221.5, 125] [ 221.5, 126] [ 221.5, 127] [ 221.5, 128] [ 221.5, 129] [ 221.5, 130] [ 221.5, 131] [ 221.5, 132] [ 221.5, 133] [ 221.5, 134] [ 221.5, 135] [ 221.5, 136] [ 221.5, 137] [ 221.5, 138] [ 221.5, 139] [ 221.5, 140] [ 221.5, 141] [ 221.5, 142] [ 221.5, 143] [ 221.5, 144] [ 221.5, 145] [ 221.5, 146] [ 221.5, 147] [ 221.5, 148] [ 221.5, 149] [ 221.5, 150] [ 221.5, 151] [ 221.5, 152] [ 221.5, 153] [ 221.5, 154] [ 221.5, 155] [ 221.5, 156] [ 221.5, 157] [ 221.5, 158] [ 221.5, 159] [ 221.5, 160] [ 221.5, 161] [ 221.5, 162] [ 221.5, 163] [ 221.5, 164] [ 221.5, 165] [ 221.5, 166] [ 221.5, 167] [ 221.5, 168] [ 221.5, 169] [ 221.5, 170] [ 221.5, 171] [ 221.5, 172] [ 221.5, 173] [ 221.5, 174] [ 221.5, 175] [ 221.5, 176] [ 221.5, 177] [ 221.5, 178] [ 221.5, 179] [ 221.5, 180] [ 221.5, 181] [ 221.5, 182] [ 221.5, 183] [ 221.5, 184] [ 221.5, 185] [ 221.5, 186] [ 221.5, 187] [ 221.5, 188] [ 221.5, 189] [ 221.5, 190] [ 221.5, 191] [ 221.5, 192] [ 221.5, 193] [ 221.5, 194] [ 221.5, 195] [ 221.5, 196] [ 221.5, 197] [ 221.5, 198] [ 221.5, 199] [ 221.5, 200] [ 221.5, 201] [ 221.5, 202.5] [ 220, 202.5] [ 219, 202.5] [ 218, 202.5] [ 217, 202.5] [ 216, 202.5] [ 215, 202.5] [ 214, 202.5] [ 213, 202.5] [ 212, 202.5] [ 211, 202.5] [ 210, 202.5] [ 209, 202.5] [ 208, 202.5] [ 207, 202.5] [ 206, 202.5] [ 205, 202.5] [ 204, 202.5] [ 203, 202.5] [ 202, 202.5] [ 201, 202.5] [ 200, 202.5] [ 199, 202.5] [ 198, 202.5] [ 197, 202.5] [ 196, 202.5] [ 195, 202.5] [ 194, 202.5] [ 193, 202.5] [ 192, 202.5] [ 191, 202.5] [ 190, 202.5] [ 189, 202.5] [ 187.5, 202.5] [ 187.5, 201] [ 187.5, 200] [ 187.5, 199] [ 187.5, 198] [ 187.5, 197] [ 187.5, 196] [ 187.5, 195] [ 187.5, 194] [ 187.5, 193] [ 187.5, 192] [ 187.5, 191] [ 187.5, 190] [ 187.5, 189] [ 187.5, 188] [ 187.5, 187] [ 187.5, 186] [ 187.5, 185] [ 187.5, 184] [ 187.5, 183] [ 187.5, 182] [ 187.5, 181] [ 187.5, 180] [ 187.5, 179] [ 187.5, 178] [ 187.5, 177] [ 187.5, 176] [ 187.5, 175] [ 187.5, 174] [ 187.5, 173] [ 187.5, 172] [ 187.5, 171] [ 187.5, 170] [ 187.5, 169] [ 187.5, 168] [ 187.5, 167] [ 187.5, 166] [ 187.5, 165] [ 187.5, 164] [ 187.5, 163] [ 187.5, 162] [ 187.5, 161] [ 187.5, 160] [ 187.5, 159] [ 187.5, 158] [ 187.5, 157] [ 187.5, 156] [ 187.5, 155] [ 187.5, 154] [ 187.5, 153] [ 187.5, 152] [ 187.5, 151] [ 187.5, 150] [ 187.5, 149] [ 187.5, 148] [ 187.5, 147] [ 187.5, 146] [ 187.5, 145] [ 187.5, 144] [ 187.5, 143] [ 187.5, 142] [ 187.5, 141] [ 187.5, 140] [ 187.5, 139] [ 187.5, 138] [ 187.5, 137] [ 187.5, 136] [ 187.5, 135] [ 187.5, 134] [ 187.5, 133] [ 187.5, 132] [ 187.5, 131] [ 187.5, 130] [ 187.5, 129] [ 187.5, 128] [ 187.5, 127] [ 187.5, 126] [ 187.5, 125] [ 187.5, 124] [ 187.5, 123] [ 187.5, 122] [ 187.5, 121] [ 187.5, 120] [ 187.5, 119] [ 187.5, 118] [ 187.5, 117] [ 187.5, 116] [ 187.5, 115] [ 187.5, 114] [ 187.5, 113] [ 187.5, 112] [ 187.5, 111] [ 187.5, 110] [ 187.5, 109] [ 187.5, 108] [ 187.5, 107] [ 187.5, 106] [ 187.5, 105] [ 187.5, 104] [ 187.5, 103] [ 187.5, 102] [ 187.5, 101] [ 187.5, 100] [ 187.5, 99] [ 187.5, 98] [ 187.5, 97] [ 187.5, 96] [ 187.5, 95] [ 187.5, 94] [ 187.5, 93] [ 187.5, 92] [ 187.5, 91] [ 187.5, 90] [ 187.5, 89] [ 187.5, 88] [ 187.5, 87] [ 187.5, 86] [ 187.5, 85] [ 187.5, 84] [ 187.5, 83] [ 187.5, 82] [ 187.5, 81] [ 187.5, 80] [ 187.5, 79] [ 187.5, 78] [ 187.5, 77] [ 187.5, 76] [ 187.5, 75] [ 187.5, 74] [ 187.5, 73] [ 187.5, 72] [ 187.5, 71] [ 187.5, 70] [ 187.5, 69] [ 187.5, 68] [ 187.5, 67] [ 187.5, 66] [ 187.5, 65] [ 187.5, 64] [ 187.5, 63] [ 187.5, 62] [ 187.5, 61] [ 187.5, 60] [ 187.5, 59] [ 187.5, 58] [ 187.5, 57] [ 187.5, 56] [ 187.5, 55] [ 187.5, 54] [ 187.5, 53] [ 187.5, 52] [ 187.5, 51] [ 187.5, 50] [ 187.5, 49] [ 187.5, 48] [ 187.5, 47] [ 187.5, 46] [ 187.5, 45] [ 187.5, 44] [ 187.5, 43] [ 187.5, 42] [ 187.5, 41] [ 187.5, 40] [ 187.5, 39] [ 187.5, 38] [ 187.5, 37] [ 187.5, 36] [ 187.5, 35] [ 187.5, 34] [ 187.5, 33] 
-[ 134.5, 38.5] [ 136, 38.5] [ 137.5, 38.5] [ 138, 39.5] [ 139.5, 39.5] [ 140.5, 40.5] [ 141.5, 41.5] [ 141.5, 43] [ 142.5, 43.5] [ 142.5, 45] [ 143.5, 45.5] [ 143.5, 47] [ 144.5, 47.5] [ 144.5, 49] [ 145.5, 49.5] [ 145.5, 51] [ 145.5, 52] [ 146.5, 52.5] [ 146.5, 54] [ 146.5, 55] [ 146.5, 56] [ 147.5, 56.5] [ 147.5, 58] [ 147.5, 59] [ 147.5, 60] [ 148.5, 60.5] [ 148.5, 62] [ 148.5, 63] [ 148.5, 64] [ 149.5, 64.5] [ 149.5, 66] [ 149.5, 67] [ 149.5, 68] [ 149.5, 69] [ 150.5, 69.5] [ 150.5, 71] [ 150.5, 72] [ 150.5, 73] [ 150.5, 74] [ 150.5, 75] [ 151.5, 75.5] [ 151.5, 77] [ 151.5, 78] [ 151.5, 79] [ 151.5, 80] [ 151.5, 81] [ 151.5, 82] [ 151.5, 83] [ 152.5, 83.5] [ 152.5, 85] [ 152.5, 86] [ 152.5, 87] [ 152.5, 88] [ 152.5, 89] [ 152.5, 90] [ 152.5, 91] [ 152.5, 92] [ 153.5, 92.5] [ 153.5, 94] [ 153.5, 95] [ 153.5, 96] [ 153.5, 97] [ 153.5, 98] [ 153.5, 99] [ 153.5, 100] [ 153.5, 101] [ 153.5, 102] [ 153.5, 103] [ 153.5, 104] [ 153.5, 105] [ 153.5, 106] [ 153.5, 107] [ 154.5, 107.5] [ 154.5, 109] [ 154.5, 110] [ 154.5, 111] [ 154.5, 112] [ 154.5, 113] [ 154.5, 114] [ 154.5, 115] [ 154.5, 116] [ 154.5, 117] [ 154.5, 118] [ 154.5, 119] [ 154.5, 120] [ 154.5, 121] [ 154.5, 122] [ 154.5, 123] [ 154.5, 124] [ 154.5, 125] [ 154.5, 126] [ 154.5, 127] [ 154.5, 128] [ 154.5, 129] [ 154.5, 130] [ 154.5, 131] [ 154.5, 132] [ 154.5, 133] [ 154.5, 134] [ 154.5, 135] [ 154.5, 136] [ 154.5, 137] [ 154.5, 138] [ 154.5, 139] [ 154.5, 140] [ 154.5, 141] [ 154.5, 142] [ 154.5, 143] [ 154.5, 144] [ 154.5, 145] [ 154.5, 146] [ 154.5, 147] [ 154.5, 148] [ 154.5, 149.5] [ 153.5, 150] [ 153.5, 151] [ 153.5, 152] [ 153.5, 153] [ 153.5, 154] [ 153.5, 155] [ 153.5, 156] [ 153.5, 157] [ 153.5, 158] [ 153.5, 159] [ 153.5, 160] [ 153.5, 161] [ 153.5, 162] [ 153.5, 163] [ 153.5, 164.5] [ 152.5, 165] [ 152.5, 166] [ 152.5, 167] [ 152.5, 168] [ 152.5, 169] [ 152.5, 170] [ 152.5, 171] [ 152.5, 172] [ 152.5, 173.5] [ 151.5, 174] [ 151.5, 175] [ 151.5, 176] [ 151.5, 177] [ 151.5, 178] [ 151.5, 179] [ 151.5, 180] [ 151.5, 181.5] [ 150.5, 182] [ 150.5, 183] [ 150.5, 184] [ 150.5, 185] [ 150.5, 186] [ 150.5, 187.5] [ 149.5, 188] [ 149.5, 189] [ 149.5, 190] [ 149.5, 191] [ 149.5, 192.5] [ 148.5, 193] [ 148.5, 194] [ 148.5, 195] [ 148.5, 196.5] [ 147.5, 197] [ 147.5, 198] [ 147.5, 199] [ 147.5, 200.5] [ 146.5, 201] [ 146.5, 202] [ 146.5, 203] [ 146.5, 204.5] [ 145.5, 205] [ 145.5, 206] [ 145.5, 207.5] [ 144.5, 208] [ 144.5, 209.5] [ 143.5, 210] [ 143.5, 211.5] [ 142.5, 212] [ 142.5, 213.5] [ 141.5, 214] [ 141.5, 215.5] [ 140.5, 216.5] [ 139.5, 217.5] [ 138, 217.5] [ 137.5, 218.5] [ 136, 218.5] [ 134.5, 218.5] [ 134, 217.5] [ 132.5, 217.5] [ 131.5, 216.5] [ 130.5, 215.5] [ 130.5, 214] [ 129.5, 213.5] [ 129.5, 212] [ 128.5, 211.5] [ 128.5, 210] [ 127.5, 209.5] [ 127.5, 208] [ 126.5, 207.5] [ 126.5, 206] [ 126.5, 205] [ 125.5, 204.5] [ 125.5, 203] [ 125.5, 202] [ 125.5, 201] [ 124.5, 200.5] [ 124.5, 199] [ 124.5, 198] [ 124.5, 197] [ 123.5, 196.5] [ 123.5, 195] [ 123.5, 194] [ 123.5, 193] [ 122.5, 192.5] [ 122.5, 191] [ 122.5, 190] [ 122.5, 189] [ 122.5, 188] [ 121.5, 187.5] [ 121.5, 186] [ 121.5, 185] [ 121.5, 184] [ 121.5, 183] [ 121.5, 182] [ 120.5, 181.5] [ 120.5, 180] [ 120.5, 179] [ 120.5, 178] [ 120.5, 177] [ 120.5, 176] [ 120.5, 175] [ 120.5, 174] [ 119.5, 173.5] [ 119.5, 172] [ 119.5, 171] [ 119.5, 170] [ 119.5, 169] [ 119.5, 168] [ 119.5, 167] [ 119.5, 166] [ 119.5, 165] [ 118.5, 164.5] [ 118.5, 163] [ 118.5, 162] [ 118.5, 161] [ 118.5, 160] [ 118.5, 159] [ 118.5, 158] [ 118.5, 157] [ 118.5, 156] [ 118.5, 155] [ 118.5, 154] [ 118.5, 153] [ 118.5, 152] [ 118.5, 151] [ 118.5, 150] [ 117.5, 149.5] [ 117.5, 148] [ 117.5, 147] [ 117.5, 146] [ 117.5, 145] [ 117.5, 144] [ 117.5, 143] [ 117.5, 142] [ 117.5, 141] [ 117.5, 140] [ 117.5, 139] [ 117.5, 138] [ 117.5, 137] [ 117.5, 136] [ 117.5, 135] [ 117.5, 134] [ 117.5, 133] [ 117.5, 132] [ 117.5, 131] [ 117.5, 130] [ 117.5, 129] [ 117.5, 128] [ 117.5, 127] [ 117.5, 126] [ 117.5, 125] [ 117.5, 124] [ 117.5, 123] [ 117.5, 122] [ 117.5, 121] [ 117.5, 120] [ 117.5, 119] [ 117.5, 118] [ 117.5, 117] [ 117.5, 116] [ 117.5, 115] [ 117.5, 114] [ 117.5, 113] [ 117.5, 112] [ 117.5, 111] [ 117.5, 110] [ 117.5, 109] [ 117.5, 107.5] [ 118.5, 107] [ 118.5, 106] [ 118.5, 105] [ 118.5, 104] [ 118.5, 103] [ 118.5, 102] [ 118.5, 101] [ 118.5, 100] [ 118.5, 99] [ 118.5, 98] [ 118.5, 97] [ 118.5, 96] [ 118.5, 95] [ 118.5, 94] [ 118.5, 92.5] [ 119.5, 92] [ 119.5, 91] [ 119.5, 90] [ 119.5, 89] [ 119.5, 88] [ 119.5, 87] [ 119.5, 86] [ 119.5, 85] [ 119.5, 83.5] [ 120.5, 83] [ 120.5, 82] [ 120.5, 81] [ 120.5, 80] [ 120.5, 79] [ 120.5, 78] [ 120.5, 77] [ 120.5, 75.5] [ 121.5, 75] [ 121.5, 74] [ 121.5, 73] [ 121.5, 72] [ 121.5, 71] [ 121.5, 69.5] [ 122.5, 69] [ 122.5, 68] [ 122.5, 67] [ 122.5, 66] [ 122.5, 64.5] [ 123.5, 64] [ 123.5, 63] [ 123.5, 62] [ 123.5, 60.5] [ 124.5, 60] [ 124.5, 59] [ 124.5, 58] [ 124.5, 56.5] [ 125.5, 56] [ 125.5, 55] [ 125.5, 54] [ 125.5, 52.5] [ 126.5, 52] [ 126.5, 51] [ 126.5, 49.5] [ 127.5, 49] [ 127.5, 47.5] [ 128.5, 47] [ 128.5, 45.5] [ 129.5, 45] [ 129.5, 43.5] [ 130.5, 43] [ 130.5, 41.5] [ 131.5, 40.5] [ 132.5, 39.5] [ 134, 39.5] 
-[ 19.5, 30.5] [ 21, 30.5] [ 22, 30.5] [ 23, 30.5] [ 24, 30.5] [ 25, 30.5] [ 26, 30.5] [ 27, 30.5] [ 28, 30.5] [ 29, 30.5] [ 30, 30.5] [ 31, 30.5] [ 32, 30.5] [ 33, 30.5] [ 34, 30.5] [ 35, 30.5] [ 36, 30.5] [ 37, 30.5] [ 38, 30.5] [ 39, 30.5] [ 40, 30.5] [ 41, 30.5] [ 42, 30.5] [ 43, 30.5] [ 44, 30.5] [ 45, 30.5] [ 46, 30.5] [ 47, 30.5] [ 48, 30.5] [ 49, 30.5] [ 50, 30.5] [ 51, 30.5] [ 52, 30.5] [ 53, 30.5] [ 54, 30.5] [ 55, 30.5] [ 56, 30.5] [ 57, 30.5] [ 58, 30.5] [ 59, 30.5] [ 60, 30.5] [ 61, 30.5] [ 62, 30.5] [ 63, 30.5] [ 64, 30.5] [ 65, 30.5] [ 66, 30.5] [ 67, 30.5] [ 68, 30.5] [ 69, 30.5] [ 70, 30.5] [ 71, 30.5] [ 72, 30.5] [ 73, 30.5] [ 74, 30.5] [ 75, 30.5] [ 76, 30.5] [ 77, 30.5] [ 78, 30.5] [ 79, 30.5] [ 80, 30.5] [ 81, 30.5] [ 82, 30.5] [ 83, 30.5] [ 84.5, 30.5] [ 84.5, 32] [ 84.5, 33] [ 84.5, 34] [ 84.5, 35] [ 84.5, 36] [ 84.5, 37] [ 84.5, 38] [ 84.5, 39] [ 84.5, 40] [ 84.5, 41] [ 84.5, 42] [ 84.5, 43] [ 84.5, 44] [ 84.5, 45] [ 84.5, 46] [ 84.5, 47] [ 84.5, 48] [ 84.5, 49] [ 84.5, 50] [ 84.5, 51] [ 84.5, 52] [ 84.5, 53] [ 84.5, 54] [ 84.5, 55] [ 84.5, 56] [ 84.5, 57] [ 84.5, 58] [ 84.5, 59] [ 84.5, 60] [ 84.5, 61] [ 84.5, 62] [ 84.5, 63] [ 84.5, 64] [ 84.5, 65] [ 84.5, 66] [ 84.5, 67] [ 84.5, 68] [ 84.5, 69] [ 84.5, 70] [ 84.5, 71] [ 84.5, 72] [ 84.5, 73] [ 84.5, 74] [ 84.5, 75] [ 84.5, 76] [ 84.5, 77] [ 84.5, 78] [ 84.5, 79] [ 84.5, 80] [ 84.5, 81] [ 84.5, 82] [ 84.5, 83] [ 84.5, 84] [ 84.5, 85] [ 84.5, 86] [ 84.5, 87] [ 84.5, 88] [ 84.5, 89] [ 84.5, 90] [ 84.5, 91] [ 84.5, 92] [ 84.5, 93] [ 84.5, 94.5] [ 83, 94.5] [ 82, 94.5] [ 81, 94.5] [ 80, 94.5] [ 79, 94.5] [ 78, 94.5] [ 77, 94.5] [ 76, 94.5] [ 75, 94.5] [ 74, 94.5] [ 73, 94.5] [ 72, 94.5] [ 71, 94.5] [ 70, 94.5] [ 69, 94.5] [ 68, 94.5] [ 67, 94.5] [ 66, 94.5] [ 65, 94.5] [ 64, 94.5] [ 63, 94.5] [ 62, 94.5] [ 61, 94.5] [ 60, 94.5] [ 59, 94.5] [ 58, 94.5] [ 57, 94.5] [ 56, 94.5] [ 55, 94.5] [ 54, 94.5] [ 53, 94.5] [ 52, 94.5] [ 51, 94.5] [ 50, 94.5] [ 49, 94.5] [ 48, 94.5] [ 47, 94.5] [ 46, 94.5] [ 45, 94.5] [ 44, 94.5] [ 43, 94.5] [ 42, 94.5] [ 41, 94.5] [ 40, 94.5] [ 39, 94.5] [ 38, 94.5] [ 37, 94.5] [ 36, 94.5] [ 35, 94.5] [ 34, 94.5] [ 33, 94.5] [ 32, 94.5] [ 31, 94.5] [ 30, 94.5] [ 29, 94.5] [ 28, 94.5] [ 27, 94.5] [ 26, 94.5] [ 25, 94.5] [ 24, 94.5] [ 23, 94.5] [ 22, 94.5] [ 21, 94.5] [ 19.5, 94.5] [ 19.5, 93] [ 19.5, 92] [ 19.5, 91] [ 19.5, 90] [ 19.5, 89] [ 19.5, 88] [ 19.5, 87] [ 19.5, 86] [ 19.5, 85] [ 19.5, 84] [ 19.5, 83] [ 19.5, 82] [ 19.5, 81] [ 19.5, 80] [ 19.5, 79] [ 19.5, 78] [ 19.5, 77] [ 19.5, 76] [ 19.5, 75] [ 19.5, 74] [ 19.5, 73] [ 19.5, 72] [ 19.5, 71] [ 19.5, 70] [ 19.5, 69] [ 19.5, 68] [ 19.5, 67] [ 19.5, 66] [ 19.5, 65] [ 19.5, 64] [ 19.5, 63] [ 19.5, 62] [ 19.5, 61] [ 19.5, 60] [ 19.5, 59] [ 19.5, 58] [ 19.5, 57] [ 19.5, 56] [ 19.5, 55] [ 19.5, 54] [ 19.5, 53] [ 19.5, 52] [ 19.5, 51] [ 19.5, 50] [ 19.5, 49] [ 19.5, 48] [ 19.5, 47] [ 19.5, 46] [ 19.5, 45] [ 19.5, 44] [ 19.5, 43] [ 19.5, 42] [ 19.5, 41] [ 19.5, 40] [ 19.5, 39] [ 19.5, 38] [ 19.5, 37] [ 19.5, 36] [ 19.5, 35] [ 19.5, 34] [ 19.5, 33] [ 19.5, 32] 
+[ 2.5, -0.5] [ 4, -0.5] [ 5, -0.5] [ 6, -0.5] [ 7, -0.5] [ 8, -0.5] [ 9, -0.5] [ 10, -0.5] [ 11, -0.5] [ 12, -0.5] [ 13, -0.5] [ 14, -0.5] [ 15, -0.5] [ 16, -0.5] [ 17.5, -0.5] [ 17.5, 1] [ 17.5, 2.5] [ 16, 2.5] [ 15, 2.5] [ 14, 2.5] [ 13.5, 3] [ 13.5, 4] [ 13.5, 5.5] [ 12, 5.5] [ 11, 5.5] [ 10, 5.5] [ 9, 5.5] [ 8, 5.5] [ 6.5, 5.5] [ 6.5, 4] [ 6.5, 3] [ 6, 2.5] [ 5, 2.5] [ 4, 2.5] [ 2.5, 2.5] [ 2.5, 1] 
+[ 17.5, -0.5] [ 19.5, -0.5] [ 19.5, 1] [ 19.5, 2] [ 19.5, 3] [ 19.5, 4] [ 19.5, 5] [ 19.5, 6] [ 19.5, 7] [ 19.5, 8] [ 19.5, 9] [ 19.5, 10] [ 19.5, 11] [ 19.5, 12.5] [ 18, 12.5] [ 17, 12.5] [ 16, 12.5] [ 15, 12.5] [ 13.5, 12.5] [ 13.5, 11] [ 13.5, 10] [ 13.5, 9] [ 13.5, 8] [ 13.5, 7] [ 13.5, 6] [ 13.5, 5] [ 13.5, 4] [ 13.5, 2.5] [ 15, 2.5] [ 16, 2.5] [ 17, 2.5] [ 17.5, 2] [ 17.5, 1] 
+[ 6.5, 5.5] [ 8, 5.5] [ 9, 5.5] [ 10, 5.5] [ 11, 5.5] [ 12, 5.5] [ 13.5, 5.5] [ 13.5, 7] [ 13.5, 8] [ 13.5, 9] [ 13.5, 10] [ 13.5, 11] [ 13.5, 12.5] [ 12, 12.5] [ 11, 12.5] [ 10, 12.5] [ 9, 12.5] [ 8, 12.5] [ 7, 12.5] [ 6, 12.5] [ 5, 12.5] [ 4, 12.5] [ 3, 12.5] [ 2, 12.5] [ 1, 12.5] [ -0.5, 12.5] [ -0.5, 11] [ -0.5, 10] [ -0.5, 8.5] [ 1, 8.5] [ 2, 8.5] [ 3, 8.5] [ 4, 8.5] [ 5, 8.5] [ 6, 8.5] [ 6.5, 8] [ 6.5, 7] 
diff --git a/Data/Baseline/OTB/Files/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Line.dbf b/Data/Baseline/OTB/Files/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Line.dbf
deleted file mode 100644
index 0a2e444943b3e3b835f318120bccbb4c58d4a4fb..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Line.dbf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:881459241d920b7b0b0f04690ca4b64da9b40043e9761e8089867688fd8c868c
-size 6583
diff --git a/Data/Baseline/OTB/Files/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Line.shp b/Data/Baseline/OTB/Files/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Line.shp
deleted file mode 100644
index b3adb3d3bb2ccb2ae5bfefd4abb19bd64970103a..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Line.shp
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:ff01566163097422211e31b35823cc6ede15efa3965bcc72f2e89f8b95fc2b30
-size 12860
diff --git a/Data/Baseline/OTB/Files/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Line.shx b/Data/Baseline/OTB/Files/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Line.shx
deleted file mode 100644
index 8eb95e8e60e8cf4597630573a9dcfa4c795487fc..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Line.shx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:b033aa81a9212511ecb13bf36bb9b92d26a2272e8fd2e7106fd938f623084664
-size 668
diff --git a/Data/Baseline/OTB/Files/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Polygon.dbf b/Data/Baseline/OTB/Files/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Polygon.dbf
deleted file mode 100644
index 7f7a14e7e93b6ae0e262ae25f9c8735b61407051..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Polygon.dbf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:0f0a24f1a9e719f6b7f9cea9e8dbb89d90436b8837178c1f7e2155f555cd274c
-size 1517
diff --git a/Data/Baseline/OTB/Files/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Polygon.shp b/Data/Baseline/OTB/Files/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Polygon.shp
deleted file mode 100644
index 4df7fd5f11a76ae2d527a9be87e52e380efe6edd..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Polygon.shp
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:a02afbec1aac0b3b812282d4877310d5ce035b9fce9aa4d2427244a0c4404840
-size 3228
diff --git a/Data/Baseline/OTB/Files/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Polygon.shx b/Data/Baseline/OTB/Files/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Polygon.shx
deleted file mode 100644
index e8977f2d43cf2cc9b3b6dc1bd080b67d024f7573..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Polygon.shx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:ce4dc76a26a8fafad2f5e083c3aea4f5494319c7a46cfa7a339a0fd48161aa1d
-size 252
diff --git a/Data/Baseline/OTB/Files/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Line.dbf b/Data/Baseline/OTB/Files/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Line.dbf
deleted file mode 100644
index 1fd9789d1f9e5997ac7ecf8151b5501981153bdd..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Line.dbf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:abe817af5f07dd14805d6a14fe5a75fb988340ca1ffcc8e81d8e7adee531a42b
-size 6583
diff --git a/Data/Baseline/OTB/Files/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Line.shp b/Data/Baseline/OTB/Files/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Line.shp
deleted file mode 100644
index b3adb3d3bb2ccb2ae5bfefd4abb19bd64970103a..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Line.shp
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:ff01566163097422211e31b35823cc6ede15efa3965bcc72f2e89f8b95fc2b30
-size 12860
diff --git a/Data/Baseline/OTB/Files/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Line.shx b/Data/Baseline/OTB/Files/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Line.shx
deleted file mode 100644
index 8eb95e8e60e8cf4597630573a9dcfa4c795487fc..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Line.shx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:b033aa81a9212511ecb13bf36bb9b92d26a2272e8fd2e7106fd938f623084664
-size 668
diff --git a/Data/Baseline/OTB/Files/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Polygon.dbf b/Data/Baseline/OTB/Files/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Polygon.dbf
deleted file mode 100644
index a84548112ba0945d770a527ac2d727f420a5e731..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Polygon.dbf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:4b5fc99954f197ed6d0bcfc9ecf4178eb77f5893ba17b32a0906555a5c16fb63
-size 1517
diff --git a/Data/Baseline/OTB/Files/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Polygon.shp b/Data/Baseline/OTB/Files/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Polygon.shp
deleted file mode 100644
index 4df7fd5f11a76ae2d527a9be87e52e380efe6edd..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Polygon.shp
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:a02afbec1aac0b3b812282d4877310d5ce035b9fce9aa4d2427244a0c4404840
-size 3228
diff --git a/Data/Baseline/OTB/Files/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Polygon.shx b/Data/Baseline/OTB/Files/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Polygon.shx
deleted file mode 100644
index e8977f2d43cf2cc9b3b6dc1bd080b67d024f7573..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Polygon.shx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:ce4dc76a26a8fafad2f5e083c3aea4f5494319c7a46cfa7a339a0fd48161aa1d
-size 252
diff --git a/Data/Baseline/OTB/Files/bfTvVectorDataToRandomLineGeneratorOutput.1.dbf b/Data/Baseline/OTB/Files/bfTvVectorDataToRandomLineGeneratorOutput.1.dbf
deleted file mode 100644
index a2d1962a67cfe76b01ba616264e3b432995b312b..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/bfTvVectorDataToRandomLineGeneratorOutput.1.dbf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:e675961d8adb260fa0e564558e79e158c2511d7a1cbd464667b2cf7927f702fd
-size 785
diff --git a/Data/Baseline/OTB/Files/bfTvVectorDataToRandomLineGeneratorOutput.1.shp b/Data/Baseline/OTB/Files/bfTvVectorDataToRandomLineGeneratorOutput.1.shp
deleted file mode 100644
index 8ac2142c3235efbf2e8cf2803f9aeff3bba4649d..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/bfTvVectorDataToRandomLineGeneratorOutput.1.shp
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:4e720cbe159c9438355353a79261f74beba401408778cd8669afc74ec9301b26
-size 15684
diff --git a/Data/Baseline/OTB/Files/bfTvVectorDataToRandomLineGeneratorOutput.1.shx b/Data/Baseline/OTB/Files/bfTvVectorDataToRandomLineGeneratorOutput.1.shx
deleted file mode 100644
index ecb34a6fd196a31064ce103077a3e80a450e6181..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/bfTvVectorDataToRandomLineGeneratorOutput.1.shx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:7af082714c0e2d805f31e4f713599b7dda549f6ff99d81fb33efe41e160ff384
-size 580
diff --git a/Data/Baseline/OTB/Files/bfTvVectorDataToRandomLineGeneratorOutput.dbf b/Data/Baseline/OTB/Files/bfTvVectorDataToRandomLineGeneratorOutput.dbf
index a2d1962a67cfe76b01ba616264e3b432995b312b..9ed672feb1457ec0eef8027c7e3b062082623cd7 100644
--- a/Data/Baseline/OTB/Files/bfTvVectorDataToRandomLineGeneratorOutput.dbf
+++ b/Data/Baseline/OTB/Files/bfTvVectorDataToRandomLineGeneratorOutput.dbf
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:e675961d8adb260fa0e564558e79e158c2511d7a1cbd464667b2cf7927f702fd
-size 785
+oid sha256:039b117e408a00a939a7eb4268f1ef488e08a793645a9df2617a999008aab0b2
+size 2466
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.1.prj b/Data/Baseline/OTB/Files/bfTvVectorDataToRandomLineGeneratorOutput.prj
similarity index 100%
rename from Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.1.prj
rename to Data/Baseline/OTB/Files/bfTvVectorDataToRandomLineGeneratorOutput.prj
diff --git a/Data/Baseline/OTB/Files/bfTvVectorDataToRandomLineGeneratorOutput.shp b/Data/Baseline/OTB/Files/bfTvVectorDataToRandomLineGeneratorOutput.shp
index 199475acddb250a1349fbf18a06fd729b5283ba0..5521bb667bc0b70f5523f27a3ddd12a988143272 100644
--- a/Data/Baseline/OTB/Files/bfTvVectorDataToRandomLineGeneratorOutput.shp
+++ b/Data/Baseline/OTB/Files/bfTvVectorDataToRandomLineGeneratorOutput.shp
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:d51f57a1463023f790db62d41cfea1ea1364d0703fde4b0a179a409536fd4990
-size 22756
+oid sha256:ac714bc9b3d7f861e18549af2ee9df1264cfdb3595a27d43fd621ee3ee854263
+size 50020
diff --git a/Data/Baseline/OTB/Files/bfTvVectorDataToRandomLineGeneratorOutput.shx b/Data/Baseline/OTB/Files/bfTvVectorDataToRandomLineGeneratorOutput.shx
index 21af605da762cae678e5f94bbbb443f172c2984c..375bc0d40fca7103f87b18f4c088c0d474b294d1 100644
--- a/Data/Baseline/OTB/Files/bfTvVectorDataToRandomLineGeneratorOutput.shx
+++ b/Data/Baseline/OTB/Files/bfTvVectorDataToRandomLineGeneratorOutput.shx
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:a3cced39b706cd73f652e67d5a3e752aadff2a4ba95ce4a24714c0bd73b350e4
-size 580
+oid sha256:db653974b1e2e7b5c5c878f0cef7871fb75a8d7d48739723e26f281e04d32555
+size 1700
diff --git a/Data/Baseline/OTB/Files/feAlign.txt b/Data/Baseline/OTB/Files/feAlign.txt
deleted file mode 100644
index 9803d3b15840ab23977df19847fd69b6f705bdc2..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/feAlign.txt
+++ /dev/null
@@ -1,759 +0,0 @@
-Nb Segment: 758
- 260.335    4.536
- 262.335    4.536
- 270.335    4.536
- 281.331    4.667
- 281.333    4.601
- 282.331    4.667
- 281.335    4.536
- 283.333    4.601
- 282.335    4.536
- 283.335    4.536
- 285.333    4.601
- 285.335    4.536
- 287.333    4.601
- 286.335    4.536
- 287.335    4.536
- 288.335    4.536
- 290.333    4.601
- 289.335    4.536
- 290.335    4.536
- 294.329    4.732
- 291.335    4.536
- 294.331    4.667
- 294.333    4.601
- 294.335    4.536
- 304.344    4.274
- 304.348    4.144
- 350.389   51.394
- 350.408   51.199
- 346.504   50.223
- 346.523   50.028
- 344.581   49.443
- 339.677   48.468
- 340.677   48.468
- 339.716   48.077
- 336.792   47.297
- 328.119   43.981
- 341.888   46.322
- 337.985   45.346
- 338.004   45.151
- 338.023   44.956
- 338.042   44.761
- 337.081   44.371
- 338.061   44.566
- 343.965   45.541
- 337.100   44.176
- 343.985   45.346
- 316.542   39.689
- 324.673   43.758
- 326.639   44.017
- 334.401   45.829
- 332.503   45.052
- 370.378   53.593
- 324.048   40.911
- 328.878   42.205
- 324.082   40.652
- 327.980   41.429
- 328.946   41.688
- 328.014   41.170
- 335.776   42.982
- 337.776   42.982
- 333.495   41.930
- 351.805   46.109
- 390.104   20.072
- 367.315  131.143
- 368.315  131.143
- 367.391  130.760
- 347.105  168.454
- 347.209  168.012
- 366.974  130.417
- 371.562  132.187
- 365.284  129.091
- 365.387  128.648
- 296.949  169.500
- 297.949  169.500
- 297.083  169.000
- 323.805  177.500
- 323.939  177.000
- 294.772  166.727
-  54.788  141.714
-  51.789  101.502
-  49.692   80.905
-  48.742   71.097
-  43.817   16.173
-  43.841   11.269
-  42.500   -0.500
-  72.923  344.523
-  55.601  152.183
-  56.515  159.123
-  56.687  145.242
-  51.683   99.636
-  48.506   67.910
-  46.504   45.106
-  44.372   21.312
-  42.500   -0.500
-  43.500   -0.500
-  43.631    0.491
- 294.713  418.881
- 329.666  388.146
- 333.713  418.881
- 339.277  407.975
- 499.546   30.235
-  43.500   -0.500
-  44.565    0.498
-  46.416   13.470
-  47.135   24.446
-  52.190   86.314
-  55.218  117.247
-  57.918  143.192
-  60.095  161.153
- 143.670  444.545
- 159.787  141.196
- 159.853  142.194
- 255.904  417.603
- 275.969  418.601
- 252.639   47.397
- 261.574   46.399
- 268.546   15.466
- 293.923  402.635
- 295.446  410.618
- 271.855   35.423
- 333.969  418.601
- 333.904  417.603
- 444.808   19.457
- 449.209   71.346
- 469.023    7.483
- 498.500   -0.500
-  21.500  320.500
-  22.500  419.500
-  44.500   -0.500
-  45.500   13.500
-  46.500   20.500
-  47.500   27.500
-  48.500   15.500
-  56.500  133.500
-  57.500  142.500
-  58.500  153.500
-  59.500  161.500
- 143.500  444.500
- 144.500  461.500
- 160.500  143.500
- 160.500  142.500
- 196.500  417.500
- 216.500  421.500
- 236.500  421.500
- 236.500  418.500
- 253.500    9.500
- 253.500   22.500
- 255.500  412.500
- 256.500  419.500
- 265.500   12.500
- 269.500   72.500
- 273.500   11.500
- 295.500  412.500
- 296.500   20.500
- 441.500    4.500
- 442.500   48.500
- 445.500   15.500
- 445.500    2.500
- 453.500    8.500
- 468.500   72.500
- 472.500   44.500
- 499.500    9.500
- 499.500   10.500
-  22.442  427.581
-  22.330  444.545
-  60.185  172.130
- 143.976  480.468
- 144.303  475.479
- 197.161  416.605
- 197.227  415.607
- 216.704  423.590
- 254.603   28.438
- 268.584   13.470
- 268.519   14.468
- 273.323   17.461
- 274.781   10.476
- 262.309  322.806
- 287.584   13.470
- 291.072   82.322
- 296.781   10.476
- 297.715   11.474
- 283.069  448.537
- 418.352   93.299
- 145.847  475.394
- 197.418  417.890
- 197.287  418.881
- 295.365   46.098
- 296.887   42.132
- 301.058   78.816
- 304.407   60.970
- 313.064   10.406
- 297.696   38.731
- 397.832  465.373
- 404.100  438.892
- 412.513  401.622
- 417.610  381.025
- 423.682  355.525
- 419.513  401.622
- 428.512  361.410
- 344.607  234.220
- 346.901  229.390
- 352.642  230.356
- 357.007  217.799
- 232.533  240.967
- 252.926  192.674
- 231.747  258.012
- 347.712  228.657
- 348.033  227.710
- 355.033  227.710
- 201.301  309.000
- 211.485  286.827
- 213.634  284.055
- 240.656  221.231
- 239.508  224.003
- 253.519  192.591
- 254.136  193.515
- 182.809  368.128
- 192.994  345.955
- 209.684  308.076
- 217.955  290.522
- 234.645  252.643
- 232.731  257.262
- 347.064  232.318
- 255.293  190.534
- 255.850  191.431
- 250.985  201.296
- 248.004  209.368
- 244.139  219.234
- 233.197  243.449
- 232.755  244.346
- 224.025  264.077
- 213.968  286.499
- 206.122  304.437
- 188.988  341.209
- 196.103  343.002
- 181.181  375.290
-  85.500  292.217
- 229.000  253.245
- 308.500  117.279
- 214.000  286.154
- 165.337  394.590
- 229.122  359.682
- 314.598  112.276
- 444.645    1.719
- 446.637    1.588
- 482.500   -0.500
- 482.502   -0.435
- 482.504   -0.369
- 484.502   -0.435
- 484.504   -0.369
- 486.502   -0.435
- 488.500   -0.500
- 488.502   -0.435
- 488.504   -0.369
- 425.866  350.358
- 425.349  353.290
- 423.278  362.017
- 423.019  363.983
- 421.466  370.778
- 423.278  364.017
- 421.466  371.778
- 418.102  384.336
- 419.396  380.506
- 417.066  390.199
- 416.031  395.063
- 414.478  401.858
- 414.478  402.858
- 411.113  416.416
- 407.490  430.938
- 425.349  364.290
- 403.867  445.461
- 419.396  388.506
- 401.020  458.087
- 399.984  462.950
- 399.467  465.882
- 399.984  464.950
- 408.266  435.041
- 403.461  455.828
- 470.252  292.115
- 470.499  294.366
- 230.937  358.280
- 234.021  356.979
- 224.122  367.878
- 213.786  256.177
- 216.160  256.172
- 212.002  259.950
- 210.855  260.500
- 206.460  264.436
- 122.154  335.011
- 202.848  266.934
- 196.119  270.218
- 115.630  338.540
- 188.802  273.490
- 184.879  288.270
- 118.186  419.536
- 392.518  211.033
- 181.340  275.835
- 176.383  290.487
- 108.965  341.363
- 117.888  420.188
- 116.896  420.319
- 305.271  458.519
- 102.376  227.250
- 171.228  277.737
- 167.237  292.999
- 170.230  292.802
- 127.322  419.615
- 143.288  419.568
- 189.189  442.560
- 193.181  443.298
- 194.179  443.233
- 279.995  443.608
- 293.965  443.692
- 306.937  443.842
- 305.939  443.908
- 325.896  443.600
- 331.883  444.207
- 311.926  460.515
- 326.894  460.534
- 491.500   -0.500
- 327.500    3.500
- 376.500  189.500
- 377.500  189.500
- 437.500  213.500
- 163.500  266.500
- 164.500  278.500
- 165.500  278.500
- 161.500  293.500
- 158.500  295.500
-  72.500  326.500
-  73.500  326.500
- 253.500  417.500
- 138.500  419.500
- 137.500  419.500
- 139.500  420.500
- 137.500  421.500
- 193.500  442.500
- 332.500  443.500
- 333.500  443.500
- 334.500  444.500
- 333.500  444.500
- 344.500  460.500
- 343.500  460.500
- 340.500  461.500
- 340.500  462.500
- 346.500  471.500
- 165.500  476.500
- 288.500  499.500
- 378.783  185.867
- 406.723  192.698
- 165.241  266.871
- 159.254  278.478
- 100.380  328.619
- 233.095  417.318
- 332.881  443.858
- 333.879  443.924
- 326.894  444.466
- 325.896  444.400
- 310.928  444.419
- 309.930  444.354
- 294.962  444.373
- 295.960  444.438
- 273.010  443.934
- 205.155  443.487
- 204.157  443.421
- 189.189  443.440
- 340.864  461.381
- 340.864  462.381
- 320.907  462.073
- 275.005  462.065
- 228.106  471.991
- 166.239  476.936
- 387.561  129.315
- 375.663  186.748
- 361.783  189.921
- 360.792  189.791
- 166.469  262.207
- 150.606  279.119
- 333.031  462.136
- 369.267  186.407
- 358.478  190.261
- 420.268  222.552
- 372.209  212.992
- 390.844  217.699
- 335.920  254.774
- 147.609  279.317
- 136.821  278.171
- 490.884  356.598
- 505.596  359.525
- 367.543  179.195
- 378.168  216.042
- 297.996  198.560
- 363.679  263.160
- 136.687  278.337
- 126.062  276.490
- 101.913  383.020
- 364.673  178.998
- 365.620  179.320
- 121.312  275.388
- 379.557  137.926
- 337.554  186.941
- 335.169  198.964
- 462.382  215.302
- 432.309  266.928
- 453.360  287.390
- 465.245  220.245
- 454.639  209.639
- 210.687  195.687
- 211.394  196.394
- 351.051  144.868
- 351.500  147.104
- 351.000  147.238
- 349.507  148.038
- 509.214  489.712
- 508.893  489.765
- 509.465  491.636
- 509.206  491.670
- 508.688  490.739
- 423.490   41.070
- 420.173   26.396
- 420.173   30.396
- 384.885  492.383
- 368.078  499.443
- 367.284  498.558
- 448.100  482.194
- 449.203  481.751
- 150.096  311.096
- 159.323  323.292
- 158.345  321.036
- 158.441  324.062
- 158.832  323.269
- 158.006  320.889
- 157.386  321.756
-  51.673  496.620
-  84.498  487.697
- 315.363  441.099
-  80.688  467.592
- 166.559  358.825
- 166.886  363.815
- 269.650  497.528
- 253.478  159.254
- 253.432  143.288
- 252.470  113.352
- 252.404  112.354
- 274.922  440.650
- 251.377   81.421
- 251.442   82.419
- 251.461   67.451
- 250.480   52.483
- 250.434   36.517
- 260.451  128.320
- 332.922  440.650
- 441.254  125.326
- 449.862  119.339
- 464.704   86.410
- 473.872   58.470
-  79.500  454.500
-  80.500  478.500
- 141.500  491.500
- 142.500  485.500
- 215.500  454.500
- 215.500  453.500
- 228.500  498.500
- 235.500  441.500
- 248.500  498.500
- 249.500   28.500
- 250.500   83.500
- 251.500  112.500
- 252.500  145.500
- 253.500  162.500
- 253.500  161.500
- 254.500  436.500
- 254.500  437.500
- 257.500  145.500
- 260.500  132.500
- 266.500  125.500
- 268.500  106.500
- 269.500  498.500
- 274.500  436.500
- 290.500  138.500
- 433.500  102.500
- 438.500   79.500
- 452.500   47.500
- 464.500  115.500
- 471.500   87.500
- 474.500   92.500
- 156.078  440.650
- 250.558   82.419
- 228.612  493.536
- 257.558   82.419
- 253.522  159.254
- 255.830  139.296
- 266.511   98.384
- 268.689   80.423
- 271.372  146.281
- 294.923  107.365
- 297.054  105.369
- 491.128   58.470
- 155.506  442.090
- 252.578  137.717
- 274.273  147.631
- 289.927  119.871
- 292.494  107.973
- 412.205  406.398
- 405.504  464.894
- 393.377  485.980
- 398.474  465.384
- 399.059  462.442
- 407.083  427.133
- 410.424  415.364
- 417.472  384.959
- 405.279  466.365
- 437.665  343.767
- 437.470  344.747
- 344.793  259.359
- 412.523  398.453
- 406.017  426.464
- 395.888  467.999
- 392.523  480.556
- 390.935  490.216
- 396.123  496.977
- 390.572  489.668
- 180.137  373.766
- 186.495  360.832
- 165.902  400.185
- 153.000  376.266
- 151.391  377.465
- 252.205  501.474
- 256.205  501.474
- 260.198  501.278
- 260.200  501.344
- 260.202  501.409
- 260.205  501.474
- 264.198  501.278
- 391.162  500.166
- 391.164  500.232
- 391.166  500.297
- 391.168  500.363
- 391.170  500.428
- 391.172  500.493
- 393.170  500.428
- 393.172  500.493
- 395.170  500.428
- 395.172  500.493
- 397.170  500.428
- 397.172  500.493
- 399.170  500.428
- 422.170  500.428
- 422.172  500.493
- 424.170  500.428
- 424.172  500.493
- 170.864  228.008
- 110.917  338.054
- 168.375  219.000
- 106.887  339.500
- 369.256  123.951
- 352.454  112.033
- 148.217  281.921
- 106.576  385.403
- 111.533  384.751
- 167.054  446.441
- 251.958    4.953
- 304.845    5.487
- 305.843    5.421
- 321.808  113.375
- 353.740  188.282
- 363.719  201.628
- 129.222  262.998
- 103.277  384.698
- 176.121  415.924
- 243.975  416.476
- 258.943  416.495
- 117.247  448.782
- 117.247  449.782
- 184.104  446.400
- 214.040  445.438
- 299.856  445.814
- 310.832  446.094
- 307.838  446.290
- 197.076  477.550
- 217.033  477.242
- 269.920  476.776
- 274.909  477.449
- 275.907  477.383
- 289.877  477.468
- 251.500    4.500
- 255.500    5.500
- 347.500  187.500
- 352.500  188.500
- 353.500  201.500
- 137.500  262.500
- 140.500  281.500
- 141.500  294.500
- 140.500  294.500
- 136.500  296.500
-  96.500  384.500
-  99.500  397.500
- 154.500  415.500
- 174.500  416.500
- 197.500  442.500
- 198.500  442.500
- 157.500  445.500
- 286.500  446.500
- 130.500  459.500
- 171.500  464.500
- 155.500  469.500
- 147.500  470.500
- 199.500  476.500
- 170.500  476.500
- 169.500  477.500
- 420.500  498.500
-  25.500  500.500
- 359.727  184.111
- 342.763  186.999
- 132.215  262.199
-  99.286  398.040
- 257.945  415.439
- 243.975  415.524
- 239.984  416.262
- 218.031  415.823
- 170.134  415.684
- 113.256  412.956
- 304.845  445.513
- 289.877  445.532
- 219.029  442.889
- 199.072  442.581
- 200.070  442.646
- 312.828  470.037
- 241.980  469.393
- 156.164  464.768
- 305.843  476.579
- 184.104  469.600
- 274.909  476.551
- 270.918  477.290
- 229.008  476.543
- 214.040  476.562
- 418.601  497.969
- 325.685   45.443
- 352.454  181.967
- 355.429  183.359
- 345.514  185.054
- 339.566  185.270
- 343.531  186.793
- 323.702  222.182
- 126.405  234.207
- 118.473  278.163
- 181.926  415.517
- 238.438  467.957
- 432.761  498.540
- 434.969  132.120
- 333.948  169.026
- 353.563  173.928
- 346.698  179.562
- 348.660  180.952
- 351.602  181.537
- 345.717  185.367
- 335.909  184.416
- 324.140  221.075
- 120.137  231.496
- 122.098  232.886
-  86.790  337.863
- 349.640  482.147
- 359.448  485.098
- 436.098  129.486
- 340.472  168.863
- 334.676  168.310
- 339.506  175.604
- 347.233  179.675
- 262.232  374.899
-  84.501  381.276
- 351.097  481.710
- 353.029  483.228
- 351.097  485.710
- 352.705  171.397
- 342.289  168.861
- 340.395  169.218
- 301.571  172.039
- 114.079  228.394
- 365.015  484.576
- 353.652  481.718
- 356.493  482.683
- 346.879  168.389
- 345.955  170.006
- 341.335  169.093
-  71.006  253.279
-  21.018  395.796
-  21.999  411.763
-  21.933  411.766
-  21.868  411.768
-  21.802  411.770
-  21.737  411.772
-  21.672  411.774
-  21.606  411.776
-  21.541  411.778
-  21.606  413.776
-  21.541  413.778
-  21.606  415.776
-  21.541  415.778
-  21.606  417.776
-  21.606  418.776
-  21.541  417.778
-  21.541  418.778
-  21.606  420.776
-  21.541  419.778
-  21.541  420.778
-  21.737  424.772
-  21.672  423.774
-  21.606  423.776
-  21.672  424.774
-  21.606  424.776
-  21.541  423.778
-  21.541  424.778
-  21.606  426.776
-  21.541  425.778
-  21.541  426.778
-  21.606  428.776
-  21.541  427.778
-  21.541  428.778
-  21.606  430.776
-  21.541  430.778
-  21.606  432.776
-  21.541  432.778
-  21.606  434.776
-  21.541  434.778
-  21.606  436.776
-  21.541  441.778
-  21.606  443.776
-  21.541  443.778
-  22.129  454.759
-  22.129  455.759
-  22.064  454.761
-  21.999  454.763
-  21.868  454.768
-  21.868  455.768
-  21.802  454.770
-  21.737  454.772
-  21.737  455.772
-  21.672  454.774
-  21.606  454.776
-  21.606  455.776
-  21.541  454.778
-  21.737  458.772
-  21.541  455.778
-  21.672  458.774
-  21.606  458.776
-  21.541  457.778
-  21.541  458.778
-  21.606  460.776
-  21.541  459.778
-  21.541  460.778
-  21.737  464.772
-  21.672  464.774
-  21.606  464.776
-  21.541  463.778
-  21.541  464.778
-  21.606  466.776
-  21.541  466.778
-  21.606  468.776
diff --git a/Data/Baseline/OTB/Files/feBreakAngularPathListOutput.txt b/Data/Baseline/OTB/Files/feBreakAngularPathListOutput.txt
deleted file mode 100644
index 0f5ea993520cabcf3ff996765f2e7c2173b782cb..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/feBreakAngularPathListOutput.txt
+++ /dev/null
@@ -1,171 +0,0 @@
---------------------------------------------------------------------------
-MAX ANGULAR :0.174533(10 deg.)
-INPUT list of Path : 
-Path 1: [1, 1], [5, 1], [7, 1], [11, 1], [21, 1], [31, 1]
-Path 2: [1, 1], [5, 1], [7, 1], [11, 1], [21, 11], [31, 11]
-Path 3: [1, 1], [5, 1], [7, 1], [11, 1], [21, 11], [31, 11], [41, 11]
-Path 4: [1, 1], [5, 1], [7, 1], [11, 1], [21, 11], [31, 11], [41, 11], [58, 11], [70, 11]
-Path 5: [1, 11], [5, 11], [7, 11], [11, 11], [21, 1], [31, 1], [41, 1]
-Path 6: [1, 1], [5, 1], [7, 1], [11, 1], [21, 11], [31, 21], [41, 31]
-Path 7: [1, 1], [5, 1], [5, 11], [5, 21]
-Path 8: [1, 1], [31, 1], [41, 1]
-OUTPUT list of Path : 
-Path 1: [1, 1], [5, 1], [7, 1], [11, 1], [21, 1], [31, 1]
-Path 2: [1, 1], [5, 1], [7, 1], [11, 1]
-Path 3: [11, 1], [21, 11]
-Path 4: [21, 11], [31, 11]
-Path 5: [1, 1], [5, 1], [7, 1], [11, 1]
-Path 6: [11, 1], [21, 11]
-Path 7: [21, 11], [31, 11], [41, 11]
-Path 8: [1, 1], [5, 1], [7, 1], [11, 1]
-Path 9: [11, 1], [21, 11]
-Path 10: [21, 11], [31, 11], [41, 11], [58, 11], [70, 11]
-Path 11: [1, 11], [5, 11], [7, 11], [11, 11]
-Path 12: [11, 11], [21, 1]
-Path 13: [21, 1], [31, 1], [41, 1]
-Path 14: [1, 1], [5, 1], [7, 1], [11, 1]
-Path 15: [11, 1], [21, 11], [31, 21], [41, 31]
-Path 16: [1, 1], [5, 1]
-Path 17: [5, 1], [5, 11], [5, 21]
-Path 18: [1, 1], [31, 1], [41, 1]
---------------------------------------------------------------------------
-MAX ANGULAR :0.349066(20 deg.)
-INPUT list of Path : 
-Path 1: [1, 1], [5, 1], [7, 1], [11, 1], [21, 1], [31, 1]
-Path 2: [1, 1], [5, 1], [7, 1], [11, 1], [21, 11], [31, 11]
-Path 3: [1, 1], [5, 1], [7, 1], [11, 1], [21, 11], [31, 11], [41, 11]
-Path 4: [1, 1], [5, 1], [7, 1], [11, 1], [21, 11], [31, 11], [41, 11], [58, 11], [70, 11]
-Path 5: [1, 11], [5, 11], [7, 11], [11, 11], [21, 1], [31, 1], [41, 1]
-Path 6: [1, 1], [5, 1], [7, 1], [11, 1], [21, 11], [31, 21], [41, 31]
-Path 7: [1, 1], [5, 1], [5, 11], [5, 21]
-Path 8: [1, 1], [31, 1], [41, 1]
-OUTPUT list of Path : 
-Path 1: [1, 1], [5, 1], [7, 1], [11, 1], [21, 1], [31, 1]
-Path 2: [1, 1], [5, 1], [7, 1], [11, 1]
-Path 3: [11, 1], [21, 11]
-Path 4: [21, 11], [31, 11]
-Path 5: [1, 1], [5, 1], [7, 1], [11, 1]
-Path 6: [11, 1], [21, 11]
-Path 7: [21, 11], [31, 11], [41, 11]
-Path 8: [1, 1], [5, 1], [7, 1], [11, 1]
-Path 9: [11, 1], [21, 11]
-Path 10: [21, 11], [31, 11], [41, 11], [58, 11], [70, 11]
-Path 11: [1, 11], [5, 11], [7, 11], [11, 11]
-Path 12: [11, 11], [21, 1]
-Path 13: [21, 1], [31, 1], [41, 1]
-Path 14: [1, 1], [5, 1], [7, 1], [11, 1]
-Path 15: [11, 1], [21, 11], [31, 21], [41, 31]
-Path 16: [1, 1], [5, 1]
-Path 17: [5, 1], [5, 11], [5, 21]
-Path 18: [1, 1], [31, 1], [41, 1]
---------------------------------------------------------------------------
-MAX ANGULAR :0.523599(30 deg.)
-INPUT list of Path : 
-Path 1: [1, 1], [5, 1], [7, 1], [11, 1], [21, 1], [31, 1]
-Path 2: [1, 1], [5, 1], [7, 1], [11, 1], [21, 11], [31, 11]
-Path 3: [1, 1], [5, 1], [7, 1], [11, 1], [21, 11], [31, 11], [41, 11]
-Path 4: [1, 1], [5, 1], [7, 1], [11, 1], [21, 11], [31, 11], [41, 11], [58, 11], [70, 11]
-Path 5: [1, 11], [5, 11], [7, 11], [11, 11], [21, 1], [31, 1], [41, 1]
-Path 6: [1, 1], [5, 1], [7, 1], [11, 1], [21, 11], [31, 21], [41, 31]
-Path 7: [1, 1], [5, 1], [5, 11], [5, 21]
-Path 8: [1, 1], [31, 1], [41, 1]
-OUTPUT list of Path : 
-Path 1: [1, 1], [5, 1], [7, 1], [11, 1], [21, 1], [31, 1]
-Path 2: [1, 1], [5, 1], [7, 1], [11, 1]
-Path 3: [11, 1], [21, 11]
-Path 4: [21, 11], [31, 11]
-Path 5: [1, 1], [5, 1], [7, 1], [11, 1]
-Path 6: [11, 1], [21, 11]
-Path 7: [21, 11], [31, 11], [41, 11]
-Path 8: [1, 1], [5, 1], [7, 1], [11, 1]
-Path 9: [11, 1], [21, 11]
-Path 10: [21, 11], [31, 11], [41, 11], [58, 11], [70, 11]
-Path 11: [1, 11], [5, 11], [7, 11], [11, 11]
-Path 12: [11, 11], [21, 1]
-Path 13: [21, 1], [31, 1], [41, 1]
-Path 14: [1, 1], [5, 1], [7, 1], [11, 1]
-Path 15: [11, 1], [21, 11], [31, 21], [41, 31]
-Path 16: [1, 1], [5, 1]
-Path 17: [5, 1], [5, 11], [5, 21]
-Path 18: [1, 1], [31, 1], [41, 1]
---------------------------------------------------------------------------
-MAX ANGULAR :0.872665(50 deg.)
-INPUT list of Path : 
-Path 1: [1, 1], [5, 1], [7, 1], [11, 1], [21, 1], [31, 1]
-Path 2: [1, 1], [5, 1], [7, 1], [11, 1], [21, 11], [31, 11]
-Path 3: [1, 1], [5, 1], [7, 1], [11, 1], [21, 11], [31, 11], [41, 11]
-Path 4: [1, 1], [5, 1], [7, 1], [11, 1], [21, 11], [31, 11], [41, 11], [58, 11], [70, 11]
-Path 5: [1, 11], [5, 11], [7, 11], [11, 11], [21, 1], [31, 1], [41, 1]
-Path 6: [1, 1], [5, 1], [7, 1], [11, 1], [21, 11], [31, 21], [41, 31]
-Path 7: [1, 1], [5, 1], [5, 11], [5, 21]
-Path 8: [1, 1], [31, 1], [41, 1]
-OUTPUT list of Path : 
-Path 1: [1, 1], [5, 1], [7, 1], [11, 1], [21, 1], [31, 1]
-Path 2: [1, 1], [5, 1], [7, 1], [11, 1], [21, 11], [31, 11]
-Path 3: [1, 1], [5, 1], [7, 1], [11, 1], [21, 11], [31, 11], [41, 11]
-Path 4: [1, 1], [5, 1], [7, 1], [11, 1], [21, 11], [31, 11], [41, 11], [58, 11], [70, 11]
-Path 5: [1, 11], [5, 11], [7, 11], [11, 11], [21, 1], [31, 1], [41, 1]
-Path 6: [1, 1], [5, 1], [7, 1], [11, 1], [21, 11], [31, 21], [41, 31]
-Path 7: [1, 1], [5, 1]
-Path 8: [5, 1], [5, 11], [5, 21]
-Path 9: [1, 1], [31, 1], [41, 1]
---------------------------------------------------------------------------
-MAX ANGULAR :1.5708(90 deg.)
-INPUT list of Path : 
-Path 1: [1, 1], [5, 1], [7, 1], [11, 1], [21, 1], [31, 1]
-Path 2: [1, 1], [5, 1], [7, 1], [11, 1], [21, 11], [31, 11]
-Path 3: [1, 1], [5, 1], [7, 1], [11, 1], [21, 11], [31, 11], [41, 11]
-Path 4: [1, 1], [5, 1], [7, 1], [11, 1], [21, 11], [31, 11], [41, 11], [58, 11], [70, 11]
-Path 5: [1, 11], [5, 11], [7, 11], [11, 11], [21, 1], [31, 1], [41, 1]
-Path 6: [1, 1], [5, 1], [7, 1], [11, 1], [21, 11], [31, 21], [41, 31]
-Path 7: [1, 1], [5, 1], [5, 11], [5, 21]
-Path 8: [1, 1], [31, 1], [41, 1]
-OUTPUT list of Path : 
-Path 1: [1, 1], [5, 1], [7, 1], [11, 1], [21, 1], [31, 1]
-Path 2: [1, 1], [5, 1], [7, 1], [11, 1], [21, 11], [31, 11]
-Path 3: [1, 1], [5, 1], [7, 1], [11, 1], [21, 11], [31, 11], [41, 11]
-Path 4: [1, 1], [5, 1], [7, 1], [11, 1], [21, 11], [31, 11], [41, 11], [58, 11], [70, 11]
-Path 5: [1, 11], [5, 11], [7, 11], [11, 11], [21, 1], [31, 1], [41, 1]
-Path 6: [1, 1], [5, 1], [7, 1], [11, 1], [21, 11], [31, 21], [41, 31]
-Path 7: [1, 1], [5, 1], [5, 11], [5, 21]
-Path 8: [1, 1], [31, 1], [41, 1]
---------------------------------------------------------------------------
-MAX ANGULAR :2.44346(140 deg.)
-INPUT list of Path : 
-Path 1: [1, 1], [5, 1], [7, 1], [11, 1], [21, 1], [31, 1]
-Path 2: [1, 1], [5, 1], [7, 1], [11, 1], [21, 11], [31, 11]
-Path 3: [1, 1], [5, 1], [7, 1], [11, 1], [21, 11], [31, 11], [41, 11]
-Path 4: [1, 1], [5, 1], [7, 1], [11, 1], [21, 11], [31, 11], [41, 11], [58, 11], [70, 11]
-Path 5: [1, 11], [5, 11], [7, 11], [11, 11], [21, 1], [31, 1], [41, 1]
-Path 6: [1, 1], [5, 1], [7, 1], [11, 1], [21, 11], [31, 21], [41, 31]
-Path 7: [1, 1], [5, 1], [5, 11], [5, 21]
-Path 8: [1, 1], [31, 1], [41, 1]
-OUTPUT list of Path : 
-Path 1: [1, 1], [5, 1], [7, 1], [11, 1], [21, 1], [31, 1]
-Path 2: [1, 1], [5, 1], [7, 1], [11, 1], [21, 11], [31, 11]
-Path 3: [1, 1], [5, 1], [7, 1], [11, 1], [21, 11], [31, 11], [41, 11]
-Path 4: [1, 1], [5, 1], [7, 1], [11, 1], [21, 11], [31, 11], [41, 11], [58, 11], [70, 11]
-Path 5: [1, 11], [5, 11], [7, 11], [11, 11], [21, 1], [31, 1], [41, 1]
-Path 6: [1, 1], [5, 1], [7, 1], [11, 1], [21, 11], [31, 21], [41, 31]
-Path 7: [1, 1], [5, 1], [5, 11], [5, 21]
-Path 8: [1, 1], [31, 1], [41, 1]
---------------------------------------------------------------------------
-MAX ANGULAR :3.14159(180 deg.)
-INPUT list of Path : 
-Path 1: [1, 1], [5, 1], [7, 1], [11, 1], [21, 1], [31, 1]
-Path 2: [1, 1], [5, 1], [7, 1], [11, 1], [21, 11], [31, 11]
-Path 3: [1, 1], [5, 1], [7, 1], [11, 1], [21, 11], [31, 11], [41, 11]
-Path 4: [1, 1], [5, 1], [7, 1], [11, 1], [21, 11], [31, 11], [41, 11], [58, 11], [70, 11]
-Path 5: [1, 11], [5, 11], [7, 11], [11, 11], [21, 1], [31, 1], [41, 1]
-Path 6: [1, 1], [5, 1], [7, 1], [11, 1], [21, 11], [31, 21], [41, 31]
-Path 7: [1, 1], [5, 1], [5, 11], [5, 21]
-Path 8: [1, 1], [31, 1], [41, 1]
-OUTPUT list of Path : 
-Path 1: [1, 1], [5, 1], [7, 1], [11, 1], [21, 1], [31, 1]
-Path 2: [1, 1], [5, 1], [7, 1], [11, 1], [21, 11], [31, 11]
-Path 3: [1, 1], [5, 1], [7, 1], [11, 1], [21, 11], [31, 11], [41, 11]
-Path 4: [1, 1], [5, 1], [7, 1], [11, 1], [21, 11], [31, 11], [41, 11], [58, 11], [70, 11]
-Path 5: [1, 11], [5, 11], [7, 11], [11, 11], [21, 1], [31, 1], [41, 1]
-Path 6: [1, 1], [5, 1], [7, 1], [11, 1], [21, 11], [31, 21], [41, 31]
-Path 7: [1, 1], [5, 1], [5, 11], [5, 21]
-Path 8: [1, 1], [31, 1], [41, 1]
diff --git a/Data/Baseline/OTB/Files/feTvLikelihoodPathOutput.txt b/Data/Baseline/OTB/Files/feTvLikelihoodPathOutput.txt
deleted file mode 100644
index 7e18b94533e5f25319caa19feb2f28bd5c96573a..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/feTvLikelihoodPathOutput.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-INPUT list of Path : 
-Path 1: [157, 335], [204, 376]
-Path 2: [21, 305], [35, 308], [77, 354], [85, 358]
-Path 3: [73, 160], [126, 173]
-OUTPUT list of Path : 
-Path 1: [157, 335], [204, 376] Value: 4.68584e-07
-Path 2: [21, 305], [35, 308], [77, 354], [85, 358] Value: 1.87363e-07
-Path 3: [73, 160], [126, 173] Value: 9.76259e-08
diff --git a/Data/Baseline/OTB/Files/feTvLinkPathOutput.txt b/Data/Baseline/OTB/Files/feTvLinkPathOutput.txt
deleted file mode 100644
index 708fabe135918d33f8ab62d9af7bba6f1b48bf2d..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/feTvLinkPathOutput.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-Maximum distance threshold: 30 (30)
-Maximum angle threshold: 0.698132 (40)
-INPUT list of Path : 
-Path 1: [1, 1], [51, 1]
-Path 2: [61, 1], [91, 1]
-Path 3: [111, 11], [211, 11]
-Path 4: [1, 51], [51, 51]
-Path 5: [71, 71], [71, 91]
-Path 6: [71, 131], [71, 201]
-Path 7: [141, 111], [101, 111]
-Path 8: [151, 111], [191, 111]
-Path 9: [111, 71], [141, 71]
-Path 10: [181, 71], [151, 71]
-Path 11: [11, 131], [11, 101]
-Path 12: [11, 171], [11, 141]
-OUTPUT list of Path : 
-Path 1: [1, 51], [51, 51]
-Path 2: [71, 71], [71, 91]
-Path 3: [71, 131], [71, 201]
-Path 4: [211, 11], [111, 11], [91, 1], [61, 1], [51, 1], [1, 1]
-Path 5: [101, 111], [141, 111], [151, 111], [191, 111]
-Path 6: [111, 71], [141, 71], [151, 71], [181, 71]
-Path 7: [11, 101], [11, 131], [11, 141], [11, 171]
diff --git a/Data/Baseline/OTB/Files/feTvRemoveTortuousPathOutput.txt b/Data/Baseline/OTB/Files/feTvRemoveTortuousPathOutput.txt
deleted file mode 100644
index fffefd4d766972197ca2a3b918db2f8e303d2fc5..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/feTvRemoveTortuousPathOutput.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-Minimum Mean Distance: 10 (10)
-INPUT list of Path : 
-Path 1: [1, 1], [1, 11]
-Path 2: [1, 1], [5, 1], [7, 1], [11, 1]
-Path 3: [1, 1], [7, 7], [21, 21], [31, 31], [41, 41]
-Path 4: [1, 1], [5, 1], [7, 1], [11, 1], [21, 11], [31, 11], [41, 11], [58, 11], [70, 11]
-OUTPUT list of Path : 
-Path 1: [1, 1], [7, 7], [21, 21], [31, 31], [41, 41]
diff --git a/Data/Baseline/OTB/Files/feTvSimplifyPathOutput.txt b/Data/Baseline/OTB/Files/feTvSimplifyPathOutput.txt
deleted file mode 100644
index 1da7ddfb7e7e9e2d787dcd41ac9d007c39a44af7..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/feTvSimplifyPathOutput.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-TOLERANCE: 1(1)
-INPUT list of Path : 
-Path 1: [1, 1], [5, 1], [7, 1], [11, 1], [21, 1], [31, 1]
-Path 2: [1, 1], [5, 1], [7, 1], [11, 1], [21, 11], [31, 11]
-Path 3: [1, 1], [5, 5], [7, 7], [11, 11], [21, 21], [31, 31], [41, 41]
-Path 4: [1, 1], [5, 1], [7, 1], [11, 1], [21, 11], [31, 11], [41, 11], [58, 11], [70, 11]
-OUTPUT list of Path : 
-Path 1: [1, 1], [31, 1]
-Path 2: [1, 1], [11, 1], [21, 11], [31, 11]
-Path 3: [1, 1], [41, 41]
-Path 4: [1, 1], [11, 1], [21, 11], [70, 11]
diff --git a/Data/Baseline/OTB/Files/feTvVectorizationPathListOutput.txt b/Data/Baseline/OTB/Files/feTvVectorizationPathListOutput.txt
deleted file mode 100644
index 348001835a5c6b8f4c03b9562ef9b47f41688704..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/feTvVectorizationPathListOutput.txt
+++ /dev/null
@@ -1,385 +0,0 @@
-Path 0: [523, 4], [522, 4], [521.519, 5], [521, 5.47291], [520.558, 6], [520, 6.41957], [519.517, 7], [519, 7.20893], [519, 8]
-Path 1: [666, 0], [666, 0.755514], [666.534, 1], [667, 1.54937], [668, 2], [669, 2], [670, 3], [671, 4], [671, 5], [672, 5.56069], [673, 6.5845], [673, 8], [673.481, 9], [674, 9.47953], [674.36, 10], [675, 10.6091], [675.621, 12], [676.458, 13], [677, 13.577], [677, 15], [677, 16], [677.422, 17], [678, 17.4808], [678, 18], [678.364, 19], [679, 19], [680, 19.9039]
-Path 2: [595, 4.40433], [594, 5], [593, 6.39503], [592.184, 7], [592, 7.50127], [591, 8.36608], [590, 9.17569], [589, 10], [588, 11], [587, 11], [586.346, 12], [585, 12.5495], [584.553, 14], [584, 14.5519], [583.543, 16], [583, 16.5361], [582.445, 18], [581.502, 19], [581, 19.513], [580, 20.6132], [579.468, 22], [578.542, 23], [578, 23.4978], [577.545, 24], [577, 24.5768], [576.326, 26], [575.445, 27], [574.581, 28], [574, 28.6009], [573.411, 30], [572.445, 31], [571.434, 32], [570.481, 33], [570, 34], [569.454, 35], [568.566, 36], [568, 36.5643], [567.429, 38], [566.521, 39], [566, 39.6024], [565.476, 41], [565, 42], [564.421, 43], [563.547, 44], [563, 44.543], [562, 45.6124], [561.433, 47], [561, 48], [560.393, 49], [559.581, 50], [559, 50.5958], [558.48, 52], [557.499, 53], [556.523, 54], [556, 54.5515], [555.42, 56], [555, 57], [554.467, 58], [554, 59], [553.446, 60], [552.531, 61], [552, 61.5413], [551.499, 63], [551, 64], [550.571, 65], [550, 65.5952], [549.552, 67], [549, 67.5817], [548.426, 69], [547.443, 70], [546.491, 71], [545.546, 72], [545, 72.5362], [544.436, 74], [543.477, 75], [542.467, 76], [541.449, 77], [540.513, 78], [540, 78.5659], [539.511, 80], [539, 80.5386], [538.448, 82], [537.487, 83], [536.504, 84], [536, 84.5229], [535, 85.5753], [534.473, 87], [534, 88], [533.428, 89], [532.493, 90], [531.545, 91], [531, 91.5473], [530.471, 93], [530, 94], [529.487, 95], [529, 96], [528.47, 97], [527.53, 98], [527, 98.5852], [526, 99.6065], [525.437, 101], [525, 102], [524.431, 103], [523.519, 104], [523, 104.522], [522, 105.524], [521, 106.55], [520.409, 108], [519.539, 109], [519, 109.546], [518.488, 111], [517.542, 112], [517, 112.57], [516, 113.611], [515.494, 115], [515, 116], [514.478, 117], [513.597, 118], [513, 118.568], [512.418, 120], [511.505, 121], [511, 121.593], [510.533, 123], [510, 123.522], [509.532, 125], [509, 125.535], [508.383, 127], [507.457, 128], [507, 129], [506.463, 130], [506, 131], [505.428, 132], [504.472, 133], [503.459, 134], [502.495, 135], [502, 136], [501.424, 137], [500.563, 138], [500, 138.53], [499.495, 140], [498.496, 141], [497.439, 142], [496.45, 143], [495.552, 144], [495, 144.55], [494.521, 146], [494, 146.501], [493, 147.526], [492, 148.568], [491.361, 150], [490.486, 151], [490, 152], [489.467, 153], [488.591, 154], [488, 154.596], [487.456, 156], [486.519, 157], [486, 157.591], [485.464, 159], [485, 160], [484.43, 161], [483.513, 162], [483, 162.518], [482, 163.551], [481.416, 165], [480.575, 166], [480, 166.58], [479.525, 168], [479, 168.519], [478, 169.568], [477.474, 171], [476.517, 172], [476, 172.565], [475.521, 174], [475, 174.584], [474.497, 176], [473.556, 177], [473, 177.588], [472.442, 179], [471.477, 180], [471, 181], [470.439, 182], [469.575, 183], [469, 183.578], [468.403, 185], [467.437, 186], [466.523, 187], [466, 187.574], [465.462, 189], [464.603, 190], [464, 190.593], [463.477, 192], [462.486, 193], [461.511, 194], [461, 194.557], [460.416, 196], [459.538, 197], [459, 197.547], [458.44, 199], [457.462, 200], [456.52, 201], [456, 201.543], [455.547, 203], [455, 203.535], [454.528, 205], [454, 205.47], [453.565, 206], [453, 206.526], [452, 207.595], [451.469, 209], [451, 210], [451, 211], [450.469, 212], [450, 213], [449.523, 214], [449, 214.559], [448.479, 216], [447.504, 217], [447, 217.563], [446, 218.567], [445.393, 220], [444.451, 221], [443.514, 222], [443, 222.543], [442, 223.567], [441.486, 225], [441, 226], [441, 227], [440.418, 228], [439.526, 229], [439, 229.43], [438.533, 230], [438, 230.467], [437.442, 231], [437, 232], [436.371, 233], [435.447, 234], [434.549, 235], [434, 235.55], [433, 236.579], [432, 237.609], [431.519, 239], [431, 239.544], [431, 241], [430.444, 242], [429.476, 243], [428.475, 244], [427.544, 245], [427, 245.597], [426.566, 247], [426, 247.584], [425.563, 249], [425, 249.555], [424.444, 251], [423.481, 252], [422.539, 253], [422, 253.552], [421.45, 255], [420.594, 256], [420, 256.601], [419.427, 258], [418.42, 259], [417.461, 260], [417, 261], [416.444, 262], [416, 263], [415.454, 264], [414.528, 265], [414, 265.546], [413.399, 267], [412.495, 268], [412, 269], [411.465, 270], [410.462, 271], [409.469, 272], [409, 273], [408.304, 274], [407.434, 275], [407, 276], [406.494, 277], [405.591, 278], [405, 278.578], [404.425, 280], [403.43, 281], [402.406, 282], [401.475, 283], [401, 284], [400.479, 285], [400, 286], [399.457, 287], [399, 288], [398.428, 289], [398, 290], [397.497, 291], [397, 292], [396.462, 293], [396, 294], [395.466, 295], [394.555, 296], [394, 296.644], [393, 297.65], [392.38, 299], [391.44, 300], [390.475, 301], [389.473, 302], [388.48, 303], [387.489, 304], [386.566, 305], [386, 305.582], [385.494, 307], [384.592, 308], [384, 308.591], [383.529, 310], [383, 310.566], [382.427, 312], [381.467, 313], [380.554, 314], [380, 314.589], [379.458, 316], [378.554, 317], [378, 317.506], [377, 318.589], [376, 319.614], [375.478, 321], [375, 322], [374.534, 323], [374, 323.561], [373.463, 325], [372.553, 326], [372, 326.537], [371.373, 328], [370.462, 329], [370, 330], [369.412, 331], [369, 332], [368.457, 333], [367.533, 334], [367, 334.558], [366, 335.554], [365.494, 337], [364.544, 338], [364, 338.567], [363.391, 340], [362.452, 341], [361.563, 342], [361, 342.549], [360.517, 344], [360, 344.503], [359, 345.583], [358, 346.599], [357, 347.605], [356.373, 349], [355.508, 350], [355, 350.572], [354.501, 352], [354, 352.542], [353.458, 354], [352.436, 355], [351.452, 356], [351, 357], [350.524, 358], [350, 358.496], [350, 359], [349.571, 360], [349, 360.549], [348.421, 362], [347.536, 363], [347, 363.619], [346.47, 365], [345.614, 366], [345, 366.55], [344.512, 368], [344, 368.529], [343, 369.573], [342.391, 371], [341.481, 372], [341, 373], [340.48, 374], [339.607, 375], [339, 375.466], [339, 376], [338.458, 377], [337, 377.581], [337, 379], [336.5, 380], [336, 381], [336, 382], [335.493, 383], [334.49, 384], [333.407, 385], [333, 386], [332.134, 387], [331, 387.535], [330.501, 389], [330, 389.586], [329.436, 391], [328.529, 392], [328, 392.45], [327.54, 393], [327, 393.503], [326, 394.572], [326, 396], [325.479, 397], [324.556, 398], [324, 398.589], [323.392, 400], [322.481, 401], [322, 402], [321.554, 403], [321, 403.575], [320.463, 405], [319.458, 406], [318.473, 407], [317.524, 408], [317, 408.554], [316.469, 410], [316, 411], [315.436, 412], [314.472, 413], [313.462, 414], [312.48, 415], [312, 416], [311.431, 417], [311, 418], [310.453, 419], [309.523, 420], [309, 420.48], [308.528, 421], [308, 421.51], [307, 422.548], [306.423, 424], [306, 425], [305.497, 426], [305, 427], [304.43, 428], [303.449, 429], [302.441, 430], [301.467, 431], [301, 432], [300.465, 433], [300, 434], [299.455, 435], [298.516, 436], [298, 436.49], [297.529, 437], [297, 437.48], [296.553, 438], [296, 438.55], [295.396, 440], [294.494, 441], [294, 442], [293.419, 443], [292.443, 444], [291.41, 445], [290.513, 446], [290, 446.581], [289.587, 448], [289, 448.568], [288.524, 450], [288, 450.526], [287, 451.555], [286.407, 453], [285.593, 454], [285, 454.589], [285, 456], [284.404, 457], [283.516, 458], [283, 458.556], [282.393, 460], [281.446, 461], [280.553, 462], [280, 462.554], [279.474, 464], [278.545, 465], [278, 465.531], [277, 466.552], [276, 467.568], [275, 468.603], [274.559, 470], [274, 470.531], [273.55, 472], [273, 472.543], [272.454, 474], [271.475, 475], [270.514, 476], [270, 476.597], [269.438, 478], [268.567, 479], [268, 479.532], [267.463, 481], [266.514, 482], [266, 482.493], [265.461, 483], [264.554, 484], [264, 484.59], [263.485, 486], [262.545, 487], [262, 487.511], [261, 488.558], [260.422, 490], [259.551, 491], [259, 491.58], [258.548, 493], [258, 493.545], [257.503, 495], [257, 495.531], [256, 496.569], [255.387, 498], [254.484, 499], [254, 500], [253.459, 501], [252.538, 502], [252, 502.517], [251, 503.562], [250.414, 505], [249.492, 506], [249, 507], [248.47, 508], [248, 509], [247.463, 510], [246.551, 511], [246, 511.572], [245.403, 513], [244.533, 514], [244, 514.57], [244, 516], [243.423, 517], [242.605, 518], [242, 518.531], [241.505, 520], [241, 520.46], [240.531, 521], [240, 521.522], [239, 522.615], [239, 524], [238.422, 525], [238, 526], [237.507, 527], [237, 527.554], [236.404, 529], [235.501, 530], [235, 530.581], [234.443, 532], [234, 533], [233.533, 534], [233, 534.53], [232.516, 536], [232, 536.509], [231, 537.504], [230, 538.505], [229, 539.539], [228.501, 541], [228, 541.497], [228, 542], [228, 543], [227.53, 544], [227, 544.516], [226.494, 546], [226, 547], [225.482, 548], [225, 549], [225, 550], [225, 551], [224.515, 552], [224, 552.51], [224, 554], [223.497, 555], [223, 556], [222.403, 557], [222, 558], [221.393, 559], [221, 560], [221, 561], [220.486, 562], [220, 563], [219.529, 564], [219, 564.561], [218.415, 566], [217.494, 567], [217, 568], [217, 569], [216.436, 570], [216, 571], [216, 572], [215.508, 573], [215, 573.534], [214.446, 575], [213.51, 576], [213, 576.54], [212, 577.579], [212, 579], [212, 580], [211.465, 581], [211, 582], [210.588, 583], [210, 583.55], [209.525, 585], [209, 585.53], [208, 586.596], [207.517, 588], [207, 588.591], [207, 590], [207, 591], [206.529, 592], [206, 592.505], [206, 594], [205.529, 595], [205, 595.532], [204.459, 597], [203.562, 598], [203, 598.607], [203, 600], [202.435, 601], [202, 602], [202, 603], [202, 604], [201.468, 605], [201, 606], [200.487, 607], [199.574, 608], [199, 608.581], [198.535, 610], [198, 610.571], [198, 612], [197.572, 613], [197, 613.487], [197, 614], [197, 615], [197, 616], [196.481, 617], [196, 618], [195.47, 619], [195, 620], [194.416, 621], [194, 622], [193.433, 623], [193, 624], [193, 625], [192.462, 626], [192, 627], [192, 628], [191.488, 629], [191, 630], [190.421, 631], [190, 632], [189.449, 633], [189, 634], [188.409, 635], [188, 636], [188, 637], [188, 638], [187.532, 639], [187, 639.531], [187, 641], [186.451, 642], [185.494, 643], [184.545, 644], [184, 644.566], [183.51, 646], [183, 646.54], [183, 648], [183, 649], [182.451, 650], [182, 651], [182, 652], [181.528, 653], [181, 653.542], [180.47, 655], [179.537, 656], [179, 656.539], [178.536, 658], [178, 658.538], [178, 660], [178, 661], [178, 662], [178, 663], [178, 664], [177.539, 665], [177, 665.459], [177, 666], [176.523, 667], [176, 667.545], [175.479, 669], [175, 670], [175, 671], [175, 672], [174.442, 673], [174, 674], [173.462, 675], [173, 676], [173, 677], [172.565, 678], [172, 678.505], [171, 679.533], [170.305, 681], [170, 682], [169.403, 683], [169, 684], [168.544, 685], [168, 685.535], [168, 687], [168, 688], [168, 689]
-Path 3: [510, 10], [509, 11], [508, 11], [507.425, 11], [506.563, 12], [506, 13], [506, 14], [505.388, 15], [504.551, 16], [504, 16.5955], [504, 18], [503.431, 19], [503, 20], [503, 21], [502.437, 22], [502, 23], [502, 24], [502, 25], [502.553, 26], [503.494, 27], [504, 27.4621], [504.389, 28], [505, 28.501]
-Path 4: [642, 14], [641, 15], [640, 15.2508], [639, 16], [638, 16.4707], [637, 17.3218], [635.536, 18], [634.546, 19], [634, 19.53], [633, 20.442], [632, 21.2918], [631, 22.1775], [630, 23], [629, 23.4577], [628, 24.3779], [627, 25.2208], [626, 26], [625, 26], [624.439, 27], [623.425, 28], [622.424, 29], [621.435, 30], [620.43, 31], [619.411, 32], [618.39, 33], [617.41, 34], [616.434, 35], [615.42, 36], [614.338, 37], [613, 38]
-Path 5: [505, 34], [504, 34], [504, 35], [503.679, 36], [503, 36]
-Path 6: [503, 38], [503, 38.5973], [504, 39], [504.441, 40], [505, 40.3571], [505.446, 41], [506, 41.363], [506.175, 42], [507, 42]
-Path 7: [611, 39], [610, 40], [609, 40], [608, 40.3808], [607, 41.3086], [606, 42], [605, 42.4634], [604, 43], [603.373, 44], [602.219, 45], [601, 45.376], [600.395, 46], [599.282, 47], [598.196, 48], [597, 48.5944], [596, 49.6023], [595, 50.5688], [594, 51.4515], [593.484, 52], [592.412, 53]
-Path 8: [990, 45], [989, 46], [988, 46], [987, 46.4471], [986.513, 47], [986, 47.4302], [985.459, 48], [984.427, 49], [983.423, 50], [982.291, 51], [981.047, 52], [980, 53], [979, 53]
-Path 9: [489, 47], [490, 47.4408], [490.551, 48], [491.611, 49], [493, 49.6206], [494, 50.555], [495, 51.5412], [495.606, 53], [496.612, 54], [498, 54.4771], [498.539, 55], [500, 55.5574], [501, 56.4921], [501.44, 57], [502, 57.4964], [502.423, 58], [503, 58.4437], [503.516, 59], [505, 59]
-Path 10: [485, 49], [484, 49], [483.552, 50], [483, 50.5266], [483, 52], [483, 53], [483, 54], [483, 55], [483, 56], [483, 57], [483, 58], [483, 59], [483, 60]
-Path 11: [507, 49], [507, 50], [508, 50], [509, 50], [510, 50], [511, 50], [512, 50], [513, 50.5154], [514, 51.3798], [514.522, 52], [515.124, 53], [516, 53]
-Path 12: [971, 56], [970, 57], [969, 57], [968, 57.3194], [967.37, 58], [966.245, 59], [965, 60], [964, 60.1443], [963.192, 61], [962, 61.2191], [961.287, 62], [960, 63], [959, 63.3283], [958.336, 64], [957.294, 65], [956.276, 66], [955, 66.4461], [954.493, 67], [954, 68], [954, 69], [953.319, 70], [954, 70]
-Path 13: [591, 55], [591.973, 55], [592, 56], [592.486, 57], [593, 58], [593, 59.4884], [593.541, 60], [594, 60.5082], [595, 61], [595.504, 62], [596.449, 63], [597, 63.5539], [597.563, 65], [598.464, 66], [599, 66.5251], [600, 67.4701], [600.483, 68], [601, 68.4728], [601.406, 69], [602, 69.4996], [602, 70], [602, 71], [602.605, 72], [603.435, 73], [604, 73.567], [604.542, 75], [605.486, 76], [606, 76.5382], [606.574, 78], [607.479, 79], [608, 79.5383], [608.583, 81], [609.575, 82], [610.502, 83], [611, 84], [611.506, 85], [612.457, 86], [613, 86.5307], [614, 87.5216], [615, 88.5089], [616, 89.507], [617, 90.4573], [617, 91]
-Path 14: [484, 64], [483, 64], [482, 64], [482, 65], [482, 66], [482, 67], [482, 68], [482, 69], [482.527, 70], [483, 71], [483.541, 72], [484.516, 73], [485.507, 74], [486.533, 75], [488, 75.5525], [489, 76.4689], [489.521, 77], [490.59, 78], [491.613, 79], [492.547, 80], [493.536, 81], [494.53, 82], [495.385, 83], [496, 83]
-Path 15: [707, 64], [707, 65], [708, 65.4538], [708.63, 66], [709.52, 67], [710.404, 68], [711, 68.5743], [712, 69.5566], [713, 70.528], [713.449, 72], [714, 72.5332], [714, 74], [714, 75], [714.485, 76], [715, 76.5332], [715, 78], [715.576, 79], [716.481, 80], [717, 80.5386], [718, 81.489], [718.457, 82], [719, 82.4006], [719.455, 83], [720, 83.3214], [720.522, 84], [722, 84.6336], [723, 85.5792], [724, 86.5779], [724.535, 88], [725.46, 89], [726, 89.5325], [727, 90.6372], [727.604, 92], [728.528, 93], [729, 94], [729.483, 95], [730, 95.4749], [730, 96], [730.484, 97], [731, 97.4849], [731.498, 98], [732, 98.5137], [733, 99.5066], [734, 100.518], [734.407, 102], [735, 102.556], [735.435, 104], [736, 104.453], [736.498, 105], [737, 105.577], [738, 106.589], [739, 107.52], [740, 108.522], [740.438, 110], [741, 110.511], [741.57, 112], [742.587, 113], [743.583, 114], [744.496, 115], [745, 115.528], [745.467, 117], [746, 117.496], [746, 118], [746.441, 119], [747, 119.532], [747.652, 121], [748.625, 122], [749.519, 123], [750, 124], [750.408, 125], [751, 125.511], [751, 127], [751.467, 128], [752, 128.55], [752.644, 130], [753.575, 131], [754, 132], [754.581, 133], [755, 134], [755.436, 135], [756, 135.525], [756, 137], [756.512, 138], [757.381, 139], [758, 139.574], [759, 140], [760, 140.646], [760.638, 142], [761, 143], [761, 144], [761, 145], [761.488, 146], [762, 146.525], [762, 148], [762.465, 149], [763, 149.348], [763, 150], [763, 151]
-Path 16: [672, 46], [671, 46], [670.443, 46], [670, 47], [670, 48], [670, 48.5163], [669.361, 49], [668.504, 50], [667.518, 51], [667, 51.5256], [666.5, 52], [666, 53.2553], [665, 54.305], [664, 55.3581], [663, 56.3897], [662, 57.422], [661, 58.4103], [660, 59.3781], [659, 60.3729], [658, 61.3878], [657, 62.3898], [656, 63.3312], [655, 64.3194], [654, 65.2902], [653, 66], [652, 66.4119], [651, 67.39], [650, 68.3058], [649, 69.2107], [648, 70.1546], [647, 71], [646, 71.3576], [645, 72.3707], [644, 73.269], [643, 74.1505], [642, 75], [641, 75.2232], [640, 76], [639, 77], [638, 77.1274], [637, 78.0313], [636, 79], [635, 79], [634.364, 80], [633.338, 81], [632.279, 82], [631.214, 83]
-Path 17: [930, 80], [929, 80], [928.063, 81], [927, 81.119], [926.169, 82], [925, 83], [924, 83.1902], [923.234, 84], [922.116, 85], [921, 85.226], [920.294, 86], [919.179, 87], [918, 87.3218], [917.372, 88], [916.319, 89], [915, 90], [914, 90], [913, 91]
-Path 18: [629, 84], [628, 85], [627, 85.3951], [626, 86], [625.345, 87], [624.279, 88], [623.199, 89], [622, 89.395], [621.445, 90], [620.422, 91], [620, 92]
-Path 19: [495, 87], [496, 87], [496, 88], [496, 89], [496, 90], [496.395, 91], [497, 91.6102], [497.59, 93], [499, 93.5676], [500, 94.5229], [501, 95.4706], [501.464, 96], [502, 96.4806], [502, 97], [502.345, 98], [503, 98], [504, 99], [505, 100], [506, 100]
-Path 20: [515, 92], [514, 92.4075], [513, 93], [512.551, 94], [512, 94.5286], [512, 96], [511.522, 97], [511, 97.5398], [510, 98.509], [509, 99.3715], [509, 100]
-Path 21: [908, 93], [907, 94], [906, 94], [905, 95], [904, 95], [903, 96], [902, 96], [901, 97], [900, 97.182], [899.275, 98], [898, 98.259], [897.304, 99], [896, 100], [895, 101], [894, 101], [893, 102], [892, 102.095], [891.158, 103], [890, 103.1], [889.155, 104], [888, 105]
-Path 22: [501, 103], [500, 103], [500, 104], [500, 105], [499.516, 106], [499, 106]
-Path 23: [881, 108], [880, 108], [879, 109], [878, 110], [877, 110], [876, 110.124], [875.18, 111]
-Path 24: [870, 113], [869, 114], [868, 114], [867.166, 115], [866, 115.255], [865.318, 116], [864, 117]
-Path 25: [862, 118], [861, 119], [860, 119], [859, 119.386], [858.375, 120], [857.34, 121], [856.205, 122], [855, 122.31], [854.376, 123], [853.077, 124], [852, 125], [851, 125], [850, 126], [849, 126.026], [848.025, 127], [847, 127.198], [846.254, 128], [845, 129], [844, 129], [843, 130], [842, 130], [841, 131], [840, 131.148], [839.149, 132], [838, 133], [837, 133], [836, 134], [835, 134.129], [834.206, 135], [833, 135.452], [832.362, 136], [831.039, 137], [830, 137], [829, 138], [828, 138], [827, 139], [826, 139], [825, 140], [824, 141], [823, 141], [822, 141.324], [821.306, 142], [820, 143], [819, 143]
-Path 26: [493, 123], [492, 123], [492, 124], [492, 125], [491.451, 126], [490.622, 127], [490, 127]
-Path 27: [485, 131], [484, 131], [484, 132], [484, 133.354], [484.592, 134], [485, 135], [486, 135]
-Path 28: [484, 140], [483, 140], [482, 140], [482, 141], [481.633, 142], [481, 142.468], [481, 143], [481, 144], [480.416, 145], [479.413, 146], [478.418, 147], [477.43, 148], [476.417, 149], [475.415, 150], [474.409, 151], [473.313, 152], [472.096, 153], [471, 153.199], [470.254, 154], [469.136, 155], [468.389, 156], [468, 157], [467.447, 158], [466.29, 159], [465.367, 160], [465, 161], [464.515, 162], [464, 162.439], [464, 163]
-Path 29: [431, 141], [431, 142], [432, 142.364], [432.329, 143], [433, 143.417], [433, 144]
-Path 30: [815, 145], [814, 145], [813, 145], [812.496, 146], [811.509, 147], [811, 147.506], [810, 148.401], [809.403, 149], [808.313, 150], [807.226, 151], [806, 151.43], [805.417, 152], [804.295, 153], [803, 154], [802, 154], [801, 155], [800, 155], [799, 156], [798, 156.03], [797.05, 157], [796, 157.262], [795.398, 158], [794.207, 159]
-Path 31: [763, 164], [763.678, 164], [764, 165.394], [765, 166], [766.49, 166], [767, 166.51], [768, 167], [768.599, 168]
-Path 32: [463, 170], [461.567, 170], [461, 171], [461, 172], [461, 172.536], [460, 173], [459.575, 174], [459, 174.572], [458.589, 176], [458, 176.501], [457.601, 178], [457, 178.488], [456.55, 179], [456, 179.343], [456, 180]
-Path 33: [768, 174], [767, 174], [766, 174], [766, 175], [765.575, 176], [765, 176.545], [764.442, 178], [764, 179], [764, 180], [763.524, 181], [763, 181.458], [763, 182], [763, 183], [763, 184], [763, 185], [763, 186], [762.543, 187], [762, 187.434], [762, 188], [762, 189], [762, 190], [762, 191], [762, 192], [762, 193]
-Path 34: [452, 183], [451, 183], [450, 183], [449.408, 184], [449, 185], [448.201, 186], [447, 186]
-Path 35: [805, 171], [805, 171.509], [805.642, 172], [806, 173.407], [806.727, 174], [807, 175], [807, 175.538], [807.552, 176], [808, 177.412], [809, 178.473], [809.502, 179], [810.414, 180], [811, 181], [811.477, 182], [812, 183], [812.501, 184], [813, 185], [813.528, 186], [814, 187], [814.585, 188], [815.443, 189], [816, 189.567], [816.515, 191], [817, 192], [817.583, 193], [818.447, 194], [819, 194.574], [820, 195.609], [820.594, 197], [821.463, 198], [822, 198.576], [822.444, 200], [823, 200.592], [823.477, 202], [824, 202.494], [824.4, 203], [825, 203.53], [826, 204.566], [826.566, 206], [827.574, 207], [828.537, 208], [829.443, 209], [830, 209.566], [830.572, 211], [831.443, 212], [832, 212.572], [832.447, 214], [833, 214.562], [833.55, 216], [834, 217], [834.56, 218], [835.406, 219], [836, 219.6], [836.513, 221], [837, 222], [837.548, 223], [838.373, 224], [839, 224.577], [839.604, 226], [840.498, 227], [841, 227.597], [841.483, 229], [842, 229.539], [842.532, 231], [843.371, 232], [844, 232.615], [844.503, 234], [845, 235], [845.634, 236], [846.416, 237], [847, 237.604], [847.47, 239], [848, 239.529], [848.577, 241], [849.485, 242], [850, 242.558], [850.54, 244], [851, 245], [851.528, 246], [852.371, 247], [853, 247.604], [853.518, 249], [854.427, 250], [855, 250.555], [855.463, 252], [856, 252.56], [856.41, 254], [857, 254.658], [857.564, 256], [858.486, 257], [859, 257.553], [859.506, 259], [860, 260], [860.588, 261], [861.45, 262], [862, 262.538], [863, 263.627], [863.555, 265], [864.478, 266], [865, 266.543], [865.574, 268], [866.464, 269], [867, 269.56], [868, 270.61], [868.506, 272], [869, 273], [869.575, 274], [870.417, 275], [871, 275.566], [871.586, 277], [872.478, 278], [873, 278.533], [874, 279.593], [874.525, 281], [875.398, 282], [876, 282.596], [876.494, 284], [877, 284.513], [878, 285.573], [878.525, 287], [879.393, 288], [880, 288.587], [880.476, 290], [881, 290.575], [882, 291.606], [882.563, 293], [883.469, 294], [884, 294.56], [884.498, 296], [885, 296.524], [885.584, 298], [886.47, 299], [887, 299.543], [888, 300.578], [888.575, 302], [889, 303], [889.56, 304], [890, 305], [890.515, 306], [891.37, 307], [892, 307.532], [892.547, 309], [893.515, 310], [894, 311], [894.582, 312], [895.484, 313], [896, 313.544], [897, 314.587], [897.56, 316], [898.394, 317], [899, 317.596], [899.4, 319], [900, 319.592], [900.475, 321], [901, 321.531], [902, 322.57], [902.607, 324], [903.512, 325], [904.378, 326], [905, 326.586], [905.466, 328], [906, 328.548], [907, 329.588], [907.587, 331], [908.506, 332], [909.393, 333], [910, 333.623], [910.529, 335], [911.458, 336], [912, 336.552], [913, 337.621], [913.629, 339], [914.552, 340], [915, 341], [915.586, 342], [916.42, 343], [917, 343.559], [917.585, 345], [918.553, 346], [919.459, 347], [920, 347.557], [920.474, 349], [921, 349.565], [921.518, 351], [922.485, 352], [923, 352.472], [923.495, 353], [924, 353.51], [925, 354.546], [926, 355.578], [926.421, 357], [927, 357.582], [927.402, 359], [928, 359.61], [928.423, 361], [929, 361.572], [929.45, 363], [930, 363.543], [930.481, 365], [931, 365.522], [932, 366.566], [932.553, 368], [933.357, 369], [934, 369.6], [934.514, 371], [935.354, 372], [936, 372.592], [936.451, 374], [937, 374.593], [937.46, 376], [938, 376.587], [938.464, 378], [939, 378.564], [939.375, 380], [940, 380.563], [940.324, 382], [941, 382.489], [941, 383]
-Path 36: [445, 189], [445.505, 190], [446, 191], [446, 192], [446, 193], [446, 194], [446, 195], [446, 196]
-Path 37: [762, 198.366], [761, 199.436], [760.488, 200], [760, 201], [760, 202], [760, 203], [760, 203.549], [759.419, 204], [759, 205], [759, 206], [759, 207], [759, 208], [759, 209], [759, 210], [759, 211]
-Path 38: [422, 207], [422.631, 207], [423, 208], [424, 208.534], [424, 210], [424.03, 211], [425, 211]
-Path 39: [433, 218], [432, 218], [431, 218], [430.445, 219], [429.578, 220], [429, 220.279], [429, 221]
-Path 40: [759, 218], [759, 219], [759, 220], [759, 221], [759, 222], [759, 223], [758.518, 224], [758, 224.473], [758, 225], [757.523, 226], [757, 226.61], [756.528, 228], [756, 228.521], [756, 230], [755.437, 231], [755, 232], [755, 233], [755, 234], [754.48, 235], [754, 236], [754, 237], [754, 238], [754, 239], [754, 240], [754, 241], [754, 242], [753.537, 243], [753, 243.526], [753, 245], [753, 246], [753, 247], [753, 248], [753, 249], [753, 250], [752.51, 251], [752, 251.517], [752, 253], [751.561, 254], [751, 254.547], [751, 256], [751, 257], [750.55, 258], [750, 258.48], [750, 259], [750, 260], [749.339, 261], [749, 262], [749, 263], [749, 264], [749, 265], [748.446, 266], [748, 267], [748, 268], [748, 269], [748, 270], [748, 271], [748, 272], [748, 273], [748, 274], [748, 275], [747.515, 276], [747, 276.499], [747, 277], [747, 278], [746.456, 279], [746, 280], [746, 281], [746, 282], [746, 283], [746, 284], [746, 285], [745.44, 286], [744.374, 287]
-Path 41: [422, 230], [421, 230], [420, 230], [420, 231], [420, 232]
-Path 42: [413, 239], [412, 239], [411, 239], [410, 239], [410, 240]
-Path 43: [407, 246], [407.314, 247], [408, 247.209], [408.441, 248], [409, 248]
-Path 44: [404, 260], [403, 260], [402, 260], [401.447, 261], [400.519, 262], [400, 262.54], [399, 263.56], [398.5, 265], [398, 266], [398, 267], [397.47, 268], [397, 269], [396.504, 270], [396, 270.357], [395.631, 271], [395, 271]
-Path 45: [378, 290], [377, 290], [376.42, 291], [376, 292], [376, 293], [376, 294], [375.654, 295], [375, 295]
-Path 46: [745, 289], [744.016, 289], [744, 289.55], [743, 290], [743, 291], [743, 292], [743, 293], [743, 294], [743, 295], [743, 296], [743, 297], [743, 298], [743, 299], [743, 300], [743, 301], [743, 302]
-Path 47: [743, 308], [742, 308], [741.49, 309], [741, 310], [741, 311], [741, 312], [741, 313], [741, 314], [740.314, 315], [740, 316], [739.336, 317], [739, 318], [739, 319], [739, 320], [739, 321], [738.488, 322], [738, 323], [738, 324], [738, 325], [738, 326], [738, 327], [738, 328], [738, 329], [738, 330], [738, 331], [738, 332]
-Path 48: [358, 317], [358.472, 318], [359, 318.322], [359, 319]
-Path 49: [351, 334], [350, 334], [350, 335], [350, 336], [350.524, 337], [351, 338], [351, 339]
-Path 50: [738, 340], [738, 341], [737.457, 342], [737, 343], [737, 344], [736.58, 345], [736, 345.429], [736, 346], [736, 347], [735.491, 348], [735, 349], [734.454, 350], [734, 351], [734, 352], [734, 353], [734, 354], [734, 355], [734, 356], [734, 357], [734, 358], [734, 359], [734, 360], [734, 361], [734, 362], [734, 363], [734, 364], [734, 365], [734, 366]
-Path 51: [336, 352], [336.451, 352.764], [337, 353.078], [337, 354]
-Path 52: [997, 362], [996, 362], [995, 362], [994.324, 363], [993.131, 364], [992, 365], [991, 365.221], [990.217, 366], [989, 366.382], [988.373, 367], [987.25, 368], [986, 369], [985, 369], [984, 370], [983, 370.013], [982.023, 371], [981, 372], [980, 372], [979, 373], [978, 373], [977, 374], [976, 374.024], [975.039, 375], [974, 375.029], [973.052, 376], [972, 377], [971, 377], [970, 378], [969, 378.056], [968.064, 379], [967, 379.225], [966.276, 380], [965, 381], [964, 381], [963, 382], [962, 382.151], [961.183, 383], [960, 384], [959, 384], [958, 385], [957, 385.157], [956.214, 386], [955, 387], [954, 387], [953, 388], [952, 388], [951, 389], [950, 389.023], [949.032, 390], [948, 390.025], [947.059, 391]
-Path 53: [337, 362], [336, 362.058], [335, 363], [334, 363], [333.219, 364], [332.131, 365], [332, 366], [332, 367], [332, 368], [332.497, 369], [333, 369.346], [333, 370]
-Path 54: [734, 372], [734, 373], [733.51, 374], [733, 374.494], [733, 375], [733, 376], [733, 377], [732.499, 378], [732, 379], [732, 380], [732, 381], [732, 382], [732, 383], [732, 384], [731.481, 385], [731, 386], [731, 387], [731, 388], [731, 389], [730.539, 390], [730, 390.528], [730, 392], [730, 393], [730, 394], [730, 395], [729.524, 396], [729, 396.507], [729, 398], [729, 399], [729, 400], [729, 401], [729, 402], [729, 403], [728.47, 404], [728, 405], [728, 406], [728, 407]
-Path 55: [321, 381], [320, 381], [320, 382], [320, 383], [320.475, 384], [321, 384.516], [321, 386], [321, 387]
-Path 56: [945, 392], [944, 393], [943, 394.196], [942, 395], [941, 395.398], [940, 396.215], [939.244, 397], [939, 398], [938, 399], [937, 399], [936, 400], [935, 400.227], [934, 401], [933, 402], [932, 402], [931, 403], [930, 403.275], [929, 404.204], [928, 405], [927, 405], [926.371, 406], [925.109, 407], [924, 408], [923, 408.079], [922.104, 409], [921, 409.379], [920.374, 410], [919.299, 411], [918, 412]
-Path 57: [727, 409], [728, 409], [728, 410], [728, 411], [728, 412], [728, 413], [728.336, 414], [729, 414]
-Path 58: [297, 415], [297.468, 416], [298, 416.466], [298, 417], [298.467, 418], [299, 418.341], [299, 419], [299, 420], [299, 421]
-Path 59: [728, 419], [728, 420], [728, 421], [728, 422], [728, 423]
-Path 60: [916, 413], [915, 414], [914, 414.101], [913, 415], [912, 416], [911, 416.242], [910, 417], [909, 417.294], [908, 418.145], [907, 419], [906, 419.374], [905, 420.266], [904, 421], [903, 421], [902.379, 422], [901.239, 423], [900, 424], [899, 424.239], [898.265, 425], [897.177, 426], [896, 426.314], [895.351, 427], [894.105, 428], [893, 428.205], [892.261, 429], [891.015, 430], [890, 430.331], [889.331, 431], [888.284, 432], [887, 432.405], [886.399, 433], [885.299, 434], [884.133, 435], [883, 435.399], [882.383, 436], [881.336, 437], [880, 437.427], [879.392, 438], [878.308, 439], [877.219, 440], [876, 440.42], [875.446, 441], [874.411, 442], [873.326, 443], [872, 444], [871, 444], [870, 445], [869, 445.202], [868.22, 446], [867, 446.448], [866.376, 447], [865.288, 448], [864, 449], [863, 449.346], [862.338, 450], [861.332, 451], [860.266, 452], [859, 453], [858, 453.292], [857.327, 454], [856.173, 455], [855, 455.372], [854.359, 456], [853.256, 457], [852, 457.3], [851.339, 458], [850, 459], [849, 459.192], [848.227, 460], [847, 460.41], [846.416, 461], [845.328, 462], [844.105, 463], [843, 463.103], [842.183, 464], [841, 465], [840, 466], [839, 466.385], [838.321, 467], [837, 467.476], [836.455, 468], [835.378, 469], [834.288, 470], [833, 470.496], [832.431, 471], [831.369, 472], [830.239, 473], [829, 474], [828, 474.051], [827.069, 475], [826, 476], [825, 476], [824, 477], [823, 477], [822, 478]
-Path 61: [728, 429], [727, 429], [727, 430], [727, 431], [727, 432], [727, 433], [727, 434], [727, 435], [727, 436], [727, 437], [727, 438], [727, 439]
-Path 62: [997, 444], [996, 444], [995, 444], [994.422, 445], [993.411, 446], [992.38, 447], [991.3, 448], [990, 448.498], [989.491, 449], [988.457, 450], [987.425, 451], [986.415, 452], [985.444, 453], [984.535, 454], [984, 454.549], [983, 455.6], [982.455, 457], [981.499, 458], [980.512, 459], [980, 459.466], [979.587, 460], [979, 460.538], [978.521, 462], [978, 462.48], [977.491, 463], [976.436, 464], [976, 465], [975.24, 466], [974, 466.311], [973.335, 467], [972.266, 468], [971.232, 469], [970, 469.438], [969.436, 470], [968.465, 471], [967.427, 472], [966.387, 473], [965.449, 474], [964.433, 475], [963.302, 476], [962.072, 477], [961, 478], [960, 478], [959, 479], [958, 479.172], [957.206, 480], [956, 480.387], [955.363, 481], [954.342, 482], [953.295, 483], [952.278, 484], [951, 484.412], [950.455, 485], [949.403, 486], [948.38, 487], [947.341, 488], [946.256, 489], [945.182, 490], [944, 490.381], [943.336, 491], [942.31, 492], [941.251, 493], [940, 493.371], [939.41, 494], [938.409, 495], [937.393, 496], [936.36, 497], [935.291, 498], [934.246, 499], [933.183, 500], [932, 501], [931, 502], [930, 502.269], [929.229, 503], [928.176, 504], [927, 504.409], [926.43, 505], [925.399, 506], [924.36, 507], [923.338, 508], [922.354, 509], [921, 509.383], [920.374, 510], [920, 511], [919, 512], [918, 512.115], [917.119, 513], [916.117, 514], [915, 514.311], [914.351, 515], [913.29, 516], [912.303, 517], [911, 517.435], [910.461, 518], [909.437, 519], [908.322, 520], [907.239, 521], [906.204, 522], [905, 522.391], [904.427, 523], [903.338, 524], [902.286, 525], [901.064, 526], [900, 526.371], [899.311, 527], [898.317, 528], [897, 528.457], [897, 529], [896.228, 530], [895, 530.334], [894.406, 531], [893.277, 532], [892.17, 533], [891, 534], [890, 535], [889, 535.394], [888.365, 536], [887.325, 537], [886.318, 538], [885.107, 539], [884, 540], [883, 541], [882, 541], [881, 541.4], [880.418, 542], [879.368, 543], [878.332, 544], [877, 544.569], [876, 545.575], [875, 546.505], [874.248, 548], [873, 548.442], [872.481, 549], [871.416, 550], [870.375, 551], [869.406, 552], [868.423, 553], [867.416, 554], [866.399, 555], [865.362, 556], [864.31, 557], [863.295, 558], [862.151, 559], [861, 559.332], [860.337, 560], [859.314, 561], [858.31, 562], [857, 562.384], [856.385, 563], [855.381, 564], [854.397, 565], [853.343, 566], [852.307, 567], [851.29, 568], [850, 568.48], [849.467, 569], [848.44, 570], [847.394, 571], [846.383, 572], [845.32, 573], [844.277, 574], [843.253, 575], [842, 575.435], [841.421, 576], [840.415, 577], [839.404, 578], [838.374, 579], [837.356, 580], [836.345, 581], [835.273, 582], [834.204, 583], [833, 583.382], [832.35, 584], [831.328, 585], [830.296, 586], [829.215, 587], [828, 587.331], [827.327, 588], [826.253, 589], [825.121, 590], [824, 590.323], [823.338, 591], [822.272, 592], [821, 592.496], [820.52, 593], [820, 593.514], [819, 594.484], [818.437, 595], [817.336, 596], [816.282, 597], [815.21, 598], [814, 598.317], [813.397, 599], [812.264, 600], [811, 601], [810, 602], [809, 602]
-Path 63: [275, 455], [275, 456], [275, 457], [275, 458]
-Path 64: [728, 469], [728, 469.715], [729, 470], [729, 471], [729.565, 472], [730.454, 473], [731, 473.472], [731.429, 474], [732, 474.431], [732.438, 475], [733, 475.536], [734, 476.628], [734.507, 478], [735.313, 479], [736, 479.066], [736, 480]
-Path 65: [721, 473.455], [720.483, 474], [720, 475], [720, 476.399], [719.428, 477], [719, 478], [718, 478]
-Path 66: [729, 487], [729, 488], [730, 488], [731, 488], [732, 488]
-Path 67: [715, 497], [714, 497], [714, 498], [713.476, 499], [712.491, 500], [711, 500.568], [710, 502], [709.022, 503], [708, 503.506], [707.501, 505], [707, 505.488], [707, 506], [707, 507], [706.459, 508], [705.556, 509], [705, 509.449], [704.523, 510], [704, 510.605], [703.46, 512], [703, 513], [703, 514], [703, 515], [702.473, 516], [702, 517], [701.597, 518], [701, 518.401], [700.562, 519], [700, 519.532], [699.412, 521], [699, 522], [698.445, 523], [698, 524]
-Path 68: [241, 503], [240, 503.405], [239, 504], [239, 505], [239, 506], [239, 507], [239.124, 508], [240, 508]
-Path 69: [228, 509], [229, 509.504], [230, 510], [231, 510]
-Path 70: [613, 516], [613.679, 517], [614.353, 518], [615, 518.682], [615.448, 520], [616, 520.439], [616.364, 521], [617, 521.464], [617, 522]
-Path 71: [233, 516], [232, 516.213], [231, 517], [230, 517], [230, 518], [230, 519]
-Path 72: [635, 519], [636, 519.308], [636.157, 520], [637, 520], [638, 520]
-Path 73: [225, 528], [225, 529], [225.353, 530], [226, 530.391], [226, 531]
-Path 74: [214, 543], [214.456, 544], [215, 544.527], [216, 545.439], [216, 546], [216.497, 547], [217, 547.52], [217.224, 549], [218, 549.177], [218, 550]
-Path 75: [695, 539], [694, 539], [693.456, 539], [693, 540], [693, 541], [693, 542], [692.515, 543], [692, 544], [692, 545], [692, 546], [692, 547], [691.555, 548], [691, 548.506], [691, 550], [691, 551], [691, 552], [691, 553], [691.527, 554]
-Path 76: [559, 557], [559, 558], [559.487, 559], [560, 559.546], [560.113, 561], [561, 561]
-Path 77: [208, 565], [208.47, 566], [209, 566.389], [209, 567], [209, 568]
-Path 78: [784, 583], [785, 583], [786, 583], [787, 583.415], [788, 584.483], [789, 585.448], [790, 586], [791.477, 586], [792, 586.534], [793, 587], [794, 587], [795, 587], [796, 587], [797.469, 587], [798.475, 588], [799, 589], [799.567, 590], [800, 591], [800.572, 592], [801.448, 593], [802, 593.611], [802.541, 595], [803.463, 596], [804, 596.54], [805, 597.532], [806, 598.538]
-Path 79: [780, 585], [779.489, 585], [779, 586], [779, 587], [779, 588], [779, 589], [778.507, 590], [778, 591], [777.58, 592], [777, 592.634], [776.418, 594], [775.491, 595], [774.519, 596], [774, 596.562], [773, 597.566], [772, 598.514], [771, 599.482], [771, 600], [770.462, 601], [769.484, 602], [768.471, 603], [767.447, 604], [766.46, 605], [765.492, 606], [764.507, 607], [764, 607.562], [763, 608.59], [762, 609.569], [761, 610.527], [760.342, 612], [759, 612.42], [758.429, 613], [757.356, 614], [756.075, 615]
-Path 80: [542, 598], [541, 598], [540, 598], [539.421, 599], [538.344, 600], [537.223, 601], [537, 602]
-Path 81: [546, 593], [546.431, 594], [547, 595.301], [548, 596.374], [548.614, 597], [549, 597.526], [549.502, 598], [550.386, 599], [551, 600.419], [552, 601], [552.498, 602], [553, 602.476], [553.377, 603], [554, 603.599], [554, 605], [554.48, 606], [555, 606.475], [555, 607], [555.651, 608], [556.542, 609], [557.464, 610], [558, 610.537], [559, 611.568], [559.608, 613], [560, 614], [560.584, 615], [561.548, 616], [562.521, 617], [563.515, 618], [564.398, 619], [565, 619.653], [565.543, 621], [566.464, 622], [567, 622.555], [568, 623.593], [568.652, 625], [569.591, 626], [570.501, 627], [571.369, 628], [572, 628.53], [572.662, 630], [574, 630.673], [575, 631.644], [575.205, 633], [576, 633]
-Path 82: [797, 599], [797, 600], [797, 601], [797.485, 602], [798, 602.57], [798.402, 604], [799, 604.616], [799.431, 606], [800, 606.637], [800.417, 608], [801, 608.635], [801, 610], [801.597, 611], [802, 612], [802.501, 613], [803, 614], [803.428, 615], [804, 615.618], [804, 617], [804.648, 618], [805, 619]
-Path 83: [713, 598], [713.515, 598], [714, 598.573], [714.596, 599], [715.454, 600], [716.287, 601], [717, 602], [717, 602.628], [718, 603], [718.454, 604], [719, 604.489], [719, 605], [719.418, 606], [720, 606], [721, 606], [722, 607], [722.571, 608], [724, 608.455], [724.468, 609], [725, 609.437], [725.588, 610], [727, 610.601], [728, 611], [729, 611.545], [730, 612], [731, 612], [732, 612.477], [732.471, 613], [733, 613.435], [733.497, 614], [734, 614.458], [734, 615]
-Path 84: [809, 604], [809, 605], [809.609, 606], [810, 607], [810.512, 608], [811, 609], [811.482, 610], [812, 610.546], [812.457, 612], [813, 612.562], [813.432, 614], [814, 614.584], [814, 616], [814.526, 617], [815, 618], [815.506, 619], [816, 620], [816.488, 621], [817, 621.571], [817.46, 623], [818, 623.606], [818, 625], [818.574, 626], [819, 627], [819.553, 628], [820, 629], [820.521, 630], [821, 631], [821.491, 632], [822, 632.571], [822.461, 634], [823, 634.562], [823.459, 636], [824, 636.566], [824.433, 638], [825, 638.552], [825.446, 640], [826, 640.568], [826.422, 642], [827, 642.592], [827.397, 644], [828, 644.586], [828, 646], [828.538, 647], [829, 648], [829.523, 649], [830, 650], [830.554, 651], [831, 652], [831.531, 653], [832.402, 654], [833, 654.583], [833.451, 656], [834, 656.598], [834.415, 658], [835, 658.543], [835.495, 660], [836, 660.558], [836.477, 662], [837, 662.571], [837.442, 664], [838, 664.521], [838.487, 666], [839, 666.514], [840, 667.561], [840.484, 669], [841, 669.493], [841, 670], [841, 671]
-Path 85: [789, 604], [788, 604], [787, 605], [786, 605], [785, 606], [784, 606], [783, 607], [782, 607], [781, 608], [780, 608], [779, 609], [778, 609]
-Path 86: [775, 609], [774, 609], [773, 610], [773, 611], [774, 612]
-Path 87: [535, 603], [534.268, 603], [534, 604.011], [533, 605], [532, 605.013], [531, 606.147], [530, 607.244], [529, 608], [528, 608.374], [527, 609.348], [526, 610.33], [525, 611.279], [524, 612.219], [523, 613.134], [522, 614], [521, 614], [520.305, 615], [519.28, 616], [518.285, 617], [517.249, 618], [516.241, 619], [515, 619.267], [514.312, 620], [513.253, 621], [513, 622], [512, 623], [511, 623.142], [510.15, 624], [509, 624.329], [508.341, 625], [507.313, 626], [506.348, 627], [505.314, 628], [504.316, 629], [503.244, 630], [502, 630.239], [501.265, 631], [500.196, 632], [499.238, 633], [498.222, 634], [497, 634.32], [496.331, 635], [495.302, 636], [494.239, 637], [493.159, 638], [492.142, 639], [491, 639.296], [490.277, 640], [489.248, 641], [488.147, 642], [487, 642.245], [486.324, 643], [485.263, 644], [484.218, 645], [483.167, 646], [482, 646.24], [481.409, 647], [480.32, 648], [479.275, 649], [478.295, 650], [477.194, 651], [476.098, 652], [475, 652.251], [474.262, 653], [473.193, 654], [472.158, 655], [471, 655.302], [470.32, 656], [469.331, 657], [468.338, 658], [467.253, 659], [466.195, 660], [465.108, 661], [464, 661.266], [463.248, 662], [462.248, 663], [461.222, 664], [460.159, 665], [459.159, 666], [458, 666.16], [457.235, 667], [456.18, 668], [455, 668.32], [454.304, 669], [453.274, 670], [452.211, 671], [451.227, 672], [450.17, 673], [449, 673.272], [448.385, 674], [447.34, 675], [446.347, 676], [445.151, 677], [444.127, 678], [443.067, 679], [442, 680], [441, 680.104], [440.153, 681], [439.088, 682], [438.037, 683], [437, 683.269], [436.267, 684], [435.232, 685], [434.088, 686], [433, 686.277], [432.335, 687], [431.268, 688], [430.199, 689], [429.154, 690], [428, 690.2], [427.217, 691], [426.14, 692], [425, 692.307], [424.532, 693], [424, 693.253], [423.485, 694], [423, 695], [422, 696], [421.104, 697], [420, 697], [419, 698]
-Path 88: [775, 616], [776, 617], [776.409, 618], [777, 618.57], [777.258, 620], [778, 620.605], [778, 622], [778.479, 623], [779, 623.608], [779.436, 625], [780, 625.622], [780, 627], [780.551, 628], [781, 629], [781.491, 630], [782, 630.459], [782, 631]
-Path 89: [750, 617], [750, 617.915], [751, 618], [751.544, 619], [752.545, 620], [754, 620.586], [755, 621.459], [755.54, 622], [757, 622.494], [757.475, 623], [758, 623], [759, 623.518], [760, 624], [761, 624]
-Path 90: [767, 619], [767, 619.815], [767.662, 620], [768, 620.539], [769, 621], [769.475, 622], [770, 622], [771, 622], [772, 622.755], [772.643, 624], [773.364, 625], [774, 625.623]
-Path 91: [806.094, 622], [807, 623], [807, 624], [807.645, 625], [808, 626], [808.611, 627], [809, 628], [809.533, 629], [810, 630], [810.409, 631], [811, 631.609], [811, 633], [811.658, 634], [812, 635], [812.621, 636], [813, 637]
-Path 92: [542, 621], [542, 621.502], [542.586, 622], [543, 623], [543, 623.551], [543.598, 624], [544, 625], [545, 625.42], [545.543, 626], [546, 627], [547, 628], [547.417, 629], [548, 629.582], [548.53, 631], [549, 632], [549.635, 633]
-Path 93: [540, 623], [539, 623], [538, 623.294], [537, 624.256], [536, 625.15], [535, 626], [534, 627], [533, 628], [532, 628], [531, 628], [530.31, 629], [530, 630], [529, 631], [528, 631.189], [527.223, 632], [526.167, 633], [525.152, 634], [524, 634.287], [523.289, 635], [522.252, 636], [521.223, 637], [520, 637.351], [519.406, 638], [518.372, 639], [518, 640], [517.152, 641], [516, 641.233], [515.319, 642], [514.286, 643], [513.104, 644], [512.132, 645], [511, 645.198], [511, 646]
-Path 94: [773, 629], [773, 630], [773.582, 631], [774, 632], [774.508, 633], [775, 634], [775.458, 635], [776, 635.569], [776, 637], [776, 638], [776.51, 639], [777, 640], [777.463, 641], [778, 641.436], [778.545, 642], [779.535, 643], [780, 644], [780, 645], [780.581, 646], [781, 647], [781.541, 648], [782, 649], [782.496, 650], [783, 650.575], [783.465, 652], [784, 652.578], [784, 654], [784.487, 655], [785, 655.478], [785, 656], [785.335, 657], [786, 657.494], [786, 658], [786, 659], [786.513, 660], [787, 661], [788, 662], [788, 663]
-Path 95: [535, 614], [533.579, 615], [532.582, 616], [531.513, 617], [531, 617.582], [530, 618.433], [529, 619.233], [527.621, 620], [526.583, 621], [525.552, 622], [525, 622.564], [524, 623.45], [523, 624.331], [521.683, 625], [520.578, 626], [519.592, 627], [519, 628], [518, 629], [517, 629.405], [515.65, 630], [514.593, 631], [513.614, 632], [513, 633], [512, 633.555], [511, 634.201], [511, 635]
-Path 96: [581, 634], [580, 634], [579.3, 635], [578, 635.216], [577.488, 636], [576, 637]
-Path 97: [784, 635], [784, 636], [784.545, 637], [785, 638], [785.475, 639], [786, 639.538], [786.498, 641], [787, 641.542], [787.481, 643], [788, 643.594], [788, 645], [788.583, 646], [789, 647], [789.508, 648], [790, 649]
-Path 98: [168, 638], [169, 638.61], [169.393, 640], [170, 640.502], [170.203, 642], [171, 642]
-Path 99: [814, 639], [814.261, 640], [815, 640.42], [815, 641], [815, 642], [815.538, 643], [816, 644], [816.598, 645], [817, 646], [817.575, 647], [818, 648], [818.463, 649], [819, 649.574], [819.471, 651], [820, 651.573], [820.458, 653], [821, 653.613], [821.502, 655], [822, 656], [823, 657], [823, 658], [824, 659], [824, 660], [824.396, 661], [825, 661.622], [825.391, 663], [826, 663.659], [826.496, 665], [827, 665.57], [827.468, 667], [828, 667.575], [828.43, 669], [829, 669.594], [829.488, 671], [830, 671.569], [830.507, 673], [831, 674], [831.56, 675], [832, 676], [832.505, 677], [833, 678], [833, 679], [833.814, 680]
-Path 100: [573, 640], [572, 640], [571.504, 641], [571, 641.323], [570.498, 642], [569.466, 643], [568.475, 644], [567.432, 645], [567, 646], [566.26, 647], [565.174, 648], [564, 648.349], [563.322, 649], [562.208, 650], [561, 650.318], [560.332, 651], [559.208, 652], [558, 652.501], [557, 653.464], [556.5, 654], [556, 654.408], [555.445, 655], [554.407, 656], [553.353, 657], [552.174, 658], [551, 658.281], [550.287, 659], [549, 660], [548, 660.292], [547.292, 661], [546, 661.509], [545, 662.506], [544, 663.502], [543, 664.514], [542, 665.533], [541, 666.552], [540, 667.586], [539.478, 669], [539, 670], [538.462, 671], [538, 672], [537.428, 673], [536.577, 674], [536, 674]
-Path 101: [171, 651], [170, 651], [169, 651.415], [169, 652], [169, 653], [168.07, 654], [168.049, 654.951], [168, 656], [168, 657], [168, 658]
-Path 102: [546, 661], [545.49, 662], [544.494, 663], [543.497, 664], [542.5, 665]
-Path 103: [167, 662], [166, 662], [165.356, 662], [165, 663], [164.423, 663.423]
-Path 104: [785, 666], [784, 666], [783.51, 667], [783, 667.547], [782.519, 669], [782, 669.534], [781.504, 671], [781, 671.506], [780.521, 673], [780, 673.517], [780, 675]
-Path 105: [416, 668], [416, 668.59], [416.722, 669], [417, 670], [418, 670.624], [419, 671.537], [419.575, 673], [420.513, 674], [421.475, 675], [422, 675.606], [422.519, 677], [423, 678], [423.508, 679], [424, 680], [424, 681], [424, 682]
-Path 106: [842, 679], [842, 680], [842.544, 681], [843.103, 682], [844, 682.846]
-Path 107: [537, 681], [536, 681], [535.5, 682], [535, 682.511], [534.446, 684], [533, 684.541], [532, 685.423], [531.608, 686], [531, 686], [530, 687]
-Path 108: [780, 677], [780.427, 678], [781, 679], [781.49, 680], [782, 681], [782, 681.51], [783, 682], [783.492, 683], [784, 683.556], [785, 684.565], [786, 685.591], [786.504, 687], [787.402, 688], [788, 688.516], [788.455, 690], [789, 690.168], [789, 691]
-Path 109: [481, 681], [480, 681.353], [479, 682.245], [478, 683.144], [477, 684.082], [476, 685], [475, 685.397], [474, 686], [473.291, 687], [472.184, 688], [471.049, 689], [470, 689.278], [469.259, 690], [468.249, 691], [467.195, 692], [466.158, 693], [465, 693.372], [464.375, 694], [463, 694.642], [462.188, 696], [461.106, 697], [460.136, 698], [459, 698.265], [458.298, 699], [457.197, 700], [456.158, 701], [455.147, 702], [454, 702.335], [453.362, 703], [452.337, 704], [451.289, 705], [450.171, 706], [449.082, 707], [448, 707.266], [447.259, 708], [446.263, 709], [445.211, 710], [444, 710.232], [444, 711]
-Path 110: [407, 687], [407, 688], [408, 688.468], [408, 689], [408, 690], [408.246, 691], [409, 691]
-Path 111: [394, 692], [394, 693], [394.626, 694], [395, 695], [395.46, 696], [396, 696.299], [396, 697]
-Path 112: [848, 693], [847, 693.453], [846, 694.448], [845, 695], [844.387, 696], [843.366, 697], [842.307, 698], [841.203, 699], [840, 699.381], [839.397, 700], [838.368, 701], [837.345, 702], [836.28, 703], [835.336, 704], [834, 704.587], [833.081, 706], [832, 707], [831, 707.161], [830.19, 708], [829, 708.4], [828.402, 709], [827.418, 710], [826.469, 711], [825.345, 712], [824.134, 713], [823, 714], [822, 714.349], [821.456, 715], [821, 716]
-Path 113: [490, 688], [489, 689], [488, 689], [487, 689.481], [486, 690.444], [485, 691.361], [483.578, 692], [483, 693.297], [482, 694], [481.492, 694], [481, 694.553], [480.429, 695], [480, 695.502], [479, 696], [478.459, 697], [477.406, 698], [476.351, 699], [475.316, 700], [474, 700.466], [473.45, 701], [472.398, 702], [471.36, 703]
-Path 114: [520, 694.175], [519, 695], [518, 695], [517, 695.377], [516, 696], [515.275, 697]
-Path 115: [416, 700], [417, 700.621], [418, 701.587], [418.401, 703], [419, 703.518], [419.601, 705], [420.447, 706], [421, 706.609], [421.582, 708], [422.462, 709], [423, 709.538], [423.559, 711], [424.516, 712], [425.51, 713], [426.467, 714], [427, 714.544], [427.548, 716], [428, 717], [428.498, 718], [429, 718.482], [429, 719], [429, 720]
-Path 116: [801, 692], [801, 693], [802, 694], [803, 695], [803, 696], [804, 697], [804.418, 698], [805, 699.469], [805.514, 700], [806, 701], [806, 702], [806.58, 703], [807, 704], [807, 705], [807.466, 706], [808, 706.575], [808.558, 708], [809.555, 709], [810.489, 710], [811, 710.57], [811.533, 712], [812, 713], [812.474, 714], [813, 714.46], [813, 715], [813.486, 716], [814, 716.473], [814, 717], [814.574, 718], [815.502, 719], [816, 720], [816.62, 721], [817.5, 722], [818, 723], [818.549, 724], [819.434, 725], [820, 725.556], [820.531, 727], [821.487, 728], [822, 728.589], [822.564, 730], [823.502, 731], [824.482, 732], [825, 732.43], [825.556, 733], [827, 733.537], [828, 734.475], [828.447, 735], [829, 735.575], [829, 737], [829.582, 738], [830, 739], [830, 740], [830, 741], [830.587, 742], [831.437, 743], [832, 743.588], [833, 744.611], [833, 746], [833.482, 747], [834, 747.501], [834, 749], [834, 750], [834, 751], [834.598, 752], [835.562, 753], [836.554, 754], [837.533, 755], [838.452, 756], [839, 756.564], [839.451, 758], [840, 758.575], [840.486, 760], [841, 760.503], [842, 761.518], [843, 762.55], [843, 764], [843, 765], [843, 766], [843, 767], [843.578, 768], [844.413, 769], [845, 769.567], [845.444, 771], [846, 771.535], [846, 773], [846.498, 774], [847, 774.55], [847.525, 776], [848, 777], [848.587, 778], [849.463, 779], [850, 779.496], [850, 780], [850.556, 781], [851.528, 782], [852, 783], [852.577, 784], [853.418, 785], [854, 785.522], [854.493, 787], [855, 787.446], [855.395, 788], [856, 788.52], [856.44, 790], [857, 790.544], [857.472, 792], [858, 792.584], [858, 794], [858.586, 795], [859.546, 796], [860.386, 797], [861, 797.551], [862, 798.584], [863, 799.643], [863, 801], [863.448, 802], [864, 802], [865, 802]
-Path 117: [142, 710], [142.371, 711], [143, 711.598], [144, 712.525], [145, 713.373], [145, 714], [145.377, 715], [146, 715]
-Path 118: [347, 714], [348, 714], [348, 715], [348, 716], [348, 717]
-Path 119: [997, 714], [996, 714], [995, 714], [994.443, 715], [993.363, 716], [992, 716.605], [991, 717.583], [990, 718.514], [989, 719.453], [988.464, 720], [987.418, 721], [986.398, 722], [985.388, 723], [984, 723.58], [983, 724.544], [982, 725.525], [981, 726.51], [980, 727.458], [979.432, 728], [978.321, 729], [977, 729.486], [976.479, 730], [975.412, 731], [974.379, 732], [973, 732.644], [972, 733.614], [971, 734.559], [970, 735.523], [969, 736.503], [968, 737.487], [967.489, 738], [966.449, 739], [965, 739.631], [964, 740.587], [963, 741.554], [962, 742.546], [961, 743.515], [960, 744.473], [959.438, 745], [958.416, 746], [957.397, 747], [956.409, 748], [955.432, 749], [954.443, 750], [953.458, 751], [952.464, 752], [951.464, 753], [950.439, 754], [949.417, 755], [948.4, 756], [947, 756.622], [946, 757.576], [945, 758.537], [944, 759.493], [943.481, 760], [942.419, 761], [941, 761.616], [940, 762.639], [939, 763.628], [938, 764.595], [937, 765.558], [936, 766.534], [935, 767.536], [934, 768.516], [933, 769.471], [932.454, 770], [931.439, 771], [930.455, 772], [929.456, 773], [928.44, 774], [927.424, 775], [926.418, 776], [925.432, 777], [924.43, 778], [923.385, 779], [922, 779.598], [921, 780.578], [920, 781.549], [919, 782.485], [918.462, 783], [917.419, 784], [916.315, 785], [915, 785.536], [914, 786.5], [913, 787.488], [912.447, 788], [911.425, 789], [910, 789.577], [909, 790.524], [908, 791.461], [907.435, 792], [906.335, 793], [905.123, 794], [904, 794.418], [903.401, 795], [902.339, 796], [901, 796.507], [900, 797.417], [899.416, 798], [898.3, 799], [897.093, 800], [896, 800.239], [895.274, 801], [894, 802], [893, 802.329], [892.333, 803], [891.144, 804], [890, 804.251], [889.311, 805], [888, 806], [887, 806.057], [886.062, 807], [885, 808], [884, 808.17], [883.192, 809], [882, 809.294], [881.305, 810], [880, 811], [879, 811], [878, 812], [877, 812.053], [876.089, 813], [875, 813.012], [874.018, 814], [873, 815]
-Path 120: [146, 719], [145, 719], [144, 719], [143, 719], [142.512, 720], [142, 720.51], [142, 722], [141.451, 723], [140.619, 724], [140, 724.456], [139.606, 725], [139, 725.151], [139, 726]
-Path 121: [137, 726], [137, 727], [137.509, 728], [138, 729], [138.108, 730], [139, 730]
-Path 122: [483, 731], [483, 732], [483.513, 733], [484, 734], [484, 735], [484.448, 736], [485, 736.266], [485, 737]
-Path 123: [971, 727], [970, 728], [969, 729], [968, 730], [967, 731], [966, 732], [965, 732], [964.238, 733], [963.239, 734], [962.239, 735], [961.157, 736], [960.089, 737], [959, 738], [958, 739]
-Path 124: [423, 733], [422, 733.261], [421, 734.1], [420, 735], [419, 735.175], [418, 736.215], [417, 737], [416.206, 738], [415, 738.416], [414.4, 739], [413.301, 740], [412.055, 741], [411, 741.165], [410.212, 742], [409, 743], [408, 743.29], [407.312, 744], [406, 744.501], [405.426, 746], [404.458, 747], [403.499, 748], [402.454, 749], [401.404, 750], [400.357, 751], [399.303, 752], [398, 752.395], [397.425, 753], [396.444, 754], [395.448, 755], [394.455, 756], [394, 757], [394, 758]
-Path 125: [137, 739], [136.456, 739], [135.552, 740], [135, 740.72], [134.384, 741], [134, 742], [133.467, 743], [133, 744], [133, 745], [133, 746], [133.357, 747], [134, 747]
-Path 126: [993, 740], [992, 740.478], [991, 741.472], [989.519, 742], [989, 743], [988.363, 744], [987, 744.538], [986, 745.507], [985, 746.452], [984.439, 747], [983.361, 748], [982.218, 749], [981.08, 750], [980, 750.342], [979.368, 751], [978.295, 752], [977, 752.474], [976.455, 753], [975.455, 754], [974.436, 755], [973.394, 756], [972.181, 757], [971.086, 758], [970, 758.435], [969.448, 759], [968.49, 760], [967.517, 761], [967, 761.558], [966, 762.56], [965, 763.557], [964, 764.557], [963, 765.553], [962, 766.546], [961, 767.53], [960, 768.473], [959.506, 769], [959, 769.418], [958.446, 770], [957.411, 771], [956.395, 772], [955.411, 773], [954.477, 774], [953.479, 775], [952.458, 776], [951.406, 777], [950.376, 778], [949.367, 779], [948.349, 780], [947, 780.457], [946.482, 781], [945.439, 782], [944.432, 783], [943.392, 784], [942.374, 785], [941.358, 786], [940, 786.46], [939.437, 787], [938.43, 788], [937.424, 789], [936.43, 790], [935.396, 791], [934.312, 792], [933.29, 793], [932, 793.504], [931, 794.422], [930.433, 795], [929.393, 796], [928.322, 797], [927.283, 798], [926, 798.431], [925.41, 799], [924.359, 800], [923.334, 801], [922.304, 802], [921, 802.422], [920.396, 803], [919.226, 804], [918, 805], [917.095, 806], [916, 806.4], [915.387, 807], [914.332, 808], [913.327, 809], [912.342, 810], [911, 810.494], [910.404, 811], [909.436, 812], [908.468, 813], [907.435, 814], [906.419, 815], [905.41, 816], [904.403, 817], [903.41, 818], [902.393, 819], [901.363, 820], [900.33, 821], [899, 821.494], [898.475, 822], [897.434, 823], [896.431, 824], [895.417, 825], [894.398, 826], [893.372, 827], [892.334, 828], [891.275, 829], [890.231, 830], [889, 830.347], [888.366, 831], [887.293, 832], [886.173, 833], [885, 833.299], [884.304, 834], [883.216, 835], [882, 835.221], [881.29, 836], [880, 837], [879, 837.259], [878.263, 838], [877.241, 839], [876, 839.4], [875.373, 840], [874.264, 841], [873.214, 842], [872.235, 843], [871, 843.456], [870.459, 844], [869.459, 845], [868.467, 846], [867.424, 847], [866.355, 848], [865.32, 849], [864, 849.397], [863.443, 850], [862.305, 851], [861.116, 852], [860, 852.324], [859.324, 853], [858.21, 854], [857, 854.362], [856.367, 855], [855.331, 856], [854, 856.482], [853.491, 857], [852.462, 858], [851.419, 859], [850.338, 860], [849.128, 861], [848, 861.329], [847.363, 862], [846.16, 863], [845, 863.376], [844.386, 864], [843.363, 865], [842, 865.12], [842, 866]
-Path 127: [406, 746], [405, 746.57], [404, 747.552], [403, 748.474]
-Path 128: [464, 741], [463, 741.377], [461.558, 742], [461, 742.59], [460.458, 743], [460, 744], [459, 745], [458, 745.204], [457, 746.179], [456, 747], [455, 747]
-Path 129: [148, 745], [147.484, 745], [147, 746], [146.517, 747], [146, 748], [145.537, 749], [145, 749.559], [144.531, 751], [144, 751.406], [144, 752], [144, 753], [143.382, 754], [143, 755], [142.501, 756], [142, 756.594], [142, 758], [141.545, 759], [141, 759.542], [141, 761], [140.594, 762], [140, 762.506], [140, 764], [139.495, 765], [139, 766], [138.492, 767], [138, 768], [137.539, 769], [137, 769.563], [137, 771], [137, 772], [137, 773], [137, 774], [137, 775], [137, 776], [136.415, 777], [136, 778], [136, 779], [135.508, 780], [135, 780.497], [135, 781], [135, 782], [134.407, 783], [134, 784], [133.481, 785], [133, 786], [132.353, 787], [132, 788], [132, 789], [131.488, 790], [130.761, 791], [130, 791], [129, 792]
-Path 130: [292.713, 742], [292, 743], [292, 743.776], [291, 744.497], [290, 745], [289, 746], [288, 746.439], [287, 747.473], [286, 748.431], [285, 749.368], [284.424, 750], [283.63, 751], [283, 752], [283, 753], [282, 754], [282, 754.716], [281, 755]
-Path 131: [996, 752], [995, 752.085], [994, 753], [993, 754], [992, 754.278], [991, 755], [990, 755], [989.4, 756], [988, 756.61], [987.289, 758], [986.242, 759], [985, 759.378], [984.414, 760], [983.327, 761], [982.242, 762], [981, 762.377], [980.372, 763], [979.296, 764], [978.236, 765], [977.147, 766], [976, 766.35], [975.343, 767], [974.333, 768], [973, 768.516], [972, 769.455], [971.478, 770], [970.413, 771], [969.358, 772], [968.32, 773], [967.295, 774], [966, 774.517], [965, 775.542], [964, 776.513], [963, 777.461], [962.536, 778], [962, 778.351], [961.411, 779], [960, 779.584], [959, 781], [958, 782], [957.186, 783], [956, 783.659], [955.249, 785], [954.338, 786], [953.406, 787], [952.239, 788], [951.4, 789], [950.561, 790], [950, 790.399], [949.535, 791], [949, 791.342], [949, 792], [948, 793], [948, 794]
-Path 132: [950, 747], [949, 747.06], [948, 748], [947, 748.335], [946, 749.373], [945, 750.345], [944, 751.308], [943, 752.275], [942, 753.306], [941, 754.257], [940, 755.142], [939, 756.038], [938, 757], [937, 757], [936.271, 758], [935.236, 759], [934.26, 760], [933.25, 761], [932, 761.427], [931.533, 762], [931, 762.444], [931, 763], [930.199, 764], [929.191, 765], [928.114, 766], [927.076, 767], [926.024, 768], [925, 768.243], [924.338, 769]
-Path 133: [821, 752], [822, 752.345], [822.794, 753], [823, 753.711], [824, 754], [824.575, 754], [825, 754.601], [826, 755.465], [827, 756.41], [828.378, 757], [829, 757.663], [830, 758], [830.412, 759], [831, 759.076], [831, 760]
-Path 134: [270, 760], [270.512, 761], [271, 762], [271.333, 763], [272, 763.32], [272, 764], [272, 765]
-Path 135: [396, 759.432], [396.547, 760], [397, 761], [397, 762], [397, 763.483], [397.581, 764], [398, 765], [398, 765.505], [399, 766], [400, 766.589], [401, 767.491], [401.456, 768], [402, 768.482], [402.522, 769], [404, 769.578], [405, 770], [406, 770.503], [407, 771.469], [407.491, 772], [408, 772.485], [408.483, 773], [409, 773.511], [410, 774.519], [411, 775.496], [411.363, 776], [412, 776.419], [412, 777]
-Path 136: [527, 759], [526, 759.397], [525, 760.388], [524, 761.304], [522.513, 762], [522, 762.517], [521, 763.392], [520, 764.242], [518.515, 765], [518, 765.515], [517, 766], [516.395, 767], [515.304, 768], [514, 768.536], [513, 769.524], [512, 770.526], [511, 771.502], [510, 772.46], [509.453, 773], [508, 773.607], [507, 774.543], [506, 775.502], [505, 776.422], [504.416, 777], [503.327, 778], [502, 778]
-Path 137: [997, 766], [996, 766], [995, 766], [994.394, 767], [993.357, 768], [992.298, 769], [991, 769.42], [990.414, 770], [989.357, 771], [988.301, 772], [987, 772.418], [986.456, 773], [985.421, 774], [984.394, 775], [983.362, 776], [982.308, 777], [981, 777.419], [980.424, 778], [979.386, 779], [978.339, 780], [977.226, 781], [976, 781.38], [975.394, 782], [974.321, 783], [973.248, 784], [972, 784.418], [971.41, 785], [970.348, 786], [969.287, 787], [968, 787.432], [967.42, 788], [966.388, 789], [965.377, 790], [964.353, 791], [963, 791.432], [962.49, 792], [961.578, 793], [961, 793.623], [960, 794.442], [960, 795]
-Path 138: [448.464, 758], [449, 758.572], [449.646, 759], [450, 759.607], [450.586, 760], [451.412, 761], [452, 762.367], [453, 763], [454, 763], [455.073, 764], [456, 765.275], [456.849, 766], [457, 767], [457.489, 768], [458, 768.576], [459, 769.559], [460, 770.541], [461, 771.633], [461, 773]
-Path 139: [443, 775], [442, 775.469], [441.423, 776], [440, 776.653], [439, 777.579], [438, 778.496], [437.44, 779], [436.429, 780], [435, 780.638], [434, 781.654], [433, 782.553], [432, 784]
-Path 140: [761, 773], [761, 773.915], [761.542, 774], [762, 774.52], [763, 775], [764, 775.485], [764.54, 776], [765.538, 777], [766.487, 778], [767, 778.495], [767.502, 779], [769, 779.549], [770, 780.171], [770, 781]
-Path 141: [689, 772], [688, 772.174], [687, 773], [686, 773.317], [685, 774.289], [684, 775.311], [683, 776], [682.285, 777], [681.309, 778], [680, 778.568], [679.445, 780], [678.42, 781], [677.368, 782], [676.358, 783], [675.357, 784], [674.343, 785], [673.328, 786], [672, 786.277], [671.364, 787], [670.022, 788], [669, 789], [668, 789], [667, 790], [666, 791], [665, 792], [664, 792], [663, 792.275], [662.273, 793], [661.298, 794], [660, 794.489], [659.491, 795], [658.513, 796], [658, 796.54], [657, 797.497], [656.566, 798], [656, 798.45], [655.516, 799], [655, 799.342], [655, 800], [654, 801]
-Path 142: [831, 762], [831, 763], [831, 764.363], [831.568, 765], [832, 765.516], [833, 766], [833.699, 766], [834.444, 767], [835, 768], [835, 769], [835, 770.417], [835.539, 771], [836, 772.432], [837, 773.435], [838.312, 774], [839, 774.898], [839.669, 775], [840, 776], [840.359, 777], [841, 777]
-Path 143: [550, 778], [549, 778], [548.537, 779], [548, 779.554], [547, 780.541], [546, 781.578], [545, 782.644], [544, 783.573], [543, 784.572], [542, 785.524], [541, 786.51], [540, 787.479], [539.406, 788], [539, 789]
-Path 144: [523, 774], [522, 774], [521.36, 774], [521, 775], [520, 776], [519, 777], [518, 778], [517, 778], [516, 778.3], [515, 779], [514.268, 780], [513.272, 781], [512.292, 782], [511, 782.362], [511, 783], [510.175, 784], [509.15, 785], [508, 785.072], [507.381, 786], [506, 786]
-Path 145: [464, 781], [463, 781], [462, 781], [462, 782], [461.426, 783], [461, 784], [461, 785], [461, 786], [461, 787], [461, 788], [461, 789], [461.557, 790], [462.496, 791], [463, 791], [464, 791], [465, 791.545], [466, 792], [467, 792.598], [468, 793], [469, 793]
-Path 146: [116, 782], [116.564, 783], [117.382, 784], [118, 784.55], [119, 785], [120, 785.528], [121, 786.492], [121.19, 787], [122, 787]
-Path 147: [497, 778], [497.642, 778], [498, 778.62], [498.546, 779], [499.406, 780], [500, 781.498], [501, 782], [501.611, 783], [502.602, 784], [503.503, 785], [505, 785.249], [505.331, 786], [506, 786]
-Path 148: [752, 778], [751, 778.348], [750, 779.139], [749, 780], [748, 780.392], [747, 781.365], [746, 782], [745, 782], [744.472, 783], [743.421, 784], [742.343, 785], [741.278, 786], [740, 786.495], [739.505, 787], [739, 787.49], [738.475, 788], [737.43, 789], [736.35, 790], [735.286, 791], [734.22, 792], [733, 792.481], [732.468, 793], [731.457, 794], [730.424, 795], [729.349, 796], [728, 797], [727, 797], [726, 798], [725, 799], [724, 799.157], [723.064, 800], [722, 800.689], [721, 801.646], [720, 802.607], [719, 803.585], [718, 804.517], [717, 805.403], [716.399, 806], [715.307, 807], [714.263, 808], [713, 808.427], [712.414, 809], [711.36, 810], [710.24, 811], [709, 811.387], [708.369, 812], [707.317, 813], [706, 813.549], [705, 814.521], [704, 815.491], [703.604, 816], [703, 816.504], [702, 817.614], [701, 818.527], [700, 819.001], [699.001, 820], [698, 821], [697, 822], [696, 822.45], [695.404, 823], [694.338, 824], [693.147, 825]
-Path 149: [410, 782], [409, 782], [408.497, 782], [408, 782.627], [407, 783], [406.507, 784], [406, 784.528], [405, 785.405], [404.421, 786], [403.315, 787], [402.166, 788], [401.1, 789], [400, 789.42], [399.476, 790], [398.426, 791], [397.355, 792], [396.255, 793], [395.22, 794], [394, 794.481], [393.463, 795], [392.411, 796], [391.426, 797], [390.491, 798], [389.498, 799], [388.485, 800], [387.328, 801], [386, 802], [385, 803], [384, 804], [383, 805], [382, 805.355], [381.363, 806], [380.35, 807], [379.239, 808], [378.168, 809], [377, 810], [376, 810.037], [375.055, 811], [374, 812], [373, 812.25], [372.227, 813], [371, 813.526], [370, 814.491], [369.479, 815], [368.439, 816], [367.418, 817], [366.359, 818], [365.317, 819], [364, 819.38], [363.469, 820], [362.231, 821]
-Path 150: [911, 781], [910, 782], [909, 782], [908, 783], [907, 784], [906, 784], [905.126, 785], [904.046, 786], [903, 786.135], [902.187, 787], [901.044, 788], [900, 788.094], [899.152, 789], [898, 790], [897, 790.037], [896.067, 791], [895, 791.121], [894.186, 792], [893, 793], [892, 793], [891, 794], [890, 794], [889, 795], [888, 795], [887, 796], [886, 796], [885, 797], [884, 797], [883, 798], [882, 798], [881, 799]
-Path 151: [430, 785], [429, 786], [428, 786.476], [427, 787], [426.363, 788], [425, 788.583], [424, 789.499], [423.493, 790], [422.453, 791], [421.575, 792], [421, 792]
-Path 152: [494, 783], [493, 783.477], [492.47, 784], [492, 785.436], [491.445, 786], [491, 787], [491, 788], [490.531, 789], [490, 790], [489.514, 791], [489, 791.604], [488, 792.591], [487, 793.499], [487, 794], [486.167, 795], [485, 796], [484, 796], [483, 797], [482, 797]
-Path 153: [532, 796], [531, 796], [530, 796], [529.408, 797], [528.094, 798], [527, 799], [526, 799], [525, 799.643], [524, 800.568], [523, 801.397], [522.459, 802], [521, 803], [520, 804], [519, 805], [518, 805.511], [517, 806]
-Path 154: [957, 797], [956, 797], [955, 797], [954.453, 798], [953.482, 799], [952.492, 800], [951.529, 801], [951, 801.523], [950, 802.552], [949.461, 804], [948, 804.424], [948, 805], [947, 806], [946, 807], [945, 808]
-Path 155: [502, 798], [503, 798], [504, 798.607], [504.6, 800], [505.557, 801], [506.456, 802], [507, 802.451], [507, 803], [507.514, 804], [509, 804.334], [509, 805]
-Path 156: [748, 797], [748, 798], [748, 799], [748, 800], [748.549, 801], [749, 802], [749.333, 803], [750, 803]
-Path 157: [107, 801], [107, 802], [107.534, 803], [109, 803.378], [109.436, 804], [110, 804]
-Path 158: [550, 800], [549, 800.243], [548, 801.131], [547, 802], [546, 803], [545, 803], [544, 804], [543, 804], [542, 805], [541, 806], [540, 806.278], [539, 807], [538, 807], [537.46, 808], [536.47, 809], [535.473, 810], [534.44, 811], [533.425, 812], [532.405, 813], [531.413, 814], [530.447, 815], [529.511, 816], [529, 816.465], [528.541, 817], [528, 817.51], [527, 818.485], [527, 819], [526.296, 820], [525, 820.438], [524.442, 821], [523.377, 822], [522, 823]
-Path 159: [652, 802], [651, 802.258], [650, 803], [649, 803.44], [648, 804.393], [647, 805.405], [646, 806.426], [645, 807], [644, 807.57], [643.37, 809], [642.308, 810], [641, 810.377], [640.451, 811], [639.396, 812], [638.403, 813], [637.512, 814], [637, 814.538], [636, 815.566], [635.439, 817], [634.5, 818], [633.477, 819], [632.406, 820], [631, 821]
-Path 160: [866, 806], [866, 806.681], [867, 807], [867, 808], [867.5, 809], [868, 809], [869, 809.597], [870, 810]
-Path 161: [226, 805], [225, 805], [224.473, 805], [224, 806], [223.558, 807], [223, 808], [223, 809], [223, 810], [223, 811], [223, 812], [223, 813], [223, 814]
-Path 162: [110, 810], [110, 811], [110.522, 812], [112, 812.323], [112.282, 813], [113, 813]
-Path 163: [416, 811], [415, 811], [414, 811], [413.444, 812], [412.398, 813], [411.401, 814], [411, 815]
-Path 164: [482, 810], [482, 811], [482, 812], [483, 812.636], [483.529, 814], [484.425, 815], [485, 815.538], [486, 816.536], [487, 817.522], [488, 818.579], [489, 819.714], [490, 820.699], [490.409, 822], [491, 822.617], [491.603, 824], [492.489, 825], [493, 825.567], [493.617, 827], [494.463, 828], [495, 828.52], [495, 830]
-Path 165: [716, 813], [716, 814], [716, 815], [716.534, 816], [717, 817], [717.486, 818], [718, 818.363], [718.478, 819], [719, 819], [720, 819], [721, 820], [721.361, 821], [722, 821]
-Path 166: [918, 813], [917.599, 814], [917, 814.472], [916.522, 815], [916, 815.635], [915, 816.484], [914.404, 817], [913.404, 818], [912.325, 819], [911.291, 820], [910, 820.568], [909, 821.538], [908, 822.523], [907, 823.468], [906.451, 824], [905.411, 825], [904.389, 826], [903, 826.583], [902, 827.551], [901, 828.559], [900, 829.487], [899.454, 830], [898.406, 831], [897, 831.626], [896.294, 833], [895, 833.506], [894, 834.5], [893, 835.424], [892.478, 836], [891.305, 837], [890, 838], [889.014, 839], [888, 839.421], [887.449, 840], [887, 841]
-Path 167: [338, 815], [339, 815.481], [339, 816], [339, 817]
-Path 168: [939, 811], [937.527, 811], [936.559, 812], [936, 813.424], [935, 814.453], [934, 815], [933.365, 816], [932.332, 817], [931.298, 818], [930, 818.432], [929.425, 819], [928.451, 820], [927.434, 821], [926.352, 822], [925.295, 823], [924.118, 824], [923, 824.324], [922.308, 825], [921.251, 826], [920, 826.364], [919.359, 827], [918.314, 828], [917.266, 829], [916, 829.443], [915.438, 830], [914.394, 831], [913.375, 832], [912.348, 833], [911.295, 834], [910, 834.439], [909.506, 835], [909, 835.43], [908.428, 836], [907.378, 837], [906.336, 838], [905.253, 839], [904, 839.436], [903.43, 840], [902.409, 841], [901.389, 842], [900.334, 843], [899.206, 844], [898, 844.288], [897.307, 845], [896.199, 846], [895, 846.324], [894.41, 847], [893.354, 848], [892.193, 849], [891.183, 850], [890, 850.428], [889.425, 851], [888.414, 852], [887.392, 853], [886.337, 854], [885.265, 855], [884, 855.41], [883.413, 856], [882.403, 857], [881.374, 858], [880.324, 859], [879.268, 860], [878, 860.43], [877.432, 861], [876.41, 862], [875.376, 863], [874.334, 864], [873.288, 865], [872, 865.412], [871.423, 866], [870.397, 867], [869.425, 868], [869, 869]
-Path 169: [345, 816], [345.578, 817], [346.49, 818], [347, 818]
-Path 170: [354, 818], [353, 818], [352, 818], [351.706, 819], [351, 819.629], [350.316, 821], [349.233, 822], [348.225, 823], [347, 824], [346.382, 825], [346, 826], [346, 827], [345.717, 828], [347, 828]
-Path 171: [313, 820], [312, 820], [311, 820], [310.181, 821], [309, 822], [308, 822.177], [307.164, 823], [306, 823.474], [305.396, 824], [304.131, 825], [303, 826], [302, 826]
-Path 172: [321, 817], [321.471, 818], [322.493, 819], [323.489, 820], [324.455, 821], [325, 822], [325.611, 823], [326.5, 824], [327, 824.504], [328, 825.568]
-Path 173: [442, 821], [441, 821.051], [440, 822], [439, 822], [438.277, 823], [437.242, 824], [436.156, 825], [435.045, 826], [434, 826.245], [433.239, 827], [432.232, 828], [431, 828.339], [430.352, 829], [429.333, 830], [428.289, 831], [427.255, 832], [426.252, 833], [425, 833.374], [424.357, 834], [423.322, 835], [422.289, 836], [421.27, 837], [420.257, 838], [419.215, 839], [418, 839.309], [417.331, 840], [416.301, 841], [415.273, 842], [414.211, 843], [413.181, 844], [412, 844.325], [411.319, 845], [410.312, 846], [409.267, 847], [408.225, 848], [407.175, 849], [406, 849.331], [405.326, 850], [404.313, 851], [403.28, 852], [402.212, 853], [401.133, 854], [400, 854.25], [399.318, 855], [398.263, 856], [397.245, 857], [396.233, 858], [395, 858.323], [394.324, 859], [393.303, 860], [392.264, 861], [391.235, 862], [390.195, 863], [389.142, 864], [388, 864.1], [387.237, 865], [386, 866]
-Path 174: [445, 818.382], [445.614, 819], [446.486, 820], [447, 821.392], [448, 822], [448, 823]
-Path 175: [380, 820], [380, 821], [380, 821.533], [381, 822.463], [382, 823], [382, 824], [382.624, 825], [383, 826], [383, 827], [383, 828], [383, 829], [383, 830]
-Path 176: [626, 823], [625, 823], [624, 823], [623.383, 824], [622.412, 825], [621, 825.537], [620, 826.564], [619.423, 828], [618.399, 829], [617.346, 830], [616.136, 831], [615, 831], [614, 832], [613, 833], [612, 833], [611, 833.326], [610.351, 834], [609.283, 835], [608, 835.437], [607.505, 836], [607, 836.435], [606.483, 837], [605.488, 838], [604.513, 839], [604, 839.456], [603.505, 840], [603, 840.444], [602.475, 841], [601.448, 842], [600.422, 843], [599.429, 844], [598.589, 845], [598, 845.504], [597.547, 847], [597, 847.55], [597, 849], [596.675, 850], [596, 850]
-Path 177: [104, 825], [105, 825.434], [105.304, 826], [106, 826.404], [106, 827], [106, 828], [106.368, 829], [107, 829], [108, 829.387], [108.488, 830], [109, 830], [110, 830]
-Path 178: [456, 829], [456.401, 830], [457, 830], [458, 830], [459, 830]
-Path 179: [182, 826], [182, 826.528], [182.53, 827], [183, 828], [183, 829], [183, 829.531], [183.723, 830], [184, 831], [185, 831.498], [185.514, 832], [186.087, 833], [187, 833]
-Path 180: [269, 832], [269, 832.563], [270, 833], [270.619, 834], [271.448, 835], [272, 835.225], [272.329, 836], [273, 836.223], [273.55, 837]
-Path 181: [99, 835], [98, 835], [97, 835], [97, 836], [97, 837], [96.5831, 838], [96, 838.602], [96, 840], [96, 841], [96.4016, 842], [97, 842.592], [97.4843, 844], [98, 844.52], [98, 846]
-Path 182: [372, 833], [372, 834], [372, 835], [373, 835.565], [374, 836], [375, 837], [375, 838], [375.545, 839], [376, 840], [376.544, 841], [377.422, 842], [378, 842.453], [378.375, 843], [379, 843.559], [379, 845]
-Path 183: [508, 835], [508, 836], [508.509, 837], [509, 838], [509.422, 839], [510, 839.609], [510.471, 841], [511, 841.556], [512, 842.581], [513, 843.538], [514, 844.476], [514.551, 845], [516, 845.519], [517, 846], [518, 846], [519, 846.551], [520, 847], [521, 847], [522, 847.091], [522, 848]
-Path 184: [318, 836], [317, 836], [316.16, 837], [315, 837.297], [314.32, 838], [313.264, 839], [312.203, 840], [311, 840.354], [310.342, 841], [309.305, 842], [308.277, 843], [307.238, 844], [306, 844.399], [305.416, 845], [304.369, 846], [303.342, 847], [302.29, 848], [301.195, 849], [300.169, 850], [299, 850.264], [298.592, 851], [298, 851]
-Path 185: [704, 836], [703, 836], [702, 836], [701.361, 837], [700.295, 838], [699.176, 839], [698, 839.512], [697, 840.44], [696.418, 841], [695.375, 842], [694.312, 843], [693, 843.51], [692, 844.488], [691.473, 845], [690.461, 846], [689.429, 847], [688.395, 848], [687.355, 849], [686.267, 850], [685, 850.426], [684.423, 851], [683.373, 852], [682.289, 853], [681.165, 854], [680, 854.358], [679.355, 855], [678.307, 856], [677, 856.485], [676.478, 857], [675.445, 858], [674.395, 859], [673.344, 860], [672.299, 861], [671, 861.485], [670.479, 862], [669.435, 863], [668.359, 864], [667.273, 865], [666, 865.502], [665, 866.47], [664.454, 867], [663.426, 868], [662.385, 869], [661.347, 870], [660, 870.534], [659, 871.498], [658.475, 872], [657.431, 873], [656.391, 874], [655.347, 875], [654.291, 876], [653, 876.463], [652.441, 877], [651.416, 878], [650.379, 879], [649.3, 880], [648, 880.471], [647.441, 881], [646.41, 882], [645.329, 883], [644.201, 884], [643, 884.385], [642.385, 885], [641.332, 886], [640, 886.513], [639, 887.466], [638.452, 888], [637.442, 889], [636.414, 890], [635.368, 891], [634.347, 892], [633, 892.543], [632, 893.532], [631, 894.512], [630, 895.496], [629.48, 896], [628.462, 897], [627.44, 898], [626.412, 899], [625.391, 900], [624.354, 901], [623.282, 902], [622, 902.424], [621.422, 903], [620.334, 904], [619.213, 905], [618, 905.343], [617.349, 906], [616.293, 907], [615, 907.46], [614.451, 908], [613.391, 909], [612.34, 910], [611.302, 911], [610, 911.511], [609, 912.398], [608.395, 913], [607, 914]
-Path 186: [265.437, 836], [266, 837], [267, 838], [267.492, 839], [268, 839.542], [268, 841]
-Path 187: [384, 837], [383, 837], [382, 837.484], [381.618, 838], [381, 838.422], [381, 839], [381, 840]
-Path 188: [290, 838], [291, 838], [292, 838], [293, 838], [294, 838]
-Path 189: [334, 838], [333, 838], [332, 838], [331.432, 839], [330.433, 840], [329.395, 841], [328.23, 842], [327, 842.412], [326.418, 843], [325.38, 844], [324.386, 845], [323.443, 846], [322.444, 847], [321.404, 848], [320.349, 849], [319.283, 850], [318, 851], [317, 851.188], [316.243, 852], [315, 852.164], [314.29, 853], [313, 854]
-Path 190: [494, 840], [495, 841], [495.36, 842], [496, 842.568], [496.517, 844], [497, 845], [497, 846], [497.268, 847], [498, 847.643], [498, 849], [498, 850]
-Path 191: [274, 841], [274.641, 841], [275, 841.66], [276, 842], [276.629, 843], [278, 843.557], [279, 844.453], [279.409, 845], [280, 845.46], [280.329, 846], [281, 846]
-Path 192: [264, 842], [264, 843], [265, 843.688], [266, 844], [267, 845], [268, 846]
-Path 193: [253, 845], [253.535, 846], [254.51, 847], [255.4, 848], [256, 848.619], [256.634, 850], [257.573, 851], [258.577, 852], [260, 852.886]
-Path 194: [291, 845], [292, 845], [292, 846], [292.557, 847], [293, 848], [293.513, 849], [294, 850], [294, 851]
-Path 195: [249, 846], [248, 846], [247, 847], [246, 848], [245, 849]
-Path 196: [528, 846], [528, 847], [529, 847], [530, 847.527], [531, 848.524], [531.543, 850], [532, 851], [532.581, 852], [533.5, 853], [534, 853.527], [535, 854.553], [536, 855.546], [537, 856.523], [538, 857.49], [538.414, 858], [539, 858.497], [539, 859], [539.477, 860], [540, 860.522], [540, 862], [540.42, 863], [541, 863.584], [542, 864.645], [543, 865.589], [544, 866.55], [545, 867.468], [545.489, 868], [546, 868], [547, 868], [548, 868]
-Path 197: [249, 848], [249, 849], [249.638, 850], [250.483, 851], [251, 851.567], [252, 852.56], [253, 853.581], [254, 854.592], [255, 855.404], [255.592, 856], [257, 857]
-Path 198: [263, 848], [263, 849], [264, 850], [265, 850.356], [265.126, 851], [266, 851.226], [266, 852]
-Path 199: [355, 844], [354, 844.393], [353, 845.059], [352, 846], [351, 847], [350.467, 847], [350, 848], [349, 849], [348, 850], [347, 850], [346, 850.626], [345, 851.325], [344.411, 852], [343, 852.5], [342, 853], [341, 853.592], [340, 854.504], [340, 856], [340, 857], [340, 858], [340, 859], [340, 860]
-Path 200: [794, 846], [794, 847], [794, 848], [794.606, 849], [796, 849.426], [796, 850], [796, 851], [797, 852]
-Path 201: [840, 843], [839.397, 843], [839, 844], [838.501, 845], [838, 846.415], [837.323, 847], [837, 847.593], [836, 848], [835.546, 849], [835, 849.336], [834.412, 850], [833.123, 851], [832.105, 852], [831.15, 853], [830, 853.408], [829.637, 854], [829, 854]
-Path 202: [98, 849], [98, 850], [98.5541, 851], [99, 852], [99.4731, 853], [100, 853.388], [100.464, 854], [101, 854], [102, 854.49], [102.447, 855], [103, 855.508], [104, 856.521], [105, 857.529], [105.476, 859], [106, 859.443], [106, 860], [106, 861], [106, 862], [106, 863]
-Path 203: [694, 834], [693, 834.449], [692, 835.395], [691, 836.272], [690, 837.144], [689, 838.123], [688, 839.161], [687, 840], [686, 841], [685, 841.222], [684, 842.142], [683, 843.07], [682, 844], [681, 844.325], [680, 845.166], [679, 846.129], [678, 847.056], [677, 848.02], [676, 849], [675, 849.302], [674, 850], [673, 850.564], [672.16, 852], [671, 852.35], [670.383, 853], [669, 853.523], [668.169, 855], [667.072, 856], [666, 856], [665, 856.579], [664.079, 858], [663, 859], [662, 859.328], [661.347, 860], [660.309, 861], [659.296, 862], [658.291, 863], [657, 863.588], [656, 864.513], [655, 865.438], [654.461, 866], [653.409, 867], [652.317, 868], [651.239, 869], [650.147, 870], [649, 870.293], [648.281, 871], [647.169, 872], [646.125, 873], [645, 873.335], [644.353, 874], [643.342, 875], [642.374, 876], [641.303, 877], [640, 877.662], [639, 878.497], [639, 879], [638.031, 880], [637, 881], [636, 881], [635, 882], [634, 883], [633, 884], [632, 884.196], [631.227, 885], [630, 885.47], [629.441, 886], [629, 887], [628, 888], [627, 888.144], [626.158, 889], [625, 890], [624, 891], [623, 891.39], [622.338, 892], [621.302, 893], [620, 893.508], [619, 894.438], [618.416, 895], [617.464, 896], [616.424, 897], [615.248, 898], [614, 899], [613, 900], [612, 900], [611, 900.133], [611, 901]
-Path 204: [877, 849], [876, 850], [875, 850], [874, 850.431], [873, 851], [872, 851.619], [871, 852.537], [870, 853.41], [869.391, 854], [868, 854.573], [867.101, 856], [866, 857], [865, 857.06], [864.052, 858], [863.064, 859], [862, 859.409], [861.431, 860], [860.37, 861], [859.341, 862], [858, 862.512], [857, 863.495], [856.417, 864], [855.405, 865], [854.409, 866], [853.334, 867], [852.232, 868], [851.167, 869], [850, 869.427], [849.432, 870], [848.319, 871], [847.096, 872], [846.037, 873], [845, 873.398], [844.303, 874], [843.466, 875], [842.439, 876], [842, 877]
-Path 205: [244, 852], [245, 852.522], [246, 853.638], [246.593, 855], [247.578, 856], [248.593, 857], [249.64, 858], [251, 858.46], [251, 859]
-Path 206: [368, 850], [368.429, 851], [369, 852], [369.657, 853], [370.63, 854], [371.608, 855], [372.587, 856], [373.588, 857], [375, 857.543], [376, 858.464], [376.369, 859], [377, 859.531], [378, 860.591], [379, 861.689], [380, 862.481], [380, 863]
-Path 207: [365, 853], [364, 853], [363.248, 854], [362.199, 855], [361.165, 856], [360, 856.281], [359.306, 857], [358.272, 858], [357.222, 859], [356.178, 860], [355, 860.299], [354.311, 861], [353.273, 862], [352.231, 863], [351.211, 864], [350, 864.31], [349.32, 865], [348.3, 866], [347.291, 867], [346.097, 868], [345, 868.098], [344.147, 869], [343, 870], [342.273, 870.677], [343, 871.517], [344, 872.57], [345, 873.532], [346, 874.501], [347, 875.503], [348, 876.581]
-Path 208: [788, 853], [789, 853.318], [789, 854], [789, 855]
-Path 209: [239, 854], [238, 854], [237, 854], [237, 855], [236.536, 856], [236, 856], [235, 857], [235, 858]
-Path 210: [501, 855], [500, 855], [499.139, 856], [498.401, 857], [497.497, 858], [496, 858]
-Path 211: [382, 857], [383, 858], [383, 859], [383.492, 860], [384, 861], [385, 862]
-Path 212: [575, 857], [574, 857], [573, 857], [573, 858], [573, 859], [573, 860], [573.473, 861], [574, 861.541], [575, 862.519], [576, 863.568], [576.561, 865], [577.463, 866], [578, 866.521], [579, 867.517], [580, 868.593], [581, 869.639], [581.512, 871], [582.428, 872], [583, 872.578], [584, 873.615], [584.549, 875], [585.527, 876], [586.478, 877], [587, 877.511], [588, 878.527], [589, 879.543], [590, 880.547], [591, 881.04], [591, 882]
-Path 213: [814, 855], [813, 855.126], [812, 856.028], [811, 857], [810, 857], [809.226, 858], [808.127, 859], [807, 859.342], [806.345, 860], [805.357, 861], [804.363, 862], [803.267, 863], [802.217, 864], [801.288, 865], [800.268, 866], [799.245, 867], [798.259, 868], [797.063, 869], [797, 870]
-Path 214: [242, 858], [243, 858], [244, 859], [244.329, 860], [245, 860.543], [246, 861]
-Path 215: [495, 860], [494, 861], [493, 861.396], [492.46, 862], [492, 863]
-Path 216: [588, 860], [587.729, 861], [587, 861], [586, 861], [585, 861]
-Path 217: [509, 862], [508, 862], [507, 863], [507, 864], [506.597, 865], [506, 865]
-Path 218: [501, 866], [502, 866], [503, 866.37], [503, 867], [503, 868], [504, 869], [504, 870]
-Path 219: [566, 866], [567, 866], [568, 866.377], [568.404, 867], [569, 867], [570, 867], [571, 868]
-Path 220: [746, 865], [746.918, 865], [747, 865.652], [748, 866], [748.221, 867], [749, 867.471], [749, 868]
-Path 221: [819, 865], [817.516, 865], [817, 865.502], [816, 866.444], [815, 867], [814.382, 868], [813.337, 869], [812, 869.453], [811.454, 870], [810.395, 871], [809.384, 872], [808, 872.547], [807, 873.449], [806.425, 874], [805.329, 875], [804.211, 876], [803, 876.521], [802, 877.512], [801, 878.44], [800.416, 879], [799.375, 880], [798.325, 881], [797, 881.491], [796.5, 882], [795.474, 883], [794.441, 884], [793.283, 885], [792, 886], [791, 886], [790, 886.56], [789, 888], [788, 888], [787, 888.585], [786, 889.47], [786, 890], [785, 891], [784, 891.534], [783, 892.55], [782, 893.529], [781, 894.528], [780, 895.531], [779, 896.513], [778, 897.483], [777.46, 898], [776.422, 899], [775.397, 900], [774, 900.578], [773, 901.534], [772, 902.486], [771.448, 903], [770.405, 904], [769.366, 905], [768.355, 906], [767, 906.606], [766, 907.573], [765, 908.521], [764, 909.49], [763.476, 910], [762.469, 911], [761.483, 912], [760.542, 913], [760, 913.446], [759.581, 914], [759, 914.354], [758.365, 915], [757.302, 916], [756.267, 917], [755.177, 918], [754, 918.317], [753.392, 919], [752.321, 920], [751.259, 921], [750.216, 922], [749, 922.437], [749, 923], [748.055, 924], [747, 924.174], [746.24, 925], [745, 926], [744, 927], [743, 928], [742, 929], [741, 929], [740, 930], [739, 930], [738, 931], [737, 932], [736, 933], [735.326, 934], [734.595, 935], [734, 935]
-Path 222: [498, 868], [497.55, 869], [497, 869.575], [497, 871], [497, 872], [497, 873], [497, 874]
-Path 223: [515, 862], [515.451, 863], [516, 864.492], [516.554, 865], [517.492, 866], [518, 866.522], [518.503, 867], [519, 868], [520, 868.54], [520.331, 870], [521, 870]
-Path 224: [743, 868], [742, 868], [741.856, 869], [741, 869.692], [740, 871], [739.543, 872], [739, 872]
-Path 225: [839, 869], [838, 870], [837, 870], [836, 870], [835.481, 871], [834.55, 872], [834, 872.491], [833.563, 873], [833, 873.503], [832, 874.534], [831, 875.472], [830.488, 876], [829.454, 877], [828.392, 878], [827.313, 879], [826.18, 880], [825, 880.308], [824.364, 881], [823.309, 882], [822, 882.372], [821.426, 883], [820.332, 884], [819.249, 885], [818.161, 886], [817, 886.366], [816.38, 887], [815.319, 888], [814.207, 889], [813, 889.166], [812.265, 890], [811, 891]
-Path 226: [478, 871], [477, 871], [476, 871.55], [475, 872.559], [474, 873.548], [473, 874.491], [472.514, 875], [472, 875.469], [471.513, 876], [471, 876.474], [470.438, 877], [469.387, 878], [468.257, 879], [467, 879.515], [466, 880.537], [465, 881.418], [464.434, 882], [463.305, 883], [462.142, 884], [461, 884.494], [460.447, 885], [459.218, 886]
-Path 227: [598, 867], [598.409, 868], [599, 869.428], [600, 870.496], [601, 871], [601.444, 872], [602, 872.551], [603, 873.458], [603.407, 874], [604, 874.374], [604.45, 875], [605, 875.378], [605.413, 876], [606, 876.681], [606.537, 878], [607.539, 879], [608.433, 880], [609, 880.433], [609, 881]
-Path 228: [793, 871], [792, 871], [791.173, 872], [790, 872.338], [789.329, 873], [788.284, 874], [787.327, 875], [786, 875.501], [785, 876.578], [784.343, 878], [783.334, 879], [782.321, 880], [781, 881], [780.386, 882], [779.358, 883]
-Path 229: [566, 869], [566.371, 870], [567, 871.46], [568, 872], [568.513, 873], [569.409, 874], [570, 874.606], [571, 875.645], [571.646, 877], [572.549, 878], [573.498, 879], [574, 879.514], [575, 880.606], [576, 881.638], [577, 882.646], [577.645, 884], [578.596, 885], [579.569, 886], [580.446, 887], [581, 887.564], [582, 888.601], [583, 889.579], [583.64, 891], [584.557, 892], [585.445, 893], [586, 893.499], [586.362, 894], [587, 894.726], [587.667, 896], [588, 897]
-Path 230: [862, 874], [861, 874], [860, 874], [859.465, 875], [858.429, 876], [857.377, 877], [856.311, 878], [855.226, 879], [854, 879.394], [853.376, 880], [852.375, 881], [851.392, 882], [850.519, 883], [850, 883.452], [850, 884], [849.7, 885], [849, 885]
-Path 231: [737, 876], [738, 876], [739, 876], [740, 876.748]
-Path 232: [750, 875], [749, 875], [748.477, 875], [748, 875.547], [747.419, 876], [747, 876.512], [746, 877], [745.488, 878], [744.458, 879], [743.476, 880], [743, 881]
-Path 233: [204, 877], [204, 878], [205, 878], [206, 878.46], [206.523, 879]
-Path 234: [558, 876.173], [557, 877], [556, 878], [555, 878], [554.044, 879], [553.239, 880], [552.255, 881], [551.324, 882], [551, 883]
-Path 235: [643, 868], [642, 868], [641, 868], [640, 868], [639.483, 868], [639, 868.578], [638, 869], [637.479, 869], [637, 869.674], [636.483, 870], [636, 871], [635, 872], [634.495, 872], [633.506, 873], [632.525, 874], [631.582, 875], [631, 875.552], [630, 876.473], [629.396, 877], [629, 878], [628, 879], [627, 879], [626, 879], [625.413, 880], [624.434, 881], [623.449, 882], [622.388, 883], [621.137, 884]
-Path 236: [504, 875], [504, 875.517], [504.802, 876], [505, 877], [505, 878], [505, 879], [505, 880], [506, 880.395], [506, 881], [506, 882], [507, 883], [506.103, 884]
-Path 237: [271, 881], [270, 882], [269, 882], [268, 882]
-Path 238: [367, 881], [366, 881], [365.108, 882], [364.003, 883], [363, 883.31], [362.342, 884], [361.303, 885]
-Path 239: [199, 881], [198, 881.265], [197, 882.397], [196, 883], [195.334, 884], [194, 884.56], [193, 885.55], [192.435, 887], [191.542, 888], [191, 888.611], [190, 889.576], [189, 890.541], [188.455, 892], [187.039, 893], [186.25, 894], [186, 895], [185, 896], [184, 896], [183, 896], [182, 897]
-Path 240: [287, 883], [286, 883], [285.366, 884], [284, 884.413], [284, 885], [283, 886], [282, 887], [282, 888], [281.094, 889]
-Path 241: [524, 879], [524.286, 880], [525, 881], [525, 881.511], [525.581, 882], [526, 883], [527, 883.536], [528, 884.567], [529, 885.676], [529.464, 887], [530, 887.552], [531, 888.538], [532, 889.522], [533, 890.501], [534, 891.536], [534.54, 893], [535.374, 894], [536, 894.478], [536.401, 895], [537, 895.485], [537, 896], [537, 897], [537.29, 898], [538, 898.708], [538, 900]
-Path 242: [836, 882], [835, 882], [833.585, 882], [833, 883], [832.175, 884], [831, 885], [830, 885.316], [829.317, 886], [828, 886.55], [827, 887.492], [826.47, 888], [825.427, 889], [824.378, 890], [823.314, 891], [822, 891.435], [821.43, 892], [820.387, 893], [819.237, 894], [818, 894.386], [817.45, 895], [816.417, 896], [815.401, 897], [814, 897.339], [813.427, 898], [812.293, 899], [811.448, 900], [810.529, 901], [810, 901.549], [809, 902.48], [808.517, 903], [808, 903.433], [807.511, 904], [807, 904.407], [806.467, 905], [805.339, 906], [804.329, 907], [803, 907.539], [802, 908.49], [801.507, 909], [801, 909.471], [800.493, 910], [799.483, 911], [798.523, 912], [798, 912.383], [797.64, 913], [797, 913.46], [796.523, 914], [796, 914.522], [795, 915], [794, 915], [793, 915]
-Path 243: [228, 884], [227.055, 885], [226, 885.471], [226, 886], [225.49, 887]
-Path 244: [483, 884], [482, 884], [481.378, 885], [480.403, 886], [479, 886.368], [479, 887]
-Path 245: [907, 885], [908, 885], [909, 885], [910, 885], [911, 885], [912, 885.875], [913, 886], [914, 886], [915, 886], [916, 886.54], [917, 887], [918, 887], [919, 887.043], [919, 888]
-Path 246: [323, 886], [322, 886], [321.462, 887], [321, 888], [320.428, 889], [319.487, 890], [318.446, 891], [317.357, 892], [316.302, 893], [315, 893.457], [314.478, 894], [313.433, 895], [312.458, 896], [311.419, 897], [310.321, 898], [309.293, 899], [308.278, 900], [307, 900.479], [306.477, 901], [305.463, 902], [304.365, 903], [303.145, 904], [302, 905], [301, 905.355], [300.439, 906], [299.438, 907], [298.379, 908], [297, 908.456], [297, 909], [296.35, 910], [295, 910.358], [294.467, 911], [293.264, 912], [292.029, 913], [291.068, 914], [290, 914.061], [289.096, 915], [288, 916], [287, 917], [286, 918]
-Path 247: [231, 888], [230.502, 889], [230, 889], [229, 890], [229, 891], [228.624, 892], [228, 892]
-Path 248: [735, 882], [733.604, 882], [733, 883], [733, 883.782], [732.45, 884], [731.554, 885], [731, 886.416], [730, 887.446], [729, 888], [728, 889], [727, 890], [726, 891], [725, 892], [724, 892]
-Path 249: [928, 889], [927, 889], [926, 889], [925, 889.665], [924, 890], [923, 890], [922, 890]
-Path 250: [83, 890], [83.5498, 891], [85, 891.402], [85, 892]
-Path 251: [498, 890], [498, 890.635], [499, 891], [499, 892], [499.528, 893]
-Path 252: [731.486, 890], [732, 891], [733, 891.481], [733.206, 892], [734, 892]
-Path 253: [891, 886], [892, 886], [893, 886.498], [894, 887], [895, 887], [896, 887], [897, 887], [898, 887], [899.346, 887], [900, 888], [901, 889], [902, 889], [902.529, 889], [903, 889.508], [904, 890], [905.443, 890], [906, 891], [907, 891], [908, 891.535], [909, 892], [910, 892.455], [910.434, 893], [911, 893.319], [911, 894], [911.556, 895], [912, 896], [912.462, 897], [913, 897.572], [913.408, 899], [914, 899.525], [914, 901], [914.439, 902], [915, 902]
-Path 254: [520, 881], [518.719, 881], [518, 882], [517.509, 883], [517, 884.396], [516.305, 885], [515.503, 886], [514.565, 887], [514, 887.597], [513, 888.425], [512, 889], [511, 889], [510, 889.473], [509, 890], [508, 890], [507.485, 890], [507, 891.054], [506, 892], [505, 892], [504, 892], [503.442, 893]
-Path 255: [808, 892], [807, 892], [806.131, 893], [805.034, 894], [804, 894.243], [803.279, 895], [802.134, 896], [801, 896.325], [800.413, 897], [800, 898]
-Path 256: [495, 893], [494, 893], [493.166, 894], [492, 895], [491, 895]
-Path 257: [853, 895], [852, 895], [851.333, 896], [850.226, 897], [849, 897.667], [848.343, 899], [848, 900]
-Path 258: [238, 897], [237, 897], [236, 897], [235.304, 898], [235, 899], [234.707, 900], [234, 900.275], [233.336, 901], [232, 901.649], [232, 903]
-Path 259: [83, 898], [84, 898.441], [84, 899], [84.4691, 900], [85, 900.371], [85, 901]
-Path 260: [333, 898], [334, 898.503], [335, 899.521], [336, 900.572], [336.519, 902], [337.17, 903], [338, 903]
-Path 261: [610, 894], [609, 894], [608.464, 894], [608, 895], [607, 896.022], [606, 897], [605.37, 897], [605, 897.517], [604, 898.453], [603, 899], [602.533, 900], [602, 900]
-Path 262: [765, 895], [764, 896], [763, 896.01], [762, 897], [761, 897.256], [760, 898.288], [759, 899], [758.312, 900], [757.336, 901], [756.283, 902], [755.243, 903], [754.203, 904], [753.158, 905], [752.118, 906], [751, 907], [750, 907.193], [749.216, 908], [748, 909], [747, 910], [746, 910.054], [745.094, 911], [744, 912], [743, 913], [742, 913.096], [741.105, 914], [740.048, 915], [739, 915.348], [738.384, 916], [737.294, 917], [736.204, 918], [735.157, 919], [734.164, 920], [733, 920.416], [732.44, 921], [731.393, 922], [730.33, 923], [729.214, 924], [728.108, 925], [727.118, 926], [726.128, 927]
-Path 263: [843, 902], [842, 902], [841.426, 902], [841, 902.588], [840, 903], [840, 904], [839, 905], [838, 905.209], [837.232, 906], [836, 906.473], [835.47, 907], [834.44, 908], [833.398, 909], [832, 909.419], [831.509, 910], [831, 910.288], [830.554, 911], [830, 911.333], [829.292, 912], [828.433, 913], [827.434, 914], [826, 914.351], [825.55, 915], [825, 915.185], [825, 916]
-Path 264: [459, 904], [458, 904], [457, 904], [456.473, 905], [455.465, 906], [454.499, 907], [453.471, 908], [452.423, 909], [451.46, 910], [450.477, 911], [449.455, 912], [448, 912.601], [447, 913]
-Path 265: [487, 905], [486, 905], [485, 905], [484.547, 906], [484, 906.516], [483, 907.456], [482.461, 908], [481.393, 909], [480, 909.608], [479, 910.499], [478.46, 911], [477.385, 912], [476, 912.572], [475, 913.623], [474, 914.498], [473.484, 915], [472.395, 916], [471.283, 917], [470, 917.521], [469, 918.223], [468.23, 919], [467, 920], [466, 921], [465, 921], [464, 921], [463, 921.609], [462.185, 923], [461.087, 924], [460.006, 925], [459, 925.274], [458.266, 926], [457.164, 927], [456, 927.378], [455.44, 928], [454.41, 929]
-Path 266: [172, 904], [171, 904], [170.463, 904], [169.503, 905], [169, 905.599], [168, 906], [167.505, 907], [167, 907.38], [167, 908], [166, 909]
-Path 267: [513, 907], [512, 907], [511.097, 908], [510, 908.245], [509.452, 909]
-Path 268: [509, 911], [509.699, 912], [510.621, 913], [511.631, 914], [512.611, 915], [513.589, 916], [514.576, 917], [515.533, 918], [516.5, 919], [517, 919.532], [518, 920.165], [518, 921]
-Path 269: [707, 912], [708, 912], [708, 913], [708, 914], [708.568, 915], [709.312, 916], [710, 916], [711, 917], [711.464, 918], [712, 918.414], [712.407, 919], [713, 919]
-Path 270: [266, 913], [265, 913], [264.213, 914], [263.03, 915], [262, 915], [261, 915.478], [261, 916], [260.87, 917], [260, 917]
-Path 271: [465, 913], [464, 913], [463, 913], [462.572, 914], [462, 914.511], [461, 915.547], [460, 916.601], [459.275, 918], [458, 918.281], [457.284, 919], [456, 920], [455, 921], [454, 921.321], [453.343, 922], [452, 922.606], [451, 923.521], [450, 924.443], [450, 925]
-Path 272: [605, 915], [604, 916], [603, 916], [602, 916.584], [601, 917.57], [600, 918.483], [599.512, 919], [599, 919.418], [598.437, 920], [597.396, 921], [596.406, 922], [595.393, 923], [594.368, 924], [593.323, 925], [592, 925.507], [591.532, 927], [591, 927.488], [591, 928], [591, 929]
-Path 273: [533, 915], [534, 916], [534.823, 916], [535, 917], [536, 917]
-Path 274: [71, 917], [71, 918], [71.4585, 919], [72, 919], [73, 919], [74, 919.036], [74, 920]
-Path 275: [820, 918], [819, 918], [818.47, 918], [818, 919.078], [817, 920], [816, 920], [815.407, 921], [814.353, 922], [813.351, 923], [812, 923.571], [811, 924.501], [810, 926], [809, 926.664], [809, 928], [808.263, 929], [807, 929.286], [806.397, 930], [806, 931], [805.273, 932], [804, 932.594], [803, 933.204], [802.375, 934]
-Path 276: [175, 921], [175.563, 921], [176, 922], [176.493, 923], [177, 923.529]
-Path 277: [257, 923], [256, 923], [255, 923], [254.554, 924], [254, 924.601], [253, 925.513], [252, 926.438], [251.403, 927], [250.338, 928], [249, 928.534], [248, 929.467], [247.427, 930], [246.369, 931], [245.366, 932], [244.277, 933]
-Path 278: [239, 926], [238, 926], [237.219, 927], [236.047, 928], [235, 928.293], [234.28, 929], [234, 930]
-Path 279: [66, 926], [66, 927], [66, 928], [66.5362, 929], [68, 929], [69, 929]
-Path 280: [403, 913], [402, 913], [401, 913.346], [400.392, 914], [399.525, 915], [398.646, 916], [398, 916.525], [397.483, 917], [396.54, 918], [397, 919], [397, 920], [397, 921], [397, 922], [397, 923], [397, 924.459], [397.605, 925], [398.433, 926], [399, 927], [399.457, 928], [400, 928.571], [400.421, 930], [401, 930.588], [401, 932], [401.512, 933], [402, 934], [402, 935], [402.606, 936], [403.408, 937], [404, 937.584], [404.544, 939], [405.448, 940], [406, 940.539], [407, 941.593], [408, 942.357], [408, 943]
-Path 281: [684, 929], [684.664, 930], [685.441, 931], [686, 931.55], [686.461, 933], [687, 933.479], [687, 934], [687, 935]
-Path 282: [905, 928], [905, 929], [906, 929.451], [906, 930], [906, 931]
-Path 283: [345, 928], [345, 928.614], [345.581, 929], [346, 930], [347, 930.598], [347.492, 932], [348, 932.418], [348, 933], [348, 934]
-Path 284: [448, 931], [447, 931], [446, 931], [445.464, 932], [444.217, 933], [443.245, 934], [442.396, 935], [441.43, 936], [440, 936]
-Path 285: [591, 931], [591.461, 932], [592, 932.524], [592.566, 934], [593.487, 935], [594, 935.534], [594.566, 937], [595.469, 938], [596, 938.51], [597, 939.609], [597.575, 941], [598.471, 942], [599, 942.541], [600, 943.556], [601, 944.549], [602, 945.504], [603, 946], [604, 946.556], [605, 947], [606, 947.495], [606.546, 948], [608, 948.171], [608, 949]
-Path 286: [724, 928.064], [723, 929.022], [722, 930.032], [721, 931], [720, 931], [719.342, 932], [718.202, 933], [717.072, 934], [716, 935], [715, 935.278], [714.257, 936], [713.227, 937], [712.194, 938], [711.229, 939], [710, 939.396], [709.461, 940], [708.519, 941], [708, 941.357], [708, 942], [708, 943], [708, 944], [707.359, 945], [706.44, 946], [705.483, 947], [704.546, 948], [704, 948.599], [703.402, 950], [702.382, 951], [701.356, 952], [700.303, 953], [699, 953.378], [698.419, 954], [697.373, 955], [696.264, 956], [695.245, 957], [694.229, 958], [693, 958.253], [692.442, 959], [692, 960]
-Path 287: [543, 926], [543, 926.531], [543.553, 927], [544, 928], [544.474, 929], [545, 930], [545, 931], [545, 932], [545, 933], [545.407, 934], [546, 934.605], [546, 936], [546.501, 937], [547, 938], [547.485, 939], [548, 939.426], [548.323, 940], [549, 940.399], [549, 941]
-Path 288: [242, 934], [241, 935], [240, 935.06], [239.11, 936], [238, 936]
-Path 289: [426, 928], [425.376, 928], [424.528, 929], [424, 930], [424, 931.409], [423.404, 932], [423, 932.516], [422.473, 933], [422, 934], [421.409, 935], [420.508, 936], [420, 936.551], [419, 937.575], [418, 938.572], [417, 939.538], [416.264, 941], [415, 941.262], [414.38, 942]
-Path 290: [633, 934], [632, 934], [631, 934], [630, 934.649], [630, 936]
-Path 291: [843, 928], [843, 928.676], [843.512, 929], [844.449, 930], [845.457, 931], [846, 932], [846.486, 933], [847, 934], [847, 935], [847.553, 936], [848.508, 937], [850, 937.475], [850.496, 938], [851, 938], [852, 938.571], [853, 939.43], [853.339, 940], [854, 940]
-Path 292: [906, 935], [905, 935], [904.488, 936], [903.514, 937], [903, 937.527], [902, 938.46], [901.508, 939], [901, 939.348], [900.453, 940], [899.401, 941], [898.297, 942], [897, 943], [896, 943]
-Path 293: [227, 936], [226, 936], [225, 936], [224.393, 937], [223.408, 938]
-Path 294: [571, 935], [571, 936], [572, 936.597], [573, 937.598], [574, 938.566], [574, 940], [574, 941], [574, 942], [574.445, 943], [575, 943.594], [575.547, 945], [576, 946], [576, 947]
-Path 295: [67, 937], [67.404, 938], [68, 938.521], [68, 940], [68, 941], [68, 942], [68.4064, 943], [69, 943.083], [69, 944]
-Path 296: [167.487, 935], [168, 936], [168, 936.523], [169, 937], [169.432, 938], [170, 938.555], [170.461, 940], [171, 940.391], [171, 941]
-Path 297: [559, 935], [558, 935.485], [557.484, 936], [557, 937], [556, 937.59], [555, 938.559], [554, 939.468], [553.534, 940], [553, 940.314], [552.455, 941]
-Path 298: [798, 936], [797, 937], [796, 937], [795.346, 938], [794, 938.483], [793.503, 939], [793, 939.395], [792.423, 940], [791.343, 941], [790.348, 942], [789.315, 943], [788.186, 944], [787, 944.401], [786.488, 945], [785.511, 946], [785, 946.568], [784, 947.58], [783.407, 949], [782.41, 950], [781, 950.46], [781, 951], [780.565, 952], [780, 952.496], [779.495, 953], [778.121, 954]
-Path 299: [631, 938], [630, 938], [630, 939], [629.249, 940], [628, 940.403], [627.387, 941], [626.373, 942], [625.342, 943], [624.297, 944], [623.18, 945], [622, 946], [621, 946]
-Path 300: [672, 936], [673.245, 936], [674, 937], [675, 938], [675.497, 939], [676, 939.525], [677, 940.475], [677.467, 941], [678, 941.508], [678, 943]
-Path 301: [838, 930], [837, 930], [836, 931], [835, 931.105], [834, 932], [833, 932.31], [832, 933], [831, 934], [830, 934], [829, 935], [828, 936], [827, 936], [826, 937], [825, 937.319], [824, 938], [823, 938.543], [822, 939.381], [821.591, 940], [821, 940]
-Path 302: [234, 939], [234, 940], [233, 941], [232, 941]
-Path 303: [735, 937], [734, 937], [733.417, 937], [733, 937.529], [732, 938.486], [731, 939], [730.327, 940], [729.331, 941], [728.423, 942], [727.466, 943]
-Path 304: [300, 936], [300, 936.691], [300.593, 937], [301.396, 938], [302.28, 939], [303, 940], [303, 941], [303.585, 942], [304.472, 943], [305, 943.43], [305.483, 944], [306, 944.516], [307, 945.596], [308, 946]
-Path 305: [840, 942], [841, 942.369], [841.586, 943], [842.563, 944], [843.464, 945], [844, 945.538], [845, 946.612], [845.652, 948], [846.582, 949], [847.469, 950], [848, 950.549], [849, 951.63], [849.583, 953], [850, 954], [851, 955], [852, 956], [852.823, 957], [853.674, 958], [854.511, 959], [855, 960], [856, 961]
-Path 306: [768, 937], [767, 937.498], [766.419, 938], [765.514, 939], [764.551, 940], [763.507, 941], [763, 941.506], [762, 942.411], [761, 943], [760.333, 944], [759.243, 945], [758, 945.438], [757.425, 946], [756.379, 947], [755.295, 948], [754, 948.476], [753.463, 949], [752.442, 950], [751.383, 951], [750.31, 952], [749.231, 953], [748, 953.453], [747.439, 954], [746.417, 955], [745.394, 956], [744.327, 957], [743, 957.486], [742.493, 958], [741.483, 959], [740.448, 960], [739.369, 961], [738.137, 962], [737, 962.304], [736.305, 963], [735.13, 964], [734, 964.403], [733.421, 965], [732.377, 966], [731, 966.528], [730, 967.484], [729.467, 968], [728.366, 969], [727.285, 970], [726.262, 971], [725, 971.546], [724, 972.521], [723, 973.475], [722.48, 974], [721.395, 975], [720.337, 976], [719, 976.565], [718, 977.518], [717, 978.495], [716.508, 979], [716, 979.492], [715.496, 980], [714.431, 981], [713.417, 982], [712.395, 983], [711, 983.563], [710, 984.517], [709, 985.492], [708.484, 986], [707.492, 987], [706.501, 988], [706, 988.415], [705.448, 989], [704.355, 990], [703.268, 991], [702, 991.519], [701, 992.494], [700.442, 993], [699.399, 994], [698, 994.583], [697, 995.544], [696, 996.486], [695.41, 997], [694.387, 998], [694, 999]
-Path 307: [232, 944], [231, 944], [230, 944], [229.359, 945], [228.179, 946], [227, 947], [226, 947.248], [225.263, 948], [224, 948.446], [223.385, 949], [222.394, 950], [221.535, 951], [221, 951.427], [220.578, 952], [220, 952.437], [219.275, 953], [218.398, 954], [217.443, 955], [216.378, 956], [215, 957]
-Path 308: [665, 940], [665, 941], [665, 942.435], [665.773, 943], [666, 944], [666.552, 945], [667, 946], [667.562, 947], [668.501, 948], [669.488, 949], [670, 949.442], [670.38, 950], [671, 950], [672, 950]
-Path 309: [563, 944], [563, 945], [563.443, 946], [564, 946.583], [564, 948]
-Path 310: [546, 946], [545, 946], [544, 947], [543, 947], [542, 948], [541, 948.274], [540.266, 949], [539, 949.527], [538, 950.524], [537, 951.459], [536.349, 952], [535.3, 953], [534.275, 954], [533, 954.318], [532.599, 955], [532, 955.347], [531.659, 956], [531, 956.467], [531, 957], [530.277, 958], [529.258, 959], [528, 959.57], [527, 960.068], [527, 961]
-Path 311: [212, 947], [213, 947], [214, 947.425], [214.571, 948], [216, 949], [217, 949.523], [218, 950.423], [218, 951]
-Path 312: [835, 947], [834, 947], [833, 947], [832.291, 948], [831.25, 949], [830.204, 950], [829.029, 951], [828, 951.263], [827.29, 952], [826.251, 953]
-Path 313: [383, 947], [383, 948], [383.593, 949], [384.435, 950], [385, 950], [386, 950]
-Path 314: [678, 948], [677, 948], [676, 948], [675.403, 949], [675, 950]
-Path 315: [853, 947], [853, 948], [854, 948.537], [854.567, 950], [855, 951], [855.571, 952], [856.533, 953], [857.587, 954], [859, 954.527], [859.502, 956], [860, 957], [860.499, 958], [861, 958.421], [861.549, 959], [862.584, 960], [863.428, 961], [864, 961.569], [864.525, 963], [865.125, 964], [866, 964]
-Path 316: [60, 949], [59, 949], [58, 949], [58, 950], [57.5466, 951], [57, 951.552], [56.3484, 953], [55.3158, 954], [54.4304, 955], [53.5353, 956], [53, 956.317], [53, 957]
-Path 317: [509, 940], [509, 940.822], [510, 941], [511, 941.497], [512.442, 942], [513.379, 943], [514, 943.636], [515, 944.423], [516, 945.425], [517.445, 946], [518, 946.68], [519, 947.393], [520, 948], [520.516, 948], [521, 948.525], [522, 949], [522.599, 950], [524, 950.484], [524.451, 951], [525, 951.452], [525.435, 952], [526, 952.436], [526, 953], [526.431, 954], [527, 954.284], [527.555, 955]
-Path 318: [671, 933], [670, 933.023], [669, 934], [668, 934.434], [666.545, 935], [666, 935.51], [665, 936.4], [664, 937.179], [663, 938.054], [662, 939], [661, 940], [660, 940.409], [659, 941.012], [658, 942], [657, 943], [656, 944], [655, 944], [654, 945], [653, 945.033], [652, 946], [651, 946.246], [650, 947.169], [649, 948], [648.479, 948], [648, 948.547], [647.498, 949], [647, 949.584], [646.442, 950], [646, 950.537], [645, 951], [644.353, 952], [643, 952.57], [642, 953.584], [641, 954.556], [640, 955.547], [639, 956]
-Path 319: [728, 949], [726.502, 949], [725.512, 950], [725, 950.571], [724, 951], [723.457, 952], [722.319, 953], [721, 954], [720, 954], [719, 955], [718, 955.381], [717.314, 956], [716, 956.507], [715, 957.311], [714.383, 958], [713, 959], [712, 960], [711, 960], [710, 960.268], [709.302, 961], [708, 962], [707, 962], [706, 963], [705, 963], [704, 964], [703, 964], [702, 965], [701, 965.327], [700.336, 966], [699.303, 967], [698.163, 968], [697.239, 969], [696.49, 970], [695.621, 971], [695, 971.518], [694.458, 973]
-Path 320: [819, 950], [819, 950.893], [818, 951], [817, 951], [816, 952]
-Path 321: [207, 954], [207, 955], [207, 956], [208, 957], [208, 958]
-Path 322: [824, 954], [823.302, 955], [822, 955.465], [821.521, 956], [821, 956.425], [820.51, 957], [820, 957.402], [819.454, 958], [818.341, 959], [818, 960], [817, 961], [816, 961.241], [815.253, 962], [814.195, 963], [813, 963.37], [812.474, 964], [811.64, 965], [811, 965.616], [811, 967], [812, 967.773], [813, 968.827], [813.528, 970], [814.424, 971], [815, 971.581], [815.575, 973], [816.453, 974], [817, 974.578], [817.55, 976], [818.44, 977], [819, 977.545], [819.611, 979], [820.413, 980], [821, 980.544], [821.595, 982], [822.507, 983], [824, 983.912], [824.506, 985], [825.415, 986], [826, 986.572], [826.59, 988], [827.51, 989], [828.468, 990], [829, 990.551], [830, 991.61], [830.586, 993], [831.5, 994], [832, 994.492], [832.448, 995], [833, 995.535], [834, 996.553], [835, 997.538], [835, 999]
-Path 323: [263, 955], [264, 955.631], [265, 956.551], [266, 957.414], [266.626, 958], [267, 959]
-Path 324: [312, 955], [311, 955], [311, 956], [311, 957], [311.357, 958], [312, 958.314], [312.472, 959], [313, 959], [314, 959.467], [314.372, 960], [315, 960]
-Path 325: [200, 953], [199.401, 953], [199, 953.598], [198.365, 954], [198, 954.529], [197.385, 955], [196.508, 956], [196, 957], [195.498, 958], [194.524, 959], [194, 959.403], [193.417, 960], [192.386, 961], [191.534, 962], [191, 962.393], [190.397, 963], [189, 963.35], [189, 964], [188, 965], [187, 965]
-Path 326: [271, 957], [271, 958], [271.497, 959], [272, 959.561], [273, 960.548], [274, 961.473], [274.434, 962], [275, 962.349], [275.637, 963], [276.559, 964], [277, 965]
-Path 327: [774, 956], [773, 957], [772, 957.391], [771, 958], [770.378, 959], [769, 959.452], [769, 960], [768, 961], [767, 962], [766.259, 963], [765.449, 964], [764.488, 965], [763.5, 966], [763, 966.411], [762.455, 967], [761.389, 968], [760.386, 969], [759, 969.465], [758.428, 970], [757.351, 971], [756.294, 972], [755, 972.482], [754.478, 973], [753.42, 974], [752.332, 975], [751, 975.434], [750.47, 976], [749.429, 977], [748.356, 978], [747.271, 979], [746, 979.454], [745.439, 980], [744.379, 981], [743.345, 982], [742, 982.516], [741, 983.524], [740, 984.492], [739.472, 985], [738.395, 986], [737.05, 987], [736, 987.305], [735.322, 988], [734.292, 989], [733, 989.039], [732.091, 990], [731, 991], [730, 991.374], [730, 992], [729.842, 993], [729, 993], [728, 993.704], [727.253, 995], [726.303, 996], [725, 996.271], [725, 997]
-Path 328: [563, 953], [562, 953], [561, 953.391], [560.455, 954], [559.502, 955], [558.569, 956], [557.554, 957], [557, 957.522], [556, 958.399], [555, 959], [554.259, 960], [553, 960.455], [552.492, 961], [551.484, 962], [550.474, 963], [549.42, 964], [548, 964.517], [547, 965.299], [546.225, 966], [545, 966.467], [544.43, 967], [543.297, 968], [542.304, 969], [541, 969.51], [540.497, 971], [539.471, 972], [539, 973], [538, 974], [537, 975], [536, 976], [535, 976], [534, 976.54], [533, 977.562], [532, 978.539], [531, 979.483], [530.509, 980], [530, 980.438], [529.479, 981], [528.391, 982], [527.229, 983]
-Path 329: [641, 958], [641, 959], [641, 960], [641.544, 961], [642.42, 962], [643, 962.406], [643, 963], [643.504, 964], [644, 965], [644.265, 966], [645, 966]
-Path 330: [50, 960], [51, 960.497], [51, 961], [51, 962], [51, 963]
-Path 331: [254.042, 960], [255, 961], [255.621, 962], [256.146, 963], [257, 963]
-Path 332: [630, 961], [629, 962], [628, 963], [627, 963], [626, 964], [625, 965], [624, 966], [623, 966]
-Path 333: [683, 962], [682, 962], [681.277, 963], [680, 963.249], [679.301, 964], [678.192, 965], [677.105, 966], [676, 966.31], [675.3, 967], [674.25, 968], [673.173, 969], [672.127, 970], [671, 970.261], [670.283, 971], [669.201, 972], [668.141, 973], [667, 973.315], [666.33, 974], [665.259, 975], [664.169, 976], [663.055, 977], [662, 977.068], [661.083, 978], [660, 979], [659, 979.13], [658.149, 980], [657, 981], [656, 981.001], [655.002, 982], [654, 982.207], [653.252, 983], [652.16, 984], [651, 984.432], [650.45, 985], [649.441, 986], [648.443, 987], [647.481, 988], [646.498, 989], [645.432, 990], [645, 991], [644.016, 992], [643, 992.326], [642.321, 993], [641.399, 994], [640.405, 995], [639.436, 996], [638.537, 997], [638, 997.547], [638, 999]
-Path 334: [397, 957], [395.591, 957], [394.509, 958], [394, 958.51], [393, 959.441], [392, 960.392], [391, 961.479], [390, 962.496], [389, 963], [388.415, 964], [387.32, 965], [386.248, 966], [385, 966.476], [384.5, 967], [384, 967.441], [383.479, 968], [382.429, 969], [381.334, 970], [380, 971], [379, 971], [378, 972], [377, 973], [376, 973.601], [375, 974.562], [374, 975.487], [373.424, 976], [372, 976.619], [371, 977.6], [370, 978.587], [369, 979.546], [368, 980.479], [367.456, 981], [366.406, 982], [365.377, 983], [364, 983.519], [363, 984.478], [362.479, 985], [361.441, 986], [360.423, 987], [359.473, 988], [358.559, 989], [358, 989.576], [357, 990]
-Path 335: [316, 964], [315, 964], [314, 964], [313.583, 965], [313, 965]
-Path 336: [205, 965], [204, 965], [203.417, 966], [202.138, 967], [201, 968], [200, 969], [199, 970], [198, 970], [197, 970.404], [196.41, 971], [195, 971.505], [194, 973], [193.303, 974], [193, 975], [193, 976]
-Path 337: [272, 966], [272.712, 967], [273.396, 968], [274, 968.496], [274, 969], [274, 970]
-Path 338: [51, 965], [51.4704, 966], [52, 967], [52, 968], [52, 969], [52, 970], [52.4132, 971], [53, 971.429], [53.5542, 972], [55, 972], [56, 972.519]
-Path 339: [288, 966], [288, 966.596], [289, 967], [289.662, 968], [290.511, 969], [291.36, 970], [292, 970.299], [292.319, 971], [293, 971.445], [293, 972], [293.56, 973], [294.632, 974], [296, 974.543], [297, 975.556], [298, 976.537], [298.629, 978], [299.651, 979], [300.633, 980], [301, 981]
-Path 340: [887, 967], [887, 968], [888, 968.436], [888.455, 969], [889, 969]
-Path 341: [318, 970], [318.383, 971], [319, 971.546], [320, 972.54], [321, 973], [322, 973], [323, 973.268], [323.354, 974], [324, 974.249], [324, 975]
-Path 342: [902, 968], [902.476, 969], [903.431, 970], [904, 971], [905, 971.594], [906, 972.564], [907, 973.531], [908, 974.487], [908.494, 975], [909, 975.476], [909.538, 976], [910.553, 977], [911.563, 978], [912.576, 979], [913.574, 980], [914.579, 981], [915.601, 982], [916.582, 983], [917.551, 984], [918.53, 985], [920, 985.871], [921, 987], [921, 988], [921.055, 989], [922, 990]
-Path 343: [865, 969], [865.416, 970], [866.467, 971], [867.48, 972], [868, 973], [868, 973.505], [869, 974]
-Path 344: [587, 972], [586.205, 972], [586, 973.037], [585, 974], [584, 975], [583, 975], [582.115, 976], [581, 976.366], [581, 977], [580.464, 978], [579.507, 979], [579, 979.51], [578, 980]
-Path 345: [805, 970], [804, 970.457], [803.355, 971], [803, 972.317], [802, 973.296], [801.335, 974], [801, 975], [800, 976], [799, 976], [798, 976], [797.248, 977], [796.233, 978], [795.224, 979], [794, 979.328], [794, 980], [793.109, 981], [792, 981.221], [792, 982], [791, 983], [790, 983], [789, 984], [788, 984], [787, 985], [786.219, 986], [785.189, 987], [784.184, 988], [783, 988.292], [782.382, 989], [781.338, 990], [780.295, 991], [779.226, 992], [778.209, 993], [777, 994], [776, 995]
-Path 346: [165, 977], [164, 977], [163.386, 978], [162.426, 979], [161.495, 980], [160.583, 981], [160, 981.608], [159, 982.587], [158, 983.579], [157.344, 985], [156.009, 986], [155, 986]
-Path 347: [253, 977], [254, 977.54], [255, 978.611], [256, 979.525], [257, 980], [258, 980.581], [259, 981.396], [259.223, 982], [260, 982]
-Path 348: [227, 978], [227, 979], [228, 979.62], [229, 980.633], [229.551, 982], [230.44, 983], [231, 983.337], [231, 984]
-Path 349: [527, 977], [526, 978], [525, 979], [524, 979], [524, 980], [524, 981], [524, 982]
-Path 350: [683, 979], [682, 979], [681.023, 980], [680, 980.166], [679.22, 981], [678, 982], [677, 982.199], [676.217, 983], [675, 983.397], [674.405, 984], [673.341, 985], [672.219, 986], [671, 986.267], [670.297, 987], [669.203, 988], [668, 988.352], [667.384, 989], [666.391, 990], [666, 991]
-Path 351: [243, 976], [242, 976.064], [241, 977], [240, 977.474], [239, 978.415], [237.588, 979], [237, 980], [236, 980.54], [235, 981.478], [234.471, 982], [233.436, 983]
-Path 352: [285, 981], [286, 981.432], [286.311, 982], [287, 982]
-Path 353: [308, 981], [307, 981], [306, 982], [305, 982], [304, 983], [303, 983.513], [303, 985], [302.672, 986]
-Path 354: [312, 980.428], [313, 981], [313.644, 982], [314.563, 983], [315.518, 984], [316.444, 985], [317, 985.563], [317.594, 987], [318.27, 988], [319, 988]
-Path 355: [635, 979], [634, 979], [633, 980], [632, 980.143], [631, 981], [630, 981], [629.433, 982], [629, 983], [629, 984], [628.607, 985], [628, 985.185], [628, 986]
-Path 356: [868, 981], [867, 982], [866, 982.366], [866, 983], [865, 984], [864, 985], [863, 985.154], [862.184, 986], [861, 986.346], [860.341, 987], [859, 987.56], [858, 988.48], [858, 989], [857.186, 990], [856, 990], [855, 990.617], [854, 991.499], [854, 992], [853.317, 993], [852, 993.32], [852, 994]
-Path 357: [141, 982], [141, 983], [142, 983.531], [143, 984], [144, 984]
-Path 358: [619, 981], [619, 981.627], [620, 982], [620.562, 982], [621.479, 983], [622, 984], [622.47, 985], [623, 985.464], [623.381, 986], [624, 986], [625, 987]
-Path 359: [894, 968], [894, 968.635], [895.43, 969], [896.384, 970], [897, 971.359], [898, 972.479], [899, 973.474], [899.525, 974], [900.465, 975], [901.429, 976], [902, 977.423], [903, 978.476], [904, 979.431], [905, 980.392], [906, 981.401], [907.421, 982], [908.46, 983], [909, 984], [910, 984.421], [910.481, 985], [911, 985.39], [911.519, 986], [912.583, 987], [913.662, 988], [915, 988.619], [916, 989.565], [917, 990.545], [918, 991.609], [919, 992.7], [920, 993.549], [921, 994.482], [921.562, 995], [922.499, 996], [923, 996.383], [923.24, 997], [924, 997]
-Path 360: [292, 985], [293, 985], [294, 985.479], [294, 986]
-Path 361: [136, 986], [135, 986], [134.676, 987], [134, 987.378], [134, 988]
-Path 362: [523, 986], [522, 986], [521, 987], [520, 987.159], [519.202, 988], [518, 988.342], [517.343, 989], [516.327, 990], [515.326, 991], [514.313, 992], [513.238, 993], [512, 993.36], [511.36, 994], [510.292, 995], [509.207, 996], [508, 996.369], [507.38, 997], [506.335, 998], [505.374, 999]
-Path 363: [162, 987], [163, 987], [163.56, 988], [164.476, 989], [165, 989.585], [165.496, 991], [166, 991.401], [166.426, 992], [167, 992.358], [167, 993], [167.233, 994], [168, 994.778], [168, 996]
-Path 364: [380, 987], [379, 987], [378, 987], [377.598, 988], [377, 988.526], [376, 989]
-Path 365: [144, 987], [144, 988], [144, 989], [144, 990], [144.44, 991], [145, 991.301], [145, 992]
-Path 366: [434, 988], [433, 988], [432.449, 989], [431.37, 990], [431, 991], [430, 992], [429, 992.006], [428.005, 993], [427, 993.367], [426.379, 994], [425.312, 995], [424.317, 996], [423.858, 997], [423, 997]
-Path 367: [39, 989], [39.3222, 990], [40, 990], [41, 991], [42, 991.449], [42.5407, 992], [43.3585, 993], [44, 993.541], [45, 994], [46, 994.595], [47, 995]
-Path 368: [273, 988], [273, 989], [273, 990], [273.516, 991], [274.272, 992], [275, 992.418], [275.225, 993], [276, 993.452], [276.241, 994], [277, 994.562], [277.329, 996], [278, 996]
-Path 369: [874, 983], [874, 983.589], [875.433, 984], [876.395, 985], [877.474, 986], [878.458, 987], [879.485, 988], [880, 989], [881, 989.537], [882, 990.556], [883, 991.596], [883.592, 993], [884.603, 994], [885.602, 995], [886.592, 996], [887.55, 997], [888.427, 998], [889, 998.419], [889, 999]
-Path 370: [121, 990], [120, 990], [119, 991], [118, 991], [117, 992], [116, 992]
-Path 371: [615, 981], [614.055, 981], [614, 982.134], [612.614, 983], [611.645, 984], [610.666, 985], [610, 986], [609.6, 987], [609, 988], [609, 989], [609, 990]
-Path 372: [324, 991], [323, 991], [322, 991], [321.306, 992], [320.349, 993], [319.499, 994], [319, 995], [319, 996], [319, 997], [319.581, 998], [320, 999]
-Path 373: [774, 991], [774.328, 992], [775, 992.158], [775, 993]
-Path 374: [267, 992], [266.228, 992], [266, 992.692], [265, 993], [265, 994], [265, 995]
-Path 375: [353, 994], [352, 994], [351.338, 995], [350, 995.557], [349, 996.471], [348.604, 997], [348, 997.434], [347.709, 998], [347, 998.456], [347, 999]
-Path 376: [447, 993], [447, 993.508], [448, 994], [448.585, 995], [449.631, 996], [451, 996.572], [452, 997.449], [452.484, 998], [453, 998.382], [453, 999]
-Path 377: [360.445, 993], [361, 994], [361, 995], [362, 995.559], [363, 996.575], [363.493, 998], [364, 998.399], [364, 999]
-Path 378: [849, 995], [848, 995], [847, 996], [846, 997], [846, 998], [846, 999]
-Path 379: [36, 996], [37, 996.347], [37.5507, 997], [39, 997]
-Path 380: [382, 995], [382, 995.842], [383, 996], [384, 996], [384.621, 997], [385.566, 998], [386, 999]
-Path 381: [852, 994], [853, 995], [853, 996], [853.657, 997], [854.515, 998], [855, 999]
-Path 382: [195, 991], [194.435, 991], [194, 992.435], [193, 993.387], [192, 994.494], [191.458, 995], [191, 996.312], [190, 997], [189.395, 998], [189, 999]
-Path 383: [592, 995], [592, 996], [592, 996.547], [593, 997], [593.475, 998], [594, 998.378], [594, 999]
-Path 384: [927, 994], [928, 994], [929, 995], [929, 995.511], [930, 996.432], [931, 997], [932, 997.492], [932.455, 998], [933, 998.466], [933, 999]
diff --git a/Data/Baseline/OTB/Files/fzTvDSValidatedRoadVectorDataOutput.dbf b/Data/Baseline/OTB/Files/fzTvDSValidatedRoadVectorDataOutput.dbf
deleted file mode 100644
index dad747fadfc34595b27fc718e1f0a0833bd0fb0f..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/fzTvDSValidatedRoadVectorDataOutput.dbf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:4910095bcc63510b5d14ced32ec054d329fb1f106676869563424bccd6d998bc
-size 12597
diff --git a/Data/Baseline/OTB/Files/fzTvDSValidatedRoadVectorDataOutput.shp b/Data/Baseline/OTB/Files/fzTvDSValidatedRoadVectorDataOutput.shp
deleted file mode 100644
index db9524f4ac8c78193c1af6e2767f3ae5901dfba6..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/fzTvDSValidatedRoadVectorDataOutput.shp
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:a1e3ab5de6caec9d1e335eafe346c673f87ec06c02f0fb3a5ccafeb3919961c8
-size 12084
diff --git a/Data/Baseline/OTB/Files/fzTvDSValidatedRoadVectorDataOutput.shx b/Data/Baseline/OTB/Files/fzTvDSValidatedRoadVectorDataOutput.shx
deleted file mode 100644
index 33a059571d78911f9ed73052eb7c74ad7222ad7a..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/fzTvDSValidatedRoadVectorDataOutput.shx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:0ffb45fdd34b1bb0bbb8817b1de538b4609e806972cf5287d9ec3b7828c86cc2
-size 628
diff --git a/Data/Baseline/OTB/Files/fzTvVectorDataToRoadDescriptionFilterOutput.dbf b/Data/Baseline/OTB/Files/fzTvVectorDataToRoadDescriptionFilterOutput.dbf
deleted file mode 100644
index fdefcdf3425ca5e4912797aacabf50f7a36609cb..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/fzTvVectorDataToRoadDescriptionFilterOutput.dbf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:1acfd03f31de99605e10020ae2646b81143bd7f816559bc7d962ef2b49216af7
-size 10055
diff --git a/Data/Baseline/OTB/Files/fzTvVectorDataToRoadDescriptionFilterOutput.shp b/Data/Baseline/OTB/Files/fzTvVectorDataToRoadDescriptionFilterOutput.shp
deleted file mode 100644
index b3adb3d3bb2ccb2ae5bfefd4abb19bd64970103a..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/fzTvVectorDataToRoadDescriptionFilterOutput.shp
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:ff01566163097422211e31b35823cc6ede15efa3965bcc72f2e89f8b95fc2b30
-size 12860
diff --git a/Data/Baseline/OTB/Files/fzTvVectorDataToRoadDescriptionFilterOutput.shx b/Data/Baseline/OTB/Files/fzTvVectorDataToRoadDescriptionFilterOutput.shx
deleted file mode 100644
index 8eb95e8e60e8cf4597630573a9dcfa4c795487fc..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/fzTvVectorDataToRoadDescriptionFilterOutput.shx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:b033aa81a9212511ecb13bf36bb9b92d26a2272e8fd2e7106fd938f623084664
-size 668
diff --git a/Data/Baseline/OTB/Files/obTvHooverMatrixFilter.txt b/Data/Baseline/OTB/Files/obTvHooverMatrixFilter.txt
index 94d2133f6b9804fd92b3caedf977dda8f0e3fb3c..f26c0213ffe4decceafcc5ddef12cfb7804081a4 100644
--- a/Data/Baseline/OTB/Files/obTvHooverMatrixFilter.txt
+++ b/Data/Baseline/OTB/Files/obTvHooverMatrixFilter.txt
@@ -1,4 +1,3 @@
-5826	0	0	0	0
-0	1221	0	0	0
-0	0	1560	0	76
-291	0	0	1476	72
+66	0	0
+0	66	0
+0	0	77
diff --git a/Data/Baseline/OTB/Files/obTvLabelMapToVectorDataFilter.1.dbf b/Data/Baseline/OTB/Files/obTvLabelMapToVectorDataFilter.1.dbf
deleted file mode 100644
index 0f08f3fb2beb363362f44b8b9dd9ff44202c288d..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/obTvLabelMapToVectorDataFilter.1.dbf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:7b569ccdf07c81702a2d9b9d2de6fb196f3ac8d3a28cac40b77b520b786cba61
-size 77
diff --git a/Data/Baseline/OTB/Files/obTvLabelMapToVectorDataFilter.1.shp b/Data/Baseline/OTB/Files/obTvLabelMapToVectorDataFilter.1.shp
deleted file mode 100644
index 9b56f40fa4796185ee13dad6841807407a6d48d3..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/obTvLabelMapToVectorDataFilter.1.shp
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:2ea4e04a7d38ecc8754828204aab67cdf51fd69054da7c1ed8c3257ce1764ece
-size 284
diff --git a/Data/Baseline/OTB/Files/obTvLabelMapToVectorDataFilter.1.shx b/Data/Baseline/OTB/Files/obTvLabelMapToVectorDataFilter.1.shx
deleted file mode 100644
index 2a1f95e40a1cf6322eacb52ab4c796a7ffba7b35..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/obTvLabelMapToVectorDataFilter.1.shx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:3e4c1b4db2157ab84d77eaf714555cca7915b573fbe5e691e6ab2ce4f7e2defc
-size 108
diff --git a/Data/Baseline/OTB/Files/obTvLabelMapToVectorDataFilter.dbf b/Data/Baseline/OTB/Files/obTvLabelMapToVectorDataFilter.dbf
index 0f08f3fb2beb363362f44b8b9dd9ff44202c288d..631e7c82cb3ff2f983790645329a5d14cfe82596 100644
--- a/Data/Baseline/OTB/Files/obTvLabelMapToVectorDataFilter.dbf
+++ b/Data/Baseline/OTB/Files/obTvLabelMapToVectorDataFilter.dbf
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:7b569ccdf07c81702a2d9b9d2de6fb196f3ac8d3a28cac40b77b520b786cba61
-size 77
+oid sha256:2dcf4153202960ac9e3d92293108c2ffa5ebb4c258695f366e3e49cf078f2808
+size 102
diff --git a/Data/Baseline/OTB/Files/obTvLabelMapToVectorDataFilter.shp b/Data/Baseline/OTB/Files/obTvLabelMapToVectorDataFilter.shp
index c6b34a49304ff32b6d7bb2314522a7fece34d6b5..73c5eea2ce3b904768567f18fa0b0ce0672eafcb 100644
--- a/Data/Baseline/OTB/Files/obTvLabelMapToVectorDataFilter.shp
+++ b/Data/Baseline/OTB/Files/obTvLabelMapToVectorDataFilter.shp
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:42c325b877fb5db5b15ee30e5c691a4500370bda6bf851ec33cb868f0b8f73fe
-size 364
+oid sha256:a5b0b418ddcc3967ac3dc0c263799abcc2173f6755c984583bdae05e2f94e1c0
+size 828
diff --git a/Data/Baseline/OTB/Files/obTvLabelMapToVectorDataFilter.shx b/Data/Baseline/OTB/Files/obTvLabelMapToVectorDataFilter.shx
index ccd3962d47d6794f8b06ea86131e5853270d7df6..ed61a0c43a797502a4a2638de7b027a34f646c09 100644
--- a/Data/Baseline/OTB/Files/obTvLabelMapToVectorDataFilter.shx
+++ b/Data/Baseline/OTB/Files/obTvLabelMapToVectorDataFilter.shx
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:7eb939ef1b4d627696c5ddb141d2364794e5fd7f85f56a31bacc97d161b4f692
-size 108
+oid sha256:5f275e86fab9c7dbd9aade5a425fb227d909b1b3ecc81b139f7ce01ffb5c2f91
+size 124
diff --git a/Data/Baseline/OTB/Files/srRCC8CalculatorOutput.txt b/Data/Baseline/OTB/Files/srRCC8CalculatorOutput.txt
deleted file mode 100644
index 443a0f86e801040b656531a5d6964a27e7964204..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/srRCC8CalculatorOutput.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-Test results from otbImageToImageRCC8calculator test.
-7	1	0	0	
-1	7	4	6	
-0	3	7	2	
-0	5	2	7	
diff --git a/Data/Baseline/OTB/Files/srRCC8GraphFilterOutput.dot b/Data/Baseline/OTB/Files/srRCC8GraphFilterOutput.dot
deleted file mode 100644
index 79ae6d70ff30eba499eaf025da67cc89073e07f1..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/srRCC8GraphFilterOutput.dot
+++ /dev/null
@@ -1,19 +0,0 @@
-digraph G {
-0 [NumberOfPointsInPath="112",P0x="55.5",P0y="123.5",P100x="31.5",P100y="141",P101x="31.5",P101y="139.5",P102x="41.5",P102y="129.5",P103x="43",P103y="129.5",P104x="44.5",P104y="127.5",P105x="46",P105y="127.5",P106x="46.5",P106y="126.5",P107x="49",P107y="126.5",P108x="49.5",P108y="125.5",P109x="51",P109y="125.5",P10x="80",P10y="129.5",P110x="51.5",P110y="124.5",P111x="55",P111y="124.5",P11x="81.5",P11y="129.5",P12x="91.5",P12y="139.5",P13x="91.5",P13y="141",P14x="93.5",P14y="142.5",P15x="93.5",P15y="144",P16x="94.5",P16y="144.5",P17x="94.5",P17y="146",P18x="95.5",P18y="146.5",P19x="95.5",P19y="148",P1x="67.5",P1y="123.5",P20x="96.5",P20y="148.5",P21x="96.5",P21y="151",P22x="97.5",P22y="151.5",P23x="97.5",P23y="154",P24x="98.5",P24y="154.5",P25x="98.5",P25y="157",P26x="99.5",P26y="157.5",P27x="99.5",P27y="163",P28x="100.5",P28y="163.5",P29x="100.5",P29y="178.5",P2x="68",P2y="124.5",P30x="99.5",P30y="179",P31x="99.5",P31y="184.5",P32x="98.5",P32y="185",P33x="98.5",P33y="187.5",P34x="97.5",P34y="188",P35x="97.5",P35y="190.5",P36x="96.5",P36y="191",P37x="96.5",P37y="193.5",P38x="95.5",P38y="194",P39x="95.5",P39y="195.5",P3x="71.5",P3y="124.5",P40x="94.5",P40y="196",P41x="94.5",P41y="197.5",P42x="93.5",P42y="198",P43x="93.5",P43y="199.5",P44x="91.5",P44y="201",P45x="91.5",P45y="202.5",P46x="81.5",P46y="212.5",P47x="80",P47y="212.5",P48x="78.5",P48y="214.5",P49x="77",P49y="214.5",P4x="72",P4y="125.5",P50x="76.5",P50y="215.5",P51x="74",P51y="215.5",P52x="73.5",P52y="216.5",P53x="72",P53y="216.5",P54x="71.5",P54y="217.5",P55x="68",P55y="217.5",P56x="67.5",P56y="218.5",P57x="55.5",P57y="218.5",P58x="55",P58y="217.5",P59x="51.5",P59y="217.5",P5x="73.5",P5y="125.5",P60x="51",P60y="216.5",P61x="49.5",P61y="216.5",P62x="49",P62y="215.5",P63x="46.5",P63y="215.5",P64x="46",P64y="214.5",P65x="44.5",P65y="214.5",P66x="43",P66y="212.5",P67x="41.5",P67y="212.5",P68x="31.5",P68y="202.5",P69x="31.5",P69y="201",P6x="74",P6y="126.5",P70x="29.5",P70y="199.5",P71x="29.5",P71y="198",P72x="28.5",P72y="197.5",P73x="28.5",P73y="196",P74x="27.5",P74y="195.5",P75x="27.5",P75y="194",P76x="26.5",P76y="193.5",P77x="26.5",P77y="191",P78x="25.5",P78y="190.5",P79x="25.5",P79y="188",P7x="76.5",P7y="126.5",P80x="24.5",P80y="187.5",P81x="24.5",P81y="185",P82x="23.5",P82y="184.5",P83x="23.5",P83y="179",P84x="22.5",P84y="178.5",P85x="22.5",P85y="163.5",P86x="23.5",P86y="163",P87x="23.5",P87y="157.5",P88x="24.5",P88y="157",P89x="24.5",P89y="154.5",P8x="77",P8y="127.5",P90x="25.5",P90y="154",P91x="25.5",P91y="151.5",P92x="26.5",P92y="151",P93x="26.5",P93y="148.5",P94x="27.5",P94y="148",P95x="27.5",P95y="146.5",P96x="28.5",P96y="146",P97x="28.5",P97y="144.5",P98x="29.5",P98y="144",P99x="29.5",P99y="142.5",P9x="78.5",P9y="127.5",SegmentationLevel="0",SegmentationType="0"];
-1 [NumberOfPointsInPath="5",P0x="187.5",P0y="31.5",P1x="221.5",P1y="31.5",P2x="221.5",P2y="202.5",P3x="187.5",P3y="202.5",P4x="187.5",P4y="33",SegmentationLevel="0",SegmentationType="0"];
-2 [NumberOfPointsInPath="120",P0x="134.5",P0y="38.5",P100x="122.5",P100y="69",P101x="122.5",P101y="64.5",P102x="123.5",P102y="64",P103x="123.5",P103y="60.5",P104x="124.5",P104y="60",P105x="124.5",P105y="56.5",P106x="125.5",P106y="56",P107x="125.5",P107y="52.5",P108x="126.5",P108y="52",P109x="126.5",P109y="49.5",P10x="144.5",P10y="47.5",P110x="127.5",P110y="49",P111x="127.5",P111y="47.5",P112x="128.5",P112y="47",P113x="128.5",P113y="45.5",P114x="129.5",P114y="45",P115x="129.5",P115y="43.5",P116x="130.5",P116y="43",P117x="130.5",P117y="41.5",P118x="132.5",P118y="39.5",P119x="134",P119y="39.5",P11x="144.5",P11y="49",P12x="145.5",P12y="49.5",P13x="145.5",P13y="52",P14x="146.5",P14y="52.5",P15x="146.5",P15y="56",P16x="147.5",P16y="56.5",P17x="147.5",P17y="60",P18x="148.5",P18y="60.5",P19x="148.5",P19y="64",P1x="137.5",P1y="38.5",P20x="149.5",P20y="64.5",P21x="149.5",P21y="69",P22x="150.5",P22y="69.5",P23x="150.5",P23y="75",P24x="151.5",P24y="75.5",P25x="151.5",P25y="83",P26x="152.5",P26y="83.5",P27x="152.5",P27y="92",P28x="153.5",P28y="92.5",P29x="153.5",P29y="107",P2x="138",P2y="39.5",P30x="154.5",P30y="107.5",P31x="154.5",P31y="149.5",P32x="153.5",P32y="150",P33x="153.5",P33y="164.5",P34x="152.5",P34y="165",P35x="152.5",P35y="173.5",P36x="151.5",P36y="174",P37x="151.5",P37y="181.5",P38x="150.5",P38y="182",P39x="150.5",P39y="187.5",P3x="139.5",P3y="39.5",P40x="149.5",P40y="188",P41x="149.5",P41y="192.5",P42x="148.5",P42y="193",P43x="148.5",P43y="196.5",P44x="147.5",P44y="197",P45x="147.5",P45y="200.5",P46x="146.5",P46y="201",P47x="146.5",P47y="204.5",P48x="145.5",P48y="205",P49x="145.5",P49y="207.5",P4x="141.5",P4y="41.5",P50x="144.5",P50y="208",P51x="144.5",P51y="209.5",P52x="143.5",P52y="210",P53x="143.5",P53y="211.5",P54x="142.5",P54y="212",P55x="142.5",P55y="213.5",P56x="141.5",P56y="214",P57x="141.5",P57y="215.5",P58x="139.5",P58y="217.5",P59x="138",P59y="217.5",P5x="141.5",P5y="43",P60x="137.5",P60y="218.5",P61x="134.5",P61y="218.5",P62x="134",P62y="217.5",P63x="132.5",P63y="217.5",P64x="130.5",P64y="215.5",P65x="130.5",P65y="214",P66x="129.5",P66y="213.5",P67x="129.5",P67y="212",P68x="128.5",P68y="211.5",P69x="128.5",P69y="210",P6x="142.5",P6y="43.5",P70x="127.5",P70y="209.5",P71x="127.5",P71y="208",P72x="126.5",P72y="207.5",P73x="126.5",P73y="205",P74x="125.5",P74y="204.5",P75x="125.5",P75y="201",P76x="124.5",P76y="200.5",P77x="124.5",P77y="197",P78x="123.5",P78y="196.5",P79x="123.5",P79y="193",P7x="142.5",P7y="45",P80x="122.5",P80y="192.5",P81x="122.5",P81y="188",P82x="121.5",P82y="187.5",P83x="121.5",P83y="182",P84x="120.5",P84y="181.5",P85x="120.5",P85y="174",P86x="119.5",P86y="173.5",P87x="119.5",P87y="165",P88x="118.5",P88y="164.5",P89x="118.5",P89y="150",P8x="143.5",P8y="45.5",P90x="117.5",P90y="149.5",P91x="117.5",P91y="107.5",P92x="118.5",P92y="107",P93x="118.5",P93y="92.5",P94x="119.5",P94y="92",P95x="119.5",P95y="83.5",P96x="120.5",P96y="83",P97x="120.5",P97y="75.5",P98x="121.5",P98y="75",P99x="121.5",P99y="69.5",P9x="143.5",P9y="47",SegmentationLevel="0",SegmentationType="0"];
-3 [NumberOfPointsInPath="5",P0x="19.5",P0y="30.5",P1x="84.5",P1y="30.5",P2x="84.5",P2y="94.5",P3x="19.5",P3y="94.5",P4x="19.5",P4y="32",SegmentationLevel="0",SegmentationType="0"];
-4 [NumberOfPointsInPath="164",P0x="53.5",P0y="85.5",P100x="25.5",P100y="202.5",P101x="25.5",P101y="201",P102x="24.5",P102y="200.5",P103x="24.5",P103y="199",P104x="23.5",P104y="198.5",P105x="23.5",P105y="197",P106x="22.5",P106y="196.5",P107x="22.5",P107y="195",P108x="21.5",P108y="194.5",P109x="21.5",P109y="192",P10x="85",P10y="96.5",P110x="21",P110y="191.5",P111x="19.5",P111y="191.5",P112x="19.5",P112y="189",P113x="18.5",P113y="188.5",P114x="18.5",P114y="186",P115x="17.5",P115y="185.5",P116x="17.5",P116y="183",P117x="16.5",P117y="182.5",P118x="16.5",P118y="179",P119x="15.5",P119y="178.5",P11x="86.5",P11y="96.5",P120x="15.5",P120y="173",P121x="14.5",P121y="172.5",P122x="14.5",P122y="166",P123x="13.5",P123y="165.5",P124x="13.5",P124y="142.5",P125x="14.5",P125y="142",P126x="14.5",P126y="135.5",P127x="15.5",P127y="135",P128x="15.5",P128y="129.5",P129x="16.5",P129y="129",P12x="89.5",P12y="99.5",P130x="16.5",P130y="125.5",P131x="17.5",P131y="125",P132x="17.5",P132y="122.5",P133x="18.5",P133y="122",P134x="18.5",P134y="119.5",P135x="19.5",P135y="119",P136x="19.5",P136y="116.5",P137x="21",P137y="116.5",P138x="21.5",P138y="115",P139x="21.5",P139y="113.5",P13x="89.5",P13y="101",P140x="22.5",P140y="113",P141x="22.5",P141y="111.5",P142x="23.5",P142y="111",P143x="23.5",P143y="109.5",P144x="24.5",P144y="109",P145x="24.5",P145y="107.5",P146x="25.5",P146y="107",P147x="25.5",P147y="105.5",P148x="26.5",P148y="104.5",P149x="28",P149y="104.5",P14x="91.5",P14y="102.5",P150x="28.5",P150y="104",P151x="28.5",P151y="102.5",P152x="30.5",P152y="101",P153x="30.5",P153y="99.5",P154x="33.5",P154y="96.5",P155x="35",P155y="96.5",P156x="40.5",P156y="90.5",P157x="43",P157y="90.5",P158x="44.5",P158y="88.5",P159x="46",P159y="88.5",P15x="91.5",P15y="104",P160x="46.5",P160y="87.5",P161x="50",P161y="87.5",P162x="50.5",P162y="86.5",P163x="53",P163y="86.5",P16x="92",P16y="104.5",P17x="93.5",P17y="104.5",P18x="94.5",P18y="105.5",P19x="94.5",P19y="107",P1x="66.5",P1y="85.5",P20x="95.5",P20y="107.5",P21x="95.5",P21y="109",P22x="96.5",P22y="109.5",P23x="96.5",P23y="111",P24x="97.5",P24y="111.5",P25x="97.5",P25y="113",P26x="98.5",P26y="113.5",P27x="98.5",P27y="116",P28x="99",P28y="116.5",P29x="100.5",P29y="116.5",P2x="67",P2y="86.5",P30x="100.5",P30y="119",P31x="101.5",P31y="119.5",P32x="101.5",P32y="122",P33x="102.5",P33y="122.5",P34x="102.5",P34y="125",P35x="103.5",P35y="125.5",P36x="103.5",P36y="129",P37x="104.5",P37y="129.5",P38x="104.5",P38y="135",P39x="105.5",P39y="135.5",P3x="69.5",P3y="86.5",P40x="105.5",P40y="142",P41x="106.5",P41y="142.5",P42x="106.5",P42y="165.5",P43x="105.5",P43y="166",P44x="105.5",P44y="172.5",P45x="104.5",P45y="173",P46x="104.5",P46y="178.5",P47x="103.5",P47y="179",P48x="103.5",P48y="182.5",P49x="102.5",P49y="183",P4x="70",P4y="87.5",P50x="102.5",P50y="185.5",P51x="101.5",P51y="186",P52x="101.5",P52y="188.5",P53x="100.5",P53y="189",P54x="100.5",P54y="191.5",P55x="99",P55y="191.5",P56x="98.5",P56y="193",P57x="98.5",P57y="194.5",P58x="97.5",P58y="195",P59x="97.5",P59y="196.5",P5x="73.5",P5y="87.5",P60x="96.5",P60y="197",P61x="96.5",P61y="198.5",P62x="95.5",P62y="199",P63x="95.5",P63y="200.5",P64x="94.5",P64y="201",P65x="94.5",P65y="202.5",P66x="93.5",P66y="203.5",P67x="92",P67y="203.5",P68x="91.5",P68y="204",P69x="91.5",P69y="205.5",P6x="74",P6y="88.5",P70x="89.5",P70y="207",P71x="89.5",P71y="208.5",P72x="86.5",P72y="211.5",P73x="85",P73y="211.5",P74x="79.5",P74y="217.5",P75x="77",P75y="217.5",P76x="75.5",P76y="219.5",P77x="74",P77y="219.5",P78x="73.5",P78y="220.5",P79x="70",P79y="220.5",P7x="75.5",P7y="88.5",P80x="69.5",P80y="221.5",P81x="67",P81y="221.5",P82x="66.5",P82y="222.5",P83x="53.5",P83y="222.5",P84x="53",P84y="221.5",P85x="50.5",P85y="221.5",P86x="50",P86y="220.5",P87x="46.5",P87y="220.5",P88x="46",P88y="219.5",P89x="44.5",P89y="219.5",P8x="77",P8y="90.5",P90x="43",P90y="217.5",P91x="40.5",P91y="217.5",P92x="35",P92y="211.5",P93x="33.5",P93y="211.5",P94x="30.5",P94y="208.5",P95x="30.5",P95y="207",P96x="28.5",P96y="205.5",P97x="28.5",P97y="204",P98x="28",P98y="203.5",P99x="26.5",P99y="203.5",P9x="79.5",P9y="90.5",SegmentationLevel="0",SegmentationType="1"];
-5 [NumberOfPointsInPath="5",P0x="154.5",P0y="106.5",P1x="220.5",P1y="106.5",P2x="220.5",P2y="143.5",P3x="154.5",P3y="143.5",P4x="154.5",P4y="108",SegmentationLevel="0",SegmentationType="1"];
-6 [NumberOfPointsInPath="46",P0x="138",P0y="55.5",P10x="143.5",P10y="102",P11x="144.5",P11y="102.5",P12x="144.5",P12y="160.5",P13x="143.5",P13y="161",P14x="143.5",P14y="180.5",P15x="142.5",P15y="181",P16x="142.5",P16y="191.5",P17x="141.5",P17y="192",P18x="141.5",P18y="198.5",P19x="140.5",P19y="199",P1x="139.5",P1y="56.5",P20x="140.5",P20y="203.5",P21x="139.5",P21y="204",P22x="139.5",P22y="206.5",P23x="138",P23y="207.5",P24x="136.5",P24y="206.5",P25x="136.5",P25y="204",P26x="135.5",P26y="203.5",P27x="135.5",P27y="199",P28x="134.5",P28y="198.5",P29x="134.5",P29y="192",P2x="139.5",P2y="59",P30x="133.5",P30y="191.5",P31x="133.5",P31y="181",P32x="132.5",P32y="180.5",P33x="132.5",P33y="161",P34x="131.5",P34y="160.5",P35x="131.5",P35y="102.5",P36x="132.5",P36y="102",P37x="132.5",P37y="82.5",P38x="133.5",P38y="82",P39x="133.5",P39y="71.5",P3x="140.5",P3y="59.5",P40x="134.5",P40y="71",P41x="134.5",P41y="64.5",P42x="135.5",P42y="64",P43x="135.5",P43y="59.5",P44x="136.5",P44y="59",P45x="136.5",P45y="56.5",P4x="140.5",P4y="64",P5x="141.5",P5y="64.5",P6x="141.5",P6y="71",P7x="142.5",P7y="71.5",P8x="142.5",P8y="82",P9x="143.5",P9y="82.5",SegmentationLevel="0",SegmentationType="1"];
-7 [NumberOfPointsInPath="5",P0x="19.5",P0y="31.5",P1x="55.5",P1y="31.5",P2x="55.5",P2y="72.5",P3x="19.5",P3y="72.5",P4x="19.5",P4y="33",SegmentationLevel="0",SegmentationType="1"];
-8 [NumberOfPointsInPath="5",P0x="75.5",P0y="41.5",P1x="138.5",P1y="41.5",P2x="138.5",P2y="49.5",P3x="75.5",P3y="49.5",P4x="75.5",P4y="43",SegmentationLevel="0",SegmentationType="1"];
-0 -> 4 [Value="5"];
-1 -> 5 [Value="2"];
-2 -> 5 [Value="2"];
-2 -> 6 [Value="6"];
-2 -> 8 [Value="2"];
-3 -> 4 [Value="2"];
-3 -> 7 [Value="4"];
-3 -> 8 [Value="2"];
-}
diff --git a/Data/Baseline/OTB/Files/srRCC8GraphFilterOutput2.dot b/Data/Baseline/OTB/Files/srRCC8GraphFilterOutput2.dot
deleted file mode 100644
index 468c69f20b4ca03e3aefe782287282e9d48fddb6..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/srRCC8GraphFilterOutput2.dot
+++ /dev/null
@@ -1,11 +0,0 @@
-digraph G {
-0 [NumberOfPointsInPath="5",P0x="82.5",P0y="76.5",P1x="175.5",P1y="76.5",P2x="175.5",P2y="168.5",P3x="82.5",P3y="168.5",P4x="82.5",P4y="78",SegmentationLevel="0",SegmentationType="0"];
-1 [NumberOfPointsInPath="5",P0x="82.5",P0y="102.5",P1x="175.5",P1y="102.5",P2x="175.5",P2y="149.5",P3x="82.5",P3y="149.5",P4x="82.5",P4y="104",SegmentationLevel="0",SegmentationType="1"];
-2 [NumberOfPointsInPath="5",P0x="49.5",P0y="41.5",P1x="117.5",P1y="41.5",P2x="117.5",P2y="119.5",P3x="49.5",P3y="119.5",P4x="49.5",P4y="43",SegmentationLevel="1",SegmentationType="0"];
-3 [NumberOfPointsInPath="5",P0x="27.5",P0y="141.5",P1x="59.5",P1y="141.5",P2x="59.5",P2y="214.5",P3x="27.5",P3y="214.5",P4x="27.5",P4y="143",SegmentationLevel="1",SegmentationType="0"];
-4 [NumberOfPointsInPath="5",P0x="138.5",P0y="13.5",P1x="167.5",P1y="13.5",P2x="167.5",P2y="76.5",P3x="138.5",P3y="76.5",P4x="138.5",P4y="15",SegmentationLevel="1",SegmentationType="0"];
-0 -> 1 [Value="4"];
-0 -> 2 [Value="2"];
-0 -> 4 [Value="1"];
-1 -> 2 [Value="2"];
-}
diff --git a/Data/Baseline/OTB/Files/srRCC8GraphWriterOutput1.dot b/Data/Baseline/OTB/Files/srRCC8GraphWriterOutput1.dot
deleted file mode 100644
index bc065f3b862aa01c09a55a3a9e1d735e17855cbb..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/srRCC8GraphWriterOutput1.dot
+++ /dev/null
@@ -1,12 +0,0 @@
-digraph G {
-0 [NumberOfPointsInPath="3",P0x="0",P0y="0",P1x="10",P1y="10",P2x="-5",P2y="2",SegmentationLevel="0",SegmentationType="0"];
-1 [NumberOfPointsInPath="3",P0x="0",P0y="0",P1x="10",P1y="10",P2x="-5",P2y="2",SegmentationLevel="1",SegmentationType="1"];
-2 [NumberOfPointsInPath="3",P0x="0",P0y="0",P1x="10",P1y="10",P2x="-5",P2y="2",SegmentationLevel="2",SegmentationType="0"];
-3 [NumberOfPointsInPath="3",P0x="0",P0y="0",P1x="10",P1y="10",P2x="-5",P2y="2",SegmentationLevel="3",SegmentationType="0"];
-0 -> 1 [Value="1"];
-1 -> 2 [Value="2"];
-2 -> 3 [Value="3"];
-0 -> 2 [Value="4"];
-1 -> 3 [Value="5"];
-0 -> 3 [Value="6"];
-}
diff --git a/Data/Baseline/OTB/Files/srRCC8PolygonToPolygonCalculatorOutput.txt b/Data/Baseline/OTB/Files/srRCC8PolygonToPolygonCalculatorOutput.txt
deleted file mode 100644
index 0e6c0a5a795100d17da92b4cf77dda3573b80968..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/srRCC8PolygonToPolygonCalculatorOutput.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-Test results from otbPolygonToPolygonRCC8calculator test.
-7	1	0	0	
-1	7	4	6	
-0	3	7	2	
-0	5	2	7	
diff --git a/Data/Baseline/OTB/Files/srTvPolygonListToRCC8GraphFilterOutput.dot b/Data/Baseline/OTB/Files/srTvPolygonListToRCC8GraphFilterOutput.dot
deleted file mode 100644
index b0ea91f66e5ded3e702027f8870e10d13d8a6224..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Files/srTvPolygonListToRCC8GraphFilterOutput.dot
+++ /dev/null
@@ -1,12 +0,0 @@
-digraph G {
-0 [NumberOfPointsInPath="4",P0x="0",P0y="0",P1x="2",P1y="0",P2x="2",P2y="6",P3x="0",P3y="6",SegmentationLevel="0",SegmentationType="1"];
-1 [NumberOfPointsInPath="4",P0x="1",P0y="1",P1x="4",P1y="1",P2x="4",P2y="5",P3x="1",P3y="5",SegmentationLevel="0",SegmentationType="1"];
-2 [NumberOfPointsInPath="4",P0x="3",P0y="1",P1x="4",P1y="1",P2x="4",P2y="2",P3x="3",P3y="2",SegmentationLevel="1",SegmentationType="1"];
-3 [NumberOfPointsInPath="4",P0x="5",P0y="1",P1x="8",P1y="1",P2x="8",P2y="5",P3x="5",P3y="5",SegmentationLevel="1",SegmentationType="1"];
-4 [NumberOfPointsInPath="4",P0x="6",P0y="2",P1x="7",P1y="2",P2x="7",P2y="3",P3x="6",P3y="3",SegmentationLevel="2",SegmentationType="1"];
-5 [NumberOfPointsInPath="4",P0x="8",P0y="1",P1x="9",P1y="1",P2x="9",P2y="5",P3x="8",P3y="5",SegmentationLevel="2",SegmentationType="1"];
-0 -> 1 [Value="2"];
-2 -> 1 [Value="3"];
-3 -> 5 [Value="2"];
-4 -> 3 [Value="5"];
-}
diff --git a/Data/Baseline/OTB/Images/dmTvBSplinesInterpolateDeformationField.tif b/Data/Baseline/OTB/Images/dmTvBSplinesInterpolateDeformationField.tif
deleted file mode 100644
index 69c0b928afa3361c7e154c1a820e3715580af9e6..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Images/dmTvBSplinesInterpolateDeformationField.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:9447965707e53fa16f1eaa4d8e198c79c67f58992fb0f3417e45e09197629b93
-size 193942
diff --git a/Data/Baseline/OTB/Images/dmTvNNearestPointsLinearInterpolateDeformationField.tif b/Data/Baseline/OTB/Images/dmTvNNearestPointsLinearInterpolateDeformationField.tif
deleted file mode 100644
index a823334750cd9f6c86d683f100662864eaee9994..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Images/dmTvNNearestPointsLinearInterpolateDeformationField.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:7e3e1fb0f6625e1a63a93cf472797f5793af362e6ac5a455d202c607725ecfec
-size 198042
diff --git a/Data/Baseline/OTB/Images/dmTvNNearestTransformsLinearInterpolateDeformationField.tif b/Data/Baseline/OTB/Images/dmTvNNearestTransformsLinearInterpolateDeformationField.tif
deleted file mode 100644
index b59a569283720ffabb00256a5eebf9111a0a9993..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Images/dmTvNNearestTransformsLinearInterpolateDeformationField.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:3e86de8b62d0d9b3bf0098efca75a7cbb6dd30f61bd6bb331bbe21189b54ab35
-size 199687
diff --git a/Data/Baseline/OTB/Images/dmTvNearestPointDeformationField.tif b/Data/Baseline/OTB/Images/dmTvNearestPointDeformationField.tif
deleted file mode 100644
index d098656a6f6e6605f71c8b21aa182c8d8f1b194a..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Images/dmTvNearestPointDeformationField.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:35adef700d011fb7793a3751c5565eea206a03b7c73265cf693763cf3a02c198
-size 14780
diff --git a/Data/Baseline/OTB/Images/dmTvNearestTransformDeformationField.tif b/Data/Baseline/OTB/Images/dmTvNearestTransformDeformationField.tif
deleted file mode 100644
index 7cb2622d35b0188d4c2c458bf20005c41088871b..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Images/dmTvNearestTransformDeformationField.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f7f8af0c00a846d0027df0688fc82c10dd6832b08d16aa86068d66d11f4a2485
-size 192056
diff --git a/Data/Baseline/OTB/Images/feDrawPathAlignDeuxTraits.png b/Data/Baseline/OTB/Images/feDrawPathAlignDeuxTraits.png
deleted file mode 100644
index fa2ce49bc9aee59ff1db19390cfaa907b9e5f51d..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Images/feDrawPathAlignDeuxTraits.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:2c57a5038aa07298c3b42be3d1d47dd84136a4d7f210a08dbe5b223b266814f0
-size 568
diff --git a/Data/Baseline/OTB/Images/feImageToEdgePathFilterOutput.tif b/Data/Baseline/OTB/Images/feImageToEdgePathFilterOutput.tif
new file mode 100644
index 0000000000000000000000000000000000000000..fb2de39373f31b7c8967de82fd695a972d0c84dc
--- /dev/null
+++ b/Data/Baseline/OTB/Images/feImageToEdgePathFilterOutput.tif
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c006246fea917e0870d9fcbac03c8ee7f80e65d3faffd1e76b731192dbef5978
+size 546
diff --git a/Data/Baseline/OTB/Images/feTvNeighborhoodScalarProductDirectionOutput.tif b/Data/Baseline/OTB/Images/feTvNeighborhoodScalarProductDirectionOutput.tif
deleted file mode 100644
index a5401aba3a1c7561fd18356e9c8d813acc6606ff..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Images/feTvNeighborhoodScalarProductDirectionOutput.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:4b67d658cebed1a8dcfb9fa45be201a00cdfe874321dc4c63cbcca540ec6c6f3
-size 741552
diff --git a/Data/Baseline/OTB/Images/feTvNeighborhoodScalarProductModulusOutput.tif b/Data/Baseline/OTB/Images/feTvNeighborhoodScalarProductModulusOutput.tif
deleted file mode 100644
index f3d6fec2decdd35ffc57ee088b85dd2a209c5c1a..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Images/feTvNeighborhoodScalarProductModulusOutput.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:ca321fd53b489787e40bc9bf9dd49140d95d43fff73ae3501b25ceb75e529a23
-size 3023067
diff --git a/Data/Baseline/OTB/Images/feTvNonMaxRemovalByDirectionOutput.tif b/Data/Baseline/OTB/Images/feTvNonMaxRemovalByDirectionOutput.tif
deleted file mode 100644
index a0a6e6047bac5bfada96ec5afc74e21dacb99468..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Images/feTvNonMaxRemovalByDirectionOutput.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:57aae675e46c74467b7d34cc2fe660e4944e096db81115663960627e7e775ed4
-size 1018004
diff --git a/Data/Baseline/OTB/Images/feTvOutputRoadDetection.tif b/Data/Baseline/OTB/Images/feTvOutputRoadDetection.tif
deleted file mode 100644
index 7fe52fc0aeb9a86db404f1cefae1145da8292072..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Images/feTvOutputRoadDetection.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:d0495a68b9e656915b10d5ff2c41c9f15fc46f1069a1e9dc429a153139b2607d
-size 196662
diff --git a/Data/Baseline/OTB/Images/feTvRemoveIsolatedByDirectionOutput.tif b/Data/Baseline/OTB/Images/feTvRemoveIsolatedByDirectionOutput.tif
deleted file mode 100644
index a7d309ac66e53468919f03954933fa9f93a23301..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Images/feTvRemoveIsolatedByDirectionOutput.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:e56e9cadb996fea0621e258155d2414f12899652c33dbc04a69c884923981f72
-size 2166447
diff --git a/Data/Baseline/OTB/Images/feTvRemoveWrongDirectionOutput.tif b/Data/Baseline/OTB/Images/feTvRemoveWrongDirectionOutput.tif
deleted file mode 100644
index 15afc03958f1d221c020052230ffe5cea2e202a3..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Images/feTvRemoveWrongDirectionOutput.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:6cda584546d11c80f5c32dbe32f843d178a182c47062de7d7e3dcb6931bf5304
-size 1360300
diff --git a/Data/Baseline/OTB/Images/feTvVectorizationPathListOutput.png b/Data/Baseline/OTB/Images/feTvVectorizationPathListOutput.png
deleted file mode 100644
index 542e264b833a1f712018a454168f529f40eae386..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Images/feTvVectorizationPathListOutput.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:5c1fabb13b4184517fc6929de7f5ec9f41a7c59d6bd9f07208587dd19cb9855b
-size 23840
diff --git a/Data/Baseline/OTB/Images/msPyrAn_mire_log_an_2.png b/Data/Baseline/OTB/Images/msPyrAn_mire_log_an_2.png
deleted file mode 100644
index f42b4baef16bcda041abf7b6d93eae69bbd0a817..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Images/msPyrAn_mire_log_an_2.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:c689b2d88a728f26e8464920bd0b8858621dcfec203a612e4cd8763b62d7c83c
-size 164
diff --git a/Data/Baseline/OTB/Images/msPyrAn_mire_log_id_2.png b/Data/Baseline/OTB/Images/msPyrAn_mire_log_id_2.png
deleted file mode 100644
index 02e9380066f73621e2908c406d1a32e78646d83b..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Images/msPyrAn_mire_log_id_2.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:eb8b759bff6ee7b8972ee09f87094106334dbb84f4b41434ec6cf18ec1821129
-size 296
diff --git a/Data/Baseline/OTB/Images/msPyrAn_mire_log_if_2.png b/Data/Baseline/OTB/Images/msPyrAn_mire_log_if_2.png
deleted file mode 100644
index 3c40551414a347fbe12e6fac0b7da1164fbd1b1e..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Images/msPyrAn_mire_log_if_2.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:b985a05924d453325761a1d99e3bb0c64ac61a6359533035d6368f4d0c2e0ef6
-size 110
diff --git a/Data/Baseline/OTB/Images/msPyrAn_mire_log_sd_2.png b/Data/Baseline/OTB/Images/msPyrAn_mire_log_sd_2.png
deleted file mode 100644
index 06af199a6bbee53c445ff1a24903f356ee1f6530..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Images/msPyrAn_mire_log_sd_2.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:94647a3bd9b8617e0686c2ad9d7541b6a23d00f3c38cd162eb9c96ec7c077f03
-size 280
diff --git a/Data/Baseline/OTB/Images/msPyrAn_mire_log_sf_2.png b/Data/Baseline/OTB/Images/msPyrAn_mire_log_sf_2.png
deleted file mode 100644
index 7d6ab132cb03f3a2b3fa5690b856000cfde1cc38..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Images/msPyrAn_mire_log_sf_2.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:b5273aadaeb17d41f4fa8a3b6c006879f36d1a913aa84146a2004122757feec7
-size 133
diff --git a/Data/Baseline/OTB/Images/msPyrMRToMS_IKO_Halles_4_2_an_full.tif b/Data/Baseline/OTB/Images/msPyrMRToMS_IKO_Halles_4_2_an_full.tif
deleted file mode 100644
index df49966b316319dac9e2c6cb94f2d3c2199c427d..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Images/msPyrMRToMS_IKO_Halles_4_2_an_full.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:4acd9feb652abe765b4f93b6b08a59bde3111d1eae18e298848b04983d24e112
-size 2433975
diff --git a/Data/Baseline/OTB/Images/msPyrMRToMS_IKO_Halles_4_2_if_full.tif b/Data/Baseline/OTB/Images/msPyrMRToMS_IKO_Halles_4_2_if_full.tif
deleted file mode 100644
index d373dfb668ec13cc83aa631849fd78a2fcdc4bf6..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Images/msPyrMRToMS_IKO_Halles_4_2_if_full.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:0bfbe517069a01fcd757ede835ffe3df3602f95921e8793acb49947f86e022fe
-size 2084698
diff --git a/Data/Baseline/OTB/Images/msPyrMRToMS_IKO_Halles_4_2_sf_full.tif b/Data/Baseline/OTB/Images/msPyrMRToMS_IKO_Halles_4_2_sf_full.tif
deleted file mode 100644
index 791be26fb902300057b5f5a85da06922d58cfd96..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Images/msPyrMRToMS_IKO_Halles_4_2_sf_full.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:7086793fa9d0d553e115fd3e92cb5455b2dbca6f01352aabbf7312e02e33ffa2
-size 1409779
diff --git a/Data/Baseline/OTB/Images/msPyrResampler_IKO_LesHalles_256_2.tif b/Data/Baseline/OTB/Images/msPyrResampler_IKO_LesHalles_256_2.tif
deleted file mode 100644
index 070eb61973a513c4b68733c4c68de91ab9be3d28..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Images/msPyrResampler_IKO_LesHalles_256_2.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:eeaf4e2e3a704677c6fbc00550aa21a79f7b40126f677247abd652e39c967ff4
-size 162988
diff --git a/Data/Baseline/OTB/Images/msPyrResampler_IKO_LesHalles_full.tif b/Data/Baseline/OTB/Images/msPyrResampler_IKO_LesHalles_full.tif
deleted file mode 100644
index 876e6de02b97af902286a224e141d34db2b9203a..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Images/msPyrResampler_IKO_LesHalles_full.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:3fad9049c90e30e939018725efe1bdf8d0e35302d50ae891812acbb3fdea013a
-size 829512
diff --git a/Data/Baseline/OTB/Images/msPyrSegmentation_IKO_Halles_2.tif b/Data/Baseline/OTB/Images/msPyrSegmentation_IKO_Halles_2.tif
deleted file mode 100644
index 457056589f50a72e5d6341ee2f06751493459701..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Images/msPyrSegmentation_IKO_Halles_2.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:24efbd3ab2d54b9066d15145402583db895d8c6747795c83db07b965669748bd
-size 30896
diff --git a/Data/Baseline/OTB/Images/msPyrSegmentation_IKO_Halles_4.tif b/Data/Baseline/OTB/Images/msPyrSegmentation_IKO_Halles_4.tif
deleted file mode 100644
index 12bb4bd12f5a53be3e9416d09e8bd241f8c50450..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Images/msPyrSegmentation_IKO_Halles_4.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:fc44580b13963e8db80966f7251b8ef77b1fcb967c0a192354959ca7b18df2b3
-size 22111
diff --git a/Data/Baseline/OTB/Images/msPyrSegmentation_IKO_Halles_5.tif b/Data/Baseline/OTB/Images/msPyrSegmentation_IKO_Halles_5.tif
deleted file mode 100644
index a65b7a1e6d77aaed7b5f014b3a53ee35438feee4..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Images/msPyrSegmentation_IKO_Halles_5.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:e1b31996ceec7f89920c029f0ccdb5adca0172d9850e4b0f37fc3ca48b471bd8
-size 21878
diff --git a/Data/Baseline/OTB/Images/msPyrSegmentation_IKO_Halles_7.tif b/Data/Baseline/OTB/Images/msPyrSegmentation_IKO_Halles_7.tif
deleted file mode 100644
index e12083be6785bcd46158ab0550b2172654b94de2..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Images/msPyrSegmentation_IKO_Halles_7.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:47d986a0f28e59fa8586db478791df92c6d93816d392bfbf331054e771b25930
-size 24465
diff --git a/Data/Baseline/OTB/Images/msPyrSegmenter_IKO_Halles_4_2_if.tif b/Data/Baseline/OTB/Images/msPyrSegmenter_IKO_Halles_4_2_if.tif
deleted file mode 100644
index d6121605a13f36f9874bdfc6d067078ebb4d598a..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Images/msPyrSegmenter_IKO_Halles_4_2_if.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:6abc1377ee09e3181c6600bece9ed11374f3c50dff1d98460e3f2adc273ecaca
-size 20179
diff --git a/Data/Baseline/OTB/Images/msPyrSegmenter_IKO_Halles_4_2_sf.tif b/Data/Baseline/OTB/Images/msPyrSegmenter_IKO_Halles_4_2_sf.tif
deleted file mode 100644
index e9f7589afcc41153e338f2885f8e6e05b49b1001..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Images/msPyrSegmenter_IKO_Halles_4_2_sf.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:ba1c0155d39d3272d956c839f8f4e179dbef23ebee5499c0886a0cdb2bdeb05b
-size 22191
diff --git a/Data/Baseline/OTB/Images/prTvotbGenericRSResampleImageFilterOutput.tif b/Data/Baseline/OTB/Images/prTvotbGenericRSResampleImageFilterOutput.tif
deleted file mode 100644
index 1582d4104bd26e22608c9c337ae659b4992a60c3..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Images/prTvotbGenericRSResampleImageFilterOutput.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:e6946443c79f0ee5e07b3c653958ce13e5d97e87cc9958cb13051c9d3d07e416
-size 9378087
diff --git a/Data/Baseline/OTB/Images/prTvotbGenericRSResampleImageFilterOutputFromMap_GEOEYE.tif b/Data/Baseline/OTB/Images/prTvotbGenericRSResampleImageFilterOutputFromMap_GEOEYE.tif
deleted file mode 100644
index 5b30246782bd321aeab3a79046db7e63a7a187b1..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Images/prTvotbGenericRSResampleImageFilterOutputFromMap_GEOEYE.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:8fb50d087c6620f8836274927849326dc2fb77a592ca64a2a3f116236248fd03
-size 59434
diff --git a/Data/Baseline/OTB/Images/prTvotbGenericRSResampleImageFilterOutputFromMap_QUICKBIRD.tif b/Data/Baseline/OTB/Images/prTvotbGenericRSResampleImageFilterOutputFromMap_QUICKBIRD.tif
deleted file mode 100644
index ca2897289d6507bcd3adf32e79d1fe62e0dddd5f..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Images/prTvotbGenericRSResampleImageFilterOutputFromMap_QUICKBIRD.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:89fb4f4c776f753b71e48c74b4c46231a03ae57451ccfc87903b0b0cb4b7ad7c
-size 41907
diff --git a/Data/Baseline/OTB/Images/prTvotbGenericRSResampleImageFilterOutputFromMap_WORLDVIEW2.tif b/Data/Baseline/OTB/Images/prTvotbGenericRSResampleImageFilterOutputFromMap_WORLDVIEW2.tif
deleted file mode 100644
index 68f813382bae7b22465d7e4850f2a47bd7796caa..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Images/prTvotbGenericRSResampleImageFilterOutputFromMap_WORLDVIEW2.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:cad5f798ddae790efa1d14ff57f7d0c25d5fd89f125961c0ba68c3923568ba05
-size 2656332
diff --git a/Data/Baseline/OTB/Images/raTvUrbanAreaDetection.png b/Data/Baseline/OTB/Images/raTvUrbanAreaDetection.png
deleted file mode 100644
index b4535ce33f3c4a19b9b297fe4c76acb870fdd5da..0000000000000000000000000000000000000000
--- a/Data/Baseline/OTB/Images/raTvUrbanAreaDetection.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:d34b5be5393bbb04b1fa634fa175f2bf0eb7e5928abe4768fd08dfa7d72323f9
-size 2057
diff --git a/Data/Input/Dempster-Shafer/DSFuzzyModel.xml b/Data/Input/Dempster-Shafer/DSFuzzyModel.xml
deleted file mode 100644
index 034442d66e8ad214fadb3037553ab092b9be323b..0000000000000000000000000000000000000000
--- a/Data/Input/Dempster-Shafer/DSFuzzyModel.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" ?>
-<FuzzydDescriptorsModel>
-    <Descriptor name="NONDVI">
-        <Parameter value="0.0328422" />
-        <Parameter value="0.0966684" />
-        <Parameter value="0.128072" />
-        <Parameter value="0.892172" />
-    </Descriptor>
-    <Descriptor name="ROADSA">
-        <Parameter value="0.0528834" />
-        <Parameter value="0.125395" />
-        <Parameter value="0.216374" />
-        <Parameter value="1" />
-    </Descriptor>
-    <Descriptor name="NOBUIL">
-        <Parameter value="0.0198015" />
-        <Parameter value="0.0944664" />
-        <Parameter value="0.17092" />
-        <Parameter value="0.87146" />
-    </Descriptor>
-</FuzzydDescriptorsModel>
diff --git a/Data/Input/Dempster-Shafer/DSFuzzyModel_Init.xml b/Data/Input/Dempster-Shafer/DSFuzzyModel_Init.xml
deleted file mode 100644
index 83f733dc4c117e0ae898afa499e45ae6db65aa7a..0000000000000000000000000000000000000000
--- a/Data/Input/Dempster-Shafer/DSFuzzyModel_Init.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" ?>
-<FuzzydDescriptorsModel>
-    <Descriptor name="NONDVI">
-        <Parameter value="0.05" />
-        <Parameter value="0.15" />
-        <Parameter value="0.20" />
-        <Parameter value="0.95" />
-    </Descriptor>
-    <Descriptor name="ROADSA">
-        <Parameter value="0.15" />
-        <Parameter value="0.30" />
-        <Parameter value="0.50" />
-        <Parameter value="0.95" />
-    </Descriptor>
-    <Descriptor name="NOBUIL">
-        <Parameter value="0.05" />
-        <Parameter value="0.07" />
-        <Parameter value="0.10" />
-        <Parameter value="0.95" />
-    </Descriptor>
-</FuzzydDescriptorsModel>
diff --git a/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE.TIF b/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE.TIF
deleted file mode 100644
index c35e58f7734d48008a909fe36028bb11872914b8..0000000000000000000000000000000000000000
--- a/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE.TIF
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:d4c708f6360cadd64d7c530b6412397ddc60929b8c3bcea79d4b45e392dde59c
-size 1149268
diff --git a/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE.geom b/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE.geom
deleted file mode 100644
index 68452848273e55170a47fdfad7c8175c0b3763dd..0000000000000000000000000000000000000000
--- a/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE.geom
+++ /dev/null
@@ -1,165 +0,0 @@
-adjustment_0.adj_param_0.center:  0
-adjustment_0.adj_param_0.description:  intrack_offset
-adjustment_0.adj_param_0.lock_flag:  0
-adjustment_0.adj_param_0.parameter:  0
-adjustment_0.adj_param_0.sigma:  50
-adjustment_0.adj_param_0.units:  pixel
-adjustment_0.adj_param_1.center:  0
-adjustment_0.adj_param_1.description:  crtrack_offset
-adjustment_0.adj_param_1.lock_flag:  0
-adjustment_0.adj_param_1.parameter:  0
-adjustment_0.adj_param_1.sigma:  50
-adjustment_0.adj_param_1.units:  pixel
-adjustment_0.adj_param_2.center:  0
-adjustment_0.adj_param_2.description:  intrack_scale
-adjustment_0.adj_param_2.lock_flag:  0
-adjustment_0.adj_param_2.parameter:  0
-adjustment_0.adj_param_2.sigma:  50
-adjustment_0.adj_param_2.units:  unknown
-adjustment_0.adj_param_3.center:  0
-adjustment_0.adj_param_3.description:  crtrack_scale
-adjustment_0.adj_param_3.lock_flag:  0
-adjustment_0.adj_param_3.parameter:  0
-adjustment_0.adj_param_3.sigma:  50
-adjustment_0.adj_param_3.units:  unknown
-adjustment_0.adj_param_4.center:  0
-adjustment_0.adj_param_4.description:  map_rotation
-adjustment_0.adj_param_4.lock_flag:  0
-adjustment_0.adj_param_4.parameter:  0
-adjustment_0.adj_param_4.sigma:  0.1
-adjustment_0.adj_param_4.units:  degrees
-adjustment_0.description:  Initial adjustment
-adjustment_0.dirty_flag:  0
-adjustment_0.number_of_params:  5
-bias_error:  0
-current_adjustment:  0
-height_off:  241
-height_scale:  500
-image_id:  02APR01105228-M1BS-000000128955_01_P001
-lat_off:  43.5757
-lat_scale:  0.0881
-line_den_coeff_00:  1
-line_den_coeff_01:  3.073151e-05
-line_den_coeff_02:  0.0006767593
-line_den_coeff_03:  0.0002759762
-line_den_coeff_04:  1.707011e-05
-line_den_coeff_05:  -4.215218e-07
-line_den_coeff_06:  -2.031982e-06
-line_den_coeff_07:  6.281466e-06
-line_den_coeff_08:  -2.098686e-05
-line_den_coeff_09:  1.091061e-05
-line_den_coeff_10:  3.716818e-08
-line_den_coeff_11:  5.435656e-08
-line_den_coeff_12:  -4.35619e-06
-line_den_coeff_13:  1.09022e-08
-line_den_coeff_14:  1.78519e-08
-line_den_coeff_15:  0.0004342067
-line_den_coeff_16:  6.371344e-08
-line_den_coeff_17:  0
-line_den_coeff_18:  -1.416592e-05
-line_den_coeff_19:  1.653665e-08
-line_num_coeff_00:  -0.001183432
-line_num_coeff_01:  0.001540212
-line_num_coeff_02:  -0.9858373
-line_num_coeff_03:  0.01594806
-line_num_coeff_04:  2.730892e-05
-line_num_coeff_05:  -9.785795e-07
-line_num_coeff_06:  0.0002528461
-line_num_coeff_07:  -0.0007762763
-line_num_coeff_08:  0.001998298
-line_num_coeff_09:  -5.855501e-06
-line_num_coeff_10:  -8.293341e-07
-line_num_coeff_11:  4.496584e-08
-line_num_coeff_12:  2.925877e-05
-line_num_coeff_13:  0
-line_num_coeff_14:  -8.818227e-06
-line_num_coeff_15:  -4.465644e-05
-line_num_coeff_16:  -1.06142e-05
-line_num_coeff_17:  4.172296e-07
-line_num_coeff_18:  -4.632173e-06
-line_num_coeff_19:  1.915274e-07
-line_off:  3630
-line_scale:  3691
-ll_lat:  43.4876885949517
-ll_lon:  1.35617248105186
-long_off:  1.4635
-long_scale:  0.1091
-lr_lat:  43.487956450501
-lr_lon:  1.57224225725364
-meters_per_pixel_x:  2.55166863064346
-meters_per_pixel_y:  2.68906571490787
-number_lines:  7265
-number_of_adjustments:  1
-number_samples:  6876
-polynomial_format:  B
-rand_error:  0
-rect:  0 0 6875 7264
-ref_point_hgt:  241
-ref_point_lat:  43.5755460927759
-ref_point_line:  3632
-ref_point_lon:  1.46371767649799
-ref_point_samp:  3437.5
-samp_den_coeff_00:  1
-samp_den_coeff_01:  0.001117681
-samp_den_coeff_02:  0.002334335
-samp_den_coeff_03:  -0.0006207135
-samp_den_coeff_04:  -5.962135e-05
-samp_den_coeff_05:  1.552717e-06
-samp_den_coeff_06:  -1.84009e-06
-samp_den_coeff_07:  -4.876876e-06
-samp_den_coeff_08:  3.158963e-05
-samp_den_coeff_09:  -1.201072e-05
-samp_den_coeff_10:  -1.579758e-07
-samp_den_coeff_11:  -9.944747e-08
-samp_den_coeff_12:  1.942372e-06
-samp_den_coeff_13:  0
-samp_den_coeff_14:  -8.945496e-08
-samp_den_coeff_15:  -1.480163e-06
-samp_den_coeff_16:  -6.008504e-08
-samp_den_coeff_17:  3.055564e-08
-samp_den_coeff_18:  1.11032e-07
-samp_den_coeff_19:  1.314046e-08
-samp_num_coeff_00:  -0.0021422
-samp_num_coeff_01:  1.003674
-samp_num_coeff_02:  0.00317708
-samp_num_coeff_03:  0.0002667587
-samp_num_coeff_04:  -0.002315384
-samp_num_coeff_05:  0.0006203277
-samp_num_coeff_06:  -0.0004161892
-samp_num_coeff_07:  0.001035653
-samp_num_coeff_08:  -0.001198854
-samp_num_coeff_09:  7.437719e-06
-samp_num_coeff_10:  2.503507e-06
-samp_num_coeff_11:  -2.185972e-05
-samp_num_coeff_12:  -4.893912e-05
-samp_num_coeff_13:  -1.149441e-05
-samp_num_coeff_14:  8.351017e-05
-samp_num_coeff_15:  -7.642065e-05
-samp_num_coeff_16:  -2.684169e-07
-samp_num_coeff_17:  2.340974e-08
-samp_num_coeff_18:  7.001246e-06
-samp_num_coeff_19:  -3.846245e-08
-samp_off:  3438
-samp_scale:  3443
-sensor:  QB02
-support_data.B_band_absCalFactor:  0.0160412
-support_data.G_band_absCalFactor:  0.0143847
-support_data.N_band_absCalFactor:  0.0154242
-support_data.R_band_absCalFactor:  0.0126735
-support_data.TDI_level:  13
-support_data.azimuth_angle:  154.8
-support_data.band_id:  Multi
-support_data.band_name_list:  B G R N
-support_data.bits_per_pixel:  16
-support_data.elevation_angle:  48.6
-support_data.generation_date:  2004-05-25T19:49:03.000000Z
-support_data.sat_azimuth_angle:  359
-support_data.sat_elevation_angle:  72.4
-support_data.sat_id:  QB02
-support_data.tlc_date:  2002-04-01T10:52:28.415362Z;
-support_data.type:  ossimQuickbirdMetaData
-type:  ossimQuickbirdRpcModel
-ul_lat:  43.663535886024
-ul_lon:  1.35446328287058
-ur_lat:  43.6638304625161
-ur_lon:  1.57254618315919
diff --git a/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_BUILDINGS.dbf b/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_BUILDINGS.dbf
deleted file mode 100644
index 17a9903a40c7d097242b4f5367a8a1c3a0b30687..0000000000000000000000000000000000000000
--- a/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_BUILDINGS.dbf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:63f211d703d89d3abd9c7b0c2729f11b94fc9918108e77ab707c3a5b087c8da7
-size 1028
diff --git a/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_BUILDINGS.prj b/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_BUILDINGS.prj
deleted file mode 100644
index a30c00a55de19be195abf9e942f6cff93bf0a825..0000000000000000000000000000000000000000
--- a/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_BUILDINGS.prj
+++ /dev/null
@@ -1 +0,0 @@
-GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]
\ No newline at end of file
diff --git a/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_BUILDINGS.shp b/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_BUILDINGS.shp
deleted file mode 100644
index f901be7cd3a3eb8e328388cb03d4db257cd46987..0000000000000000000000000000000000000000
--- a/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_BUILDINGS.shp
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:a8d2eee9ba80d3bb867aada7db654ef86d17cad4f1d526b0385a943f29d82a6b
-size 4564
diff --git a/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_BUILDINGS.shx b/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_BUILDINGS.shx
deleted file mode 100644
index 6f0fa666c0082c9bb48b431e0df4b44b357d6276..0000000000000000000000000000000000000000
--- a/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_BUILDINGS.shx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f3bdf591bf2d6a7e3025629649f3e3effa4511f9f1af793193365b3ef53d8eb3
-size 252
diff --git a/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_ROADS.dbf b/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_ROADS.dbf
deleted file mode 100644
index ed4287655d16eccbc86bc1926bc7b00c177ce96b..0000000000000000000000000000000000000000
--- a/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_ROADS.dbf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:d680b1d17582dc86c451bbe0446f9af84ae611b6afe06a5db38adecf191ba971
-size 4847
diff --git a/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_ROADS.prj b/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_ROADS.prj
deleted file mode 100644
index a30c00a55de19be195abf9e942f6cff93bf0a825..0000000000000000000000000000000000000000
--- a/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_ROADS.prj
+++ /dev/null
@@ -1 +0,0 @@
-GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]
\ No newline at end of file
diff --git a/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_ROADS.shp b/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_ROADS.shp
deleted file mode 100644
index d5ff96b9922859ed04a1f8c4479c89507f6c4daa..0000000000000000000000000000000000000000
--- a/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_ROADS.shp
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:d0b6e77ff1d3acae9432b63b929050ed0089e9aace8a831c817b07ac02b04063
-size 18388
diff --git a/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_ROADS.shx b/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_ROADS.shx
deleted file mode 100644
index 72bda750b8f93dbb743c133f9cdcb57e5d489314..0000000000000000000000000000000000000000
--- a/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_ROADS.shx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:8e3f91df5a62beb63ba9b17a952d2673a732aa428b20861dce0c6dd986e588db
-size 668
diff --git a/Data/Input/InputForRoadDetectionScalarProductDir.raw b/Data/Input/InputForRoadDetectionScalarProductDir.raw
deleted file mode 100644
index 95baee1dbe12bd62a063c59131b10dc4e8bde71c..0000000000000000000000000000000000000000
--- a/Data/Input/InputForRoadDetectionScalarProductDir.raw
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:983ff7d0fd3f483320cd5739d48a65d89b39085be7689c9ccf2c1909646abe37
-size 8000000
diff --git a/Data/Input/InputForRoadDetectionScalarProductDir.raw.hdr b/Data/Input/InputForRoadDetectionScalarProductDir.raw.hdr
deleted file mode 100644
index 542943fbb79a3e0a855c28857c843cfc6fa64f18..0000000000000000000000000000000000000000
--- a/Data/Input/InputForRoadDetectionScalarProductDir.raw.hdr
+++ /dev/null
@@ -1,14 +0,0 @@
-ENVI
-description = {
-/home2/julien/ORFEO-TOOLBOX/otb-build/debug/OTB/Testing/Temporary/feTvNeigborhoodScalarProductDirectionOutput}
-samples = 1000
-lines   = 1000
-bands   = 1
-header offset = 0
-file type = ENVI Standard
-data type = 5
-interleave = bsq
-byte order = 0
-map info = {UTM, 1, 1, 439136.400000, 5273706.600000, 0.600000, 0.600000, 32, North}
-band names = {
-Band 1}
diff --git a/Data/Input/InputForRoadDetectionScalarProductMod.raw b/Data/Input/InputForRoadDetectionScalarProductMod.raw
deleted file mode 100644
index 1965bed30248a82446ddaf14b1080f9a1e1a755a..0000000000000000000000000000000000000000
--- a/Data/Input/InputForRoadDetectionScalarProductMod.raw
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:4381a7c3cb500cf48069d96e6cfd22d93c314d9b72ed13db4b63d71595cf4d0d
-size 8000000
diff --git a/Data/Input/InputForRoadDetectionScalarProductMod.raw.hdr b/Data/Input/InputForRoadDetectionScalarProductMod.raw.hdr
deleted file mode 100644
index 4718fbd683e934c6b1228b843fbf722e17ca6b2c..0000000000000000000000000000000000000000
--- a/Data/Input/InputForRoadDetectionScalarProductMod.raw.hdr
+++ /dev/null
@@ -1,14 +0,0 @@
-ENVI
-description = {
-/home2/julien/ORFEO-TOOLBOX/otb-build/debug/OTB/Testing/Temporary/feTvNeigborhoodScalarProductModulusOutput}
-samples = 1000
-lines   = 1000
-bands   = 1
-header offset = 0
-file type = ENVI Standard
-data type = 5
-interleave = bsq
-byte order = 0
-map info = {UTM, 1, 1, 439136.400000, 5273706.600000, 0.600000, 0.600000, 32, North}
-band names = {
-Band 1}
diff --git a/Data/Input/InputForRoadDetection_IsolatedRem.raw b/Data/Input/InputForRoadDetection_IsolatedRem.raw
deleted file mode 100644
index 47f0f275c53646931b0dd5c8b3734a3d2db3447b..0000000000000000000000000000000000000000
--- a/Data/Input/InputForRoadDetection_IsolatedRem.raw
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:708c193109abedbfbf512198f0ddfb3d395877892535ac24ebd69debed6d252a
-size 8000000
diff --git a/Data/Input/InputForRoadDetection_IsolatedRem.raw.hdr b/Data/Input/InputForRoadDetection_IsolatedRem.raw.hdr
deleted file mode 100644
index c3059e85c1b67b6662f1fc540bb7b52f52f871a8..0000000000000000000000000000000000000000
--- a/Data/Input/InputForRoadDetection_IsolatedRem.raw.hdr
+++ /dev/null
@@ -1,14 +0,0 @@
-ENVI
-description = {
-/home2/julien/ORFEO-TOOLBOX/otb-build/debug/OTB/Testing/Temporary/feTvRemoveIsolatedByDirectionOutput}
-samples = 1000
-lines   = 1000
-bands   = 1
-header offset = 0
-file type = ENVI Standard
-data type = 5
-interleave = bsq
-byte order = 0
-map info = {UTM, 1, 1, 439136.400000, 5273706.600000, 0.600000, 0.600000, 32, North}
-band names = {
-Band 1}
diff --git a/Data/Input/InputForRoadDetection_NonMaxRem.raw b/Data/Input/InputForRoadDetection_NonMaxRem.raw
deleted file mode 100644
index 5798a2e6cff1445685a8633fd0ccaa7951982471..0000000000000000000000000000000000000000
--- a/Data/Input/InputForRoadDetection_NonMaxRem.raw
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:38e0a731bd1b6032cfa78f0bf04953af80d47503d7a309c0a151c24d8a7d4c92
-size 8000000
diff --git a/Data/Input/InputForRoadDetection_NonMaxRem.raw.hdr b/Data/Input/InputForRoadDetection_NonMaxRem.raw.hdr
deleted file mode 100644
index f127f633be1cf99c10cd5abf9c5abf5707b9e9c7..0000000000000000000000000000000000000000
--- a/Data/Input/InputForRoadDetection_NonMaxRem.raw.hdr
+++ /dev/null
@@ -1,14 +0,0 @@
-ENVI
-description = {
-/home2/julien/ORFEO-TOOLBOX/otb-build/debug/OTB/Testing/Temporary/feTvNonMaxRemovalByDirectionOutput}
-samples = 1000
-lines   = 1000
-bands   = 1
-header offset = 0
-file type = ENVI Standard
-data type = 5
-interleave = bsq
-byte order = 0
-map info = {UTM, 1, 1, 439136.400000, 5273706.600000, 0.600000, 0.600000, 32, North}
-band names = {
-Band 1}
diff --git a/Data/Input/InputForRoadDetection_SpectralAngle.raw b/Data/Input/InputForRoadDetection_SpectralAngle.raw
deleted file mode 100644
index fcfe442dca79ccfc12b2f1b2fb7abfee4cf74a9a..0000000000000000000000000000000000000000
--- a/Data/Input/InputForRoadDetection_SpectralAngle.raw
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:650d138fc001f6e44fe4c937736c0fee5a0421f8924116c104e52c5ac60e6845
-size 8000000
diff --git a/Data/Input/InputForRoadDetection_SpectralAngle.raw.hdr b/Data/Input/InputForRoadDetection_SpectralAngle.raw.hdr
deleted file mode 100644
index e8d1181b91312aa95409ed3257c39f57c40f43b2..0000000000000000000000000000000000000000
--- a/Data/Input/InputForRoadDetection_SpectralAngle.raw.hdr
+++ /dev/null
@@ -1,14 +0,0 @@
-ENVI
-description = {
-/home2/julien/ORFEO-TOOLBOX/otb-build/debug/OTB/Testing/Temporary/bfTvSpectralAngleDistanceOutput}
-samples = 1000
-lines   = 1000
-bands   = 1
-header offset = 0
-file type = ENVI Standard
-data type = 5
-interleave = bsq
-byte order = 0
-map info = {UTM, 1, 1, 439136.400000, 5273706.600000, 0.600000, 0.600000, 32, North}
-band names = {
-Band 1}
diff --git a/Data/Input/InputForRoadDetection_WrongRem.raw b/Data/Input/InputForRoadDetection_WrongRem.raw
deleted file mode 100644
index b77cb617091761f57ab8a441e59a5a0d72ecb26f..0000000000000000000000000000000000000000
--- a/Data/Input/InputForRoadDetection_WrongRem.raw
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:cfce41cafcedca2eec656277cda36f4c5dceaef30abfb367858a0a274d41b2aa
-size 8000000
diff --git a/Data/Input/InputForRoadDetection_WrongRem.raw.hdr b/Data/Input/InputForRoadDetection_WrongRem.raw.hdr
deleted file mode 100644
index a8093309243fe19444a67cace922dfebf88bea04..0000000000000000000000000000000000000000
--- a/Data/Input/InputForRoadDetection_WrongRem.raw.hdr
+++ /dev/null
@@ -1,14 +0,0 @@
-ENVI
-description = {
-/home2/julien/ORFEO-TOOLBOX/otb-build/debug/OTB/Testing/Temporary/feTvRemoveWrongDirectionOutput}
-samples = 1000
-lines   = 1000
-bands   = 1
-header offset = 0
-file type = ENVI Standard
-data type = 5
-interleave = bsq
-byte order = 0
-map info = {UTM, 1, 1, 439136.400000, 5273706.600000, 0.600000, 0.600000, 32, North}
-band names = {
-Band 1}
diff --git a/Data/Input/ObjectReco/Boats/FeatureStats_RadiometricMoments_amplitude.xml b/Data/Input/ObjectReco/Boats/FeatureStats_RadiometricMoments_amplitude.xml
deleted file mode 100644
index 36bf8590e956116f6e4a111960f27111f41faa0f..0000000000000000000000000000000000000000
--- a/Data/Input/ObjectReco/Boats/FeatureStats_RadiometricMoments_amplitude.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" ?>
-<FeatureStatistics>
-    <Statistic name="mean">
-        <StatisticVector value="823.004" />
-        <StatisticVector value="81672" />
-        <StatisticVector value="0.821769" />
-        <StatisticVector value="3.36296" />
-    </Statistic>
-    <Statistic name="stddev">
-        <StatisticVector value="366.639" />
-        <StatisticVector value="135865" />
-        <StatisticVector value="1.31875" />
-        <StatisticVector value="9.14568" />
-    </Statistic>
-</FeatureStatistics>
diff --git a/Data/Input/ObjectReco/Boats/maur_B010202_01.tif b/Data/Input/ObjectReco/Boats/maur_B010202_01.tif
deleted file mode 100644
index e3b946f57282e32006c7930175f75a6c23a9ad20..0000000000000000000000000000000000000000
--- a/Data/Input/ObjectReco/Boats/maur_B010202_01.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:76240f31ab0ebe2c8e83b38d8a02a2840f98b34aa470e92395763014c8b9cc05
-size 13234829
diff --git a/Data/Input/ObjectReco/Boats/maur_B010202_01LabeledPoints.dbf b/Data/Input/ObjectReco/Boats/maur_B010202_01LabeledPoints.dbf
deleted file mode 100644
index a0aa2d0d932106f2394124898383c7cac084c7d9..0000000000000000000000000000000000000000
--- a/Data/Input/ObjectReco/Boats/maur_B010202_01LabeledPoints.dbf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:01de58ce3c495b414e3f919d615130b06be4bbf1003b6b0de4f5253f2f75be54
-size 128437
diff --git a/Data/Input/ObjectReco/Boats/maur_B010202_01LabeledPoints.shp b/Data/Input/ObjectReco/Boats/maur_B010202_01LabeledPoints.shp
deleted file mode 100644
index cfa8f3d8dbcf234345c82d3b9153ba3120dd0635..0000000000000000000000000000000000000000
--- a/Data/Input/ObjectReco/Boats/maur_B010202_01LabeledPoints.shp
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:0d1c844b374bafb64de032505d8289c60df1a902468126eddd39a88223e1c4de
-size 39160
diff --git a/Data/Input/ObjectReco/Boats/maur_B010202_01LabeledPoints.shx b/Data/Input/ObjectReco/Boats/maur_B010202_01LabeledPoints.shx
deleted file mode 100644
index 4a2c3af97936c8dcb47fa4403afe509a53710708..0000000000000000000000000000000000000000
--- a/Data/Input/ObjectReco/Boats/maur_B010202_01LabeledPoints.shx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:be403f366f2b77b0d0e003483d14e3a791132d8553071062e7291d54a85f8e3e
-size 11260
diff --git a/Data/Input/ObjectReco/Boats/maur_B010202_01Polygons.dbf b/Data/Input/ObjectReco/Boats/maur_B010202_01Polygons.dbf
deleted file mode 100644
index 202ee4ebf826690e08e4824b170606210b443de7..0000000000000000000000000000000000000000
--- a/Data/Input/ObjectReco/Boats/maur_B010202_01Polygons.dbf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:397c38ef052e1be71c0417e8755149f56e29a89db317020b118683950807072f
-size 580
diff --git a/Data/Input/ObjectReco/Boats/maur_B010202_01Polygons.shp b/Data/Input/ObjectReco/Boats/maur_B010202_01Polygons.shp
deleted file mode 100644
index 6c61252e5cde1badc59f9dcab1deb7ef9aaf8661..0000000000000000000000000000000000000000
--- a/Data/Input/ObjectReco/Boats/maur_B010202_01Polygons.shp
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:3de1390f4caeb34c796e97b5fd734118267dab9b7de9edd731013ebfb938772a
-size 2236
diff --git a/Data/Input/ObjectReco/Boats/maur_B010202_01Polygons.shx b/Data/Input/ObjectReco/Boats/maur_B010202_01Polygons.shx
deleted file mode 100644
index eedcb9a4a63e2e0e2f855ed1a9a8a4840f778aa2..0000000000000000000000000000000000000000
--- a/Data/Input/ObjectReco/Boats/maur_B010202_01Polygons.shx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:bc1895c35aa8f5da834af41323f450b6bad52514d7965ceb8a1e18dbaeddc7b1
-size 124
diff --git a/Data/Input/ObjectReco/Boats/maur_B010202_01Samples.dbf b/Data/Input/ObjectReco/Boats/maur_B010202_01Samples.dbf
deleted file mode 100644
index 3522a6c3014f619bed4fbbc4950e5928f903e858..0000000000000000000000000000000000000000
--- a/Data/Input/ObjectReco/Boats/maur_B010202_01Samples.dbf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:53d0f24062de7d7d09a7daa461a58a7e86e432d599655b89578f72f137f905d8
-size 365699
diff --git a/Data/Input/ObjectReco/Boats/maur_B010202_01Samples.shp b/Data/Input/ObjectReco/Boats/maur_B010202_01Samples.shp
deleted file mode 100644
index 24cb707432de271be01f81c9c3e2ca6c0b9a6e87..0000000000000000000000000000000000000000
--- a/Data/Input/ObjectReco/Boats/maur_B010202_01Samples.shp
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:0cf2710d95e4c820526a25bc6690ef7a3b976f18cf17f3f2ed1ffbe035515747
-size 126492
diff --git a/Data/Input/ObjectReco/Boats/maur_B010202_01Samples.shx b/Data/Input/ObjectReco/Boats/maur_B010202_01Samples.shx
deleted file mode 100644
index aa895b96ac97a0ee0052261977e5ce92bac4ebcb..0000000000000000000000000000000000000000
--- a/Data/Input/ObjectReco/Boats/maur_B010202_01Samples.shx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:78090fcacc5e730c68b21172cd3879d44817317527c415e713a872129d3fc6bc
-size 36212
diff --git a/Data/Input/ObjectReco/Boats/maur_B010202_01_amplitude.tif b/Data/Input/ObjectReco/Boats/maur_B010202_01_amplitude.tif
deleted file mode 100644
index 1476026469d7d1da3ac47455c8fc6ac6cbc3028f..0000000000000000000000000000000000000000
--- a/Data/Input/ObjectReco/Boats/maur_B010202_01_amplitude.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:0a9b97df1f6ae5a5356cbb4710e1cb0b95c7b8b82211dde09ba236164ecd965d
-size 8584511
diff --git a/Data/Input/ObjectReco/Boats/maur_B010202_01_extract_amplitude.tif b/Data/Input/ObjectReco/Boats/maur_B010202_01_extract_amplitude.tif
deleted file mode 100644
index 0aebc9c9a6236adfda6f6f6ae4f48a121064951a..0000000000000000000000000000000000000000
--- a/Data/Input/ObjectReco/Boats/maur_B010202_01_extract_amplitude.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:32dd7458e8c64d1779b1513e7a22e28249939d49e6e9023888c12c89eeade1c8
-size 71853
diff --git a/Data/Input/Seg1InputForRCC8Graph.tif b/Data/Input/Seg1InputForRCC8Graph.tif
deleted file mode 100644
index e677622f9e4c0d4d464a97c7868746d837030406..0000000000000000000000000000000000000000
--- a/Data/Input/Seg1InputForRCC8Graph.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:75bfc4c053eeb623f1c3c072989a39835f7c6632b40902604bab4c8c7567c3d9
-size 5564
diff --git a/Data/Input/Seg2InputForRCC8Graph.tif b/Data/Input/Seg2InputForRCC8Graph.tif
deleted file mode 100644
index 6acc661a46c63f05ebc2b1114eba866af69151cd..0000000000000000000000000000000000000000
--- a/Data/Input/Seg2InputForRCC8Graph.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:ebfa2c070d97c3f7a524766a02360ad9b8c21c98e49d5e7dd7eea9ff23224900
-size 4691
diff --git a/Data/Input/Seg3InputForRCC8Graph.tif b/Data/Input/Seg3InputForRCC8Graph.tif
deleted file mode 100644
index 2e27e0ee07e6a96ee3080888d565476f87127f8f..0000000000000000000000000000000000000000
--- a/Data/Input/Seg3InputForRCC8Graph.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:e2b58aefe1fa20b19ea16c34bbc047fd8a4b06ccb302b39d900cbead96c62ca6
-size 3340
diff --git a/Data/Input/Seg4InputForRCC8Graph.tif b/Data/Input/Seg4InputForRCC8Graph.tif
deleted file mode 100644
index c2886b585ce56f98b79be4f016cdd69180bac30f..0000000000000000000000000000000000000000
--- a/Data/Input/Seg4InputForRCC8Graph.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:8da097d6896b059cda7de7ff1225ce04be314844ecf8ef62c43d2db2335b8f53
-size 3024
diff --git a/Data/Input/Seg5InputForRCC8Graph.tif b/Data/Input/Seg5InputForRCC8Graph.tif
deleted file mode 100644
index 6b8329bcff20dd012dd54dfdbe1f1e60e968591c..0000000000000000000000000000000000000000
--- a/Data/Input/Seg5InputForRCC8Graph.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:c84224aa400ed08bc16edb53596dd9f205996e1dc0fdf377220beebf54119c09
-size 3931
diff --git a/Data/Input/rcc8_mire1.png b/Data/Input/rcc8_mire1.png
deleted file mode 100644
index 84d80b5e476e3cda75dea149e44b344d157c7437..0000000000000000000000000000000000000000
--- a/Data/Input/rcc8_mire1.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:12f42927804f6acac12efbe0822696999f081d3b1c2d2e0660227a63635f2fba
-size 10261
diff --git a/Data/Input/rcc8_mire2.png b/Data/Input/rcc8_mire2.png
deleted file mode 100644
index fe51b7d93dca6819628b8aeccd1786b05ef28f12..0000000000000000000000000000000000000000
--- a/Data/Input/rcc8_mire2.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:41dc58713412957c17566c85387bf1b8b260ccf1f8fd8196fe649643887f2d03
-size 10261
diff --git a/Data/Input/rcc8_mire3.png b/Data/Input/rcc8_mire3.png
deleted file mode 100644
index 6ca1fb1ed79527ade0d0d39d517d2b27590fec86..0000000000000000000000000000000000000000
--- a/Data/Input/rcc8_mire3.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:a2cde01113be3caeb86230817cd34355becc8aa74536929d3b22a8fe82f58659
-size 294
diff --git a/Data/Input/rcc8_mire4.png b/Data/Input/rcc8_mire4.png
deleted file mode 100644
index 10cd0bd99ff3ade23944d2d64bdba05104de70ea..0000000000000000000000000000000000000000
--- a/Data/Input/rcc8_mire4.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:57d4c7a833e915885ee3702f7990864e0583838d395f7e4fccb38502607d7189
-size 10261
diff --git a/Data/Input/rcc8_mire5.png b/Data/Input/rcc8_mire5.png
deleted file mode 100644
index 25031a9c185cce67878d7f32db1d587524d22bb5..0000000000000000000000000000000000000000
--- a/Data/Input/rcc8_mire5.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:32d1a7049dcdf8cf0488452d6347467740c97536baa73e21751d499ef41f306b
-size 112
diff --git a/Data/Input/rcc8_mire5.png.aux.xml b/Data/Input/rcc8_mire5.png.aux.xml
deleted file mode 100644
index 098625bf84b4ca0de04765727ac8e21380994743..0000000000000000000000000000000000000000
--- a/Data/Input/rcc8_mire5.png.aux.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<PAMDataset>
-  <GeoTransform>  5.0000000000000000e+00,  1.0000000000000000e+00,  0.0000000000000000e+00,  1.5000000000000000e+01,  0.0000000000000000e+00,  1.0000000000000000e+00</GeoTransform>
-  <Metadata>
-    <MDI key="Comment">Created with The GIMP</MDI>
-  </Metadata>
-</PAMDataset>
diff --git a/Documentation/Cookbook/rst/C++/UserGuide.rst b/Documentation/Cookbook/rst/C++/UserGuide.rst
index c557ef2e761c22797a3b6ebe000ca350507e2fbd..956d36e3ca03d27e8638f2cf1a376b9763e3de3e 100644
--- a/Documentation/Cookbook/rst/C++/UserGuide.rst
+++ b/Documentation/Cookbook/rst/C++/UserGuide.rst
@@ -705,7 +705,6 @@ Interest Points
   See example :ref:`RatioLineDetectorExample.cxx`.
   See example :ref:`CorrelationLineDetectorExample.cxx`.
   See example :ref:`AsymmetricFusionOfLineDetectorExample.cxx`.
-  See example :ref:`ParallelLineDetectionExample.cxx`.
 
 * Segment Extraction. See example :ref:`LineSegmentDetectorExample.cxx`.
 
@@ -785,26 +784,9 @@ following expressions:
 
 * Flusser Moments for Images. See example :ref:`FlusserMomentsImageFunctionExample.cxx`.
 
-Road and cloud extraction
+Cloud extraction
 ~~~~~~~~~~~~~~~~~~~~~~~~~
 
-Road extraction is a critical feature for an efficient use of high
-resolution satellite images. There are many applications of road
-extraction: update of GIS database, reference for image registration,
-help for identification algorithms and rapid mapping for example. Road
-network can be used to register an optical image with a map or an
-optical image with a radar image for example. Road network extraction
-can help for other algorithms: isolated building detection, bridge
-detection. In these cases, a rough extraction can be sufficient. In the
-context of response to crisis, a fast mapping is necessary: within
-6 hours, infrastructures for the designated area are required. Within
-this timeframe, a manual extraction is inconceivable and an automatic
-help is necessary.
-
-* Road extraction filter. See example :ref:`ExtractRoadExample.cxx`.
-
-* Step by step road extraction. See example :ref:`ExtractRoadByStepsExample.cxx`.
-
 * Cloud Detection. See example :ref:`CloudDetectionExample.cxx`.
 
 Image Simulation
diff --git a/Documentation/Cookbook/rst/recipes/improc.rst b/Documentation/Cookbook/rst/recipes/improc.rst
index 4216062f7ebafc55de4e5ab342b03cb90ffee1a6..72f24b429994e2f58729ff50b2773bb58bdf25b1 100644
--- a/Documentation/Cookbook/rst/recipes/improc.rst
+++ b/Documentation/Cookbook/rst/recipes/improc.rst
@@ -289,128 +289,3 @@ skipped.
 
 There is a cleanup option that can be disabled in order to check intermediate
 outputs of this composite application.
-
-Dempster Shafer based Classifier Fusion
----------------------------------------
-
-This framework is dedicated to perform cartographic validation starting
-from the result of a detection (for example a road extraction), enhance
-the results viability by using a classifier fusion algorithm. Using a
-set of descriptors, the processing chain validates or invalidates the
-input geometrical features.
-
-Fuzzy Model (requisite)
-~~~~~~~~~~~~~~~~~~~~~~~
-
-The *DSFuzzyModelEstimation* application performs the fuzzy model
-estimation (once by use case: descriptor set / Belief support /
-Plausibility support). It has the following input parameters:
-
--  ``-psin`` a vector data of positive samples enriched according to the
-   “Compute Descriptors” part
-
--  ``-nsin`` a vector data of negative samples enriched according to the
-   “Compute Descriptors” part
-
--  ``-belsup`` a support for the Belief computation
-
--  ``-plasup`` a support for the Plausibility computation
-
--  ``-desclist`` an initialization model (xml file) or a descriptor name
-   list (listing the descriptors to be included in the model)
-
-The application can be used like this:
-
-::
-
-    otbcli_DSFuzzyModelEstimation -psin     PosSamples.shp
-                                  -nsin     NegSamples.shp
-                                  -belsup   "ROADSA"
-                                  -plasup   "NONDVI" "ROADSA" "NOBUIL"
-                                  -desclist "NONDVI" "ROADSA" "NOBUIL"
-                                  -out      FuzzyModel.xml
-
-The output file ``FuzzyModel.xml`` contains the optimal model to perform
-information fusion.
-
-First Step: Compute Descriptors
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The first step in the classifier fusion based validation is to compute,
-for each studied polyline, the chosen descriptors. In this context, the
-*ComputePolylineFeatureFromImage* application can be used for a large
-range of descriptors. It has the following inputs:
-
--  ``-in`` an image (of the studied scene) corresponding to the chosen
-   descriptor (NDVI, building Mask…)
-
--  ``-vd`` a vector data containing polyline of interest
-
--  ``-expr`` a formula (“b1 >0.4”, “b1 == 0”) where b1 is the standard
-   name of input image first band
-
--  ``-field`` a field name corresponding to the descriptor codename
-   (NONDVI, ROADSA...)
-
-The output is a vector data containing polylines with a new field
-containing the descriptor value. In order to add the “NONDVI” descriptor
-to an input vector data (“inVD.shp”) corresponding to the percentage of
-pixels along a polyline that verifies the formula “NDVI >0.4”:
-
-::
-
-    otbcli_ComputePolylineFeatureFromImage -in   NDVI.TIF
-                                           -vd  inVD.shp
-                                           -expr  "b1 > 0.4"
-                                           -field "NONDVI"
-                                           -out   VD_NONDVI.shp
-
-``NDVI.TIF`` is the NDVI mono band image of the studied scene. This step
-must be repeated for each chosen descriptor:
-
-::
-
-    otbcli_ComputePolylineFeatureFromImage -in   roadSpectralAngle.TIF
-                                           -vd  VD_NONDVI.shp
-                                           -expr  "b1 > 0.24"
-                                           -field "ROADSA"
-                                           -out   VD_NONDVI_ROADSA.shp
-
-::
-
-    otbcli_ComputePolylineFeatureFromImage -in   Buildings.TIF
-                                           -vd  VD_NONDVI_ROADSA.shp
-                                           -expr  "b1 == 0"
-                                           -field "NOBUILDING"
-                                           -out   VD_NONDVI_ROADSA_NOBUIL.shp
-
-Both ``NDVI.TIF`` and ``roadSpectralAngle.TIF`` can be produced using
-**Monteverdi** feature extraction capabilities, and ``Buildings.TIF``
-can be generated using **Monteverdi** rasterization module. From now on,
-``VD_NONDVI_ROADSA_NOBUIL.shp`` contains three descriptor fields. It
-will be used in the following part.
-
-Second Step: Feature Validation
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The final application (*VectorDataDSValidation* ) will validate or
-invalidate the studied samples using `the Dempster-Shafer
-theory <http://en.wikipedia.org/wiki/Dempster%E2%80%93Shafer_theory>`_ 
-. Its inputs are:
-
--  ``-in`` an enriched vector data “VD\_NONDVI\_ROADSA\_NOBUIL.shp”
-
--  ``-belsup`` a support for the Belief computation
-
--  ``-plasup`` a support for the Plausibility computation
-
--  ``-descmod`` a fuzzy model FuzzyModel.xml
-
-The output is a vector data containing only the validated samples.
-
-::
-
-    otbcli_VectorDataDSValidation -in      extractedRoads_enriched.shp
-                                  -descmod FuzzyModel.xml
-                                  -out     validatedSamples.shp
-
diff --git a/Examples/FeatureExtraction/CMakeLists.txt b/Examples/FeatureExtraction/CMakeLists.txt
index 19c504f658d111d89bbd3a107d495d0989e3d003..5d48aead0da95f1391506976bcfeb80c37083e36 100644
--- a/Examples/FeatureExtraction/CMakeLists.txt
+++ b/Examples/FeatureExtraction/CMakeLists.txt
@@ -38,18 +38,6 @@ target_link_libraries(CorrelationLineDetectorExample ${OTB_LIBRARIES})
 add_executable(EdgeDensityExample EdgeDensityExample.cxx)
 target_link_libraries(EdgeDensityExample ${OTB_LIBRARIES})
 
-#OTBRoadExtraction depends OTBMathParser. But OTB_USE_MUPARSER is OFF
-if(OTBMathParser_LOADED)
-add_executable(ExtractRoadByStepsExample ExtractRoadByStepsExample.cxx)
-target_link_libraries(ExtractRoadByStepsExample ${OTB_LIBRARIES})
-
-add_executable(ExtractRoadExample ExtractRoadExample.cxx)
-target_link_libraries(ExtractRoadExample ${OTB_LIBRARIES})
-
-add_executable(ParallelLineDetectionExample ParallelLineDetectionExample.cxx)
-target_link_libraries(ParallelLineDetectionExample ${OTB_LIBRARIES})
-endif()
-
 add_executable(FlusserMomentsImageFunctionExample FlusserMomentsImageFunctionExample.cxx)
 target_link_libraries(FlusserMomentsImageFunctionExample ${OTB_LIBRARIES})
 
@@ -71,12 +59,6 @@ target_link_libraries(PanTexExample ${OTB_LIBRARIES})
 add_executable(RatioLineDetectorExample RatioLineDetectorExample.cxx)
 target_link_libraries(RatioLineDetectorExample ${OTB_LIBRARIES})
 
-add_executable(SeamCarvingExample SeamCarvingExample.cxx)
-target_link_libraries(SeamCarvingExample ${OTB_LIBRARIES})
-
-add_executable(SeamCarvingOtherExample SeamCarvingOtherExample.cxx)
-target_link_libraries(SeamCarvingOtherExample ${OTB_LIBRARIES})
-
 add_executable(SFSExample SFSExample.cxx)
 target_link_libraries(SFSExample ${OTB_LIBRARIES})
 
diff --git a/Examples/FeatureExtraction/ExtractRoadByStepsExample.cxx b/Examples/FeatureExtraction/ExtractRoadByStepsExample.cxx
deleted file mode 100644
index 54891d83c85169c20f0e82311a78b2d4aba5f986..0000000000000000000000000000000000000000
--- a/Examples/FeatureExtraction/ExtractRoadByStepsExample.cxx
+++ /dev/null
@@ -1,414 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-// This example illustrates the details of the \doxygen{otb}{RoadExtractionFilter}.
-// This filter, described in the previous section,  is a composite filter that includes
-// all the steps below. Individual filters can be replaced to design a road detector
-// targeted at SAR images for example.
-
-#include "otbPolyLineParametricPathWithValue.h"
-#include "otbSpectralAngleDistanceImageFilter.h"
-#include "itkGradientRecursiveGaussianImageFilter.h"
-#include "otbNeighborhoodScalarProductFilter.h"
-#include "otbRemoveIsolatedByDirectionFilter.h"
-#include "otbRemoveWrongDirectionFilter.h"
-#include "otbNonMaxRemovalByDirectionFilter.h"
-#include "otbVectorizationPathListFilter.h"
-#include "otbSimplifyPathListFilter.h"
-#include "otbBreakAngularPathListFilter.h"
-#include "otbRemoveTortuousPathListFilter.h"
-#include "otbLinkPathListFilter.h"
-#include "otbLikelihoodPathListFilter.h"
-#include "otbDrawPathListFilter.h"
-#include "otbLikelihoodPathListFilter.h"
-#include "otbMultiToMonoChannelExtractROI.h"
-#include "itkUnaryFunctorImageFilter.h"
-#include "itkRescaleIntensityImageFilter.h"
-#include "itkSqrtImageFilter.h"
-
-#include "otbImageFileReader.h"
-#include "otbImageFileWriter.h"
-#include "otbMultiChannelExtractROI.h"
-#include "otbVectorRescaleIntensityImageFilter.h"
-#include "itkAddImageFilter.h"
-#include "itkSubtractImageFilter.h"
-#include "itkRGBPixel.h"
-#include "itkComposeImageFilter.h"
-#include "itkThresholdImageFilter.h"
-#include "itkSigmoidImageFilter.h"
-#include "itkThresholdImageFilter.h"
-#include "itkBinaryBallStructuringElement.h"
-#include "itkGrayscaleDilateImageFilter.h"
-
-/* Example usage:
-./ExtractRoadByStepsExample Input/qb_RoadExtract.tif Output/ExtractRoadByStepsExampleOutput.jpg Output/qb_ExtractRoad_pretty.jpg 337 557 432 859 0.00005 1.0
-*/
-
-/* Example usage:
-./ExtractRoadByStepsExample Input/qb_RoadExtract2.tif Output/ExtractRoadByStepsExampleOutput2.jpg Output/qb_ExtractRoad_pretty2.jpg 228 316 207 282 0.00005 1.0
-*/
-
-
-int main(int itkNotUsed(argc), char* argv[])
-{
-
-  const unsigned int                                 Dimension = 2;
-  typedef double                                     PixelType;
-  typedef unsigned char                              OutputPixelType;
-  typedef itk::CovariantVector<PixelType, Dimension> VectorPixelType;
-  typedef otb::Image<PixelType, Dimension>           InternalImageType;
-  typedef otb::VectorImage<PixelType, Dimension>     MultiSpectralImageType;
-  typedef otb::Image<VectorPixelType, Dimension>     VectorImageType;
-
-  typedef otb::PolyLineParametricPathWithValue<double, Dimension> PathType;
-
-  typedef otb::ImageFileReader<MultiSpectralImageType> MultispectralReaderType;
-
-  MultispectralReaderType::Pointer multispectralReader = MultispectralReaderType::New();
-  multispectralReader->SetFileName(argv[1]);
-
-  // Create an 3 band image for the software guide
-  typedef otb::VectorImage<OutputPixelType, Dimension>                                          OutputVectorImageType;
-  typedef otb::ImageFileWriter<OutputVectorImageType>                                           VectorWriterType;
-  typedef otb::VectorRescaleIntensityImageFilter<MultiSpectralImageType, OutputVectorImageType> VectorRescalerType;
-  typedef otb::MultiChannelExtractROI<unsigned char, unsigned char>                             ChannelExtractorType;
-
-  // The GenerateOutputInformation() information is required here so
-  // that the number of component per pixel is update and known to set
-  // up the maximum and minimum values for the rescaling filter
-  multispectralReader->GenerateOutputInformation();
-
-  OutputVectorImageType::PixelType minimum, maximum;
-  minimum.SetSize(multispectralReader->GetOutput()->GetNumberOfComponentsPerPixel());
-  maximum.SetSize(multispectralReader->GetOutput()->GetNumberOfComponentsPerPixel());
-  minimum.Fill(0);
-  maximum.Fill(255);
-
-  VectorRescalerType::Pointer vr = VectorRescalerType::New();
-  vr->SetInput(multispectralReader->GetOutput());
-  vr->SetOutputMinimum(minimum);
-  vr->SetOutputMaximum(maximum);
-  vr->SetClampThreshold(0.01);
-
-  ChannelExtractorType::Pointer selecter = ChannelExtractorType::New();
-  selecter->SetInput(vr->GetOutput());
-  selecter->SetExtractionRegion(multispectralReader->GetOutput()->GetLargestPossibleRegion());
-  selecter->SetChannel(3);
-  selecter->SetChannel(2);
-  selecter->SetChannel(1);
-
-  VectorWriterType::Pointer vectWriter = VectorWriterType::New();
-  vectWriter->SetFileName(argv[3]);
-  vectWriter->SetInput(selecter->GetOutput());
-  vectWriter->Update();
-
-  MultiSpectralImageType::PixelType pixelRef;
-  pixelRef.SetSize(4);
-  pixelRef[0] = atoi(argv[4]);
-  pixelRef[1] = atoi(argv[5]);
-  pixelRef[2] = atoi(argv[6]);
-  pixelRef[3] = atoi(argv[7]);
-
-  double resolution = 0.6; // to get directly from metadata
-  double alpha      = atof(argv[9]);
-
-  //  The spectral angle is used to compute a grayscale image from the
-  //  multispectral original image using
-  //  \doxygen{otb}{SpectralAngleDistanceImageFilter}. The spectral
-  //  angle is illustrated on
-  // Figure~\ref{fig:RoadExtractionSpectralAngleDiagram}. Pixels
-  // corresponding to roads are in darker color.
-  //
-  // \begin{figure}
-  // \center
-  // \includegraphics[width=0.40\textwidth]{RoadExtractionSpectralAngleDiagram.eps}
-  // \itkcaption[Spectral Angle]{Illustration of the spectral angle
-  // for one pixel of a three-band image. One of the vector is the
-  // reference pixel and the other is the current pixel.}
-  // \label{fig:RoadExtractionSpectralAngleDiagram}
-  // \end{figure}
-  //
-  //
-
-  typedef otb::SpectralAngleDistanceImageFilter<MultiSpectralImageType, InternalImageType> SAFilterType;
-  SAFilterType::Pointer                                                                    saFilter = SAFilterType::New();
-  saFilter->SetReferencePixel(pixelRef);
-  saFilter->SetInput(multispectralReader->GetOutput());
-
-  //  A square root is applied to the spectral angle image in order to enhance contrast between
-  //  darker pixels (which are pixels of interest) with \doxygen{itk}{SqrtImageFilter}.
-
-  typedef itk::SqrtImageFilter<InternalImageType, InternalImageType> SqrtFilterType;
-  SqrtFilterType::Pointer                                            sqrtFilter = SqrtFilterType::New();
-  sqrtFilter->SetInput(saFilter->GetOutput());
-
-  //  Use the Gaussian gradient filter compute the gradient in x and y direction
-  // respectively
-  // (\doxygen{itk}{GradientRecursiveGaussianImageFilter}).
-
-  double                                                                                sigma = alpha * (1.2 / resolution + 1);
-  typedef itk::GradientRecursiveGaussianImageFilter<InternalImageType, VectorImageType> GradientFilterType;
-  GradientFilterType::Pointer                                                           gradientFilter = GradientFilterType::New();
-  gradientFilter->SetSigma(sigma);
-  gradientFilter->SetInput(sqrtFilter->GetOutput());
-
-  //  Compute the scalar product of the neighboring pixels and keep the
-  //  minimum value and the direction with \doxygen{otb}{NeighborhoodScalarProductFilter}.
-  // This is the line detector described
-  //  in \cite{Lacroix1998}.
-
-  typedef otb::NeighborhoodScalarProductFilter<VectorImageType, InternalImageType, InternalImageType> NeighborhoodScalarProductType;
-  NeighborhoodScalarProductType::Pointer                                                              scalarFilter = NeighborhoodScalarProductType::New();
-  scalarFilter->SetInput(gradientFilter->GetOutput());
-
-  //  The resulting image is passed to the \doxygen{otb}{RemoveIsolatedByDirectionFilter}
-  // filter to remove pixels
-  //  with no neighbor having the same direction.
-
-  typedef otb::RemoveIsolatedByDirectionFilter<InternalImageType, InternalImageType, InternalImageType> RemoveIsolatedByDirectionType;
-  RemoveIsolatedByDirectionType::Pointer removeIsolatedByDirectionFilter = RemoveIsolatedByDirectionType::New();
-  removeIsolatedByDirectionFilter->SetInput(scalarFilter->GetOutput());
-  removeIsolatedByDirectionFilter->SetInputDirection(scalarFilter->GetOutputDirection());
-
-  //  We remove pixels having a direction corresponding to bright lines
-  //  as we know that after the spectral angle, roads are in darker color
-  //  with the \doxygen{otb}{RemoveWrongDirectionFilter} filter.
-
-  typedef otb::RemoveWrongDirectionFilter<InternalImageType, InternalImageType, InternalImageType> RemoveWrongDirectionType;
-  RemoveWrongDirectionType::Pointer                                                                removeWrongDirectionFilter = RemoveWrongDirectionType::New();
-  removeWrongDirectionFilter->SetInput(removeIsolatedByDirectionFilter->GetOutput());
-  removeWrongDirectionFilter->SetInputDirection(scalarFilter->GetOutputDirection());
-
-  //  We remove pixels which are not maximum on the direction
-  //  perpendicular to the road direction with the \doxygen{otb}{NonMaxRemovalByDirectionFilter}.
-
-  typedef otb::NonMaxRemovalByDirectionFilter<InternalImageType, InternalImageType, InternalImageType> NonMaxRemovalByDirectionType;
-  NonMaxRemovalByDirectionType::Pointer nonMaxRemovalByDirectionFilter = NonMaxRemovalByDirectionType::New();
-  nonMaxRemovalByDirectionFilter->SetInput(removeWrongDirectionFilter->GetOutput());
-  nonMaxRemovalByDirectionFilter->SetInputDirection(scalarFilter->GetOutputDirection());
-
-  //  Extracted road are vectorized into polylines with \doxygen{otb}{VectorizationPathListFilter}.
-
-  typedef otb::VectorizationPathListFilter<InternalImageType, InternalImageType, PathType> VectorizationFilterType;
-  VectorizationFilterType::Pointer                                                         vectorizationFilter = VectorizationFilterType::New();
-  vectorizationFilter->SetInput(nonMaxRemovalByDirectionFilter->GetOutput());
-  vectorizationFilter->SetInputDirection(scalarFilter->GetOutputDirection());
-  vectorizationFilter->SetAmplitudeThreshold(atof(argv[8]));
-
-  //  However, this vectorization is too simple and need to be refined
-  //  to be usable. First, we remove all aligned points to make one segment with
-  // \doxygen{otb}{SimplifyPathListFilter}.
-  //  Then we break the polylines which have sharp angles as they are probably
-  //  not road with \doxygen{otb}{BreakAngularPathListFilter}.
-  // Finally we remove path which are too short with \doxygen{otb}{RemoveTortuousPathListFilter}.
-
-  typedef otb::SimplifyPathListFilter<PathType> SimplifyPathType;
-  SimplifyPathType::Pointer                     simplifyPathListFilter = SimplifyPathType::New();
-  simplifyPathListFilter->GetFunctor().SetTolerance(1.0);
-  simplifyPathListFilter->SetInput(vectorizationFilter->GetOutput());
-
-  typedef otb::BreakAngularPathListFilter<PathType> BreakAngularPathType;
-  BreakAngularPathType::Pointer                     breakAngularPathListFilter = BreakAngularPathType::New();
-  breakAngularPathListFilter->SetMaxAngle(otb::CONST_PI / 8.);
-  breakAngularPathListFilter->SetInput(simplifyPathListFilter->GetOutput());
-
-  typedef otb::RemoveTortuousPathListFilter<PathType> RemoveTortuousPathType;
-  RemoveTortuousPathType::Pointer                     removeTortuousPathListFilter = RemoveTortuousPathType::New();
-  removeTortuousPathListFilter->GetFunctor().SetThreshold(1.0);
-  removeTortuousPathListFilter->SetInput(breakAngularPathListFilter->GetOutput());
-
-  //  Polylines within a certain range are linked (\doxygen{otb}{LinkPathListFilter}) to
-  //  try to fill gaps due to occultations by vehicules, trees, etc. before simplifying
-  //  polylines (\doxygen{otb}{SimplifyPathListFilter}) and
-  //  removing the shortest ones with \doxygen{otb}{RemoveTortuousPathListFilter}.
-
-  typedef otb::LinkPathListFilter<PathType> LinkPathType;
-  LinkPathType::Pointer                     linkPathListFilter = LinkPathType::New();
-  linkPathListFilter->SetDistanceThreshold(25.0 / resolution);
-  linkPathListFilter->SetAngularThreshold(otb::CONST_PI / 8);
-  linkPathListFilter->SetInput(removeTortuousPathListFilter->GetOutput());
-
-  SimplifyPathType::Pointer simplifyPathListFilter2 = SimplifyPathType::New();
-  simplifyPathListFilter2->GetFunctor().SetTolerance(1.0);
-  simplifyPathListFilter2->SetInput(linkPathListFilter->GetOutput());
-
-  RemoveTortuousPathType::Pointer removeTortuousPathListFilter2 = RemoveTortuousPathType::New();
-  removeTortuousPathListFilter2->GetFunctor().SetThreshold(10.0);
-  removeTortuousPathListFilter2->SetInput(simplifyPathListFilter2->GetOutput());
-
-  //  A value can be associated with each polyline according to pixel values
-  // under the polyline with \doxygen{otb}{LikelihoodPathListFilter}. A higher value
-  // will mean a higher Likelihood to be a road.
-
-  typedef otb::LikelihoodPathListFilter<PathType, InternalImageType> PathListToPathListWithValueType;
-  PathListToPathListWithValueType::Pointer                           pathListConverter = PathListToPathListWithValueType::New();
-  pathListConverter->SetInput(removeTortuousPathListFilter2->GetOutput());
-  pathListConverter->SetInputImage(nonMaxRemovalByDirectionFilter->GetOutput());
-
-  // A black background image is built to draw the path on.
-
-  InternalImageType::Pointer output = InternalImageType::New();
-  output->CopyInformation(multispectralReader->GetOutput());
-  output->SetRegions(output->GetLargestPossibleRegion());
-  output->Allocate();
-  output->FillBuffer(0.0);
-
-  // Polylines are drawn on a black background image with \doxygen{otb}{DrawPathListFilter}.
-  // The \code{SetUseIternalValues()} tell the drawing filter to draw the path with its Likelihood
-  // value.
-
-  typedef otb::DrawPathListFilter<InternalImageType, PathType, InternalImageType> DrawPathType;
-  DrawPathType::Pointer                                                           drawPathListFilter = DrawPathType::New();
-  drawPathListFilter->SetInput(output);
-  drawPathListFilter->SetInputPath(pathListConverter->GetOutput());
-  drawPathListFilter->SetUseInternalPathValue(true);
-
-  // The output from the drawing filter contains very small values (Likelihood values). Therefore
-  // the image has to be rescaled to be viewed. The whole pipeline is executed by invoking
-  // the \code{Update()} method on this last filter.
-
-  typedef itk::RescaleIntensityImageFilter<InternalImageType, InternalImageType> RescalerType;
-  RescalerType::Pointer                                                          rescaler = RescalerType::New();
-  rescaler->SetOutputMaximum(255);
-  rescaler->SetOutputMinimum(0);
-  rescaler->SetInput(drawPathListFilter->GetOutput());
-  rescaler->Update();
-
-  // this small piece of code aims at producing a pretty RGB png result image.
-  typedef otb::MultiToMonoChannelExtractROI<OutputPixelType, PixelType>                                 ChannelExtractionFilterType;
-  typedef itk::AddImageFilter<InternalImageType, InternalImageType, InternalImageType>                  AddFilterType;
-  typedef itk::SubtractImageFilter<InternalImageType, InternalImageType, InternalImageType>             SubtractFilterType;
-  typedef itk::ThresholdImageFilter<InternalImageType>                                                  ThresholdFilterType;
-  typedef itk::RGBPixel<OutputPixelType>                                                                RGBPixelType;
-  typedef otb::Image<RGBPixelType, Dimension>                                                           RGBImageType;
-  typedef itk::ComposeImageFilter<InternalImageType, RGBImageType>                                      ComposeFilterType;
-  typedef otb::ImageFileWriter<RGBImageType>                                                            RGBWriterType;
-  typedef itk::BinaryBallStructuringElement<PixelType, Dimension>                                       StructuringElementType;
-  typedef itk::GrayscaleDilateImageFilter<InternalImageType, InternalImageType, StructuringElementType> DilateFilterType;
-
-  StructuringElementType se;
-  se.SetRadius(1);
-  se.CreateStructuringElement();
-
-  // Filters definitions
-  ChannelExtractionFilterType::Pointer channelExtractor1 = ChannelExtractionFilterType::New();
-  ChannelExtractionFilterType::Pointer channelExtractor2 = ChannelExtractionFilterType::New();
-  ChannelExtractionFilterType::Pointer channelExtractor3 = ChannelExtractionFilterType::New();
-
-  AddFilterType::Pointer       addFilter   = AddFilterType::New();
-  SubtractFilterType::Pointer  subtract2   = SubtractFilterType::New();
-  SubtractFilterType::Pointer  subtract3   = SubtractFilterType::New();
-  ThresholdFilterType::Pointer threshold11 = ThresholdFilterType::New();
-  ThresholdFilterType::Pointer threshold21 = ThresholdFilterType::New();
-  ThresholdFilterType::Pointer threshold31 = ThresholdFilterType::New();
-  ThresholdFilterType::Pointer threshold12 = ThresholdFilterType::New();
-  ThresholdFilterType::Pointer threshold22 = ThresholdFilterType::New();
-  ThresholdFilterType::Pointer threshold32 = ThresholdFilterType::New();
-
-  ComposeFilterType::Pointer composer = ComposeFilterType::New();
-  RGBWriterType::Pointer     writer   = RGBWriterType::New();
-
-  DilateFilterType::Pointer dilater = DilateFilterType::New();
-
-  dilater->SetInput(rescaler->GetOutput());
-  dilater->SetKernel(se);
-
-  // Extract each channel
-  channelExtractor1->SetInput(vr->GetOutput());
-  channelExtractor2->SetInput(vr->GetOutput());
-  channelExtractor3->SetInput(vr->GetOutput());
-
-  channelExtractor1->SetChannel(3);
-  channelExtractor2->SetChannel(2);
-  channelExtractor3->SetChannel(1);
-
-  // Add the path to the red component
-  addFilter->SetInput1(channelExtractor1->GetOutput());
-  addFilter->SetInput2(dilater->GetOutput());
-
-  subtract2->SetInput1(channelExtractor2->GetOutput());
-  subtract2->SetInput2(dilater->GetOutput());
-  subtract3->SetInput1(channelExtractor3->GetOutput());
-  subtract3->SetInput2(dilater->GetOutput());
-
-  // Threshold outside the [0, 255] range
-
-  threshold11->SetInput(addFilter->GetOutput());
-  threshold11->ThresholdBelow(0);
-  threshold11->SetOutsideValue(0);
-  threshold12->SetInput(threshold11->GetOutput());
-  threshold12->ThresholdAbove(255);
-  threshold12->SetOutsideValue(255);
-
-  threshold21->SetInput(subtract2->GetOutput());
-  threshold21->ThresholdBelow(0);
-  threshold21->SetOutsideValue(0);
-  threshold22->SetInput(threshold21->GetOutput());
-  threshold22->ThresholdAbove(255);
-  threshold22->SetOutsideValue(255);
-
-  threshold31->SetInput(subtract3->GetOutput());
-  threshold31->ThresholdBelow(0);
-  threshold31->SetOutsideValue(0);
-  threshold32->SetInput(threshold31->GetOutput());
-  threshold32->ThresholdAbove(255);
-  threshold32->SetOutsideValue(255);
-
-  // Compose the output image
-  composer->SetInput(0, threshold12->GetOutput());
-  composer->SetInput(1, threshold22->GetOutput());
-  composer->SetInput(2, threshold32->GetOutput());
-
-  // Write the new rgb image
-  writer->SetInput(composer->GetOutput());
-  writer->SetFileName(argv[2]);
-  writer->Update();
-
-  // Figures~\ref{fig:ROADEXTRACTIONBYSTEPS} and \ref{fig:ROADEXTRACTIONBYSTEPS2}
-  // show the result of applying
-  // the road extraction by steps to a fusionned Quickbird image. The result image
-  // is a RGB composition showing the extracted path in red. Full processing took
-  // about 3 seconds for each image.
-  //
-  // \begin{figure}[htbp]
-  // \center
-  // \includegraphics[width=0.44\textwidth]{qb_ExtractRoad_pretty.eps}
-  // \includegraphics[width=0.44\textwidth]{ExtractRoadByStepsExampleOutput.eps}
-  // \itkcaption[Road extraction filter application]{Result of applying
-  // the road extraction by steps pipeline to a fusionned Quickbird
-  // image. From left to right : original image, extracted road with their
-  // Likelihood values.}
-  // \label{fig:ROADEXTRACTIONBYSTEPS}
-  // \end{figure}
-  //
-  // \begin{figure}[htbp]
-  // \center
-  // \includegraphics[width=0.44\textwidth]{qb_ExtractRoad_pretty2.eps}
-  // \includegraphics[width=0.44\textwidth]{ExtractRoadByStepsExampleOutput2.eps}
-  // \itkcaption[Road extraction filter application]{Result of applying
-  // the road extraction by steps pipeline to a fusionned Quickbird
-  // image. From left to right : original image, extracted road with their
-  // Likelihood values.}
-  // \label{fig:ROADEXTRACTIONBYSTEPS2}
-  // \end{figure}
-
-  return EXIT_SUCCESS;
-}
diff --git a/Examples/FeatureExtraction/ExtractRoadExample.cxx b/Examples/FeatureExtraction/ExtractRoadExample.cxx
deleted file mode 100644
index 94c4361e0d20c29ea24a6461e2248374e7047524..0000000000000000000000000000000000000000
--- a/Examples/FeatureExtraction/ExtractRoadExample.cxx
+++ /dev/null
@@ -1,246 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-/* Example usage:
-./ExtractRoadExample Input/qb_RoadExtract.tif Output/ExtractRoadOutput.png 337 557 432 859 1.0 0.00005 1.0 0.39269 1.0 10.0 25.
-*/
-
-
-// The easiest way to use the road extraction filter provided by OTB is to use the composite
-// filter. If a modification in the pipeline is required to adapt to a particular situation,
-// the step by step example, described in the next section can be adapted.
-//
-// This example demonstrates the use of the \doxygen{otb}{RoadExtractionFilter}.
-// This filter is a composite filter achieving road extraction according to the algorithm
-// adapted by E. Christophe and J. Inglada \cite{Christophe2007} from an original method
-// proposed in \cite{Lacroix1998}.
-//
-// The first step toward the use of this filter is the inclusion of the proper header files.
-
-#include "otbPolyLineParametricPathWithValue.h"
-#include "otbRoadExtractionFilter.h"
-#include "otbDrawPathListFilter.h"
-
-#include "otbImage.h"
-#include "otbImageFileReader.h"
-#include "otbImageFileWriter.h"
-#include "itkRescaleIntensityImageFilter.h"
-#include "otbMath.h"
-
-#include "itkInvertIntensityImageFilter.h"
-#include "itkGrayscaleDilateImageFilter.h"
-#include "itkBinaryBallStructuringElement.h"
-
-int main(int argc, char* argv[])
-{
-
-  if (argc != 14)
-  {
-    std::cerr << "Usage: " << argv[0];
-    std::cerr << " inputFileName outputFileName firstPixelComponent secondPixelComponent ";
-    std::cerr << "thirdPixelComponent fourthPixelComponent alpha amplitudeThrehsold tolerance ";
-    std::cerr << "angularThreshold-maxAngle firstMeanDistanceThreshold secondMeanDistanceThreshold ";
-    std::cerr << "distanceThreshold" << std::endl;
-    return EXIT_FAILURE;
-  }
-
-  const unsigned int Dimension = 2;
-  // Then we must decide what pixel type to use for the image. We choose to do
-  // all the computation in floating point precision and rescale the results
-  // between 0 and 255 in order to export PNG images.
-
-  typedef double        InputPixelType;
-  typedef unsigned char OutputPixelType;
-
-  //  The images are defined using the pixel type and the dimension. Please note that
-  //  the \doxygen{otb}{RoadExtractionFilter} needs an \doxygen{otb}{VectorImage} as input
-  //  to handle multispectral images.
-
-  typedef otb::VectorImage<InputPixelType, Dimension> InputVectorImageType;
-  typedef otb::Image<InputPixelType, Dimension>       InputImageType;
-  typedef otb::Image<OutputPixelType, Dimension>      OutputImageType;
-
-  // We define the type of the polyline that the filter produces. We use the
-  // \doxygen{otb}{PolyLineParametricPathWithValue}, which allows the filter to produce
-  // a likehood value along with each polyline. The filter is able to produce
-  // \doxygen{itk}{PolyLineParametricPath} as well.
-
-  typedef otb::PolyLineParametricPathWithValue<InputPixelType, Dimension> PathType;
-
-  // Now we can define the \doxygen{otb}{RoadExtractionFilter} that takes a multi-spectral
-  // image as input and produces a list of polylines.
-
-  typedef otb::RoadExtractionFilter<InputVectorImageType, PathType> RoadExtractionFilterType;
-
-  // We also define an \doxygen{otb}{DrawPathListFilter} to draw the output
-  // polylines on an image, taking their likehood values into account.
-
-  typedef otb::DrawPathListFilter<InputImageType, PathType, InputImageType> DrawPathFilterType;
-
-  // The intensity rescaling of the results will be carried out by the
-  // \doxygen{itk}{RescaleIntensityImageFilter} which is templated by the
-  // input and output image types.
-
-  typedef itk::RescaleIntensityImageFilter<InputImageType, OutputImageType> RescalerType;
-
-  //  An \doxygen{otb}{ImageFileReader} class is also instantiated in order to read
-  //  image data from a file. Then, an \doxygen{otb}{ImageFileWriter}
-  //  is instantiated in order to write the output image to a file.
-
-  typedef otb::ImageFileReader<InputVectorImageType> ReaderType;
-  typedef otb::ImageFileWriter<OutputImageType>      WriterType;
-
-  // The different filters composing our pipeline are created by invoking their
-  // \code{New()} methods, assigning the results to smart pointers.
-
-  ReaderType::Pointer               reader               = ReaderType::New();
-  RoadExtractionFilterType::Pointer roadExtractionFilter = RoadExtractionFilterType::New();
-  DrawPathFilterType::Pointer       drawingFilter        = DrawPathFilterType::New();
-  RescalerType::Pointer             rescaleFilter        = RescalerType::New();
-  WriterType::Pointer               writer               = WriterType::New();
-
-  reader->SetFileName(argv[1]);
-
-  // The \doxygen{otb}{RoadExtractionFilter} needs to have a reference pixel
-  // corresponding to the spectral content likely to represent a road. This is done
-  // by passing a pixel to the filter. Here we suppose that the input image
-  // has four spectral bands.
-
-  InputVectorImageType::PixelType ReferencePixel;
-  ReferencePixel.SetSize(4);
-  ReferencePixel.SetElement(0, ::atof(argv[3]));
-  ReferencePixel.SetElement(1, ::atof(argv[4]));
-  ReferencePixel.SetElement(2, ::atof(argv[5]));
-  ReferencePixel.SetElement(3, ::atof(argv[6]));
-  roadExtractionFilter->SetReferencePixel(ReferencePixel);
-
-  // We must also set the  alpha parameter of the filter which allows us to tune the width of the roads
-  // we want to extract. Typical value is $1.0$ and should be working in most situations.
-
-  roadExtractionFilter->SetAlpha(atof(argv[7]));
-
-  // All other parameter should not influence the results too much in most situation and can
-  // be kept at the default value.
-  //
-  // The amplitude threshold parameter tunes the sensitivity of the vectorization step. A typical
-  // value is $5 \cdot 10^{-5}$.
-
-  roadExtractionFilter->SetAmplitudeThreshold(atof(argv[8]));
-
-  // The tolerance threshold tunes the sensitivity of the path simplification step.
-  // Typical value is $1.0$.
-
-  roadExtractionFilter->SetTolerance(atof(argv[9]));
-
-  // Roads are not likely to have sharp turns. Therefore we set the max angle parameter,
-  // as well as the link angular threshold. The value is typically $\frac{\pi}{8}$.
-
-  roadExtractionFilter->SetMaxAngle(atof(argv[10]));
-  roadExtractionFilter->SetAngularThreshold(atof(argv[10]));
-
-  // The \doxygen{otb}{RoadExtractionFilter} performs two odd path removing operations at different stage of
-  // its execution. The first mean distance threshold and the second mean distance threshold set their criterion
-  // for removal. Path are removed if their mean distance between nodes is to small, since such path coming
-  // from previous filters are likely to be tortuous. The first removal operation as a typical mean distance
-  // threshold parameter of $1.0$, and the second of $10.0$.
-
-  roadExtractionFilter->SetFirstMeanDistanceThreshold(atof(argv[11]));
-  roadExtractionFilter->SetSecondMeanDistanceThreshold(atof(argv[12]));
-
-  // The \doxygen{otb}{RoadExtractionFilter} is able to link path whose ends are near
-  // according to an euclidean distance criterion. The threshold for this distance
-  // to link a path is the distance threshold parameter. A typical value is $25$.
-
-  roadExtractionFilter->SetDistanceThreshold(atof(argv[13]));
-
-  // We will now create a black background image to draw the resulting polyline on.
-  // To achieve this we need to know the size of our input image. Therefore we trigger the
-  // \code{GenerateOutputInformation()} of the reader.
-
-  reader->GenerateOutputInformation();
-  InputImageType::Pointer blackBackground = InputImageType::New();
-  blackBackground->CopyInformation(reader->GetOutput());
-  blackBackground->SetRegions(blackBackground->GetLargestPossibleRegion());
-  blackBackground->Allocate();
-  blackBackground->FillBuffer(0);
-
-  // We tell the \doxygen{otb}{DrawPathListFilter} to try to use the likehood value
-  // embedded within the polyline as a value for drawing this polyline if possible.
-
-  drawingFilter->UseInternalPathValueOn();
-
-  //  The \code{itk::RescaleIntensityImageFilter} needs to know which
-  //  is the minimum and maximum values of the output generated
-  //  image. Those can be chosen in a generic way by using the
-  //  \code{NumericTraits} functions, since they are templated over
-  //  the pixel type.
-
-  rescaleFilter->SetOutputMinimum(itk::NumericTraits<OutputPixelType>::min());
-  rescaleFilter->SetOutputMaximum(itk::NumericTraits<OutputPixelType>::max());
-
-  // Now it is time for some pipeline wiring.
-
-  roadExtractionFilter->SetInput(reader->GetOutput());
-  drawingFilter->SetInput(blackBackground);
-  drawingFilter->SetInputPath(roadExtractionFilter->GetOutput());
-  rescaleFilter->SetInput(drawingFilter->GetOutput());
-
-  // The update of the pipeline is triggered by the \code{Update()} method
-  // of the rescale intensity filter.
-
-  rescaleFilter->Update();
-
-  // output image enhancement
-  typedef itk::BinaryBallStructuringElement<OutputPixelType, Dimension>                             StructuringElementType;
-  typedef itk::GrayscaleDilateImageFilter<OutputImageType, OutputImageType, StructuringElementType> DilateFilterType;
-  typedef itk::InvertIntensityImageFilter<OutputImageType, OutputImageType>                         InvertFilterType;
-
-  StructuringElementType se;
-  se.SetRadius(1);
-  se.CreateStructuringElement();
-
-  DilateFilterType::Pointer dilater = DilateFilterType::New();
-
-  dilater->SetInput(rescaleFilter->GetOutput());
-  dilater->SetKernel(se);
-
-  InvertFilterType::Pointer invertFilter = InvertFilterType::New();
-  invertFilter->SetInput(dilater->GetOutput());
-
-  writer->SetFileName(argv[2]);
-  writer->SetInput(invertFilter->GetOutput());
-  writer->Update();
-
-  // Figure~\ref{fig:ROADEXTRACTION_FILTER} shows the result of applying
-  // the road extraction filter to a fusionned Quickbird image.
-  // \begin{figure}
-  // \center
-  // \includegraphics[width=0.44\textwidth]{qb_ExtractRoad_pretty.eps}
-  // \includegraphics[width=0.44\textwidth]{ExtractRoadOutput.eps}
-  // \itkcaption[Road extraction filter application]{Result of applying
-  // the \doxygen{otb}{RoadExtractionFilter} to a fusionned Quickbird
-  // image. From left to right : original image, extracted road with their
-  // likehood values (color are inverted for display).}
-  // \label{fig:ROADEXTRACTION_FILTER}
-  // \end{figure}
-
-  return EXIT_SUCCESS;
-}
diff --git a/Examples/FeatureExtraction/ParallelLineDetectionExample.cxx b/Examples/FeatureExtraction/ParallelLineDetectionExample.cxx
deleted file mode 100644
index 305fd72b5ade098bd0ec217ee49a71b41c3211e6..0000000000000000000000000000000000000000
--- a/Examples/FeatureExtraction/ParallelLineDetectionExample.cxx
+++ /dev/null
@@ -1,238 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-/* Example usage:
-./ParallelLineDetectionExample Output/Lines.png Output/ParallelLines.png 20 2 10
-*/
-
-
-// This example illustrates the details of the \doxygen{otb}{ParallelLinePathListFilter}.
-//
-
-#include "itkPolyLineParametricPath.h"
-#include "otbDrawPathListFilter.h"
-
-#include "otbParallelLinePathListFilter.h"
-
-#include "otbImage.h"
-#include "otbImageFileWriter.h"
-
-int main(int argc, char* argv[])
-{
-  if (argc != 6)
-  {
-    std::cerr << "Usage: " << std::endl;
-    std::cerr << argv[0] << " outputImage ";
-    std::cerr << " outputParallelLineImage ";
-    std::cerr << " distThreshParallel angThreshParallel commonDistThreshParallel" << std::endl;
-    return EXIT_FAILURE;
-  }
-
-  double distThreshParallel       = atof(argv[3]);
-  double angThreshParallel        = atof(argv[4]);
-  double commonDistThreshParallel = atof(argv[5]);
-
-  // We start by creating an empty image
-  const unsigned int    Dimension = 2;
-  typedef unsigned char PixelType;
-
-  typedef otb::Image<PixelType, Dimension> ImageType;
-
-  ImageType::Pointer image = ImageType::New();
-
-  ImageType::IndexType start;
-
-  start[0] = 0;
-  start[1] = 0;
-
-  ImageType::SizeType size;
-  size[0] = 600;
-  size[1] = 300;
-
-  ImageType::RegionType region;
-
-  region.SetSize(size);
-  region.SetIndex(start);
-  image->SetRegions(region);
-  image->Allocate();
-  image->FillBuffer(itk::NumericTraits<PixelType>::Zero);
-
-  // We create some lines
-  typedef itk::PolyLineParametricPath<Dimension> PathType;
-  typedef otb::ObjectList<PathType>              PathListType;
-
-  PathListType::Pointer lineList = PathListType::New();
-
-  typedef PathType::ContinuousIndexType ContinuousIndexType;
-  ContinuousIndexType                   cindex;
-
-  /*-----*/
-  PathType::Pointer aLine = PathType::New();
-  aLine->Initialize();
-  cindex[0] = 1;
-  cindex[1] = 41;
-  aLine->AddVertex(cindex);
-
-  cindex[0] = 175;
-  cindex[1] = 204;
-  aLine->AddVertex(cindex);
-
-  lineList->PushBack(aLine);
-
-  /*-----*/
-  aLine = PathType::New();
-  aLine->Initialize();
-  cindex[0] = 60;
-  cindex[1] = 18;
-  aLine->AddVertex(cindex);
-
-  cindex[0] = 203;
-  cindex[1] = 164;
-  aLine->AddVertex(cindex);
-
-  lineList->PushBack(aLine);
-
-  /*-----*/
-  aLine = PathType::New();
-  aLine->Initialize();
-  cindex[0] = 174;
-  cindex[1] = 99;
-  aLine->AddVertex(cindex);
-
-  cindex[0] = 281;
-  cindex[1] = 1;
-  aLine->AddVertex(cindex);
-
-  lineList->PushBack(aLine);
-
-  /*-----*/
-  aLine = PathType::New();
-  aLine->Initialize();
-  cindex[0] = 3;
-  cindex[1] = 233;
-  aLine->AddVertex(cindex);
-
-  cindex[0] = 191;
-  cindex[1] = 227;
-  aLine->AddVertex(cindex);
-
-  lineList->PushBack(aLine);
-
-  /*-----*/
-  aLine = PathType::New();
-  aLine->Initialize();
-  cindex[0] = 254;
-  cindex[1] = 279;
-  aLine->AddVertex(cindex);
-
-  cindex[0] = 351;
-  cindex[1] = 110;
-  aLine->AddVertex(cindex);
-
-  lineList->PushBack(aLine);
-
-  /*-----*/
-  aLine = PathType::New();
-  aLine->Initialize();
-  cindex[0] = 270;
-  cindex[1] = 287;
-  aLine->AddVertex(cindex);
-
-  cindex[0] = 368;
-  cindex[1] = 120;
-  aLine->AddVertex(cindex);
-
-  lineList->PushBack(aLine);
-
-  /*-----*/
-  aLine = PathType::New();
-  aLine->Initialize();
-  cindex[0] = 355;
-  cindex[1] = 204;
-  aLine->AddVertex(cindex);
-
-  cindex[0] = 528;
-  cindex[1] = 199;
-  aLine->AddVertex(cindex);
-
-  lineList->PushBack(aLine);
-
-  /*-----*/
-  aLine = PathType::New();
-  aLine->Initialize();
-  cindex[0] = 437;
-  cindex[1] = 243;
-  aLine->AddVertex(cindex);
-
-  cindex[0] = 591;
-  cindex[1] = 237;
-  aLine->AddVertex(cindex);
-
-  lineList->PushBack(aLine);
-
-  // Polylines are drawn on a black
-  typedef otb::DrawPathListFilter<ImageType, PathType, ImageType> DrawPathType;
-  DrawPathType::Pointer                                           drawPathListFilter = DrawPathType::New();
-  drawPathListFilter->SetInput(image);
-  drawPathListFilter->SetInputPath(lineList);
-  drawPathListFilter->SetPathValue(itk::NumericTraits<PixelType>::max());
-
-  typedef otb::ImageFileWriter<ImageType> WriterType;
-  WriterType::Pointer                     writer = WriterType::New();
-  writer->SetInput(drawPathListFilter->GetOutput());
-  writer->SetFileName(argv[1]);
-  writer->Update();
-
-  // Parallel lines are detected. A minimum common length, an angular
-  // threshold and a maximum distance threshold have to specified.
-  // The input is a pathList of the previously extracted line segments.
-  typedef otb::ParallelLinePathListFilter<PathType> ParallelLinePathType;
-  ParallelLinePathType::Pointer                     parallelLinePathListFilter = ParallelLinePathType::New();
-  parallelLinePathListFilter->SetDistanceThreshold(distThreshParallel);
-  parallelLinePathListFilter->SetAngularThreshold(angThreshParallel);
-  parallelLinePathListFilter->SetCommonDistanceThreshold(commonDistThreshParallel);
-  parallelLinePathListFilter->SetInput(lineList);
-  parallelLinePathListFilter->Update();
-
-  // A black background image is built to draw the path on.
-  ImageType::Pointer outputParallel = ImageType::New();
-  outputParallel->SetRegions(image->GetLargestPossibleRegion());
-  outputParallel->Allocate();
-  outputParallel->FillBuffer(itk::NumericTraits<PixelType>::Zero);
-
-  // Parallel lines are drawn on a black background image with \doxygen{otb}{DrawPathListFilter}.
-  // The \code{SetUseIternalValues()} tells the drawing filter to draw the path with its likelihood
-  // value.
-  // typedef otb::DrawPathListFilter<ImageType, PathType, ImageType> DrawPathType;
-  DrawPathType::Pointer drawPathListFilterParallel = DrawPathType::New();
-  drawPathListFilterParallel->SetInput(outputParallel);
-  drawPathListFilterParallel->SetInputPath(parallelLinePathListFilter->GetOutput());
-  drawPathListFilter->SetPathValue(itk::NumericTraits<PixelType>::max());
-  drawPathListFilterParallel->SetUseInternalPathValue(false);
-
-  // Write the Line image
-  WriterType::Pointer writerParallel = WriterType::New();
-  writerParallel->SetInput(drawPathListFilterParallel->GetOutput());
-  writerParallel->SetFileName(argv[2]);
-  writerParallel->Update();
-
-  return EXIT_SUCCESS;
-}
diff --git a/Examples/FeatureExtraction/SeamCarvingExample.cxx b/Examples/FeatureExtraction/SeamCarvingExample.cxx
deleted file mode 100644
index 854872a1b56ec802b03b13569154f4e1c2df596b..0000000000000000000000000000000000000000
--- a/Examples/FeatureExtraction/SeamCarvingExample.cxx
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-// This example illustrates the details of the seam carving operation.
-// References to this method can be found in \cite{Avidan07}. This example
-// details the use of \doxygen{otb}{ImageToCarvingPathFilter} and
-// \doxygen{otb}{RemoveCarvingPathFilter}.
-//
-// In this example, a loop is defined to remove a vertical or horizontal seam
-// at each step of the algorithm. The seam with the minimum energy is chosen.
-
-/* Example usage:
-./SeamCarvingExample Input/QB_Suburb.png Output/SeamCarvingExampleOutput.png 50
-*/
-
-
-#include "otbImage.h"
-#include "itkPolyLineParametricPath.h"
-#include "otbImageFileReader.h"
-#include "otbImageFileWriter.h"
-#include "itkUnaryFunctorImageFilter.h"
-#include "itkGradientMagnitudeImageFilter.h"
-#include "itkRescaleIntensityImageFilter.h"
-
-#include "otbDrawPathFilter.h"
-#include "otbImageToCarvingPathFilter.h"
-#include "otbRemoveCarvingPathFilter.h"
-
-#include "itkImageDuplicator.h"
-
-int main(int itkNotUsed(argc), char* argv[])
-{
-
-  typedef float         InputPixelType;
-  typedef unsigned char OutputPixelType;
-  const unsigned int    Dimension = 2;
-
-  typedef otb::Image<InputPixelType, Dimension>  ImageType;
-  typedef otb::Image<OutputPixelType, Dimension> OutputImageType;
-  typedef itk::PolyLineParametricPath<Dimension> PathType;
-
-  typedef otb::ImageFileReader<ImageType>                              ReaderType;
-  typedef otb::ImageFileWriter<OutputImageType>                        WriterType;
-  typedef itk::RescaleIntensityImageFilter<ImageType, OutputImageType> RescalerType;
-
-  ReaderType::Pointer   reader   = ReaderType::New();
-  WriterType::Pointer   writer   = WriterType::New();
-  RescalerType::Pointer rescaler = RescalerType::New();
-
-  const char* filenamereader = argv[1];
-  reader->SetFileName(filenamereader);
-
-  const char* filenamewriter = argv[2];
-  writer->SetFileName(filenamewriter);
-
-  int iteration = atoi(argv[3]);
-
-  // Energy is computed according to the gradient of the image, thus an
-  // \doxygen{itk}{GradientMagnitudeImageFilter} is instantiated
-
-  typedef itk::GradientMagnitudeImageFilter<ImageType, ImageType> GradientType;
-  GradientType::Pointer                                           gradient = GradientType::New();
-
-  // The \doxygen{otb}{ImageToCarvingPathFilter} compute the seam of minimum
-  // energy according to lines or columns of the image. Later, as we will
-  //  choose the best option between the two, we need two of these filters.
-
-  typedef otb::ImageToCarvingPathFilter<ImageType, PathType> CarvingFilterType;
-  CarvingFilterType::Pointer                                 carvingFilterVert = CarvingFilterType::New();
-  CarvingFilterType::Pointer                                 carvingFilterHor  = CarvingFilterType::New();
-
-  // The \doxygen{otb}{RemoveCarvingPathFilter} will really resize the image
-  // deleting the path.
-
-  typedef otb::RemoveCarvingPathFilter<ImageType, PathType, ImageType> RemoveCarvingPathFilterType;
-  RemoveCarvingPathFilterType::Pointer                                 removeCarvingPath = RemoveCarvingPathFilterType::New();
-
-  // As we are going to iterate through the filters, we need to disconnect the
-  // pipeline at one point and store the image somewhere. For that purpose, we
-  // use an \doxygen{itk}{ImageDuplicator}
-
-  typedef itk::ImageDuplicator<ImageType> duplicatorType;
-  duplicatorType::Pointer                 duplicator = duplicatorType::New();
-
-  // Now that all elements have been instantiated, we start to plug the pipeline
-  // and to define the loop.
-
-  reader->Update();
-  duplicator->SetInputImage(reader->GetOutput());
-  duplicator->Update();
-
-  double energyVert, energyHor;
-
-  for (int i = 0; i < iteration; ++i)
-  {
-
-    gradient->SetInput(duplicator->GetOutput());
-
-    // Two carving filters processed the gradient image to find the minimum
-    // vertical seam and the minimum horizontal seam. Note that the
-    // \code{UpdateLargestPossibleRegion()} need to be used as the size of the
-    // input image will be different in each loop.
-
-    carvingFilterVert->SetInput(gradient->GetOutput());
-    carvingFilterVert->SetDirection(0);
-    carvingFilterVert->UpdateLargestPossibleRegion();
-    energyVert = carvingFilterVert->GetEnergyPerPix();
-
-    carvingFilterHor->SetInput(gradient->GetOutput());
-    carvingFilterHor->SetDirection(1);
-    carvingFilterHor->UpdateLargestPossibleRegion();
-    energyHor = carvingFilterHor->GetEnergyPerPix();
-
-    // The vertical or the horizontal seam with the minimal energy is chosen.
-
-    if (energyVert < energyHor)
-    {
-      removeCarvingPath->SetInput(duplicator->GetOutput());
-      removeCarvingPath->SetInputPath(carvingFilterVert->GetOutput());
-      removeCarvingPath->SetDirection(0);
-      removeCarvingPath->UpdateLargestPossibleRegion();
-    }
-    else
-    {
-      removeCarvingPath->SetInput(duplicator->GetOutput());
-      removeCarvingPath->SetInputPath(carvingFilterHor->GetOutput());
-      removeCarvingPath->SetDirection(1);
-      removeCarvingPath->UpdateLargestPossibleRegion();
-    }
-
-    // The duplicator filter keep the results for the next loop
-
-    duplicator->SetInputImage(removeCarvingPath->GetOutput());
-    duplicator->Update();
-  }
-
-  // Finally, the resulting image is saved on an image file as usual
-
-  rescaler->SetInput(duplicator->GetOutput());
-  writer->SetInput(rescaler->GetOutput());
-  writer->Update();
-
-  // Figure~\ref{fig:SEAMCARVING_FILTER} shows the result of applying
-  // the seam carving filter to a satellite image.
-  // \begin{figure}
-  // \center
-  // \includegraphics[width=0.44\textwidth]{QB_Suburb.eps}
-  // \includegraphics[width=0.38\textwidth]{SeamCarvingExampleOutput.eps}
-  // \itkcaption[Seam carving filter application]{Result of applying
-  // the \doxygen{otb}{ImageToCarvingPathFilter} followed by the
-  // \doxygen{otb}{RemoveCarvingPathFilter} to Quickbird
-  // image. From left to right : original image, reduced image removing the 50
-  // seams with the lowest energy.}
-  // \label{fig:SEAMCARVING_FILTER}
-  // \end{figure}
-
-  return EXIT_SUCCESS;
-}
diff --git a/Examples/FeatureExtraction/SeamCarvingOtherExample.cxx b/Examples/FeatureExtraction/SeamCarvingOtherExample.cxx
deleted file mode 100644
index f8ac6e4e1b794f09b246ba2105d9dff9333d823b..0000000000000000000000000000000000000000
--- a/Examples/FeatureExtraction/SeamCarvingOtherExample.cxx
+++ /dev/null
@@ -1,172 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-// This example illustrates the use of the \doxygen{otb}{AddCarvingPathFilter},
-// the opposite of the \doxygen{otb}{RemoveCarvingPathFilter}.
-//
-// Here, we use this filter combined with the \doxygen{otb}{DrawPathFilter} to
-// output the image with the removed seam in white.
-//
-// Most of the code is similar to the previous example.
-
-/* Example usage:
-./SeamCarvingOtherExample Input/QB_Suburb.png Output/SeamCarvingOtherExampleOutput.png 50
-*/
-
-
-#include "otbImage.h"
-#include "itkPolyLineParametricPath.h"
-#include "otbImageFileReader.h"
-#include "otbImageFileWriter.h"
-#include "itkUnaryFunctorImageFilter.h"
-#include "itkRescaleIntensityImageFilter.h"
-#include "itkGradientMagnitudeImageFilter.h"
-
-#include "otbDrawPathFilter.h"
-#include "otbImageToCarvingPathFilter.h"
-#include "otbRemoveCarvingPathFilter.h"
-#include "otbAddCarvingPathFilter.h"
-
-#include "itkImageDuplicator.h"
-#include "otbObjectList.h"
-
-int main(int itkNotUsed(argc), char* argv[])
-{
-
-  typedef float         InputPixelType;
-  typedef unsigned char OutputPixelType;
-  const unsigned int    Dimension = 2;
-
-  typedef otb::Image<InputPixelType, Dimension>  ImageType;
-  typedef otb::Image<OutputPixelType, Dimension> OutputImageType;
-  typedef itk::PolyLineParametricPath<Dimension> PathType;
-
-  // We need to define a list to keep the path in memory until the end of
-  // the seam carving process. This is done using an \doxygen{otb}{ObjectList}
-
-  typedef otb::ObjectList<PathType> PathListType;
-  PathListType::Pointer             pathList = PathListType::New();
-
-  typedef otb::ImageFileReader<ImageType>                              ReaderType;
-  typedef otb::ImageFileWriter<OutputImageType>                        WriterType;
-  typedef itk::RescaleIntensityImageFilter<ImageType, OutputImageType> RescalerType;
-
-  ReaderType::Pointer   reader   = ReaderType::New();
-  WriterType::Pointer   writer   = WriterType::New();
-  RescalerType::Pointer rescaler = RescalerType::New();
-
-  const char* filenamereader = argv[1];
-  reader->SetFileName(filenamereader);
-
-  const char* filenamewriter = argv[2];
-  writer->SetFileName(filenamewriter);
-
-  int iteration = atoi(argv[3]);
-
-  // We instantiate the different filters of the pipeline as before.
-
-  typedef itk::GradientMagnitudeImageFilter<ImageType, ImageType> GradientType;
-  GradientType::Pointer                                           gradient = GradientType::New();
-
-  typedef otb::ImageToCarvingPathFilter<ImageType, PathType> CarvingFilterType;
-  CarvingFilterType::Pointer                                 carvingFilter = CarvingFilterType::New();
-
-  typedef otb::DrawPathFilter<ImageType, PathType, ImageType> DrawPathFilterType;
-  DrawPathFilterType::Pointer                                 drawPathFilter = DrawPathFilterType::New();
-
-  typedef otb::RemoveCarvingPathFilter<ImageType, PathType, ImageType> RemoveCarvingPathFilterType;
-  RemoveCarvingPathFilterType::Pointer                                 removeCarvingPath = RemoveCarvingPathFilterType::New();
-
-  typedef otb::AddCarvingPathFilter<ImageType, PathType, ImageType> AddCarvingPathFilterType;
-  AddCarvingPathFilterType::Pointer                                 addCarvingPath = AddCarvingPathFilterType::New();
-
-  typedef itk::ImageDuplicator<ImageType> duplicatorType;
-  duplicatorType::Pointer                 duplicator = duplicatorType::New();
-  reader->Update();
-  duplicator->SetInputImage(reader->GetOutput());
-  duplicator->Update();
-
-  // The loop to shorten the image is similar to the previous one. Here we
-  // decide to remove alternatively one vertical and one horizontal seam. At
-  // each iteration, we save the seam on the list using the \code{PushBack()}
-  // method.
-
-  for (int i = 0; i < iteration; ++i)
-  {
-
-    gradient->SetInput(duplicator->GetOutput());
-
-    carvingFilter->SetInput(gradient->GetOutput());
-    carvingFilter->SetDirection(i % 2);
-
-    removeCarvingPath->SetInput(duplicator->GetOutput());
-    removeCarvingPath->SetInputPath(carvingFilter->GetOutput());
-    removeCarvingPath->SetDirection(i % 2);
-    removeCarvingPath->UpdateLargestPossibleRegion();
-
-    pathList->PushBack(carvingFilter->GetOutput());
-    carvingFilter->GetOutput()->DisconnectPipeline();
-
-    duplicator->SetInputImage(removeCarvingPath->GetOutput());
-    duplicator->Update();
-  }
-
-  // The next loop will put back the seam using the
-  // \doxygen{otb}{AddCarvingPathFilter} and drawing it with the
-  // \doxygen{otb}{DrawPathFilter}.
-
-  for (int i = iteration - 1; i >= 0; i--)
-  {
-
-    addCarvingPath->SetInput(duplicator->GetOutput());
-    addCarvingPath->SetInputPath(pathList->GetNthElement(i));
-    addCarvingPath->SetDirection(i % 2);
-    addCarvingPath->UpdateLargestPossibleRegion();
-
-    drawPathFilter->SetInput(addCarvingPath->GetOutput());
-    drawPathFilter->SetInputPath(pathList->GetNthElement(i));
-    drawPathFilter->UpdateLargestPossibleRegion();
-
-    duplicator->SetInputImage(drawPathFilter->GetOutput());
-    duplicator->Update();
-  }
-
-  // Finally, the resulting image is saved on an image file as usual
-
-  rescaler->SetInput(duplicator->GetOutput());
-  writer->SetInput(rescaler->GetOutput());
-  writer->Update();
-
-  // Figure~\ref{fig:SEAMCARVING2_FILTER} shows the result of applying
-  // the seam carving filter to a satellite image.
-  // \begin{figure}
-  // \center
-  // \includegraphics[width=0.44\textwidth]{QB_Suburb.eps}
-  // \includegraphics[width=0.44\textwidth]{SeamCarvingOtherExampleOutput.eps}
-  // \itkcaption[Seam carving filter application]{Illustration of the minimum
-  // seams alternatively vertical and horizontal on a Quickbird
-  // image. From left to right : original image, image with the 25 vertical
-  // seams and the 25 horizontal seams.}
-  // \label{fig:SEAMCARVING2_FILTER}
-  // \end{figure}
-
-  return EXIT_SUCCESS;
-}
diff --git a/Examples/FeatureExtraction/test/CMakeLists.txt b/Examples/FeatureExtraction/test/CMakeLists.txt
index 0f1e957d04e949f5bcf3d51906014e7fc2e0061e..bea835448e0a05ee71769a08dbca9cb19dbef7e4 100644
--- a/Examples/FeatureExtraction/test/CMakeLists.txt
+++ b/Examples/FeatureExtraction/test/CMakeLists.txt
@@ -90,54 +90,6 @@ otb_add_test(NAME feTeRatioLineDetectorExampleTest COMMAND ${OTB_TEST_DRIVER}
     5 1
 )
 
-# ------- RoadExtractionExamplesTest----------
-
-
-otb_add_test(NAME feTeExtractRoadByStepsExampleTest COMMAND ${OTB_TEST_DRIVER}
-  --compare-n-images ${NOTOL} 2
-    ${BASELINE}/qb_ExtractRoad_pretty.png
-    ${TEMP}/qb_ExtractRoad_pretty.png
-    ${BASELINE}/ExtractRoadByStepsExampleOutput.png
-    ${TEMP}/ExtractRoadByStepsExampleOutput.png
-  Execute $<TARGET_FILE:ExtractRoadByStepsExample>
-    ${INPUTDATA}/qb_RoadExtract.tif
-    ${TEMP}/ExtractRoadByStepsExampleOutput.png
-    ${TEMP}/qb_ExtractRoad_pretty.png
-    337 557 432 859 0.00005 1.0
-)
-
-
-otb_add_test(NAME feTeExtractRoadExampleTest COMMAND ${OTB_TEST_DRIVER}
-  --compare-image ${NOTOL}
-    ${BASELINE}/ExtractRoadExampleOutput.png
-    ${TEMP}/ExtractRoadExampleOutput.png
-  Execute $<TARGET_FILE:ExtractRoadExample>
-    ${INPUTDATA}/qb_RoadExtract.tif
-    ${TEMP}/ExtractRoadExampleOutput.png
-    337 557 432 859 1.0 0.00005 1.0 0.39269 1.0 10.0 25.
-)
-
-# ------- SeamCarvingExamplesTest----------
-
-otb_add_test(NAME feTeSeamCarvingExampleTest COMMAND ${OTB_TEST_DRIVER}
-  --compare-image ${NOTOL}
-    ${BASELINE}/SeamCarvingExampleOutput.png
-    ${TEMP}/SeamCarvingExampleOutput.png
-  Execute $<TARGET_FILE:SeamCarvingExample>
-    ${INPUTDATA}/QB_Suburb.png
-    ${TEMP}/SeamCarvingExampleOutput.png
-    50
-)
-
-otb_add_test(NAME feTeSeamCarvingOtherExampleTest COMMAND ${OTB_TEST_DRIVER}
-  --compare-image ${NOTOL}
-    ${BASELINE}/SeamCarvingOtherExampleOutput.png
-    ${TEMP}/SeamCarvingOtherExampleOutput.png
-  Execute $<TARGET_FILE:SeamCarvingOtherExample>
-    ${INPUTDATA}/QB_Suburb.png
-    ${TEMP}/SeamCarvingOtherExampleOutput.png
-    50
-)
 
 #otb_add_test(NAME feTeImageToSIFTKeyPointSetFilterTest COMMAND ${OTB_TEST_DRIVER}
 #        --compare-image ${NOTOL}
diff --git a/Examples/OBIA/LabelMapToVectorData.cxx b/Examples/OBIA/LabelMapToVectorData.cxx
index 001d38ecf9d139292dbcf9ffda681be03a85e87c..2f2a1423404845c1fd60146b0e0ae5524472ee87 100644
--- a/Examples/OBIA/LabelMapToVectorData.cxx
+++ b/Examples/OBIA/LabelMapToVectorData.cxx
@@ -20,7 +20,7 @@
 
 
 /* Example usage:
-./LabelMapToVectorData Input/rcc8_mire1.png Output/rcc8_mire2_vectorizer.shp
+./LabelMapToVectorData Input/labelImage_UnsignedChar.tif Output/LabelMapToVectorData.shp
 */
 
 
diff --git a/Examples/OBIA/test/CMakeLists.txt b/Examples/OBIA/test/CMakeLists.txt
index 49cb2f872e107f61111f8f8de573c974f6c1badb..563fdaf61883ef675fe38633608791d02554e5d8 100644
--- a/Examples/OBIA/test/CMakeLists.txt
+++ b/Examples/OBIA/test/CMakeLists.txt
@@ -42,6 +42,6 @@ set(INPUTDATA ${OTB_DATA_ROOT}/Input)
 
 otb_add_test(NAME trTeLabelMapToVectorData COMMAND ${OTB_TEST_DRIVER}
   Execute $<TARGET_FILE:LabelMapToVectorData>
-    ${INPUTDATA}/rcc8_mire1.png
-    ${TEMP}/rcc8_mire2_vectorizer.shp
+    ${INPUTDATA}/labelImage_UnsignedChar.tif
+    ${TEMP}/trTeLabelMapToVectorDataOutput.shp
 )
diff --git a/Examples/Projections/OrthoRectificationExample.cxx b/Examples/Projections/OrthoRectificationExample.cxx
index 93bfecc1681ac8d3c5093c9f74664ca97c50c369..e3a2f4d1c5cdaf2a682c9b2bbc516f970134aba5 100644
--- a/Examples/Projections/OrthoRectificationExample.cxx
+++ b/Examples/Projections/OrthoRectificationExample.cxx
@@ -23,7 +23,7 @@
 #include "otbImageFileWriter.h"
 
 // This example demonstrates the use of the
-// \doxygen{otb}{OrthoRectificationFilter}. This filter is intended to
+// \doxygen{otb}{GenericRSResampleImageFilter}. This filter is intended to
 // orthorectify images which are in a distributor format with the
 // appropriate meta-data describing the sensor model. In this example,
 // we will choose to use an UTM projection for the output image.
@@ -32,7 +32,7 @@
 // proper header files: the one for the ortho-rectification filter and
 // the one defining the different projections available in OTB.
 
-#include "otbOrthoRectificationFilter.h"
+#include "otbGenericRSResampleImageFilter.h"
 #include "otbSpatialReference.h"
 
 int main(int argc, char* argv[])
@@ -66,15 +66,12 @@ int main(int argc, char* argv[])
   writer->SetFileName(argv[2]);
 
   // We can now proceed to declare the type for the ortho-rectification
-  // filter. The class \doxygen{otb}{OrthoRectificationFilter} is
-  // templated over the input and the output image types as well as over
-  // the cartographic projection. We define therefore the
-  // type of the projection we want, which is an UTM projection for this case.
-
-// Software Guide : BeginCodeSnippet
-  typedef otb::GenericMapProjection<otb::TransformDirection::FORWARD> MapProjectionType;
-  typedef otb::OrthoRectificationFilter<VectorImageType, VectorImageType,
-      MapProjectionType>
+  // filter. The class \doxygen{otb}{GenericRSResampleImageFilter} is
+  // templated over the input and the output image types.
+
+  // Software Guide : BeginCodeSnippet
+
+  typedef otb::GenericRSResampleImageFilter<VectorImageType, VectorImageType>
   OrthoRectifFilterType;
 
   OrthoRectifFilterType::Pointer orthoRectifFilter = OrthoRectifFilterType::New();
@@ -83,10 +80,9 @@ int main(int argc, char* argv[])
   // instantiate the map projection, set the {\em zone} and {\em hemisphere}
   // parameters and pass this projection to the orthorectification filter.
 
-  MapProjectionType::Pointer utmMapProjection = MapProjectionType::New();  
-  utmMapProjection->SetWkt(otb::SpatialReference::FromUTM(atoi(argv[3]),*argv[4]=='N'? otb::SpatialReference::hemisphere::north : otb::SpatialReference::hemisphere::south).ToWkt());
-  std::cout<<utmMapProjection->GetWkt()<<std::endl;
-  orthoRectifFilter->SetMapProjection(utmMapProjection);
+  std::string wkt = otb::SpatialReference::FromUTM(atoi(argv[3]),*argv[4]=='N'? otb::SpatialReference::hemisphere::north : otb::SpatialReference::hemisphere::south).ToWkt();
+  std::cout<<wkt<<std::endl;
+  orthoRectifFilter->SetOutputProjectionRef(wkt);
 
   // We then wire the input image to the orthorectification filter.
 
@@ -129,8 +125,6 @@ int main(int argc, char* argv[])
 
   writer->SetInput(orthoRectifFilter->GetOutput());
 
-  writer->SetAutomaticTiledStreaming();
-
   // Finally, we trigger the pipeline execution by calling the
   // \code{Update()} method on the writer. Please note that the
   // ortho-rectification filter is derived from the
diff --git a/Examples/Tutorials/OrthoFusion.cxx b/Examples/Tutorials/OrthoFusion.cxx
index a94f608086de60b7907003cecca3822fee7ce8e4..c0ead29574f94efba0267646cbeea59af4162b45 100644
--- a/Examples/Tutorials/OrthoFusion.cxx
+++ b/Examples/Tutorials/OrthoFusion.cxx
@@ -28,8 +28,7 @@
 #include "otbImageFileReader.h"
 #include "otbImageFileWriter.h"
 
-#include "otbOrthoRectificationFilter.h"
-#include "otbGenericMapProjection.h"
+#include "otbGenericRSResampleImageFilter.h"
 
 #include "otbSimpleRcsPanSharpeningFusionImageFilter.h"
 #include "otbStandardFilterWatcher.h"
@@ -89,12 +88,9 @@ int main(int argc, char* argv[])
   // \item the hemisphere
   // \end{itemize}
 
-  typedef otb::GenericMapProjection<otb::TransformDirection::INVERSE> InverseProjectionType;
-  InverseProjectionType::Pointer utmMapProjection = InverseProjectionType::New();
-  utmMapProjection->SetWkt(
-    otb::SpatialReference::FromUTM(atoi(argv[4]),argv[5][0]=='N' ? 
+  std::string wkt = otb::SpatialReference::FromUTM(atoi(argv[4]),argv[5][0]=='N' ? 
       otb::SpatialReference::hemisphere::north : 
-      otb::SpatialReference::hemisphere::south).ToWkt());
+      otb::SpatialReference::hemisphere::south).ToWkt();
 
   //  We will need to pass several parameters to the orthorectification
   // concerning the desired output region:
@@ -118,10 +114,10 @@ int main(int argc, char* argv[])
   // We declare the orthorectification filter. And provide the different
   // parameters:
 
-  typedef otb::OrthoRectificationFilter<ImageType, DoubleImageType, InverseProjectionType> OrthoRectifFilterType;
+  typedef otb::GenericRSResampleImageFilter<ImageType, DoubleImageType> OrthoRectifFilterType;
 
   OrthoRectifFilterType::Pointer orthoRectifPAN = OrthoRectifFilterType::New();
-  orthoRectifPAN->SetMapProjection(utmMapProjection);
+  orthoRectifPAN->SetOutputProjectionRef(wkt);
 
   orthoRectifPAN->SetInput(readerPAN->GetOutput());
 
@@ -133,12 +129,12 @@ int main(int argc, char* argv[])
   // Now we are able to have the orthorectified area from the PAN image. We just
   // have to follow a similar process for the XS image.
 
-  typedef otb::OrthoRectificationFilter<VectorImageType, DoubleVectorImageType, InverseProjectionType> VectorOrthoRectifFilterType;
+  typedef otb::GenericRSResampleImageFilter<VectorImageType, DoubleVectorImageType> VectorOrthoRectifFilterType;
 
 
   VectorOrthoRectifFilterType::Pointer orthoRectifXS = VectorOrthoRectifFilterType::New();
 
-  orthoRectifXS->SetMapProjection(utmMapProjection);
+  orthoRectifXS->SetOutputProjectionRef(wkt);
 
   orthoRectifXS->SetInput(readerXS->GetOutput());
 
@@ -160,8 +156,6 @@ int main(int argc, char* argv[])
 
   writer->SetInput(fusion->GetOutput());
 
-  writer->SetAutomaticTiledStreaming();
-
   otb::StandardFilterWatcher watcher(writer, "OrthoFusion");
 
   writer->Update();
diff --git a/Modules/Applications/AppClassification/app/CMakeLists.txt b/Modules/Applications/AppClassification/app/CMakeLists.txt
index b646618959248fab615337a300a67a254f1337b5..50ac00ea1619c068da99774d0010ee532a5b7fd1 100644
--- a/Modules/Applications/AppClassification/app/CMakeLists.txt
+++ b/Modules/Applications/AppClassification/app/CMakeLists.txt
@@ -48,11 +48,6 @@ otb_create_application(
   SOURCES        otbFusionOfClassifications.cxx
   LINK_LIBRARIES ${${otb-module}_LIBRARIES})
 
-otb_create_application(
-  NAME           ComputePolylineFeatureFromImage
-  SOURCES        otbComputePolylineFeatureFromImage.cxx
-  LINK_LIBRARIES ${${otb-module}_LIBRARIES})
-
 if(OTB_USE_SHARK)
   otb_create_application(
     NAME           KMeansClassification
@@ -75,11 +70,6 @@ otb_create_application(
   SOURCES        otbPredictRegression.cxx
   LINK_LIBRARIES ${${otb-module}_LIBRARIES})
 
-otb_create_application(
-  NAME           DSFuzzyModelEstimation
-  SOURCES        otbDSFuzzyModelEstimation.cxx
-  LINK_LIBRARIES ${${otb-module}_LIBRARIES})
-
 otb_create_application(
   NAME           ClassificationMapRegularization
   SOURCES        otbClassificationMapRegularization.cxx
@@ -95,11 +85,6 @@ otb_create_application(
   SOURCES        otbComputeImagesStatistics.cxx
   LINK_LIBRARIES ${${otb-module}_LIBRARIES})
 
-otb_create_application(
-  NAME           VectorDataDSValidation
-  SOURCES        otbVectorDataDSValidation.cxx
-  LINK_LIBRARIES ${${otb-module}_LIBRARIES})
-
 otb_create_application(
   NAME           PolygonClassStatistics
   SOURCES        otbPolygonClassStatistics.cxx
diff --git a/Modules/Applications/AppClassification/app/otbComputePolylineFeatureFromImage.cxx b/Modules/Applications/AppClassification/app/otbComputePolylineFeatureFromImage.cxx
deleted file mode 100644
index 919ad16354ffb3fbed8b08585e2d5c562c044955..0000000000000000000000000000000000000000
--- a/Modules/Applications/AppClassification/app/otbComputePolylineFeatureFromImage.cxx
+++ /dev/null
@@ -1,282 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <iostream>
-
-#include "otbVectorImage.h"
-
-#include "otbWrapperApplicationFactory.h"
-
-
-#include "otbVectorDataFileReader.h"
-#include "otbVectorDataFileWriter.h"
-#include "itkPreOrderTreeIterator.h"
-
-#include "otbVectorDataIntoImageProjectionFilter.h"
-#include "otbVectorDataTransformFilter.h"
-#include "itkAffineTransform.h"
-
-#include "otbParserConditionDataNodeFeatureFunction.h"
-#include "otbNDVIDataNodeFeatureFunction.h"
-
-// Elevation handler
-#include "otbWrapperElevationParametersHandler.h"
-
-namespace otb
-{
-namespace Wrapper
-{
-
-class ComputePolylineFeatureFromImage: public Application
-{
-public:
-  /** Standard class typedefs. */
-  typedef ComputePolylineFeatureFromImage Self;
-  typedef Application Superclass;
-  typedef itk::SmartPointer<Self> Pointer;
-  typedef itk::SmartPointer<const Self> ConstPointer;
-  // Images
-  typedef FloatVectorImageType::PixelType PixelType;
-  typedef FloatVectorImageType ImageType;
-
-  // VectorData
-  typedef VectorData<> VectorDataType;
-  typedef VectorDataType::DataNodeType DataNodeType;
-  typedef DataNodeType::ValuePrecisionType PrecisionType;
-  typedef DataNodeType::PrecisionType CoordRepType;
-  typedef itk::PreOrderTreeIterator<VectorDataType::DataTreeType> TreeIteratorType;
-  typedef VectorDataIntoImageProjectionFilter<VectorDataType, ImageType> VectorDataIntoImageProjType;
-  typedef VectorDataProjectionFilter<VectorDataType, VectorDataType> VectorDataProjectionFilterType;
-
-  typedef ParserConditionDataNodeFeatureFunction<ImageType, CoordRepType, PrecisionType>
-      ParserConditionFeatureFunctionType;
-
-  /** Standard macro */
-  itkNewMacro(Self)
-;
-
-  itkTypeMacro(ComputePolylineFeatureFromImage, otb::Application)
-;
-
-private:
-  void DoInit() override
-  {
-    SetName("ComputePolylineFeatureFromImage");
-    SetDescription("This application computes the chosen descriptors for each studied polyline contained in the input VectorData.");
-
-    SetDocName("Compute Polyline Feature From Image");
-    SetDocLongDescription("The first step in the classifier fusion based validation is to compute the chosen descriptors for each studied polyline.");
-    SetDocLimitations("Since it does not rely on streaming process, take care of the size of input image before launching application.");
-    SetDocAuthors("OTB-Team");
-    SetDocSeeAlso(" ");
-    AddDocTag(Tags::FeatureExtraction);
-
-    AddParameter(ParameterType_InputImage, "in", "Input Image");
-    SetParameterDescription("in", "An image to compute the descriptors on.");
-
-    AddParameter(ParameterType_InputVectorData, "vd", "Vector Data");
-    SetParameterDescription("vd", "Vector data containing the polylines where the features will be computed.");
-
-    // Elevation
-    ElevationParametersHandler::AddElevationParameters(this, "elev");
-
-    AddParameter(ParameterType_String, "expr", "Feature expression");
-    SetParameterDescription("expr", "The feature formula (b1 < 0.3) where b1 is the standard name of input image first band");
-
-    AddParameter(ParameterType_String, "field", "Feature name");
-    SetParameterDescription("field", "The field name corresponding to the feature codename (NONDVI, ROADSA...)");
-
-    AddParameter(ParameterType_OutputVectorData, "out", "Output Vector Data");
-    SetParameterDescription("out", "The output vector data containing polylines with a new field");
-
-    // Doc example parameter settings
-    SetDocExampleParameterValue("in", "NDVI.TIF");
-    SetDocExampleParameterValue("vd", "roads_ground_truth.shp");
-    SetDocExampleParameterValue("expr", "\"(b1 > 0.4)\"");
-    SetDocExampleParameterValue("field", "NONDVI");
-    SetDocExampleParameterValue("out", "PolylineFeatureFromImage_LI_NONDVI_gt.shp");
-
-    SetOfficialDocLink();
-  }
-
-  void DoUpdateParameters() override
-  {
-    // Nothing to do here : all parameters are independent
-  }
-
-  void DoExecute() override
-  {
-    // Vector Data into Image projection
-    FloatVectorImageType::Pointer inImage = GetParameterImage("in");
-
-    inImage->UpdateOutputInformation();
-    try
-      {
-      inImage->Update();
-      }
-    catch (...)
-      {
-      itkGenericExceptionMacro(<< "Error during image update, maybe your image is to big.");
-      }
-
-    otbAppLogDEBUG( << "Starting PolylineFeature extraction process" )
-
-    // Vector Data into Image projection
-    //// Read the Vectordata
-
-    VectorDataType* inVectorData = GetParameterVectorData("vd");
-    inVectorData->Update();
-    //// Projection
-    VectorDataIntoImageProjType::Pointer vprojIm = VectorDataIntoImageProjType::New();
-    vprojIm->SetInputVectorData(inVectorData);
-    vprojIm->SetInputImage(inImage);
-
-    // Setup the DEM Handler
-    otb::Wrapper::ElevationParametersHandler::SetupDEMHandlerFromElevationParameters(this,"elev");
-
-    vprojIm->SetUseOutputSpacingAndOriginFromImage(true); // we want index as input;
-    vprojIm->Update();
-
-    // Add description
-    ParserConditionFeatureFunctionType::Pointer vdescriptor = ParserConditionFeatureFunctionType::New();
-    vdescriptor->SetExpression(GetParameterString("expr"));
-    vdescriptor->SetInputImage(inImage);
-
-    m_OutVectorData = VectorDataType::New();
-    // Retrieving root node
-    DataNodeType::Pointer root = m_OutVectorData->GetDataTree()->GetRoot()->Get();
-    // Create the document node
-    DataNodeType::Pointer document = DataNodeType::New();
-    document->SetNodeType(otb::DOCUMENT);
-    // Adding the layer to the data tree
-    m_OutVectorData->GetDataTree()->Add(document, root);
-    // Create the folder node
-    DataNodeType::Pointer folder = DataNodeType::New();
-    folder->SetNodeType(otb::FOLDER);
-    // Adding the layer to the data tree
-    m_OutVectorData->GetDataTree()->Add(folder, document);
-
-    TreeIteratorType itVector(vprojIm->GetOutput()->GetDataTree());
-    itVector.GoToBegin();
-
-    while (!itVector.IsAtEnd())
-      {
-      vdescriptor->SetInputImage(inImage);
-      if (!itVector.Get()->IsRoot() && !itVector.Get()->IsDocument() && !itVector.Get()->IsFolder())
-        {
-        DataNodeType::Pointer currentGeometry = itVector.Get();
-        currentGeometry->SetFieldAsDouble(GetParameterString("field"),
-                                          (double) (vdescriptor->Evaluate(*(currentGeometry.GetPointer()))[0]));
-        m_OutVectorData->GetDataTree()->Add(currentGeometry, folder);
-        }
-      ++itVector;
-      }
-
-    /*
-     * Reprojection of the output VectorData
-     *
-     * The output of VectorDataToRoadDescription is in image index coordinates
-     *
-     * 3 cases :
-     * - input image has no geo-information : pass through
-     * - input image is in cartographic projection : apply image spacing and origin, and set the ProjectionRef
-     * - input image is in sensor model geometry : reproject in WGS84
-     *
-     */
-
-    std::string projRef = inImage->GetProjectionRef();
-    ImageKeywordlist kwl;
-    itk::ExposeMetaData<ImageKeywordlist>(inImage->GetMetaDataDictionary(), MetaDataKey::OSSIMKeywordlistKey, kwl);
-
-    if (!projRef.empty())
-      {
-      // image is in cartographic projection
-      // apply spacing and origin + set projection WKT
-      // The VectorData in output of the chain is in image index coordinate,
-      // and the projection information is lost
-      // Apply an affine transform to apply image origin and spacing,
-      // and arbitrarily set the ProjectionRef to the input image ProjectionRef
-
-      typedef itk::AffineTransform<VectorDataType::PrecisionType, 2> TransformType;
-      typedef otb::VectorDataTransformFilter<VectorDataType, VectorDataType> VDTransformType;
-
-      TransformType::ParametersType params;
-      params.SetSize(6);
-      params[0] = inImage->GetSignedSpacing()[0];
-      params[1] = 0;
-      params[2] = 0;
-      params[3] = inImage->GetSignedSpacing()[1];
-      params[4] = inImage->GetOrigin()[0];
-      params[5] = inImage->GetOrigin()[1];
-
-      TransformType::Pointer transform = TransformType::New();
-      transform->SetParameters(params);
-
-      VDTransformType::Pointer vdTransform = VDTransformType::New();
-      vdTransform->SetTransform(transform);
-      vdTransform->SetInput(m_OutVectorData);
-      vdTransform->Update();
-
-      m_ProjectedVectorData = vdTransform->GetOutput();
-
-      m_ProjectedVectorData->SetProjectionRef(inImage->GetProjectionRef());
-      }
-    else
-      if (kwl.GetSize() > 0)
-        {
-        // image is in sensor model geometry
-
-        // Reproject VectorData in image projection
-        VectorDataProjectionFilterType::Pointer vproj = VectorDataProjectionFilterType::New();
-        vproj->SetInput(m_OutVectorData);
-
-        vproj->SetOutputKeywordList(inImage->GetImageKeywordlist());
-        vproj->SetOutputProjectionRef(inImage->GetProjectionRef());
-        vproj->SetOutputOrigin(inImage->GetOrigin());
-        vproj->SetOutputSpacing(inImage->GetSignedSpacing());
-
-        // Setup the DEM Handler
-        otb::Wrapper::ElevationParametersHandler::SetupDEMHandlerFromElevationParameters(this,"elev");
-
-        vproj->Update();
-        m_ProjectedVectorData = vproj->GetOutput();
-        }
-      else
-        {
-        // no georeferencing information
-        m_ProjectedVectorData = m_OutVectorData;
-        }
-
-    // Set the output vectorData
-    SetParameterOutputVectorData("out", m_ProjectedVectorData);
-
-  };
-
-  VectorDataType::Pointer m_ProjectedVectorData;
-  VectorDataType::Pointer m_OutVectorData;
-
-};
-
-}
-}
-
-OTB_APPLICATION_EXPORT(otb::Wrapper::ComputePolylineFeatureFromImage)
-
-
diff --git a/Modules/Applications/AppClassification/app/otbDSFuzzyModelEstimation.cxx b/Modules/Applications/AppClassification/app/otbDSFuzzyModelEstimation.cxx
deleted file mode 100644
index 2804718d78036f2a3c21a8c1661a948b2538b8a4..0000000000000000000000000000000000000000
--- a/Modules/Applications/AppClassification/app/otbDSFuzzyModelEstimation.cxx
+++ /dev/null
@@ -1,451 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#include <iostream>
-
-#include "otbWrapperApplication.h"
-#include "otbWrapperApplicationFactory.h"
-#include "otbWrapperStringListParameter.h"
-#include "otbImageToEnvelopeVectorDataFilter.h"
-#include "otbVectorDataToRandomLineGenerator.h"
-#include "itkAmoebaOptimizer.h"
-#include "otbStandardDSCostFunction.h"
-
-
-namespace otb
-{
-
-namespace Wrapper
-{
-
-#include "itkCommand.h"
-class CommandIterationUpdate : public itk::Command
-{
-public:
-typedef  CommandIterationUpdate   Self;
-typedef  itk::Command             Superclass;
-typedef itk::SmartPointer<Self>   Pointer;
-itkNewMacro( Self );
-protected:
-CommandIterationUpdate() {};
-public:
-typedef itk::AmoebaOptimizer         OptimizerType;
-typedef   const OptimizerType   *    OptimizerPointer;
-
-
-void Execute(itk::Object *caller, const itk::EventObject & event) override
-{
-  Execute( (const itk::Object *)caller, event);
-}
-
-void Execute(const itk::Object * object, const itk::EventObject & event) override
-{
-  OptimizerPointer optimizer =
-      dynamic_cast< OptimizerPointer >( object );
-  if( ! itk::IterationEvent().CheckEvent( &event ) )
-    {
-    return;
-    }
-  std::ostringstream message;
-  message << optimizer->GetCachedValue() << "   ";
-  message << optimizer->GetCachedCurrentPosition() << std::endl;
-  std::cout<<message.str()<<std::endl;
-}
-
-
-};
-
-
-class DSFuzzyModelEstimation: public Application
-{
-public:
-  /** Standard class typedefs. */
-  typedef DSFuzzyModelEstimation Self;
-  typedef Application Superclass;
-  typedef itk::SmartPointer<Self> Pointer;
-  typedef itk::SmartPointer<const Self> ConstPointer;
-
-  typedef VectorData<double>                          VectorDataType;
-
-  typedef VectorDataType::DataTreeType                DataTreeType;
-  typedef VectorDataType::DataNodeType                DataNodeType;
-
-  typedef VectorDataType::ValuePrecisionType          PrecisionType;
-  typedef VectorDataType::PrecisionType               CoordRepType;
-
-  typedef otb::Wrapper::StringListParameter::StringListType         StringListType;
-
-  typedef otb::VectorDataToDSValidatedVectorDataFilter<VectorDataType, PrecisionType>
-                                                            ValidationFilterType;
-  typedef otb::StandardDSCostFunction<ValidationFilterType> CostFunctionType;
-  typedef CostFunctionType::LabelSetType                    LabelSetType;
-
-  typedef itk::AmoebaOptimizer                            OptimizerType;
-
-  typedef otb::FuzzyDescriptorsModelManager::DescriptorsModelType
-                                                          DescriptorsModelType;
-  typedef otb::FuzzyDescriptorsModelManager::DescriptorListType
-                                                          DescriptorListType;
-
-     typedef itk::PreOrderTreeIterator<VectorDataType::DataTreeType>
-     TreeIteratorType;
-
-
-  /** Standard macro */
-  itkNewMacro(Self);
-
-  itkTypeMacro(DSFuzzyModelEstimation, otb::Application);
-
-private:
-  void DoInit() override
-  {
-    SetName("DSFuzzyModelEstimation");
-    SetDescription("Estimate feature fuzzy model parameters using 2 vector data (ground truth samples and wrong samples).");
-
-    SetDocName("Fuzzy Model estimation");
-    SetDocLongDescription("Estimate feature fuzzy model parameters using 2 vector data (ground truth samples and wrong samples).");
-    SetDocLimitations("None.");
-    SetDocAuthors("OTB-Team");
-    SetDocSeeAlso(" ");
-
-    AddDocTag(Tags::FeatureExtraction);
-
-    AddParameter(ParameterType_InputVectorData, "psin", "Input Positive Vector Data");
-    SetParameterDescription("psin", "Ground truth vector data for positive samples");
-
-    AddParameter(ParameterType_InputVectorData, "nsin", "Input Negative Vector Data");
-    SetParameterDescription("nsin", "Ground truth vector data for negative samples");
-
-    AddParameter(ParameterType_StringList, "belsup", "Belief Support");
-    SetParameterDescription("belsup", "Dempster Shafer study hypothesis to compute belief");
-
-    AddParameter(ParameterType_StringList, "plasup", "Plausibility Support");
-    SetParameterDescription("plasup", "Dempster Shafer study hypothesis to compute plausibility");
-
-    AddParameter(ParameterType_OutputFilename, "out", "Output filename");
-    SetParameterDescription("out", "Output model file name (xml file) contains the optimal model to perform information fusion.");
-
-    AddParameter(ParameterType_String, "cri", "Criterion");
-    SetParameterDescription("cri", "Dempster Shafer criterion (by default (belief+plausibility)/2)");
-    MandatoryOff("cri");
-    SetParameterString("cri","((Belief + Plausibility)/2.)");
-
-    AddParameter(ParameterType_Float,"wgt","Weighting");
-    SetParameterDescription("wgt","Coefficient between 0 and 1 to promote undetection or false detections (default 0.5)");
-    MandatoryOff("wgt");
-    SetParameterFloat("wgt",0.5);
-
-    AddParameter(ParameterType_InputFilename,"initmod","initialization model");
-    SetParameterDescription("initmod","Initialization model (xml file) to be used. If the xml initialization model is set, the descriptor list is not used (specified using the option -desclist)");
-    MandatoryOff("initmod");
-
-    AddParameter(ParameterType_StringList, "desclist","Descriptor list");
-    SetParameterDescription("desclist","List of the descriptors to be used in the model (must be specified to perform an automatic initialization)");
-    MandatoryOff("desclist");
-
-    AddParameter(ParameterType_Int,"maxnbit","Maximum number of iterations");
-    MandatoryOff("maxnbit");
-    SetParameterDescription("maxnbit","Maximum number of optimizer iteration (default 200)");
-    SetParameterInt("maxnbit",200);
-
-    AddParameter(ParameterType_Bool,"optobs","Optimizer Observer");
-    SetParameterDescription("optobs","Activate the optimizer observer");
-
-    // Doc example parameter settings
-    SetDocExampleParameterValue("psin", "cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.shp");
-    SetDocExampleParameterValue("nsin", "cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.shp");
-    SetDocExampleParameterValue("belsup", "\"ROADSA\"");
-    SetDocExampleParameterValue("plasup", "\"NONDVI\" \"ROADSA\" \"NOBUIL\"");
-    SetDocExampleParameterValue("initmod", "Dempster-Shafer/DSFuzzyModel_Init.xml");
-    SetDocExampleParameterValue("maxnbit", "4");
-    SetDocExampleParameterValue("optobs", "true");
-    SetDocExampleParameterValue("out", "DSFuzzyModelEstimation.xml");
-
-    SetOfficialDocLink();
-  }
-
-  void DoUpdateParameters() override
-  {
-    // Nothing to do here : all parameters are independent
-
-
-    // .. //
-
-
-  }
-
-  void DoExecute() override
-  {
-
-    //Instantiate
-    m_CostFunction = CostFunctionType::New();
-    m_Optimizer = OptimizerType::New();
-
-    //Read the vector datas
-    VectorDataType::Pointer psVectorData = GetParameterVectorData("psin");
-    psVectorData->Update();
-    VectorDataType::Pointer nsVectorData = GetParameterVectorData("nsin");
-    nsVectorData->Update();
-
-    // Load the initial descriptor model
-    DescriptorListType descList;
-    DescriptorsModelType descMod;
-    if (IsParameterEnabled("initmod"))
-      {
-      std::string descModFile = GetParameterString("initmod");
-      descMod = FuzzyDescriptorsModelManager::Read(descModFile);
-      descList = FuzzyDescriptorsModelManager::GetDescriptorList(descMod);
-      }
-    else
-      {
-      StringListType stringList = GetParameterStringList("desclist");
-      int nbsdDesc = stringList.size();
-      for (int i = 0; i < nbsdDesc; i++)
-        {
-        descList.push_back(stringList[i]);
-        }
-      }
-
-    m_CostFunction->SetDescriptorList(descList);
-
-    // Compute statistics of all the descriptors
-
-    std::vector<double> accFirstOrderPS, accSecondOrderPS, minPS, maxPS;
-    accFirstOrderPS.resize(descList.size());
-    accSecondOrderPS.resize(descList.size());
-    std::fill(accFirstOrderPS.begin(), accFirstOrderPS.end(), 0);
-    std::fill(accSecondOrderPS.begin(), accSecondOrderPS.end(), 0);
-    minPS.resize(descList.size());
-    maxPS.resize(descList.size());
-    unsigned int accNbElemPS = 0;
-
-    TreeIteratorType itVectorPS(psVectorData->GetDataTree());
-    for (itVectorPS.GoToBegin(); !itVectorPS.IsAtEnd(); ++itVectorPS)
-      {
-      if (!itVectorPS.Get()->IsRoot() && !itVectorPS.Get()->IsDocument() && !itVectorPS.Get()->IsFolder())
-        {
-        DataNodeType::Pointer currentGeometry = itVectorPS.Get();
-
-        for (unsigned int i = 0; i < descList.size(); ++i)
-          {
-          double desc = currentGeometry->GetFieldAsDouble(descList[i]);
-
-          accFirstOrderPS[i] += desc;
-          accSecondOrderPS[i] += desc * desc;
-
-          if (desc < minPS[i])
-            {
-            minPS[i] = desc;
-            }
-          if (desc > maxPS[i])
-            {
-            maxPS[i] = desc;
-            }
-
-          }
-        accNbElemPS++;
-        }
-      }
-    if (accNbElemPS == 0)
-      {
-      otbAppLogFATAL(<< "Error : no element found in positive vector data!");
-      }
-
-    TreeIteratorType itVectorNS(nsVectorData->GetDataTree());
-    std::vector<double> accFirstOrderNS, accSecondOrderNS, minNS, maxNS;
-    minNS.resize(descList.size());
-    maxNS.resize(descList.size());
-    accFirstOrderNS.resize(descList.size());
-    accSecondOrderNS.resize(descList.size());
-    std::fill(accFirstOrderNS.begin(), accFirstOrderNS.end(), 0);
-    std::fill(accSecondOrderNS.begin(), accSecondOrderNS.end(), 0);
-    std::fill(minNS.begin(), minNS.end(), 1);
-    std::fill(maxNS.begin(), maxNS.end(), 0);
-    unsigned int accNbElemNS = 0;
-
-    for (itVectorNS.GoToBegin(); !itVectorNS.IsAtEnd(); ++itVectorNS)
-      {
-      if (!itVectorNS.Get()->IsRoot() && !itVectorNS.Get()->IsDocument() && !itVectorNS.Get()->IsFolder())
-        {
-        DataNodeType::Pointer currentGeometry = itVectorNS.Get();
-
-        for (unsigned int i = 0; i < descList.size(); ++i)
-          {
-          double desc = currentGeometry->GetFieldAsDouble(descList[i]);
-
-          accFirstOrderNS[i] += desc;
-          accSecondOrderNS[i] += desc * desc;
-
-          if (desc < minNS[i])
-            {
-            minNS[i] = desc;
-            }
-          if (desc > maxNS[i])
-            {
-            maxNS[i] = desc;
-            }
-
-          }
-        accNbElemNS++;
-        }
-      }
-    if (accNbElemNS == 0)
-      {
-      otbAppLogFATAL(<< "Error : no element found in negative vector data!");
-      }
-    otbAppLogINFO( << "Descriptors Stats : ");
-    otbAppLogINFO( << "Positive Samples");
-    for (unsigned int i = 0; i < descList.size(); ++i)
-      {
-      double mean = accFirstOrderPS[i] / accNbElemPS;
-      double stddev = std::sqrt(accSecondOrderPS[i] / accNbElemPS - mean * mean);
-      otbAppLogINFO( << descList[i] << "  :  " << mean << " +/- " << stddev << "  (min: " << minPS[i] << "  max: " << maxPS[i] << ")"<< std::endl);
-      }
-
-    otbAppLogINFO( << "Negative Samples" << std::endl);
-    for (unsigned int i = 0; i < descList.size(); ++i)
-      {
-      double mean = accFirstOrderNS[i] / accNbElemNS;
-      double stddev = std::sqrt(accSecondOrderNS[i] / accNbElemNS - mean * mean);
-      otbAppLogINFO(<< descList[i] << "  :  " << mean << " +/- " << stddev << "  (min: " << minNS[i] << "  max: " << maxNS[i] << ")"<< std::endl);
-      }
-
-    OptimizerType::ParametersType initialPosition(4 * descList.size());
-
-    if (IsParameterEnabled("initmod"))
-      {
-
-      for (unsigned int i = 0; i < 4; i++)
-        {
-        for (unsigned int j = 0; j < descList.size(); j++)
-          {
-          initialPosition.SetElement(
-                                     i + 4 * j,
-                                     otb::FuzzyDescriptorsModelManager::GetDescriptor(descList[j].c_str(), descMod).second[i]);
-          }
-        }
-      }
-    else
-      {
-      for (unsigned int j = 0; j < descList.size(); j++)
-        {
-        initialPosition.SetElement((j * 4), std::min(minNS[j], maxPS[j]));
-        initialPosition.SetElement((j * 4) + 2, std::max(minNS[j], maxPS[j]));
-        initialPosition.SetElement(
-                                   (j * 4) + 1,
-                                       0.5
-                                       * (initialPosition.GetElement((j * 4)) + initialPosition.GetElement((j * 4) + 2)));
-        initialPosition.SetElement((j * 4) + 3, 0.95);
-        }
-      }
-
-    otbAppLogINFO(<<"Initial model: "<<initialPosition);
-
-    //Cost Function
-    //Format Hypothesis
-    LabelSetType Bhyp, Phyp;
-    int nbSet;
-
-    StringListType stringList = GetParameterStringList("belsup");
-    nbSet = stringList.size();
-
-    for (int i = 0; i < nbSet; i++)
-      {
-      std::string str = stringList[i];
-      Bhyp.insert(str);
-      }
-    m_CostFunction->SetBeliefHypothesis(Bhyp);
-    stringList = GetParameterStringList("plasup");
-    nbSet = stringList.size();
-    for (int i = 0; i < nbSet; i++)
-      {
-      std::string str = stringList[i];
-      Phyp.insert(str);
-      }
-    m_CostFunction->SetPlausibilityHypothesis(Phyp);
-
-    m_CostFunction->SetWeight(GetParameterFloat("wgt"));
-
-    m_CostFunction->SetCriterionFormula(GetParameterString("cri"));
-
-    m_CostFunction->SetGTVectorData(psVectorData);
-    m_CostFunction->SetNSVectorData(nsVectorData);
-    //Optimizer
-    m_Optimizer->SetCostFunction(m_CostFunction);
-
-    m_Optimizer->SetMaximumNumberOfIterations(GetParameterInt("maxnbit"));
-
-    OptimizerType::ParametersType simplexDelta(m_CostFunction->GetNumberOfParameters());
-    simplexDelta.Fill(0.1);
-
-    m_Optimizer->AutomaticInitialSimplexOff();
-    m_Optimizer->SetInitialSimplexDelta(simplexDelta);
-
-    m_Optimizer->SetInitialPosition(initialPosition);
-
-    // Create the Command observer and register it with the optimizer.
-    CommandIterationUpdate::Pointer observer = CommandIterationUpdate::New();
-    if (GetParameterInt("optobs"))
-      {
-      m_Optimizer->AddObserver(itk::IterationEvent(), observer);
-      }
-
-    try
-      {
-      // do the optimization
-      m_Optimizer->StartOptimization();
-      }
-    catch (itk::ExceptionObject& err)
-      {
-      // An error has occurred in the optimization.
-      // Update the parameters
-      otbAppLogFATAL("ERROR: Exception Caught : "<< err.GetDescription() << std::endl
-        << "numberOfIterations : " << m_Optimizer->GetOptimizer()->get_num_evaluations() << std::endl
-        << "Results : " << m_Optimizer->GetCurrentPosition() << std::endl);
-      }
-    // get the results
-    const unsigned int numberOfIterations = m_Optimizer->GetOptimizer()->get_num_evaluations();
-    otbAppLogINFO("numberOfIterations : " << numberOfIterations << std::endl);
-    otbAppLogINFO("Results : " << m_Optimizer->GetCurrentPosition() << std::endl);
-
-    for (unsigned int i = 0; i < descList.size(); i++)
-      {
-      otb::FuzzyDescriptorsModelManager::ParameterType tmpParams;
-      for (unsigned int j = 0; j < 4; j++)
-        {
-        tmpParams.push_back(m_Optimizer->GetCurrentPosition()[(i * 4) + j]);
-        }
-      otb::FuzzyDescriptorsModelManager::AddDescriptor(descList[i], tmpParams, m_Model);
-      }
-    otb::FuzzyDescriptorsModelManager::Save(GetParameterString("out"), m_Model);
-
-  };
-
-  CostFunctionType::Pointer                               m_CostFunction;
-  OptimizerType::Pointer                                  m_Optimizer;
-  otb::FuzzyDescriptorsModelManager::DescriptorsModelType m_Model;
-};
-
-}
-}
-
-OTB_APPLICATION_EXPORT(otb::Wrapper::DSFuzzyModelEstimation)
-
diff --git a/Modules/Applications/AppClassification/app/otbVectorDataDSValidation.cxx b/Modules/Applications/AppClassification/app/otbVectorDataDSValidation.cxx
deleted file mode 100644
index 64001c6a135e44b17e39ed920cef41a329b9d2bf..0000000000000000000000000000000000000000
--- a/Modules/Applications/AppClassification/app/otbVectorDataDSValidation.cxx
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#include "otbVectorDataToDSValidatedVectorDataFilter.h"
-#include "otbWrapperApplication.h"
-#include "otbWrapperApplicationFactory.h"
-#include "otbWrapperStringListParameter.h"
-
-
-namespace otb
-{
-namespace Wrapper
-{
-
-class VectorDataDSValidation: public Application
-{
-
-
-public:
-   /** Standard class typedefs. */
-  typedef VectorDataDSValidation Self;
-  typedef Application Superclass;
-  typedef itk::SmartPointer<Self> Pointer;
-  typedef itk::SmartPointer<const Self> ConstPointer;
-
-
-  typedef double                          PrecisionType;
-  typedef otb::VectorData<PrecisionType>  VectorDataType;
-  typedef otb::VectorDataToDSValidatedVectorDataFilter<VectorDataType, PrecisionType>
-                                          VectorDataValidationFilterType;
-  typedef VectorDataValidationFilterType::LabelSetType
-                                          LabelSetType;
-  typedef FuzzyDescriptorsModelManager::DescriptorsModelType DescriptorsModelType;
-
-  typedef otb::Wrapper::StringListParameter::StringListType    StringListType;
-
-  /** Standard macro */
-  itkNewMacro(Self);
-
-  itkTypeMacro(VectorDataDSValidation, otb::Application);
-
-private:
-  void DoInit() override
-  {
-    SetName("VectorDataDSValidation");
-    SetDescription("Vector data validation based on the fusion of features using Dempster-Shafer evidence theory framework.");
-
-    SetDocName("Vector Data validation");
-    SetDocLongDescription("This application validates or unvalidate the studied samples using the Dempster-Shafer theory.");
-    SetDocLimitations("None.");
-    SetDocAuthors("OTB-Team");
-    SetDocSeeAlso("http://en.wikipedia.org/wiki/Dempster-Shafer_theory");
-
-    AddDocTag(Tags::FeatureExtraction);
-
-
-    AddParameter(ParameterType_InputVectorData, "in", "Input Vector Data");
-    SetParameterDescription("in", "Input vector data to validate");
-
-    AddParameter(ParameterType_InputFilename, "descmod", "Descriptors model filename");
-    SetParameterDescription("descmod", "Fuzzy descriptors model (xml file)");
-
-    AddParameter(ParameterType_StringList, "belsup", "Belief Support");
-    SetParameterDescription("belsup", "Dempster Shafer study hypothesis to compute belief");
-
-    AddParameter(ParameterType_StringList, "plasup", "Plausibility Support");
-    SetParameterDescription("plasup", "Dempster Shafer study hypothesis to compute plausibility");
-
-    AddParameter(ParameterType_OutputVectorData, "out", "Output Vector Data");
-    SetParameterDescription("out", "Output VectorData containing only the validated samples");
-
-    AddParameter(ParameterType_String, "cri", "Criterion");
-    SetParameterDescription("cri", "Dempster Shafer criterion (by default (belief+plausibility)/2)");
-    MandatoryOff("cri");
-    SetParameterString("cri", "((Belief + Plausibility)/2.)");
-
-    AddParameter(ParameterType_Float, "thd", "Criterion threshold");
-    SetParameterDescription("thd", "Criterion threshold (default 0.5)");
-    MandatoryOff("thd");
-    SetParameterFloat("thd",0.5);
-
-    // Doc example parameter settings
-    SetDocExampleParameterValue("in", "cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.shp");
-    SetDocExampleParameterValue("belsup", "cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.shp");
-    SetDocExampleParameterValue("descmod", "DSFuzzyModel.xml");
-    SetDocExampleParameterValue("out", "VectorDataDSValidation.shp");
-
-    SetOfficialDocLink();
-  }
-
-  void DoUpdateParameters() override
-  {
-    // Nothing to do here : all parameters are independent
-
-
-    // .. //
-
-
-  }
-
-  void DoExecute() override
-  {
-
-    //Read the vector data
-    VectorDataType::Pointer inVectorData = GetParameterVectorData("in");
-    inVectorData->Update();
-
-    // Load the descriptors model
-    std::string descModFile = GetParameterString("descmod");
-    DescriptorsModelType descMod = FuzzyDescriptorsModelManager::Read(descModFile);
-
-    LabelSetType Bhyp, Phyp;
-    int nbSet;
-
-    StringListType stringList = GetParameterStringList("belsup");
-    nbSet = stringList.size();
-
-    for (int i = 0; i < nbSet; i++)
-      {
-      std::string str = stringList[i];
-      Bhyp.insert(str);
-      }
-    stringList = GetParameterStringList("plasup");
-    nbSet = stringList.size();
-    for (int i = 0; i < nbSet; i++)
-      {
-      std::string str = stringList[i];
-      Phyp.insert(str);
-      }
-
-    // Process
-    m_ValidationFilter = VectorDataValidationFilterType::New();
-    m_ValidationFilter->SetInput(inVectorData);
-    m_ValidationFilter->SetDescriptorModels(descMod);
-    m_ValidationFilter->SetBeliefHypothesis(Bhyp);
-    m_ValidationFilter->SetPlausibilityHypothesis(Phyp);
-
-    m_ValidationFilter->SetCriterionFormula(GetParameterString("cri"));
-    m_ValidationFilter->SetCriterionThreshold(GetParameterFloat("thd"));
-
-    // Set the output image
-    SetParameterOutputVectorData("out", m_ValidationFilter->GetOutput());
-
-  };
-
-  VectorDataValidationFilterType::Pointer m_ValidationFilter;
-
-
-};
-}
-}
-
-OTB_APPLICATION_EXPORT(otb::Wrapper::VectorDataDSValidation);
diff --git a/Modules/Applications/AppClassification/test/CMakeLists.txt b/Modules/Applications/AppClassification/test/CMakeLists.txt
index 556cc57987594132598622a258bc9019e23037f7..2379deb501c3c6233fb1a1a6b34e8fe99a78c6e0 100644
--- a/Modules/Applications/AppClassification/test/CMakeLists.txt
+++ b/Modules/Applications/AppClassification/test/CMakeLists.txt
@@ -563,104 +563,6 @@ otb_test_application(NAME apTvFusionOfClassificationsMV2Inputs
   ${OTBAPP_BASELINE}/apTvFusionOfClassifications2InputsOutput.tif
   ${TEMP}/apTvFusionOfClassificationsMV2InputsOutput.tif)
 
-
-#----------- ComputePolylineFeatureFromImage TESTS ----------------
-otb_test_application(NAME apTvCdbComputePolylineFeatureFromImage_LI_NONDVI_wr
-  APP  ComputePolylineFeatureFromImage
-  OPTIONS -in LARGEINPUT{DEMPSTER-SHAFER/NDVI.TIF}
-  -vd LARGEINPUT{DEMPSTER-SHAFER/wrongroads.shp}
-  -expr  "(b1 > 0.4)"
-  -field "NONDVI"
-  -out ${TEMP}/apTvCdbComputePolylineFeatureFromImage_LI_NONDVI_wr.shp)
-
-# FIXME cascade dependencies to largeinput repository
-if(OTB_DATA_USE_LARGEINPUT)
-  otb_test_application(NAME apTvCdbComputePolylineFeatureFromImage_LI_ROADSA_RoadExtractionApplication
-    APP  ComputePolylineFeatureFromImage
-    OPTIONS -in LARGEINPUT{DEMPSTER-SHAFER/SpectralAngleRoad.TIF}
-    -vd ${TEMP}/apTvCdbComputePolylineFeatureFromImage_LI_NONDVI_RoadExtractionApplication.shp
-    -expr  "(b1 > 0.25)"
-    -field "ROADSA"
-    -out ${TEMP}/apTvCdbComputePolylineFeatureFromImage_LI_ROADSA_RoadExtractionApplication.shp)
-
-  set_tests_properties(apTvCdbComputePolylineFeatureFromImage_LI_ROADSA_RoadExtractionApplication PROPERTIES DEPENDS apTvCdbComputePolylineFeatureFromImage_LI_NONDVI_RoadExtractionApplication)
-
-  otb_test_application(NAME apTvCdbComputePolylineFeatureFromImage_LI_ROADSA_wr
-    APP  ComputePolylineFeatureFromImage
-    OPTIONS -in LARGEINPUT{DEMPSTER-SHAFER/SpectralAngleRoad.TIF}
-    -vd ${TEMP}/apTvCdbComputePolylineFeatureFromImage_LI_NONDVI_wr.shp
-    -expr  "(b1 > 0.25)"
-    -field "ROADSA"
-    -out ${TEMP}/apTvCdbComputePolylineFeatureFromImage_LI_ROADSA_wr.shp)
-
-  set_tests_properties(apTvCdbComputePolylineFeatureFromImage_LI_ROADSA_wr PROPERTIES DEPENDS apTvCdbComputePolylineFeatureFromImage_LI_NONDVI_wr)
-
-  otb_test_application(NAME apTvCdbComputePolylineFeatureFromImage_LI_NOBUIL_wr
-    APP  ComputePolylineFeatureFromImage
-    OPTIONS -in LARGEINPUT{DEMPSTER-SHAFER/BUILDINGS.TIF}
-    -vd ${TEMP}/apTvCdbComputePolylineFeatureFromImage_LI_ROADSA_wr.shp
-    -expr  "(b1 == 0)"
-    -field "NOBUIL"
-    -out ${TEMP}/apTvCdbComputePolylineFeatureFromImage_LI_NOBUIL_wr.shp
-    VALID   --compare-ogr ${EPSILON_9}
-    ${OTBAPP_BASELINE_FILES}/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.shp
-    ${TEMP}/apTvCdbComputePolylineFeatureFromImage_LI_NOBUIL_wr.shp)
-
-  set_tests_properties(apTvCdbComputePolylineFeatureFromImage_LI_NOBUIL_wr PROPERTIES DEPENDS apTvCdbComputePolylineFeatureFromImage_LI_ROADSA_wr)
-
-  otb_test_application(NAME apTvCdbComputePolylineFeatureFromImage_LI_NONDVI_RoadExtractionApplication
-    APP  ComputePolylineFeatureFromImage
-    OPTIONS -in LARGEINPUT{DEMPSTER-SHAFER/NDVI.TIF}
-    -vd LARGEINPUT{DEMPSTER-SHAFER/road_extraction.shp}
-    -expr  "(b1 > 0.4)"
-    -field "NONDVI"
-    -out ${TEMP}/apTvCdbComputePolylineFeatureFromImage_LI_NONDVI_RoadExtractionApplication.shp)
-
-  otb_test_application(NAME apTvCdbComputePolylineFeatureFromImage_LI_NONDVI_gt
-    APP  ComputePolylineFeatureFromImage
-    OPTIONS -in LARGEINPUT{DEMPSTER-SHAFER/NDVI.TIF}
-    -vd LARGEINPUT{DEMPSTER-SHAFER/roads_ground_truth.shp}
-    -expr  "(b1 > 0.4)"
-    -field NONDVI
-    -out ${TEMP}/apTvCdbComputePolylineFeatureFromImage.shp)
-
-  otb_test_application(NAME apTvCdbComputePolylineFeatureFromImage_LI_ROADSA_gt
-    APP  ComputePolylineFeatureFromImage
-    OPTIONS -in LARGEINPUT{DEMPSTER-SHAFER/SpectralAngleRoad.TIF}
-    -vd ${TEMP}/apTvCdbComputePolylineFeatureFromImage.shp
-    -expr  "(b1 > 0.25)"
-    -field "ROADSA"
-    -out ${TEMP}/apTvCdbComputePolylineFeatureFromImage_LI_ROADSA_gt.shp)
-
-  set_tests_properties(apTvCdbComputePolylineFeatureFromImage_LI_ROADSA_gt PROPERTIES DEPENDS apTvCdbComputePolylineFeatureFromImage_LI_NONDVI_gt)
-
-  otb_test_application(NAME apTvCdbComputePolylineFeatureFromImage_LI_NOBUIL_gt
-    APP  ComputePolylineFeatureFromImage
-    OPTIONS -in LARGEINPUT{DEMPSTER-SHAFER/BUILDINGS.TIF}
-    -vd ${TEMP}/apTvCdbComputePolylineFeatureFromImage_LI_ROADSA_gt.shp
-    -expr  "(b1 == 0)"
-    -field "NOBUIL"
-    -out ${TEMP}/apTvCdbComputePolylineFeatureFromImage_LI_NOBUIL_gt.shp
-    VALID   --compare-ogr ${EPSILON_9}
-    ${OTBAPP_BASELINE_FILES}/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.shp
-    ${TEMP}/apTvCdbComputePolylineFeatureFromImage_LI_NOBUIL_gt.shp)
-
-  set_tests_properties(apTvCdbComputePolylineFeatureFromImage_LI_NOBUIL_gt PROPERTIES DEPENDS apTvCdbComputePolylineFeatureFromImage_LI_ROADSA_gt)
-
-  otb_test_application(NAME apTvCdbComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication
-    APP  ComputePolylineFeatureFromImage
-    OPTIONS -in LARGEINPUT{DEMPSTER-SHAFER/BUILDINGS.TIF}
-    -vd ${TEMP}/apTvCdbComputePolylineFeatureFromImage_LI_ROADSA_RoadExtractionApplication.shp
-    -expr  "(b1 == 0)"
-    -field "NOBUIL"
-    -out ${TEMP}/apTvCdbComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.shp
-    VALID   --compare-ogr ${EPSILON_9}
-    ${OTBAPP_BASELINE_FILES}/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.shp
-    ${TEMP}/apTvCdbComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.shp)
-
-  set_tests_properties(apTvCdbComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication PROPERTIES DEPENDS apTvCdbComputePolylineFeatureFromImage_LI_ROADSA_RoadExtractionApplication)
-endif()
-
 #----------- KMeansClassification TESTS ----------------
 if(OTB_USE_SHARK)
   otb_test_application(NAME apTvClKMeansImageClassification_composite
@@ -788,30 +690,6 @@ if(OTB_USE_LIBSVM)
     ${TEMP}/clsvmConfMatQB1_allOpt.svm)
 endif()
 
-#----------- DSFuzzyModelEstimation TESTS ----------------
-otb_test_application(NAME apTvCdbDSFuzzyModelEstimation_LI_autoInit
-  APP  DSFuzzyModelEstimation
-  OPTIONS -psin ${OTBAPP_BASELINE_FILES}/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.shp
-  -nsin ${OTBAPP_BASELINE_FILES}/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.shp
-  -belsup "ROADSA"
-  -plasup "NONDVI" "ROADSA" "NOBUIL"
-  -desclist "NONDVI" "ROADSA" "NOBUIL"
-  -maxnbit 4
-  -optobs true
-  -out ${TEMP}/apTvCdbDSFuzzyModelEstimatorOutput_LI_autoInit.xml)
-
-otb_test_application(NAME apTvCdbDSFuzzyModelEstimation_LI
-  APP  DSFuzzyModelEstimation
-  OPTIONS -psin ${OTBAPP_BASELINE_FILES}/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.shp
-  -nsin ${OTBAPP_BASELINE_FILES}/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.shp
-  -belsup "ROADSA"
-  -plasup "NONDVI" "ROADSA" "NOBUIL"
-  -initmod ${OTB_DATA_ROOT}/Input/Dempster-Shafer/DSFuzzyModel_Init.xml
-  -maxnbit 4
-  -optobs true
-  -out ${TEMP}/apTvCdbDSFuzzyModelEstimatorOutput_LI.xml)
-
-
 #----------- ClassificationMapRegularization TESTS ----------------
 otb_test_application(NAME apTvClassificationMapRegularization
   APP  ClassificationMapRegularization
@@ -872,38 +750,6 @@ otb_test_application(NAME apTvClComputeImagesStatisticsQB123
   ${OTBAPP_BASELINE_FILES}/clImageStatisticsQB123.xml
   ${TEMP}/apTvClEstimateImageStatisticsQB123.xml)
 
-
-#----------- VectorDataDSValidation TESTS ----------------
-otb_test_application(NAME cdbTvVectorDataDSValidationGroundTruth_LI
-  APP  VectorDataDSValidation
-  OPTIONS -in ${OTBAPP_BASELINE_FILES}/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.shp
-  -belsup "ROADSA"
-  -plasup "NONDVI" "ROADSA" "NOBUIL"
-  -descmod ${OTB_DATA_ROOT}/Input/Dempster-Shafer/DSFuzzyModel.xml
-  -out ${TEMP}/cdbTvVectorDataDSValidationOutpout_LI_gt.shp
-  VALID    --compare-ogr 0.0
-  ${OTBAPP_BASELINE_FILES}/cdbTvVectorDataDSValidationOutpout_LI_gt.shp
-  ${TEMP}/cdbTvVectorDataDSValidationOutpout_LI_gt.shp)
-
-otb_test_application(NAME apTvCdbVectorDataDSValidationRoadExtractionApplication_LI
-  APP  VectorDataDSValidation
-  OPTIONS -in ${OTBAPP_BASELINE_FILES}/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.shp
-  -belsup "ROADSA"
-  -plasup "NONDVI" "ROADSA" "NOBUIL"
-  -descmod ${OTB_DATA_ROOT}/Input/Dempster-Shafer/DSFuzzyModel.xml
-  -out ${TEMP}/apTvCdbVectorDataDSValidationOutpout_LI_RoadExtractionApplication.shp)
-
-otb_test_application(NAME cdbTvVectorDataDSValidationWrongRoads_LI
-  APP  VectorDataDSValidation
-  OPTIONS -in ${OTBAPP_BASELINE_FILES}/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.shp
-  -belsup "ROADSA"
-  -plasup "NONDVI" "ROADSA" "NOBUIL"
-  -descmod ${OTB_DATA_ROOT}/Input/Dempster-Shafer/DSFuzzyModel.xml
-  -out ${TEMP}/cdbTvVectorDataDSValidationOutpout_LI_wr.shp
-  VALID    --compare-ogr 0.0
-  ${OTBAPP_BASELINE_FILES}/cdbTvVectorDataDSValidationOutpout_LI_wr.shp
-  ${TEMP}/cdbTvVectorDataDSValidationOutpout_LI_wr.shp)
-
 if(OTB_USE_OPENCV)
   #----------- TrainRegression TESTS ----------------
   # y = 0.01*x^2 + 1.5*x - 300
diff --git a/Modules/Core/LabelMap/test/CMakeLists.txt b/Modules/Core/LabelMap/test/CMakeLists.txt
index 068325e08e42cce455f0d61cd27a8d1764ede388..be4639ecdd26f58a333f08f6164bb8c54c8b4992 100644
--- a/Modules/Core/LabelMap/test/CMakeLists.txt
+++ b/Modules/Core/LabelMap/test/CMakeLists.txt
@@ -41,8 +41,8 @@ otb_module_target_label(otbLabelMapTestDriver)
 
 otb_add_test(NAME obTvLabelObjectMapVectorizer COMMAND otbLabelMapTestDriver
   otbLabelObjectMapVectorizer
-  ${INPUTDATA}/rcc8_mire1.png
-  rcc8_mire1_label_vectorizer.gml)
+  ${INPUTDATA}/labelImage_UnsignedChar.tif
+  otbLabelObjectMapVectorizerOutput.gml)
 
 otb_add_test(NAME obTvLabelImageToLabelMapWithAdjacencyFilter COMMAND otbLabelMapTestDriver
   --compare-ascii ${NOTOL}
@@ -64,13 +64,13 @@ otb_add_test(NAME obTvKMeansAttributesLabelMapFilter COMMAND otbLabelMapTestDriv
   ${TEMP}/obTvKMeansAttributesLabelMapFilter.txt)
 otb_add_test(NAME obTvLabelMapToSampleListFilter COMMAND otbLabelMapTestDriver
   otbLabelMapToSampleListFilter
-  ${OTB_DATA_ROOT}/Input/rcc8_mire1.png
+  ${OTB_DATA_ROOT}/Input/labelImage_UnsignedChar.tif
   SHAPE::Flusser01 SHAPE::Flusser02 SHAPE::Flusser03 SHAPE::Flusser04
   SHAPE::Flusser05 SHAPE::Flusser06 SHAPE::Flusser07 SHAPE::Flusser08
   SHAPE::Flusser09 SHAPE::Flusser10 SHAPE::Flusser11)
 otb_add_test(NAME obTvLabelMapWithClassLabelToLabeledSampleListFilter COMMAND otbLabelMapTestDriver
   otbLabelMapWithClassLabelToLabeledSampleListFilter
-  ${OTB_DATA_ROOT}/Input/rcc8_mire1.png
+  ${OTB_DATA_ROOT}/Input/labelImage_UnsignedChar.tif
   SHAPE::Flusser01  SHAPE::Flusser02  SHAPE::Flusser03 SHAPE::Flusser04
   SHAPE::Flusser05  SHAPE::Flusser06  SHAPE::Flusser07 SHAPE::Flusser08
   SHAPE::Flusser09 SHAPE::Flusser10  SHAPE::Flusser11)
diff --git a/Modules/Core/LabelMap/test/otbLabelMapWithClassLabelToLabeledSampleListFilter.cxx b/Modules/Core/LabelMap/test/otbLabelMapWithClassLabelToLabeledSampleListFilter.cxx
index 695a24f06d7db8c3dc9d71871ab38b78d4d9f525..31d6b9a066c0e57d9f111e7173699d4d0bd146b6 100644
--- a/Modules/Core/LabelMap/test/otbLabelMapWithClassLabelToLabeledSampleListFilter.cxx
+++ b/Modules/Core/LabelMap/test/otbLabelMapWithClassLabelToLabeledSampleListFilter.cxx
@@ -62,7 +62,7 @@ int otbLabelMapWithClassLabelToLabeledSampleListFilter(int argc, char* argv[])
 
    LabelMapFilterType::Pointer labelMapFilter = LabelMapFilterType::New();
    labelMapFilter->SetInput(lreader->GetOutput());
-   labelMapFilter->SetInputForegroundValue(255);
+   labelMapFilter->SetInputForegroundValue(1);
 
    ShapeLabelMapFilterType::Pointer shapeLabelMapFilter = ShapeLabelMapFilterType::New();
    shapeLabelMapFilter->SetInput(labelMapFilter->GetOutput());
diff --git a/Modules/Core/VectorDataBase/include/otbDataNodeImageFunction.h b/Modules/Core/VectorDataBase/include/otbDataNodeImageFunction.h
deleted file mode 100644
index 4406a107fb9c43269b30bffa577d9e5a73de37c4..0000000000000000000000000000000000000000
--- a/Modules/Core/VectorDataBase/include/otbDataNodeImageFunction.h
+++ /dev/null
@@ -1,212 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbDataNodeImageFunction_h
-#define otbDataNodeImageFunction_h
-
-#include "otbDataNodeFunctionBase.h"
-#include "otbDataNode.h"
-#include "itkContinuousIndex.h"
-#include "itkImageBase.h"
-
-namespace otb
-{
-/** \class DataNodeImageFunction
-  * \brief TODO
-  *
-  *
-  *
-  * \ingroup Functions
-  * \sa NDVIDataNodeFeatureFunction
- *
- * \ingroup OTBVectorDataBase
- */
-
-template <
-class TImage,
-class TOutput,
-class TCoordRep = double,
-class TPrecision = double
->
-class ITK_EXPORT DataNodeImageFunction :
-    public DataNodeFunctionBase<DataNode<TCoordRep,
-                                         TImage::ImageDimension,
-                                         TPrecision>,
-                                TOutput>
-{
-public:
-  /** Dimension underlying input image. */
-  itkStaticConstMacro(ImageDimension, unsigned int,
-                      TImage::ImageDimension);
-
-  /** Standard class typedefs. */
-  typedef DataNodeImageFunction                    Self;
-  typedef DataNodeFunctionBase<DataNode<TCoordRep,
-                                        itkGetStaticConstMacro(ImageDimension),
-                                        TPrecision>,
-                               TOutput>            Superclass;
-  typedef itk::SmartPointer<Self>                  Pointer;
-  typedef itk::SmartPointer<const Self>            ConstPointer;
-
-  /** Run-time type information (and related methods). */
-  itkTypeMacro(DataNodeImageFunction, DataNodeFunctionBase);
-
-  /** Some typedefs. */
-  typedef TImage                                  InputImageType;
-  typedef typename InputImageType::PixelType      InputPixelType;
-  typedef typename InputImageType::ConstPointer   InputImageConstPointer;
-
-  typedef TOutput                                 OutputType;
-
-  /** CoordRepType typedef support. */
-  typedef TCoordRep CoordRepType;
-
-  /** PrecisionType typedef support. */
-  typedef TPrecision PrecisionType;
-
-  /** Index Type. */
-  typedef typename InputImageType::IndexType      IndexType;
-  typedef typename InputImageType::IndexValueType IndexValueType;
-
-  /** ContinuousIndex Type. */
-  typedef itk::ContinuousIndex<CoordRepType, itkGetStaticConstMacro(ImageDimension)>
-                                                  ContinuousIndexType;
-
-  /** DataNode Type */
-  typedef typename Superclass::DataNodeType       DataNodeType;
-
-  /** Point Type */
-  typedef typename DataNodeType::PointType        PointType;
-
-  /** Set the input image.
-   * \warning this method caches BufferedRegion information.
-   * If the BufferedRegion has changed, user must call
-   * SetInputImage again to update cached values. */
-  virtual void SetInputImage( const InputImageType * ptr );
-
-  /** Get the input image. */
-  const InputImageType * GetInputImage() const
-    { return m_Image.GetPointer(); }
-
-  /** Evaluate the function at specified DataNode position.
-   * Subclasses must provide this method. */
-  TOutput Evaluate( const DataNodeType& node ) const override = 0;
-
-  /** Check if an index is inside the image buffer.
-   * we take into account the fact that each voxel has its
-   * center at the integer coordinate and extends half way
-   * to the next integer coordinate.
-   * \warning For efficiency, no validity checking of
-   * the input image is done. */
-  virtual bool IsInsideBuffer( const IndexType & index ) const
-    {
-    for( unsigned int j = 0; j < ImageDimension; ++j )
-      {
-      if( index[j] < m_StartIndex[j] )
-        {
-        return false;
-        }
-      if( index[j] > m_EndIndex[j] )
-        {
-        return false;
-        }
-      }
-    return true;
-    }
-
-  /** Check if a continuous index is inside the image buffer.
-   * \warning For efficiency, no validity checking of
-   * the input image is done. */
-  virtual bool IsInsideBuffer( const ContinuousIndexType & index ) const
-    {
-    for( unsigned int j = 0; j < ImageDimension; ++j )
-      {
-      if( index[j] < m_StartContinuousIndex[j] )
-        {
-        return false;
-        }
-      if( index[j] >= m_EndContinuousIndex[j] )
-       //Comment this instruction after itkv4 migration (correct
-       //usage of centered-pixel coordinates)
-       //if( index[j] > m_EndContinuousIndex[j] )
-       {
-        return false;
-        }
-      }
-    return true;
-    }
-
-  /** Check if a point is inside the image buffer.
-   * \warning For efficiency, no validity checking of
-   * the input image pointer is done. */
-  virtual bool IsInsideBuffer( const PointType & point ) const
-    {
-    ContinuousIndexType index;
-    m_Image->TransformPhysicalPointToContinuousIndex( point, index );
-    return this->IsInsideBuffer( index );
-    }
-
-  /** Convert point to continuous index */
-  void ConvertPointToContinuousIndex( const PointType & point,
-    ContinuousIndexType & cindex ) const
-    {
-    m_Image->TransformPhysicalPointToContinuousIndex( point, cindex );
-    }
-
-  /** Convert continuous index to nearest index. */
-  inline void ConvertContinuousIndexToNearestIndex( const ContinuousIndexType & cindex,
-    IndexType & index ) const
-    {
-    index.CopyWithRound( cindex );
-    }
-
-  /** Set/Get methods */
-  itkGetConstReferenceMacro(StartIndex, IndexType);
-  itkGetConstReferenceMacro(EndIndex, IndexType);
-
-  itkGetConstReferenceMacro(StartContinuousIndex, ContinuousIndexType);
-  itkGetConstReferenceMacro(EndContinuousIndex, ContinuousIndexType);
-
-protected:
-  DataNodeImageFunction();
-  ~DataNodeImageFunction() override {}
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-
-  /** Const pointer to the input image. */
-  InputImageConstPointer  m_Image;
-
-  /** Cache some values for testing if indices are inside buffered region. */
-  IndexType               m_StartIndex;
-  IndexType               m_EndIndex;
-  ContinuousIndexType     m_StartContinuousIndex;
-  ContinuousIndexType     m_EndContinuousIndex;
-
-private:
-  DataNodeImageFunction(const Self&) = delete;
-  void operator=(const Self&) = delete;
-
-};
-
-}
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbDataNodeImageFunction.hxx"
-#endif
-
-#endif
diff --git a/Modules/Core/VectorDataBase/include/otbDataNodeImageFunction.hxx b/Modules/Core/VectorDataBase/include/otbDataNodeImageFunction.hxx
deleted file mode 100644
index b06e770312b5cf63b3bc4b59708aa40c5334e706..0000000000000000000000000000000000000000
--- a/Modules/Core/VectorDataBase/include/otbDataNodeImageFunction.hxx
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbDataNodeImageFunction_hxx
-#define otbDataNodeImageFunction_hxx
-
-#include "otbDataNodeImageFunction.h"
-
-namespace otb
-{
-
-/**
- * Constructor
- */
-template <class TImage, class TOutput, class TCoordRep, class TPrecision>
-DataNodeImageFunction<TImage, TOutput, TCoordRep, TPrecision>
-::DataNodeImageFunction()
-{
-  m_Image = nullptr;
-  m_StartIndex.Fill(0);
-  m_EndIndex.Fill(0);
-  m_StartContinuousIndex.Fill(0.0f);
-  m_EndContinuousIndex.Fill(0.0f);
-}
-
-
-/**
- * Standard "PrintSelf" method
- */
-template <class TImage, class TOutput, class TCoordRep, class TPrecision>
-void
-DataNodeImageFunction<TImage, TOutput, TCoordRep, TPrecision>
-::PrintSelf(
-  std::ostream& os,
-  itk::Indent indent) const
-{
-  Superclass::PrintSelf( os, indent );
-  os << indent << "InputImage: " << m_Image.GetPointer() << std::endl;
-  os << indent << "StartIndex: " << m_StartIndex << std::endl;
-  os << indent << "EndIndex: " << m_EndIndex << std::endl;
-  os << indent << "StartContinuousIndex: " << m_StartContinuousIndex << std::endl;
-  os << indent << "EndContinuousIndex: " << m_EndContinuousIndex << std::endl;
-}
-
-
-/**
- * Initialize by setting the input image
- */
-template <class TImage, class TOutput, class TCoordRep, class TPrecision>
-void
-DataNodeImageFunction<TImage, TOutput, TCoordRep, TPrecision>
-::SetInputImage(
-  const InputImageType * ptr )
-{
-  // set the input image
-  m_Image = ptr;
-
-  if ( ptr )
-    {
-    typename InputImageType::SizeType size = ptr->GetBufferedRegion().GetSize();
-    m_StartIndex = ptr->GetBufferedRegion().GetIndex();
-
-    for ( unsigned int j = 0; j < ImageDimension; ++j )
-      {
-      m_EndIndex[j] = m_StartIndex[j] + static_cast<IndexValueType>( size[j] ) - 1;
-      m_StartContinuousIndex[j] = static_cast<CoordRepType>( m_StartIndex[j] - 0.5 );
-      m_EndContinuousIndex[j]   = static_cast<CoordRepType>( m_EndIndex[j] + 0.5 );
-
-      //Comment these instructions after migration to ITKv4 where there is a correct
-      //usage of centered-pixel coordinates
-      //(ITK_USE_CENTERED_PIXEL_COORDINATES_CONSISTENTLY always ON)
-      //m_StartContinuousIndex[j] = static_cast<CoordRepType>( m_StartIndex[j] );
-      //m_EndContinuousIndex[j]   = static_cast<CoordRepType>( m_EndIndex[j] );
-      }
-    }
-}
-
-
-} // end namespace itk
-
-#endif
diff --git a/Modules/Core/VectorDataBase/include/otbDataNodeVectorDataFunction.h b/Modules/Core/VectorDataBase/include/otbDataNodeVectorDataFunction.h
deleted file mode 100644
index c99f15d0b23334b25ec307b7fcb53e93d764ba26..0000000000000000000000000000000000000000
--- a/Modules/Core/VectorDataBase/include/otbDataNodeVectorDataFunction.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbDataNodeVectorDataFunction_h
-#define otbDataNodeVectorDataFunction_h
-
-#include "otbDataNodeFunctionBase.h"
-#include "otbVectorDataProperties.h"
-
-
-namespace otb
-{
-/** \class DataNodeVectorDataFunction
-  * \brief TODO
-  *
-  *
-  *
-  * \ingroup Functions
-  * \sa
- *
- * \ingroup OTBVectorDataBase
- */
-
-template <
-class TOutput,
-class TCoordRep = double,
-class TPrecision = double
->
-class ITK_EXPORT DataNodeVectorDataFunction :
-    public DataNodeFunctionBase<DataNode<TCoordRep,
-                                         2,
-                                         TPrecision>,
-                                TOutput>
-{
-public:
-   /** Standard class typedefs. */
-  typedef DataNodeVectorDataFunction               Self;
-  typedef DataNodeFunctionBase<DataNode<TCoordRep,
-                                        2,
-                                        TPrecision>,
-                               TOutput>            Superclass;
-  typedef itk::SmartPointer<Self>                  Pointer;
-  typedef itk::SmartPointer<const Self>            ConstPointer;
-
-  /** Run-time type information (and related methods). */
-  itkTypeMacro(DataNodeVetorDataFunction, DataNodeFunctionBase);
-
-  /** Some typedefs. */
-  typedef VectorData<TCoordRep, 2, TPrecision>    VectorDataType;
-  typedef typename VectorDataType::ConstPointer   VectorDataConstPointerType;
-  typedef TOutput                                 OutputType;
-
-  /** CoordRepType typedef support. */
-  typedef TCoordRep CoordRepType;
-
-  /** PrecisionType typedef support. */
-  typedef TPrecision PrecisionType;
-
-  /** DataNode Type */
-  typedef typename Superclass::DataNodeType       DataNodeType;
-
-  /** Point Type */
-  typedef typename DataNodeType::PointType        PointType;
-
-  /** Set the input VetorData. */
-  virtual void SetInputVectorData( const VectorDataType * ptr );
-
-  /** Get the input VectorData. */
-  const VectorDataType * GetInputVectorData() const
-    { return m_VectorData.GetPointer(); }
-
-  /** Evaluate the function at specified DataNode position.
-   * Subclasses must provide this method. */
-  TOutput Evaluate( const DataNodeType& node ) const override = 0;
-
-protected:
-  DataNodeVectorDataFunction();
-  ~DataNodeVectorDataFunction() override {}
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-
-  /** Const pointer to the input VectorData. */
-  VectorDataConstPointerType  m_VectorData;
-
-private:
-  DataNodeVectorDataFunction(const Self&) = delete;
-  void operator=(const Self&) = delete;
-
-};
-
-}
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbDataNodeVectorDataFunction.hxx"
-#endif
-
-#endif
diff --git a/Modules/Core/VectorDataBase/include/otbDataNodeVectorDataFunction.hxx b/Modules/Core/VectorDataBase/include/otbDataNodeVectorDataFunction.hxx
deleted file mode 100644
index 9ca52e1798d94b391825ca5629ba3e37a35dc1d9..0000000000000000000000000000000000000000
--- a/Modules/Core/VectorDataBase/include/otbDataNodeVectorDataFunction.hxx
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbDataNodeVectorDataFunction_hxx
-#define otbDataNodeVectorDataFunction_hxx
-
-#include "otbDataNodeVectorDataFunction.h"
-
-namespace otb
-{
-
-/**
- * Constructor
- */
-template <class TOutput, class TCoordRep, class TPrecision>
-DataNodeVectorDataFunction<TOutput, TCoordRep, TPrecision>
-::DataNodeVectorDataFunction()
-{
-  m_VectorData = nullptr;
-}
-
-
-/**
- * Standard "PrintSelf" method
- */
-template <class TOutput, class TCoordRep, class TPrecision>
-void
-DataNodeVectorDataFunction<TOutput, TCoordRep, TPrecision>
-::PrintSelf(
-  std::ostream& os,
-  itk::Indent indent) const
-{
-  Superclass::PrintSelf( os, indent );
-  os << indent << "VetorData: " << m_VectorData.GetPointer() << std::endl;
-}
-
-
-/**
- * Initialize by setting the input VectorData
- */
-template <class TOutput, class TCoordRep, class TPrecision>
-void
-DataNodeVectorDataFunction<TOutput, TCoordRep, TPrecision>
-::SetInputVectorData(
-  const VectorDataType * ptr )
-{
-  // set the input VectorData
-  m_VectorData = ptr;
-}
-
-} // end namespace otb
-
-#endif
diff --git a/Modules/Core/VectorDataBase/include/otbGISConnectionImplementation.h b/Modules/Core/VectorDataBase/include/otbGISConnectionImplementation.h
deleted file mode 100644
index ba09b76b6d314c30615c420b164e74c0588488b5..0000000000000000000000000000000000000000
--- a/Modules/Core/VectorDataBase/include/otbGISConnectionImplementation.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbGISConnectionImplementation_h
-#define otbGISConnectionImplementation_h
-
-#include "itkDataObject.h"
-#include "itkObjectFactory.h"
-#include <string>
-
-namespace otb
-{
-/** \class GISConnectionImplementation
- * \brief Base class for GIS DB connection implementations
- *
- *
- *
- * \ingroup OTBVectorDataBase
- */
-
-template <class TransactorType>
-class ITK_EXPORT GISConnectionImplementation
-  : public itk::DataObject
-{
-public:
-  /** Standard class typedefs */
-  typedef GISConnectionImplementation   Self;
-  typedef itk::DataObject               Superclass;
-  typedef itk::SmartPointer<Self>       Pointer;
-  typedef itk::SmartPointer<const Self> ConstPointer;
-
-  /** Standard macros */
-  itkNewMacro(Self);
-  itkTypeMacro(GISConnectionImplementation, itk::DataObject);
-
-  /** Acessors */
-  itkGetMacro(Host, std::string);
-  itkSetMacro(Host, std::string);
-
-  itkGetMacro(DBName, std::string);
-  itkSetMacro(DBName, std::string);
-
-  itkGetMacro(User, std::string);
-  itkSetMacro(User, std::string);
-
-  itkGetMacro(Password, std::string);
-  itkSetMacro(Password, std::string);
-
-  itkGetMacro(Port, std::string);
-  itkSetMacro(Port, std::string);
-
-  itkGetMacro(Options, std::string);
-  itkSetMacro(Options, std::string);
-
-  /** Using the connection */
-
-  virtual void ConnectToDB(){}
-
-  virtual void PerformTransaction(const TransactorType& itkNotUsed(theTransaction)) const {}
-
-protected:
-  /** Constructor */
-  GISConnectionImplementation(){};
-  /** Destructor */
-  virtual ~GISConnectionImplementation(){};
-
-private:
-  GISConnectionImplementation(const Self &) = delete;
-  void operator =(const Self&) = delete;
-
-  std::string m_Host;
-  std::string m_DBName;
-  std::string m_User;
-  std::string m_Password;
-  std::string m_Port;
-  std::string m_Options;
-
-};
-} // end namespace otb
-
-#endif
diff --git a/Modules/Detection/ObjectDetection/CMakeLists.txt b/Modules/Detection/ObjectDetection/CMakeLists.txt
deleted file mode 100644
index e43a781cad9f8f9c4566a125e2023eb9444e3b6f..0000000000000000000000000000000000000000
--- a/Modules/Detection/ObjectDetection/CMakeLists.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
-#
-# This file is part of Orfeo Toolbox
-#
-#     https://www.orfeo-toolbox.org/
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-project(OTBObjectDetection)
-otb_module_impl()
diff --git a/Modules/Detection/ObjectDetection/include/otbDescriptorsListSampleGenerator.h b/Modules/Detection/ObjectDetection/include/otbDescriptorsListSampleGenerator.h
deleted file mode 100644
index 6432b507d125bbc7c51e331341c884a5da73a6b3..0000000000000000000000000000000000000000
--- a/Modules/Detection/ObjectDetection/include/otbDescriptorsListSampleGenerator.h
+++ /dev/null
@@ -1,378 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbDescriptorsListSampleGenerator_h
-#define otbDescriptorsListSampleGenerator_h
-
-#include <vector>
-
-#include "itkVariableLengthVector.h"
-#include "itkImageRegion.h"
-#include "itkFunctionBase.h"
-#include "itkListSample.h"
-#include "itkSimpleDataObjectDecorator.h"
-
-#include "otbListSampleSource.h"
-#include "otbVectorData.h"
-#include "otbPersistentImageFilter.h"
-#include "otbPersistentFilterStreamingDecorator.h"
-
-namespace otb
-{
-
-template <class TOutputPrecision>
-class DefaultDescriptorsType
-{
-public:
-  typedef itk::VariableLengthVector<TOutputPrecision> Type;
-};
-
-/** \class PersistentDescriptorsListSampleGenerator
- *  \brief [internal] Helper class for the implementation of DescriptorsListSampleGenerator
- *
- *  This class inherits PersistentImageFilter and provides the Reset/Synthesize functions,
- *  plus the ThreadedGenerateData function implementing the image function evaluation
- *
- * \ingroup OTBObjectDetection
- */
-template <class TInputImage, class TVectorData, class TFunctionType, class TListSample, class TLabel>
-class ITK_EXPORT PersistentDescriptorsListSampleGenerator :
-  public PersistentImageFilter<TInputImage, TInputImage>
-{
-public:
-  /** Standard Self typedef */
-  typedef PersistentDescriptorsListSampleGenerator        Self;
-  typedef PersistentImageFilter<TInputImage, TInputImage> Superclass;
-  typedef itk::SmartPointer<Self>                         Pointer;
-  typedef itk::SmartPointer<const Self>                   ConstPointer;
-
-  /** Method for creation through the object factory. */
-  itkNewMacro(Self);
-
-  /** Runtime information support. */
-  itkTypeMacro(PersistentDescriptorsListSampleGenerator, PersistentImageFilter);
-
-  /** Image related typedefs. */
-  typedef TInputImage                      InputImageType;
-  typedef typename TInputImage::Pointer    InputImagePointer;
-  typedef typename TInputImage::RegionType RegionType;
-  typedef typename TInputImage::SizeType   SizeType;
-  typedef typename TInputImage::IndexType  IndexType;
-  typedef typename TInputImage::PixelType  PixelType;
-
-  itkStaticConstMacro(InputImageDimension, unsigned int,
-                      TInputImage::ImageDimension);
-
-  /** Image related typedefs. */
-  itkStaticConstMacro(ImageDimension, unsigned int,
-                      TInputImage::ImageDimension);
-
-  /** Smart Pointer type to a DataObject. */
-  typedef itk::ProcessObject::DataObjectPointerArraySizeType DataObjectPointerArraySizeType;
-  typedef typename itk::DataObject::Pointer DataObjectPointer;
-
-  /** Input VectorData */
-  typedef TVectorData                                     VectorDataType;
-  typedef typename VectorDataType::Pointer                VectorDataPointerType;
-  typedef typename VectorDataType::DataNodeType           VectorDataNodeType;
-  typedef typename VectorDataType::DataNodePointerType    VectorDataNodePointerType;
-  typedef typename VectorDataType::DataTreeType           VectorDataTreeType;
-  typedef typename VectorDataType::DataTreePointerType    VectorDataTreePointerType;
-  typedef typename VectorDataNodeType::PointType          VectorDataPointType;
-  typedef typename VectorDataNodeType::LineType           VectorDataLineType;
-  typedef typename VectorDataNodeType::PolygonType        VectorDataPolygonType;
-  typedef itk::PreOrderTreeIterator<VectorDataTreeType>   VectorDataTreeIteratorType;
-
-  /** Function type for descriptors extraction */
-  typedef TFunctionType                                   DescriptorsFunctionType;
-  typedef typename DescriptorsFunctionType::Pointer       DescriptorsFunctionPointerType;
-  typedef typename DescriptorsFunctionType::InputType     DescriptorsFunctionPointType;
-
-  typedef itk::ContinuousIndex
-        <typename DescriptorsFunctionPointType::ValueType,
-         itkGetStaticConstMacro(InputImageDimension)>     ContinuousIndexType;
-
-  /** ListSample output */
-  typedef TListSample                                     ListSampleType;
-  typedef typename ListSampleType::Pointer                ListSamplePointerType;
-  typedef typename ListSampleType::MeasurementVectorType  SampleMeasurementVectorType;
-  typedef typename ListSampleType::MeasurementType        SampleMeasurementType;
-
-  /** LabelListSample output */
-  typedef TLabel                                          LabelType;
-  typedef itk::FixedArray<LabelType,1>                    LabelSampleType;
-  typedef itk::Statistics::ListSample<LabelSampleType>    LabelListSampleType;
-  typedef typename LabelListSampleType::Pointer           LabelListSamplePointerType;
-  typedef typename LabelListSampleType::MeasurementVectorType LabelMeasurementVectorType;
-  typedef typename LabelListSampleType::MeasurementType   LabelMeasurementType;
-
-  /** ListSamplePositions output */
-  typedef std::vector<DescriptorsFunctionPointType>               SamplesPositionType;
-  typedef itk::SimpleDataObjectDecorator<SamplesPositionType>     SamplesPositionObjectType;
-  typedef typename SamplesPositionObjectType::Pointer             SamplesPositionObjectPointerType;
-
-  void SetSamplesLocations(VectorDataType * input);
-  VectorDataType * GetSamplesLocations(void);
-
-  /** The function to evaluate */
-  itkSetObjectMacro(DescriptorsFunction,      DescriptorsFunctionType);
-  itkGetObjectMacro(DescriptorsFunction,      DescriptorsFunctionType);
-  itkGetConstObjectMacro(DescriptorsFunction, DescriptorsFunctionType);
-
-  /** Output sample list */
-  ListSampleType*             GetListSample();
-
-  /** Output label list */
-  LabelListSampleType*        GetLabelListSample();
-
-  /** Output sample position list */
-  SamplesPositionType&             GetSamplesPositions();
-  SamplesPositionObjectType*       GetSamplesPositionsObject();
-
-  itkSetMacro( NeighborhoodRadius, unsigned int );
-  itkGetConstReferenceMacro( NeighborhoodRadius, unsigned int );
-
-  /** Make a DataObject of the correct type to be used as the specified
-   * output. */
-  itk::DataObject::Pointer MakeOutput(DataObjectPointerArraySizeType idx) override;
-  using Superclass::MakeOutput;
-
-  void AllocateOutputs() override;
-  void GenerateOutputInformation() override;
-  void Reset(void) override;
-  void Synthetize(void) override;
-
-  void AddInput(itk::DataObject * dataObject) override
-  {
-    Superclass::AddInput(dataObject);
-  }
-
-protected:
-  PersistentDescriptorsListSampleGenerator();
-  ~PersistentDescriptorsListSampleGenerator() override;
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-
-  void GenerateInputRequestedRegion() override;
-
-  void BeforeThreadedGenerateData() override;
-
-  /** Multi-thread version GenerateData. */
-  void  ThreadedGenerateData(const RegionType& outputRegionForThread,
-                             itk::ThreadIdType threadId) override;
-
-private:
-  PersistentDescriptorsListSampleGenerator(const Self &) = delete;
-  void operator =(const Self&) = delete;
-
-  bool IsInsideWithNeighborhoodRadius(const RegionType& region, const ContinuousIndexType &index) const
-    {
-    typedef typename IndexType::IndexValueType IndexValueType;
-    typedef typename ContinuousIndexType::ValueType ContinuousIndexValueType;
-
-    for(unsigned int i=0; i<ImageDimension; ++i)
-      {
-      if( itk::Math::RoundHalfIntegerUp<IndexValueType>(index[i]) < static_cast<IndexValueType>( region.GetIndex(i) ) + static_cast<IndexValueType>(m_NeighborhoodRadius) )
-       //Comment this instruction after itkv4 migration (correct
-       //usage of centered-pixel coordinates)
-       //if( index[i] < static_cast<IndexValueType>( region.GetIndex(i) ) + m_NeighborhoodRadius )
-        {
-        return false;
-        }
-      // bound is the last valid pixel location
-      const ContinuousIndexValueType bound = static_cast<ContinuousIndexValueType>(
-          region.GetIndex(i) + region.GetSize(i) - 0.5);
-      //Comment this instruction after itkv4 migration (correct
-      //usage of centered-pixel coordinates)
-      //const ContinuousIndexValueType bound = static_cast<ContinuousIndexValueType>(
-      //    region.GetIndex(i) + static_cast<IndexValueType>(region.GetSize(i)) - 1);
-
-      if( index[i] > bound - m_NeighborhoodRadius )
-        {
-        return false;
-        }
-      }
-    return true;
-    }
-  typedef std::vector<ListSamplePointerType>      ListSampleArray;
-  typedef std::vector<LabelListSamplePointerType> LabelListSampleArray;
-  typedef std::vector<SamplesPositionType>        SamplesPositionArray;
-
-  ListSampleArray                m_ThreadListSample;
-  LabelListSampleArray           m_ThreadLabelListSample;
-  SamplesPositionArray           m_ThreadSamplesPosition;
-
-  DescriptorsFunctionPointerType m_DescriptorsFunction;
-
-  unsigned int m_NeighborhoodRadius;
-};
-
-
-/** \class DescriptorsListSampleGenerator
- *  \brief This class generates a ListSample by computing local descriptors
- *  on an image at specified positions.
- *
- *  Given an image (by SetInputImage()) and a vector data containing points (by SetSamplesLocations()),
- *  this class evaluates an ImageFunction (set by SetDescriptorsFunction()) at each point of the vector data
- *  over the image.
- *  It generates a ListSample containing the descriptors values for each sample,
- *  along with a label ListSample containing the label associated with each sample.
- *  The label is read from the vector data using the data field "Class", read as an int
- *
- *  This class is streaming capable and multithreaded
- *
- * \ingroup OTBObjectDetection
- */
-template <class TInputImage, class TVectorData, class TListSample, class TLabel, class TOutputPrecision = double, class TCoordRep = double>
-class ITK_EXPORT DescriptorsListSampleGenerator :
-    public PersistentFilterStreamingDecorator<
-              PersistentDescriptorsListSampleGenerator< TInputImage,
-                                                        TVectorData,
-                                                        itk::FunctionBase< itk::Point<TCoordRep, 2>,
-                                                                           typename DefaultDescriptorsType<TOutputPrecision>::Type >,
-                                                        TListSample,
-                                                        TLabel > >
-{
-public:
-    /** Standard Self typedef */
-    typedef DescriptorsListSampleGenerator      Self;
-    typedef PersistentFilterStreamingDecorator
-              < PersistentDescriptorsListSampleGenerator
-                  <TInputImage,
-                   TVectorData,
-                   itk::FunctionBase< itk::Point<TCoordRep, 2>, typename DefaultDescriptorsType<TOutputPrecision>::Type >,
-                   TListSample,
-                   TLabel> >          Superclass;
-    typedef itk::SmartPointer<Self>             Pointer;
-    typedef itk::SmartPointer<const Self>       ConstPointer;
-
-    /** Type macro */
-    itkNewMacro(Self);
-
-    /** Creation through object factory macro */
-    itkTypeMacro(DescriptorsListSampleGenerator, PersistentFilterStreamingDecorator);
-
-    typedef TInputImage                              InputImageType;
-    typedef TVectorData                              InputVectorDataType;
-    typedef TListSample                              ListSampleType;
-    typedef TCoordRep                                CoordRepType;
-    typedef TOutputPrecision                         OutputPrecision;
-
-    /** The coordinates used when evaluating function */
-    typedef itk::Point<TCoordRep, 2> PointType;
-
-    /** The return value of the function */
-    typedef typename DefaultDescriptorsType<TOutputPrecision>::Type DescriptorType;
-
-    /** The function evaluated on the input image at locations specified by the vector data */
-    typedef itk::FunctionBase<PointType, DescriptorType> DescriptorsFunctionType;
-    typedef typename DescriptorsFunctionType::Pointer    DescriptorsFunctionPointerType;
-
-    typedef typename Superclass::FilterType                           PersistentFilterType;
-    typedef typename PersistentFilterType::LabelListSampleType        LabelListSampleType;
-    typedef typename PersistentFilterType::SamplesPositionObjectType  SamplesPositionObjectType;
-    typedef typename PersistentFilterType::SamplesPositionType        SamplesPositionType;
-
-
-    /** Input image to extract feature */
-    void SetInputImage(InputImageType * input)
-    {
-      this->GetFilter()->SetInput(input);
-    }
-
-    /** Input image to extract feature */
-    InputImageType * GetInputImage()
-    {
-      return this->GetFilter()->GetInput();
-    }
-
-    void AddInput(itk::DataObject * dataObject) override
-      {
-        this->GetFilter()->AddInput(dataObject);
-      }
-
-    /** Sample locations as a VectorData of points. The label is in the ClassKey feature */
-    void SetSamplesLocations(InputVectorDataType * input)
-    {
-      this->GetFilter()->SetSamplesLocations(input);
-    }
-
-    /** Sample locations as a VectorData of points. The label is in the ClassKey feature  */
-    InputImageType * GetSamplesLocations()
-    {
-      return this->GetFilter()->GetSamplesLocations();
-    }
-
-    /** The function to evaluate */
-    void SetDescriptorsFunction(DescriptorsFunctionType * input)
-    {
-      this->GetFilter()->SetDescriptorsFunction(input);
-    }
-
-    /** The function to evaluate */
-    DescriptorsFunctionType * GetDescriptorsFunction()
-    {
-      return this->GetFilter()->GetDescriptorsFunction();
-    }
-
-    /** Final sample list */
-    ListSampleType*       GetListSample()
-    {
-      return this->GetFilter()->GetListSample();
-    }
-
-    /** Final label list */
-    LabelListSampleType*        GetLabelListSample()
-    {
-      return this->GetFilter()->GetLabelListSample();
-    }
-
-    /** Final label list */
-    SamplesPositionType&        GetSamplesPositions()
-    {
-      return this->GetFilter()->GetSamplesPositions();
-    }
-
-    SamplesPositionObjectType*  GetSamplesPositionsObject()
-    {
-      return this->GetFilter()->GetSamplesPositionsObject();
-    }
-
-    otbSetObjectMemberMacro(Filter, NeighborhoodRadius, unsigned int);
-    otbGetObjectMemberMacro(Filter, NeighborhoodRadius, unsigned int);
-
-  protected:
-    /** Constructor */
-    DescriptorsListSampleGenerator();
-
-    /** Destructor */
-    ~DescriptorsListSampleGenerator() override;
-
-  private:
-    DescriptorsListSampleGenerator(const Self &) = delete;
-    void operator =(const Self&) = delete;
-};
-
-} // end namespace otb
-
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbDescriptorsListSampleGenerator.hxx"
-#endif
-
-#endif
diff --git a/Modules/Detection/ObjectDetection/include/otbDescriptorsListSampleGenerator.hxx b/Modules/Detection/ObjectDetection/include/otbDescriptorsListSampleGenerator.hxx
deleted file mode 100644
index 7fb7b6f55ec2d70ed30d592b63fba40da9513e0a..0000000000000000000000000000000000000000
--- a/Modules/Detection/ObjectDetection/include/otbDescriptorsListSampleGenerator.hxx
+++ /dev/null
@@ -1,361 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbDescriptorsListSampleGenerator_hxx
-#define otbDescriptorsListSampleGenerator_hxx
-
-#include "otbDescriptorsListSampleGenerator.h"
-
-#include "itkContinuousIndex.h"
-
-namespace otb
-{
-
-template <class TInputImage, class TVectorData, class TFunctionType, class TListSample, class TLabelListSample>
-PersistentDescriptorsListSampleGenerator<TInputImage, TVectorData, TFunctionType, TListSample, TLabelListSample>
-::PersistentDescriptorsListSampleGenerator()
-  : m_NeighborhoodRadius(0)
-{
-  // Need 2 inputs : a vector image and a vectordata
-  this->SetNumberOfRequiredInputs(2);
-
-  // Have 4 outputs : the image created by Superclass,
-  // the sample list, the label sample list, the positions of the samples
-  this->SetNumberOfRequiredOutputs(3);
-  this->itk::ProcessObject::SetNthOutput(1, this->MakeOutput(1).GetPointer());
-  this->itk::ProcessObject::SetNthOutput(2, this->MakeOutput(2).GetPointer());
-  this->itk::ProcessObject::SetNthOutput(3, this->MakeOutput(3).GetPointer());
-}
-
-template <class TInputImage, class TVectorData, class TFunctionType, class TListSample, class TLabelListSample>
-PersistentDescriptorsListSampleGenerator<TInputImage, TVectorData, TFunctionType, TListSample, TLabelListSample>
-::~PersistentDescriptorsListSampleGenerator()
-{
-}
-
-template <class TInputImage, class TVectorData, class TFunctionType, class TListSample, class TLabelListSample>
-void
-PersistentDescriptorsListSampleGenerator<TInputImage, TVectorData, TFunctionType, TListSample, TLabelListSample>
-::AllocateOutputs()
-{
-  // This is commented to prevent the streaming of the whole image for the first stream strip
-  // It shall not cause any problem because the output image of this filter is not intended to be used.
-  //InputImagePointer image = const_cast< TInputImage * >( this->GetInput() );
-  //this->GraftOutput( image );
-  // Nothing that needs to be allocated for the remaining outputs
-}
-
-template <class TInputImage, class TVectorData, class TFunctionType, class TListSample, class TLabelListSample>
-void
-PersistentDescriptorsListSampleGenerator<TInputImage, TVectorData, TFunctionType, TListSample, TLabelListSample>
-::GenerateOutputInformation()
-{
-  Superclass::GenerateOutputInformation();
-  if (this->GetInput())
-    {
-    this->GetOutput()->CopyInformation(this->GetInput());
-    this->GetOutput()->SetLargestPossibleRegion(this->GetInput()->GetLargestPossibleRegion());
-
-    if (this->GetOutput()->GetRequestedRegion().GetNumberOfPixels() == 0)
-      {
-      this->GetOutput()->SetRequestedRegion(this->GetOutput()->GetLargestPossibleRegion());
-      }
-    }
-}
-
-template <class TInputImage, class TVectorData, class TFunctionType, class TListSample, class TLabelListSample>
-void
-PersistentDescriptorsListSampleGenerator<TInputImage, TVectorData, TFunctionType, TListSample, TLabelListSample>
-::SetSamplesLocations(VectorDataType* location)
-{
-  this->SetNthInput(1, location);
-}
-
-template <class TInputImage, class TVectorData, class TFunctionType, class TListSample, class TLabelListSample>
-typename PersistentDescriptorsListSampleGenerator<TInputImage, TVectorData, TFunctionType, TListSample, TLabelListSample>::VectorDataType*
-PersistentDescriptorsListSampleGenerator<TInputImage, TVectorData, TFunctionType, TListSample, TLabelListSample>
-::GetSamplesLocations()
-{
-
-  return static_cast<VectorDataType*>(this->itk::ProcessObject::GetInput(1));
-}
-
-template <class TInputImage, class TVectorData, class TFunctionType, class TListSample, class TLabelListSample>
-typename PersistentDescriptorsListSampleGenerator<TInputImage, TVectorData, TFunctionType, TListSample, TLabelListSample>::ListSampleType*
-PersistentDescriptorsListSampleGenerator<TInputImage, TVectorData, TFunctionType, TListSample, TLabelListSample>
-::GetListSample()
-{
-  return dynamic_cast<ListSampleType*>(this->itk::ProcessObject::GetOutput(1));
-}
-
-template <class TInputImage, class TVectorData, class TFunctionType, class TListSample, class TLabelListSample>
-typename PersistentDescriptorsListSampleGenerator<TInputImage, TVectorData, TFunctionType, TListSample, TLabelListSample>::LabelListSampleType*
-PersistentDescriptorsListSampleGenerator<TInputImage, TVectorData, TFunctionType, TListSample, TLabelListSample>
-::GetLabelListSample()
-{
-  return dynamic_cast<LabelListSampleType*>( this->itk::ProcessObject::GetOutput(2) );
-}
-
-
-template <class TInputImage, class TVectorData, class TFunctionType, class TListSample, class TLabelListSample>
-typename PersistentDescriptorsListSampleGenerator<TInputImage, TVectorData, TFunctionType, TListSample, TLabelListSample>::SamplesPositionType&
-PersistentDescriptorsListSampleGenerator<TInputImage, TVectorData, TFunctionType, TListSample, TLabelListSample>
-::GetSamplesPositions()
-{
-  return this->GetSamplesPositionsObject()->Get();
-}
-
-template <class TInputImage, class TVectorData, class TFunctionType, class TListSample, class TLabelListSample>
-typename PersistentDescriptorsListSampleGenerator<TInputImage, TVectorData, TFunctionType, TListSample, TLabelListSample>::SamplesPositionObjectType*
-PersistentDescriptorsListSampleGenerator<TInputImage, TVectorData, TFunctionType, TListSample, TLabelListSample>
-::GetSamplesPositionsObject()
-{
-  return dynamic_cast<SamplesPositionObjectType*>(this->itk::ProcessObject::GetOutput(3));
-}
-
-template <class TInputImage, class TVectorData, class TFunctionType, class TListSample, class TLabelListSample>
-itk::DataObject::Pointer
-PersistentDescriptorsListSampleGenerator<TInputImage, TVectorData, TFunctionType, TListSample, TLabelListSample>
-::MakeOutput(DataObjectPointerArraySizeType idx)
-{
-  itk::DataObject::Pointer output;
-  switch (idx)
-    {
-    case 0:
-      output = static_cast<itk::DataObject*>(InputImageType::New().GetPointer());
-      break;
-    case 1:
-      {
-      ListSamplePointerType listSample = ListSampleType::New();
-      output = static_cast<itk::DataObject*>(listSample.GetPointer());
-      break;
-      }
-    case 2:
-      {
-      LabelListSamplePointerType labelListSample = LabelListSampleType::New();
-      output = static_cast<itk::DataObject*>(labelListSample.GetPointer());
-      break;
-      }
-    case 3:
-      {
-      SamplesPositionObjectPointerType samplesPositions = SamplesPositionObjectType::New();
-      output = static_cast<itk::DataObject*>(samplesPositions.GetPointer());
-      break;
-      }
-    default:
-      output = static_cast<itk::DataObject*>(InputImageType::New().GetPointer());
-      break;
-    }
-  return output;
-}
-
-template <class TInputImage, class TVectorData, class TFunctionType, class TListSample, class TLabelListSample>
-void
-PersistentDescriptorsListSampleGenerator<TInputImage, TVectorData, TFunctionType, TListSample, TLabelListSample>
-::Reset()
-{
-  m_ThreadListSample = ListSampleArray(this->GetNumberOfThreads());
-  for (unsigned int i = 0; i < this->GetNumberOfThreads(); ++i)
-    {
-    m_ThreadListSample[i] = ListSampleType::New();
-    }
-
-  m_ThreadLabelListSample = LabelListSampleArray(this->GetNumberOfThreads());
-  for (unsigned int i = 0; i < this->GetNumberOfThreads(); ++i)
-    {
-    m_ThreadLabelListSample[i] = LabelListSampleType::New();
-    }
-
-  m_ThreadSamplesPosition = SamplesPositionArray(this->GetNumberOfThreads());
-
-  this->GetListSample()->Clear();
-  this->GetLabelListSample()->Clear();
-  this->GetSamplesPositions().clear();
-}
-
-template <class TInputImage, class TVectorData, class TFunctionType, class TListSample, class TLabelListSample>
-void
-PersistentDescriptorsListSampleGenerator<TInputImage, TVectorData, TFunctionType, TListSample, TLabelListSample>
-::Synthetize()
-{
-  // Merge the ListSample from all the threads
-  ListSampleType* listSample = this->GetListSample();
-  LabelListSampleType* labelListSample = this->GetLabelListSample();
-  SamplesPositionType& samplesPosition = this->GetSamplesPositions();
-  VectorDataPointType ref;
-
-  // Get the output list measurement vector sample sizes once
-  listSample->SetMeasurementVectorSize(m_ThreadListSample[0]->GetMeasurementVectorSize());
-  labelListSample->SetMeasurementVectorSize(m_ThreadLabelListSample[0]->GetMeasurementVectorSize());
-
-  // Copy the first thread elements into lists
-  ListSampleType* threadListSample = m_ThreadListSample[0];
-  LabelListSampleType* threadLabelListSample = m_ThreadLabelListSample[0];
-  SamplesPositionType& threadSamplesPosition = m_ThreadSamplesPosition[0];
-  for (unsigned int i = 0; i < threadListSample->Size(); ++i)
-    {
-    listSample->PushBack( threadListSample->GetMeasurementVector(i) );
-    labelListSample->PushBack( threadLabelListSample->GetMeasurementVector(i) );
-    samplesPosition.push_back( threadSamplesPosition[i] );
-    }
-
-  // Add the other thread element checking if the point dosn't already exist
-  for (itk::ThreadIdType threadId = 1; threadId < this->GetNumberOfThreads(); ++threadId )
-    {
-    threadListSample = m_ThreadListSample[threadId];
-    threadLabelListSample = m_ThreadLabelListSample[threadId];
-    threadSamplesPosition = m_ThreadSamplesPosition[threadId];
-
-    for (unsigned int i = 0; i < threadListSample->Size(); ++i)
-      {
-        const DescriptorsFunctionPointType & curSamplesPosition = threadSamplesPosition[i];
-        if( std::find(samplesPosition.begin(), samplesPosition.end(), curSamplesPosition) == samplesPosition.end() )
-          {
-            listSample->PushBack( threadListSample->GetMeasurementVector(i) );
-            labelListSample->PushBack( threadLabelListSample->GetMeasurementVector(i) );
-            samplesPosition.push_back( curSamplesPosition );
-          }
-      }
-    }
-}
-
-template <class TInputImage, class TVectorData, class TFunctionType, class TListSample, class TLabelListSample>
-void
-PersistentDescriptorsListSampleGenerator<TInputImage, TVectorData, TFunctionType, TListSample, TLabelListSample>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-}
-
-template <class TInputImage, class TVectorData, class TFunctionType, class TListSample, class TLabelListSample>
-void
-PersistentDescriptorsListSampleGenerator<TInputImage, TVectorData, TFunctionType, TListSample, TLabelListSample>
-::GenerateInputRequestedRegion()
-{
-  Superclass::GenerateInputRequestedRegion();
-
-  // get pointers to the input and output
-  typename Superclass::InputImagePointer inputPtr =
-    const_cast< TInputImage * >( this->GetInput() );
-  typename Superclass::OutputImagePointer outputPtr = this->GetOutput();
-
-  if ( !inputPtr || !outputPtr )
-    {
-    return;
-    }
-
-  // get a copy of the input requested region (should equal the output
-  // requested region)
-  typename TInputImage::RegionType inputRequestedRegion;
-  inputRequestedRegion = inputPtr->GetRequestedRegion();
-
-  // pad the input requested region by the operator radius
-  inputRequestedRegion.PadByRadius( m_NeighborhoodRadius + 5 );
-
-  // crop the input requested region at the input's largest possible region
-  if ( inputRequestedRegion.Crop(inputPtr->GetLargestPossibleRegion()) )
-    {
-    inputPtr->SetRequestedRegion( inputRequestedRegion );
-    return;
-    }
-  else
-    {
-    // Couldn't crop the region (requested region is outside the largest
-    // possible region).  Throw an exception.
-
-    // store what we tried to request (prior to trying to crop)
-    inputPtr->SetRequestedRegion( inputRequestedRegion );
-    }
-}
-
-template <class TInputImage, class TVectorData, class TFunctionType, class TListSample, class TLabelListSample>
-void
-PersistentDescriptorsListSampleGenerator<TInputImage, TVectorData, TFunctionType, TListSample, TLabelListSample>
-::BeforeThreadedGenerateData()
-{}
-
-
-template <class TInputImage, class TVectorData, class TFunctionType, class TListSample, class TLabelListSample>
-void
-PersistentDescriptorsListSampleGenerator<TInputImage, TVectorData, TFunctionType, TListSample, TLabelListSample>
-::ThreadedGenerateData(const RegionType&  outputRegionForThread,
-                       itk::ThreadIdType threadId)
-{
-  ListSampleType* listSample = m_ThreadListSample[threadId];
-  LabelListSampleType* labelListSample = m_ThreadLabelListSample[threadId];
-  SamplesPositionType& samplesPosition = m_ThreadSamplesPosition[threadId];
-
-  VectorDataTreeIteratorType vectorDataIt(this->GetSamplesLocations()->GetDataTree());
-  bool isInitialized = false;
-
-  for (vectorDataIt.GoToBegin(); !vectorDataIt.IsAtEnd(); ++vectorDataIt)
-    {
-    if (vectorDataIt.Get()->IsPointFeature())
-      {
-      VectorDataPointType point = vectorDataIt.Get()->GetPoint();
-      ContinuousIndexType cidx;
-      this->GetInput()->TransformPhysicalPointToContinuousIndex(point, cidx);
-
-      RegionType paddedRegion = outputRegionForThread;
-      paddedRegion.PadByRadius(m_NeighborhoodRadius);
-      if (this->IsInsideWithNeighborhoodRadius(paddedRegion, cidx))
-        {
-        // Set the Measurement Vector Size of the samplelists, once
-        if(!isInitialized)
-          {
-          // output list sample
-          listSample->SetMeasurementVectorSize(m_DescriptorsFunction->Evaluate(point).Size());
-          labelListSample->SetMeasurementVectorSize(LabelMeasurementVectorType::Length);
-          isInitialized = true;
-          }
-
-        SampleMeasurementVectorType sample(m_DescriptorsFunction->Evaluate(point));
-        listSample->PushBack( sample );
-
-        LabelMeasurementVectorType label;
-        label[0] = static_cast<LabelMeasurementType>(vectorDataIt.Get()->GetFieldAsInt("Class"));
-        labelListSample->PushBack( label );
-
-        samplesPosition.push_back(point);
-        }
-      }
-    }
-}
-
-
-template <class TInputImage, class TVectorData, class TListSample, class TLabelListSample, class TOutputPrecision, class TCoordRep>
-DescriptorsListSampleGenerator<TInputImage, TVectorData, TListSample, TLabelListSample, TOutputPrecision, TCoordRep>
-::DescriptorsListSampleGenerator()
-{
-
-
-}
-
-template <class TInputImage, class TVectorData, class TListSample, class TLabelListSample, class TOutputPrecision, class TCoordRep>
-DescriptorsListSampleGenerator<TInputImage, TVectorData, TListSample, TLabelListSample, TOutputPrecision, TCoordRep>
-::~DescriptorsListSampleGenerator()
-{
-
-}
-
-
-} // end namespace otb
-
-#endif
diff --git a/Modules/Detection/ObjectDetection/include/otbFlusserMomentsIFFactory.h b/Modules/Detection/ObjectDetection/include/otbFlusserMomentsIFFactory.h
deleted file mode 100644
index f4c79f003f9b7a1c7e5c3841720e9b9979bac03e..0000000000000000000000000000000000000000
--- a/Modules/Detection/ObjectDetection/include/otbFlusserMomentsIFFactory.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbFlusserMomentsIFFactory_h
-#define otbFlusserMomentsIFFactory_h
-
-#include "itkLightObject.h"
-
-#include "otbMetaImageFunction.h"
-#include "itkDataObject.h"
-#include "otbImage.h"
-#include "otbImageFunctionAdaptor.h"
-#include "otbFlusserMomentsImageFunction.h"
-
-
-namespace otb
-{
-/** \class FlusserMomentsFFactory
- *  \brief add a FlusserMoments image function to a
- *  MetaImageFunction
- *
- *  This class aims at adding an adapted
- *  FlusserMomentsImageFunction to an existing
- *  MetaImageFunction through the method Create.
- *
- *
- * \ingroup OTBObjectDetection
- */
-
-template <class TImageType, class TCoordRep = double, class TPrecision = double>
-class ITK_EXPORT FlusserMomentsIFFactory :
-    public itk::LightObject
-{
-public:
-  /** Standard class typedefs. */
-  typedef FlusserMomentsIFFactory                                         Self;
-  typedef itk::LightObject                                                Superclass;
-  typedef itk::SmartPointer<Self>                                         Pointer;
-  typedef itk::SmartPointer<const Self>                                   ConstPointer;
-
-  // New macro
-  itkNewMacro(Self);
-
-  // RTTI typeinfo
-  itkTypeMacro(FlusserMomentsIFFactory, itk::LightObject);
-
-  // Input and output typedef
-  typedef TImageType              InputImageType;
-  typedef TCoordRep               CoordRepType;
-  typedef TPrecision              PrecisionType;
-
-  // Other typedef
-  typedef typename MetaImageFunction<TPrecision>::Pointer  MetaImageFunctionPointerType;
-  typedef typename std::vector<itk::DataObject::Pointer>   DataObjectContainerType;
-  typedef typename std::vector<PrecisionType>         ParamContainerType;
-  typedef FlusserMomentsImageFunction<InputImageType, CoordRepType>
-                                                      FlusserMomentsIF;
-  typedef ImageFunctionAdaptor<FlusserMomentsIF, TPrecision>
-                                                      AdaptedFlusserMomentsIF;
-
-  void Create(InputImageType * image,
-              ParamContainerType param,
-              MetaImageFunctionPointerType metaIF,
-              DataObjectContainerType * container);
-
-protected:
-  FlusserMomentsIFFactory(){}
-  ~FlusserMomentsIFFactory() override{}
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-
-private:
-  FlusserMomentsIFFactory(const Self& ) = delete;
-  void operator=(const Self& ) = delete;
-
-};
-
-} // End namespace otb
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbFlusserMomentsIFFactory.hxx"
-#endif
-
-#endif
diff --git a/Modules/Detection/ObjectDetection/include/otbFlusserMomentsIFFactory.hxx b/Modules/Detection/ObjectDetection/include/otbFlusserMomentsIFFactory.hxx
deleted file mode 100644
index 6aa08394d2145baf8474c072587f9b2757430419..0000000000000000000000000000000000000000
--- a/Modules/Detection/ObjectDetection/include/otbFlusserMomentsIFFactory.hxx
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbFlusserMomentsIFFactory_hxx
-#define otbFlusserMomentsIFFactory_hxx
-
-#include "otbFlusserMomentsIFFactory.h"
-
-
-namespace otb
-{
-template <class TImageType, class TCoordRep, class TPrecision>
-void
-FlusserMomentsIFFactory<TImageType, TCoordRep, TPrecision>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-}
-
-template <class TImageType, class TCoordRep, class TPrecision>
-void
-FlusserMomentsIFFactory<TImageType, TCoordRep, TPrecision>
-::Create(InputImageType * image,
-         ParamContainerType param,
-         MetaImageFunctionPointerType metaIF,
-         DataObjectContainerType * container)
-{
-  typename AdaptedFlusserMomentsIF::Pointer function = AdaptedFlusserMomentsIF::New();
-
-  function->SetInputImage(image);
-  function->GetInternalImageFunction()->SetNeighborhoodRadius(param[0]);
-
-  metaIF->AddFunction(function);
-  container->push_back(image);
-}
-
-}//end namespace
-#endif
diff --git a/Modules/Detection/ObjectDetection/include/otbFourierMellinDescriptorsIFFactory.h b/Modules/Detection/ObjectDetection/include/otbFourierMellinDescriptorsIFFactory.h
deleted file mode 100644
index e89dbcf376b2d11fc590b07ce0012e6045c35cab..0000000000000000000000000000000000000000
--- a/Modules/Detection/ObjectDetection/include/otbFourierMellinDescriptorsIFFactory.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbFourierMellinDescriptorsIFFactory_h
-#define otbFourierMellinDescriptorsIFFactory_h
-
-#include "itkLightObject.h"
-
-#include "otbMetaImageFunction.h"
-#include "itkDataObject.h"
-#include "otbImageFunctionAdaptor.h"
-#include "otbFourierMellinDescriptorsImageFunction.h"
-
-
-namespace otb
-{
-/** \class FourierMellinDescriptorsFFactory
- *  \brief add a FourierMellinDescriptors image function to a
- *  MetaImageFunction
- *
- *  This class aims at adding an adapted
- *  FourierMellinDescriptorsImageFunction to an existing
- *  MetaImageFunction through the method Create.
- *
- *
- * \ingroup OTBObjectDetection
- */
-
-template <class TImageType, class TCoordRep = double, class TPrecision = double>
-class ITK_EXPORT FourierMellinDescriptorsIFFactory :
-    public itk::LightObject
-{
-public:
-  /** Standard class typedefs. */
-  typedef FourierMellinDescriptorsIFFactory                               Self;
-  typedef itk::LightObject                                                Superclass;
-  typedef itk::SmartPointer<Self>                                         Pointer;
-  typedef itk::SmartPointer<const Self>                                   ConstPointer;
-
-  // New macro
-  itkNewMacro(Self);
-
-  // RTTI typeinfo
-  itkTypeMacro(FourierMellinDescriptorsIFFactory, itk::LightObject);
-
-  // Input and output typedef
-  typedef TImageType              InputImageType;
-  typedef TCoordRep               CoordRepType;
-  typedef TPrecision              PrecisionType;
-
-  // Other typedef
-  typedef typename MetaImageFunction<TPrecision>::Pointer  MetaImageFunctionPointerType;
-  typedef typename std::vector<itk::DataObject::Pointer>   DataObjectContainerType;
-  typedef typename std::vector<PrecisionType>         ParamContainerType;
-  typedef FourierMellinDescriptorsImageFunction<InputImageType, CoordRepType>
-                                                      FourierMellinDescriptorsIF;
-  typedef ImageFunctionAdaptor<FourierMellinDescriptorsIF, TPrecision>
-                                                      AdaptedFourierMellinDescriptorsIF;
-
-  void Create(InputImageType * image,
-              ParamContainerType param,
-              MetaImageFunctionPointerType metaIF,
-              DataObjectContainerType * container);
-
-protected:
-  FourierMellinDescriptorsIFFactory(){}
-  ~FourierMellinDescriptorsIFFactory() override{}
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-
-private:
-  FourierMellinDescriptorsIFFactory(const Self& ) = delete;
-  void operator=(const Self& ) = delete;
-
-};
-
-} // End namespace otb
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbFourierMellinDescriptorsIFFactory.hxx"
-#endif
-
-#endif
diff --git a/Modules/Detection/ObjectDetection/include/otbFourierMellinDescriptorsIFFactory.hxx b/Modules/Detection/ObjectDetection/include/otbFourierMellinDescriptorsIFFactory.hxx
deleted file mode 100644
index bb19f36cf7a608203ca02e2fffd12a8bbb729951..0000000000000000000000000000000000000000
--- a/Modules/Detection/ObjectDetection/include/otbFourierMellinDescriptorsIFFactory.hxx
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbFourierMellinDescriptorsIFFactory_hxx
-#define otbFourierMellinDescriptorsIFFactory_hxx
-
-#include "otbFourierMellinDescriptorsIFFactory.h"
-
-
-namespace otb
-{
-template <class TImageType, class TCoordRep, class TPrecision>
-void
-FourierMellinDescriptorsIFFactory<TImageType, TCoordRep, TPrecision>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-}
-
-template <class TImageType, class TCoordRep, class TPrecision>
-void
-FourierMellinDescriptorsIFFactory<TImageType, TCoordRep, TPrecision>
-::Create(InputImageType * image,
-         ParamContainerType param,
-         MetaImageFunctionPointerType metaIF,
-         DataObjectContainerType * container)
-{
-  typename AdaptedFourierMellinDescriptorsIF::Pointer function = AdaptedFourierMellinDescriptorsIF::New();
-
-  function->SetInputImage(image);
-  function->GetInternalImageFunction()->SetNeighborhoodRadius(param[0]);
-  function->GetInternalImageFunction()->SetPmax(param[1]);
-  function->GetInternalImageFunction()->SetQmax(param[2]);
-
-  metaIF->AddFunction(function);
-  container->push_back(image);
-}
-
-}//end namespace
-#endif
diff --git a/Modules/Detection/ObjectDetection/include/otbHaralickTexturesIFFactory.h b/Modules/Detection/ObjectDetection/include/otbHaralickTexturesIFFactory.h
deleted file mode 100644
index b00367a73b0b655ddfc57f2305cc15e18922636e..0000000000000000000000000000000000000000
--- a/Modules/Detection/ObjectDetection/include/otbHaralickTexturesIFFactory.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbHaralickTexturesIFFactory_h
-#define otbHaralickTexturesIFFactory_h
-
-#include "itkLightObject.h"
-
-#include "otbMetaImageFunction.h"
-#include "itkDataObject.h"
-#include "otbImage.h"
-#include "otbImageFunctionAdaptor.h"
-#include "otbHaralickTexturesImageFunction.h"
-
-
-namespace otb
-{
-/** \class HaralickTexturesFFactory
- *  \brief add a HaralickTextures image function to a
- *  MetaImageFunction
- *
- *  This class aims at adding an adapted
- *  HaralickTexturesImageFunction to an existing
- *  MetaImageFunction through the method Create.
- *
- *
- * \ingroup OTBObjectDetection
- */
-
-template <class TImageType, class TCoordRep = double, class TPrecision = double>
-class ITK_EXPORT HaralickTexturesIFFactory :
-    public itk::LightObject
-{
-public:
-  /** Standard class typedefs. */
-  typedef HaralickTexturesIFFactory                                       Self;
-  typedef itk::LightObject                                                Superclass;
-  typedef itk::SmartPointer<Self>                                         Pointer;
-  typedef itk::SmartPointer<const Self>                                   ConstPointer;
-
-  // New macro
-  itkNewMacro(Self);
-
-  // RTTI typeinfo
-  itkTypeMacro(haralickTexturesIFFactory, itk::LightObject);
-
-  // Input and output typedef
-  typedef TImageType              InputImageType;
-  typedef TCoordRep               CoordRepType;
-  typedef TPrecision              PrecisionType;
-
-  // Other typedef
-  typedef typename MetaImageFunction<TPrecision>::Pointer  MetaImageFunctionPointerType;
-  typedef typename std::vector<itk::DataObject::Pointer>   DataObjectContainerType;
-  typedef typename std::vector<PrecisionType>              ParamContainerType;
-  typedef HaralickTexturesImageFunction<InputImageType, CoordRepType>
-                                                           HaralickTexturesIF;
-  typedef typename HaralickTexturesIF::OffsetType          OffsetType;
-  typedef ImageFunctionAdaptor<HaralickTexturesIF, TPrecision>
-                                                           AdaptedHaralickTexturesIF;
-
-  void Create(InputImageType * image,
-              ParamContainerType param,
-              MetaImageFunctionPointerType metaIF,
-              DataObjectContainerType * container);
-
-protected:
-  HaralickTexturesIFFactory(){}
-  ~HaralickTexturesIFFactory() override{}
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-
-private:
-  HaralickTexturesIFFactory(const Self& ) = delete;
-  void operator=(const Self& ) = delete;
-
-};
-
-} // End namespace otb
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbHaralickTexturesIFFactory.hxx"
-#endif
-
-#endif
diff --git a/Modules/Detection/ObjectDetection/include/otbHaralickTexturesIFFactory.hxx b/Modules/Detection/ObjectDetection/include/otbHaralickTexturesIFFactory.hxx
deleted file mode 100644
index fe1d2934f0fce071bc89d7bd8d7f66964c21a8a7..0000000000000000000000000000000000000000
--- a/Modules/Detection/ObjectDetection/include/otbHaralickTexturesIFFactory.hxx
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbHaralickTexturesIFFactory_hxx
-#define otbHaralickTexturesIFFactory_hxx
-
-#include "otbHaralickTexturesIFFactory.h"
-
-
-namespace otb
-{
-template <class TImageType, class TCoordRep, class TPrecision>
-void
-HaralickTexturesIFFactory<TImageType, TCoordRep, TPrecision>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-}
-
-template <class TImageType, class TCoordRep, class TPrecision>
-void
-HaralickTexturesIFFactory<TImageType, TCoordRep, TPrecision>
-::Create(InputImageType * image,
-         ParamContainerType param,
-         MetaImageFunctionPointerType metaIF,
-         DataObjectContainerType * container)
-{
-  typename AdaptedHaralickTexturesIF::Pointer function = AdaptedHaralickTexturesIF::New();
-
-  function->SetInputImage(image);
-  function->GetInternalImageFunction()->SetNeighborhoodRadius(param[0]);
-  function->SetInputImageMinimum(param[1]);
-  function->SetInputImageMaximum(param[2]);
-  function->SetNumberOfBinsPerAxis(param[3]);
-
-  OffsetType offset;
-  offset.Fill(param[4]);
-  function->GetInternalImageFunction()->SetOffset(offset);
-
-  metaIF->AddFunction(function);
-  container->push_back(image);
-}
-
-}//end namespace
-#endif
diff --git a/Modules/Detection/ObjectDetection/include/otbLabeledSampleLocalizationGenerator.h b/Modules/Detection/ObjectDetection/include/otbLabeledSampleLocalizationGenerator.h
deleted file mode 100644
index 9dd970997cbdc27a374e2fd22f6a8c59070f01eb..0000000000000000000000000000000000000000
--- a/Modules/Detection/ObjectDetection/include/otbLabeledSampleLocalizationGenerator.h
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbLabeledSampleLocalizationGenerator_h
-#define otbLabeledSampleLocalizationGenerator_h
-
-#include "otbVectorDataSource.h"
-#include "otbVectorData.h"
-#include "itkPreOrderTreeIterator.h"
-#include "itkMersenneTwisterRandomVariateGenerator.h"
-#include "itkEuclideanDistanceMetric.h"
-#include <string>
-
-
-namespace otb
-{
-/** \class LabeledSampleLocalizationGenerator
- *  \brief Produces a VectorData from potentialy multiple VectorData
- *
- *  This generator produces a unique vector data containing labeled positions
- *  extracted from inputs.
- *
- *  Input points are transmitted to the output. In addition, 'no class'
- *  points are randomly picked inside input polygons making sure
- *  they are at least at a given distance (InhibitionRadius) of every
- *  known points.
- *
- *  Classes are specified by the VectorData with a metadata field identified by
- *  a specific key. This key can be provided by the SetClassKey() method
- *  (using "Class" as a default key).
- *  The field is retrieved by GetFieldAsInt(), thus must be int-compatible
- *
- *
- * \ingroup OTBObjectDetection
- */
-template <class TVectorData>
-class ITK_EXPORT LabeledSampleLocalizationGenerator :
-    public VectorDataSource<TVectorData>
-{
-public:
-  /** Standard class typedefs */
-  typedef LabeledSampleLocalizationGenerator           Self;
-  typedef VectorDataSource<TVectorData>                Superclass;
-  typedef itk::SmartPointer<Self>                      Pointer;
-  typedef itk::SmartPointer<const Self>                ConstPointer;
-
-  /** Run-time type information (and related methods). */
-  itkTypeMacro(LabeledSampleLocalizationGenerator, VectorDataSource);
-
-  /** Method for creation through the object factory. */
-  itkNewMacro(Self);
-
-  typedef TVectorData                                           VectorDataType;
-  typedef typename VectorDataType::Pointer                      VectorDataPointerType;
-  typedef typename VectorDataType::DataNodeType                 DataNodeType;
-  typedef typename DataNodeType::PolygonType::RegionType        RegionType;
-  typedef typename DataNodeType::PointType                      PointType;
-  typedef typename DataNodeType::PolygonType::VertexType        VertexType;
-  typedef typename std::vector<PointType>                       PointVectorType;
-
-  typedef itk::PreOrderTreeIterator<typename VectorDataType::DataTreeType> TreeIteratorType;
-
-  typedef itk::Statistics::MersenneTwisterRandomVariateGenerator RandomGeneratorType;
-  typedef itk::Statistics::EuclideanDistanceMetric<PointType>    EuclideanDistanceMetricType;
-
-  /** Connects the VectorDatas from which the localizations are going to be extracted. */
-  using Superclass::PushBackInput;
-  void PushBackInput(const VectorDataType *);
-  const VectorDataType * GetInput(unsigned int idx) const;
-
-  /** Field name containing the class identifier */
-  itkGetConstMacro(ClassKey, std::string);
-  itkSetMacro(ClassKey, std::string);
-
-  /** Identifier for the negative samples class */
-  itkGetConstMacro(NoClassIdentifier, int);
-  itkSetMacro(NoClassIdentifier, int);
-
-  /** The density of auto-generated negative samples inside the polygons */
-  itkGetConstMacro(RandomLocalizationDensity, double);
-  itkSetMacro(RandomLocalizationDensity, double);
-
-  /** The minimum distance between a generated negative sample and positive samples */
-  itkGetConstMacro(InhibitionRadius, double);
-  itkSetMacro(InhibitionRadius, double);
-
-  /** The maximum iteration number during negative sample positions */
-  itkGetConstMacro(NbMaxIteration, unsigned long int);
-  itkSetMacro(NbMaxIteration, unsigned long int);
-
-  /** Set the number of samples position to generate inside the inhibition radius window around a positive point */
-  itkGetConstMacro(NumberOfPositiveSamplesPerPoint, unsigned int);
-  itkSetMacro(NumberOfPositiveSamplesPerPoint, unsigned int);
-
-  /** Set the seed for random number generator */
-  void SetSeed(unsigned int seed)
-  {
-    m_RandomGenerator->SetSeed(seed);
-  }
-
-protected:
-  LabeledSampleLocalizationGenerator();
-  ~LabeledSampleLocalizationGenerator() override {}
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-
-  /** Triggers the Computation of the sample list */
-  void GenerateData(void) override;
-
-  PointVectorType RandomPointsGenerator(DataNodeType * node);
-
-  PointVectorType PointDensification(DataNodeType * node);
-
-private:
-  LabeledSampleLocalizationGenerator(const Self &) = delete;
-  void operator =(const Self&) = delete;
-
-  std::string GetNextID()
-  {
-    std::ostringstream oss;
-    oss << m_CurrentID++;
-    return oss.str();
-  }
-
-  RandomGeneratorType::Pointer m_RandomGenerator;
-
-  std::string               m_ClassKey;
-  int                       m_NoClassIdentifier;
-  double                    m_RandomLocalizationDensity;
-  double                    m_InhibitionRadius;
-  unsigned long int         m_NbMaxIteration;
-  unsigned int              m_NumberOfPositiveSamplesPerPoint;
-  unsigned int              m_CurrentID;
-};
-
-} // end namespace otb
-
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbLabeledSampleLocalizationGenerator.hxx"
-#endif
-
-#endif
diff --git a/Modules/Detection/ObjectDetection/include/otbLabeledSampleLocalizationGenerator.hxx b/Modules/Detection/ObjectDetection/include/otbLabeledSampleLocalizationGenerator.hxx
deleted file mode 100644
index dc0869fc214e889a64dc9f410a6b106545e14574..0000000000000000000000000000000000000000
--- a/Modules/Detection/ObjectDetection/include/otbLabeledSampleLocalizationGenerator.hxx
+++ /dev/null
@@ -1,301 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbLabeledSampleLocalizationGenerator_hxx
-#define otbLabeledSampleLocalizationGenerator_hxx
-
-#include "otbLabeledSampleLocalizationGenerator.h"
-
-#include "otbMath.h"
-
-namespace otb
-{
-template<class TVectorData>
-LabeledSampleLocalizationGenerator<TVectorData>
-::LabeledSampleLocalizationGenerator() :
-  m_ClassKey("Class"),
-  m_NoClassIdentifier(0),
-  m_RandomLocalizationDensity(.005),
-  m_InhibitionRadius(5.0),
-  m_NbMaxIteration(10000),
-  m_NumberOfPositiveSamplesPerPoint(50),
-  m_CurrentID(0)
-{
-  this->SetNumberOfRequiredInputs(1);
-  this->SetNumberOfRequiredOutputs(1);
-
-  m_RandomGenerator = RandomGeneratorType::GetInstance();
-}
-
-template <class TVectorData>
-void
-LabeledSampleLocalizationGenerator<TVectorData>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  this->Superclass::PrintSelf(os, indent);
-  os << indent << "Class Key: " << m_ClassKey << std::endl;
-  os << indent << "Negative Class Identifier: " << m_NoClassIdentifier << std::endl;
-  os << indent << "Sampling Density: " << m_RandomLocalizationDensity << std::endl;
-  os << indent << "Inhibition Radius: " << m_InhibitionRadius << std::endl;
-}
-
-
-template <class TVectorData>
-void
-LabeledSampleLocalizationGenerator<TVectorData>
-::PushBackInput(const VectorDataType * vectorData)
-{
-  this->Superclass::SetNthInput(this->GetNumberOfIndexedInputs(), const_cast<VectorDataType *>(vectorData));
-}
-
-template <class TVectorData>
-const TVectorData *
-LabeledSampleLocalizationGenerator<TVectorData>
-::GetInput(unsigned int idx) const
-{
-  if (this->GetNumberOfInputs() < idx)
-    {
-    return nullptr;
-    }
-
-  return static_cast<const VectorDataType *>(this->Superclass::GetInput(idx));
-}
-
-template <class TVectorData>
-typename LabeledSampleLocalizationGenerator<TVectorData>
-::PointVectorType
-LabeledSampleLocalizationGenerator<TVectorData>
-::PointDensification(DataNodeType * node)
-{
-
-  PointVectorType pPoint;
-  PointType centerPoint = node->GetPoint();
-
-  for(unsigned int i = 0; i < m_NumberOfPositiveSamplesPerPoint; ++i)
-    {
-    PointType point;
-    for(unsigned int dim = 0; dim < 2; ++dim)
-      {
-      point[dim] = centerPoint[dim]+this->m_RandomGenerator->GetUniformVariate(-m_InhibitionRadius, m_InhibitionRadius);
-      }
-    pPoint.push_back(point);
-    }
-  return pPoint;
-}
-
-template <class TVectorData>
-typename LabeledSampleLocalizationGenerator<TVectorData>
-::PointVectorType
-LabeledSampleLocalizationGenerator<TVectorData>
-::RandomPointsGenerator(DataNodeType * node)
-{
-  // Output
-  PointVectorType vPoint;
-
-  // Euclidean distance
-  typename EuclideanDistanceMetricType::Pointer euclideanDistanceMetric = EuclideanDistanceMetricType::New();
-
-  // Gathering Information
-  RegionType generatorRegion = node->GetPolygonExteriorRing()->GetBoundingRegion();
-  typename RegionType::SizeType generatorRegionSize = generatorRegion.GetSize();
-  typename RegionType::IndexType generatorRegionIndex = generatorRegion.GetIndex();
-  //typename RegionType::IndexType generatorRegionOrigin = generatorRegion.GetOrigin();
-
-  // Identify inside known points
-  std::vector<PointType> insiders;
-  typename VectorDataType::ConstPointer vectorData = static_cast<const VectorDataType *>(this->GetOutput(0));
-  TreeIteratorType itVector(vectorData->GetDataTree());
-  itVector.GoToBegin();
-  while (!itVector.IsAtEnd())
-    {
-    if (itVector.Get()->IsPointFeature() && itVector.Get()->GetFieldAsInt(m_ClassKey) != m_NoClassIdentifier)
-      {
-      VertexType vertex;
-      vertex[0] = itVector.Get()->GetPoint()[0];
-      vertex[1] = itVector.Get()->GetPoint()[1];
-
-      if(node->GetPolygonExteriorRing()->IsInside(vertex))
-        {
-        insiders.push_back(itVector.Get()->GetPoint());
-        }
-      }
-    ++itVector;
-    }
-
-  // Generation
-  unsigned int nbMaxPosition = (unsigned int)(node->GetPolygonExteriorRing()->GetArea()
-                                              * this->GetRandomLocalizationDensity());
-  unsigned long int nbIter =  this->GetNbMaxIteration();
-  unsigned int nbPosition = nbMaxPosition;
-
-  PointType rangeMin, rangeMax;
-
-  for(unsigned int dim = 0; dim < 2; ++dim)
-    {
-    rangeMin[dim] = generatorRegionIndex[dim];
-    rangeMax[dim] = generatorRegionIndex[dim] + generatorRegionSize[dim];
-    }
-
-  while(nbIter > 0 && nbPosition > 0)
-    {
-    VertexType candidate;
-    for(unsigned int dim = 0; dim < 2; ++dim)
-      {
-      candidate[dim] = this->m_RandomGenerator->GetUniformVariate(rangeMin[dim], rangeMax[dim]);
-      }
-
-    if(node->GetPolygonExteriorRing()->IsInside(candidate))
-      {
-      typename PointVectorType::const_iterator pit = insiders.begin();
-      bool valid = true;
-
-      while(valid && pit!=insiders.end())
-        {
-        valid = (euclideanDistanceMetric->Evaluate(candidate, *pit) > this->GetInhibitionRadius());
-        ++pit;
-        }
-      PointType point;
-      point[0] = candidate[0];
-      point[1] = candidate[1];
-      if(valid)
-        {
-        vPoint.push_back(point);
-        }
-      nbPosition --;
-      }
-    nbIter --;
-    }
-  return vPoint;
-}
-
-template <class TVectorData>
-void
-LabeledSampleLocalizationGenerator<TVectorData>
-::GenerateData()
-{
-  unsigned int nbInputs = this->GetNumberOfInputs();
-
-  this->GetOutput(0)->SetMetaDataDictionary(this->GetInput(0)->GetMetaDataDictionary());
-
-  // Retrieving root node
-  typename DataNodeType::Pointer root = this->GetOutput(0)->GetDataTree()->GetRoot()->Get();
-  // Create the document node
-  typename DataNodeType::Pointer document = DataNodeType::New();
-  document->SetNodeType(otb::DOCUMENT);
-  // Adding the layer to the data tree
-  this->GetOutput(0)->GetDataTree()->Add(document, root);
-
-  std::string positiveClassIdentifier;
-  bool firstFeature = true;
-  // Copy all point feature in output VectorData
-  for (unsigned int i=0; i<nbInputs; ++i)
-    {
-    typename VectorDataType::ConstPointer vectorData = static_cast<const VectorDataType *>(this->GetInput(i));
-
-    TreeIteratorType itVector(vectorData->GetDataTree());
-    itVector.GoToBegin();
-    while (!itVector.IsAtEnd())
-      {
-      if (itVector.Get()->IsPointFeature())
-        {
-        //Get the value of the positive value of
-        if (firstFeature)
-          {
-          positiveClassIdentifier = itVector.Get()->GetFieldAsString(m_ClassKey);
-          firstFeature = false;
-          }
-        // Duplicate input feature
-        typename DataNodeType::Pointer currentGeometry = DataNodeType::New();
-        currentGeometry->SetNodeId(this->GetNextID());
-        currentGeometry->SetNodeType(otb::FEATURE_POINT);
-        currentGeometry->SetPoint(itVector.Get()->GetPoint());
-
-        std::vector<std::string> fields = itVector.Get()->GetFieldList();
-        for (std::vector<std::string>::const_iterator it = fields.begin(); it != fields.end(); ++it)
-          {
-          currentGeometry->SetFieldAsString( *it, itVector.Get()->GetFieldAsString(*it) );
-          // The PositiveClass identifier must be an attribute of the class
-
-          }
-
-        this->GetOutput(0)->GetDataTree()->Add(currentGeometry, document);
-        }
-      ++itVector;
-      }
-    }
-
-  // Iterates through the polygon features and generates random point inside the polygon with
-  // the "NoClass" identifier
-  for (unsigned int i=0; i<nbInputs; ++i)
-    {
-    typename VectorDataType::ConstPointer vectorData = static_cast<const VectorDataType *>(this->GetInput(i));
-
-    TreeIteratorType itVector(vectorData->GetDataTree());
-    itVector.GoToBegin();
-    while (!itVector.IsAtEnd())
-      {
-      if (itVector.Get()->IsPolygonFeature())
-        {
-        PointVectorType vPoints = RandomPointsGenerator(itVector.Get());
-
-        for (typename PointVectorType::const_iterator it = vPoints.begin(); it != vPoints.end(); ++it)
-          {
-          typename DataNodeType::Pointer currentGeometry = DataNodeType::New();
-          currentGeometry->SetNodeId(this->GetNextID());
-          currentGeometry->SetNodeType(otb::FEATURE_POINT);
-          currentGeometry->SetPoint(*it);
-          currentGeometry->SetFieldAsInt(this->GetClassKey(), this->GetNoClassIdentifier());
-          this->GetOutput(0)->GetDataTree()->Add(currentGeometry, document);
-          }
-        }
-      ++itVector;
-      }
-    }
-  // Densify positive points
-  for (unsigned int i=0; i<nbInputs; ++i)
-    {
-    typename VectorDataType::ConstPointer vectorData = static_cast<const VectorDataType *>(this->GetInput(i));
-
-    TreeIteratorType itVector(vectorData->GetDataTree());
-    itVector.GoToBegin();
-    while (!itVector.IsAtEnd())
-      {
-      if (itVector.Get()->IsPointFeature())
-        {
-        PointVectorType pPoints = PointDensification(itVector.Get());
-
-        for (typename PointVectorType::const_iterator it = pPoints.begin(); it != pPoints.end(); ++it)
-          {
-          typename DataNodeType::Pointer currentGeometry = DataNodeType::New();
-          currentGeometry->SetNodeId(this->GetNextID());
-          currentGeometry->SetNodeType(otb::FEATURE_POINT);
-          currentGeometry->SetPoint(*it);
-          currentGeometry->SetFieldAsInt(this->GetClassKey(), atoi(positiveClassIdentifier.c_str()) );
-          this->GetOutput(0)->GetDataTree()->Add(currentGeometry, document);
-          }
-        }
-      ++itVector;
-      }
-    }
-}
-
-} // end namespace otb
-
-#endif
diff --git a/Modules/Detection/ObjectDetection/include/otbLocalHistogramIFFactory.h b/Modules/Detection/ObjectDetection/include/otbLocalHistogramIFFactory.h
deleted file mode 100644
index 1747e5912b28fce922d3a4a04633ac461138b703..0000000000000000000000000000000000000000
--- a/Modules/Detection/ObjectDetection/include/otbLocalHistogramIFFactory.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbLocalHistogramIFFactory_h
-#define otbLocalHistogramIFFactory_h
-
-#include "itkLightObject.h"
-
-#include "otbMetaImageFunction.h"
-#include "itkDataObject.h"
-#include "otbImage.h"
-#include "otbImageFunctionAdaptor.h"
-#include "otbLocalHistogramImageFunction.h"
-
-
-namespace otb
-{
-/** \class LocalHistogramIFFactory
- *  \brief add a LocalHistogram image function to a
- *  MetaImageFunction
- *
- *  This class aims at adding an adapted
- *  LocalHistogramImageFunction to an existing MetaImageFunction
- *  through the method Create.
- *
- *
- * \ingroup OTBObjectDetection
- */
-
-template <class TImageType, class TCoordRep = double, class TPrecision = double>
-class ITK_EXPORT LocalHistogramIFFactory :
-    public itk::LightObject
-{
-public:
-  /** Standard class typedefs. */
-  typedef LocalHistogramIFFactory                                         Self;
-  typedef itk::LightObject                                                Superclass;
-  typedef itk::SmartPointer<Self>                                         Pointer;
-  typedef itk::SmartPointer<const Self>                                   ConstPointer;
-
-  // New macro
-  itkNewMacro(Self);
-
-  // RTTI typeinfo
-  itkTypeMacro(LocalHistogramIFFactory, itk::LightObject);
-
-  // Input and output typedef
-  typedef TImageType              InputImageType;
-  typedef TCoordRep               CoordRepType;
-  typedef TPrecision              PrecisionType;
-
-  // Other typedef
-  typedef typename MetaImageFunction<TPrecision>::Pointer  MetaImageFunctionPointerType;
-  typedef typename std::vector<itk::DataObject::Pointer>   DataObjectContainerType;
-  typedef typename std::vector<PrecisionType>              ParamContainerType;
-  typedef LocalHistogramImageFunction<InputImageType, CoordRepType>
-                                                      LocalHistogramIF;
-  typedef ImageFunctionAdaptor<LocalHistogramIF, TPrecision>
-                                                      AdaptedLocalHistogramIF;
-
-  void Create(InputImageType * image,
-              ParamContainerType param,
-              MetaImageFunctionPointerType metaIF,
-              DataObjectContainerType * container);
-
-protected:
-  LocalHistogramIFFactory(){}
-  ~LocalHistogramIFFactory() override{}
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-
-private:
-  LocalHistogramIFFactory(const Self& ) = delete;
-  void operator=(const Self& ) = delete;
-
-};
-
-} // End namespace otb
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbLocalHistogramIFFactory.hxx"
-#endif
-
-#endif
diff --git a/Modules/Detection/ObjectDetection/include/otbLocalHistogramIFFactory.hxx b/Modules/Detection/ObjectDetection/include/otbLocalHistogramIFFactory.hxx
deleted file mode 100644
index c3c8d27695fc7d38089f79700f988ef4b7a1ccda..0000000000000000000000000000000000000000
--- a/Modules/Detection/ObjectDetection/include/otbLocalHistogramIFFactory.hxx
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbLocalHistogramIFFactory_hxx
-#define otbLocalHistogramIFFactory_hxx
-
-#include "otbLocalHistogramIFFactory.h"
-
-
-namespace otb
-{
-template <class TImageType, class TCoordRep, class TPrecision>
-void
-LocalHistogramIFFactory<TImageType, TCoordRep, TPrecision>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-}
-
-template <class TImageType, class TCoordRep, class TPrecision>
-void
-LocalHistogramIFFactory<TImageType, TCoordRep, TPrecision>
-::Create(InputImageType * image,
-         ParamContainerType param,
-         MetaImageFunctionPointerType metaIF,
-         DataObjectContainerType * container)
-{
-  typename AdaptedLocalHistogramIF::Pointer function = AdaptedLocalHistogramIF::New();
-
-  function->SetInputImage(image);
-  function->GetInternalImageFunction()->SetNeighborhoodRadius(param[0]);
-  function->GetInternalImageFunction()->SetNumberOfHistogramBins(param[1]);
-  function->GetInternalImageFunction()->SetHistogramMin(param[2]);
-  function->GetInternalImageFunction()->SetHistogramMax(param[3]);
-
-  metaIF->AddFunction(function);
-  container->push_back(image);
-}
-
-}//end namespace
-#endif
diff --git a/Modules/Detection/ObjectDetection/include/otbMultiChannelIFFactory.h b/Modules/Detection/ObjectDetection/include/otbMultiChannelIFFactory.h
deleted file mode 100644
index a99de90d24b8365f194f87f2966e227d4b7abb3e..0000000000000000000000000000000000000000
--- a/Modules/Detection/ObjectDetection/include/otbMultiChannelIFFactory.h
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbMultiChannelIFFactory_h
-#define otbMultiChannelIFFactory_h
-
-#include "otbVectorImageToImageListFilter.h"
-#include "otbVectorImage.h"
-#include "otbImage.h"
-#include "otbImageList.h"
-#include "itkDataObject.h"
-#include "otbMetaImageFunction.h"
-
-
-namespace otb
-{
-/** \class MultiChannelIFFactory
- *  \brief Yhis class handle the image type before the use of an
- *  image function factory
- *
- *  According to the image type, the Create method of this class can
- *  call an ImageFunctionFactory for each band of the input image or
- *  once if the image type is otb::Image.
- *
- *
- * \ingroup OTBObjectDetection
- */
-
-template <class TIFFactory, class TInputImage>
-class MultiChannelIFFactory
-{
-public:
-  typedef TIFFactory                                    IFFactoryType;
-  typedef TInputImage                                   InputImageType;
-  typedef typename IFFactoryType::Pointer               IFFactoryPointerType;
-  typedef typename IFFactoryType::InputImageType        ImageType;
-  typedef typename IFFactoryType::CoordRepType          CoordRepType;
-  typedef typename IFFactoryType::PrecisionType         PrecisionType;
-  typedef typename std::vector<PrecisionType>           ParameterContainerType;
-  typedef typename std::vector<itk::DataObject::Pointer>   ImageContainer;
-  typedef typename MetaImageFunction<PrecisionType>::Pointer  MetaIFPointerType;
-
-  typedef ImageList<ImageType>                             ImageListType;
-  typedef VectorImageToImageListFilter<InputImageType,
-                                                ImageListType>      VIToILFilterType;
-
-  void Create(InputImageType * image,
-              ParameterContainerType param,
-              MetaIFPointerType metaIF,
-              ImageContainer * container)
-  {
-    m_Factory->Create(image, param, metaIF, container);
-  }
-
-  MultiChannelIFFactory()
-  {
-    m_Factory = IFFactoryType::New();
-  }
-
-  virtual ~MultiChannelIFFactory(){};
-
-private:
-  IFFactoryPointerType   m_Factory;
-
-};
-
-
-template <class TIFFactory, typename TPixel, unsigned int VImageDimension>
-class MultiChannelIFFactory<TIFFactory, otb::VectorImage<TPixel, VImageDimension> >
-{
-public:
-  typedef TIFFactory                                    IFFactoryType;
-  typedef typename IFFactoryType::Pointer               IFFactoryPointerType;
-  typedef typename IFFactoryType::InputImageType        ImageType;
-  typedef typename IFFactoryType::CoordRepType          CoordRepType;
-  typedef typename IFFactoryType::PrecisionType         PrecisionType;
-  typedef VectorImage<TPixel, 2>                        InputImageType;
-
-  typedef typename std::vector<PrecisionType>           ParameterContainerType;
-  typedef typename std::vector<itk::DataObject::Pointer>       ImageContainer;
-  typedef typename MetaImageFunction<PrecisionType>::Pointer     MetaIFPointerType;
-
-  typedef ImageList<ImageType>                             ImageListType;
-  typedef VectorImageToImageListFilter<InputImageType,
-                                                ImageListType>      VIToILFilterType;
-
-  void Create(InputImageType * image,
-              ParameterContainerType param,
-              MetaIFPointerType metaIF,
-              ImageContainer * container)
-  {
-    unsigned int nbBand;
-    typename VIToILFilterType::Pointer filter = VIToILFilterType::New();
-
-    filter->SetInput(image);
-    filter->UpdateOutputInformation();
-    nbBand = filter->GetOutput()->Size();
-
-    for (unsigned int i=0; i<nbBand; ++i)
-      {
-      filter->GetOutput()->GetNthElement(i)->UpdateOutputInformation();
-      m_Factory->Create(filter->GetOutput()->GetNthElement(i), param, metaIF, container);
-      }
-  }
-
-  MultiChannelIFFactory()
-  {
-    m_Factory = IFFactoryType::New();
-  }
-
-  virtual ~MultiChannelIFFactory(){};
-
-private:
-  IFFactoryPointerType   m_Factory;
-
-};
-} //end namespace
-
-#endif
diff --git a/Modules/Detection/ObjectDetection/include/otbObjectDetectionClassifier.h b/Modules/Detection/ObjectDetection/include/otbObjectDetectionClassifier.h
deleted file mode 100644
index 01d371d964df9245b8c225f546f4c09429cf1730..0000000000000000000000000000000000000000
--- a/Modules/Detection/ObjectDetection/include/otbObjectDetectionClassifier.h
+++ /dev/null
@@ -1,393 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbObjectDetectionClassifier_h
-#define otbObjectDetectionClassifier_h
-
-#include <vector>
-#include <string>
-
-#include "itkImageRegion.h"
-#include "itkFixedArray.h"
-#include "itkVariableLengthVector.h"
-#include "itkListSample.h"
-#include "itkDataObjectDecorator.h"
-#include "itkSimpleDataObjectDecorator.h"
-#include "itkFunctionBase.h"
-
-#include "otbVectorData.h"
-#include "otbMachineLearningModel.h"
-#include "otbPersistentImageFilter.h"
-#include "otbPersistentFilterStreamingDecorator.h"
-
-namespace otb
-{
-
-template <class TFunctionPrecision>
-class DefaultDescriptorType
-{
-public:
-  typedef itk::VariableLengthVector<TFunctionPrecision> Type;
-};
-
-/** \class PersistentObjectDetectionClassifier
- *  \brief [internal] Helper class for the implementation of ObjectDetectionClassifier
- *  with streaming capabilities
- *
- *  This class inherits PersistentImageFilter and provides the Reset/Synthesize functions,
- *  plus the ThreadedGenerateData function implementing the image function evaluation
- *
- *
- * \ingroup OTBObjectDetection
- */
-template <class TInputImage, class TOutputVectorData, class TLabel, class TFunctionType>
-class ITK_EXPORT PersistentObjectDetectionClassifier :
-  public PersistentImageFilter<TInputImage, TInputImage>
-{
-public:
-  /** Standard Self typedef */
-  typedef PersistentObjectDetectionClassifier        Self;
-  typedef PersistentImageFilter<TInputImage, TInputImage> Superclass;
-  typedef itk::SmartPointer<Self>                         Pointer;
-  typedef itk::SmartPointer<const Self>                   ConstPointer;
-
-  /** Method for creation through the object factory. */
-  itkNewMacro(Self);
-
-  /** Runtime information support. */
-  itkTypeMacro(PersistentObjectDetectionClassifier, PersistentImageFilter);
-
-  /** Image related typedefs. */
-  typedef TInputImage                      InputImageType;
-  typedef typename TInputImage::Pointer    InputImagePointer;
-  typedef typename TInputImage::RegionType RegionType;
-  typedef typename TInputImage::SizeType   SizeType;
-  typedef typename TInputImage::IndexType  IndexType;
-  typedef typename TInputImage::PixelType  PixelType;
-
-  itkStaticConstMacro(InputImageDimension, unsigned int,
-                      TInputImage::ImageDimension);
-
-  /** Image related typedefs. */
-  itkStaticConstMacro(ImageDimension, unsigned int,
-                      TInputImage::ImageDimension);
-
-  /** Smart Pointer type to a DataObject. */
-  typedef typename itk::DataObject::Pointer DataObjectPointer;
-  typedef itk::ProcessObject::DataObjectPointerArraySizeType DataObjectPointerArraySizeType;
-
-  /** Input VectorData */
-  typedef TOutputVectorData                               VectorDataType;
-  typedef typename VectorDataType::Pointer                VectorDataObjectType;
-  typedef typename VectorDataType::DataNodeType           VectorDataNodeType;
-  typedef typename VectorDataType::DataNodePointerType    VectorDataNodePointerType;
-  typedef typename VectorDataType::DataTreeType           VectorDataTreeType;
-  typedef typename VectorDataType::DataTreePointerType    VectorDataTreePointerType;
-  typedef typename VectorDataNodeType::PointType          VectorDataPointType;
-  typedef typename VectorDataNodeType::LineType           VectorDataLineType;
-  typedef typename VectorDataNodeType::PolygonType        VectorDataPolygonType;
-  typedef itk::PreOrderTreeIterator<VectorDataTreeType>   VectorDataTreeIteratorType;
-
-  /** Function type for descriptors extraction */
-  typedef TFunctionType                                   DescriptorsFunctionType;
-  typedef typename DescriptorsFunctionType::Pointer       DescriptorsFunctionPointerType;
-  typedef typename DescriptorsFunctionType::InputType     DescriptorsFunctionPointType;
-  typedef typename DescriptorsFunctionType::OutputType    DescriptorType;
-  typedef typename DescriptorType::ValueType              DescriptorPrecision;
-
-  typedef itk::ContinuousIndex
-        <typename DescriptorsFunctionPointType::ValueType,
-         itkGetStaticConstMacro(InputImageDimension)>     ContinuousIndexType;
-
-  /** TLabel output */
-  typedef TLabel                                             LabelType;
-  typedef MachineLearningModel<DescriptorPrecision, LabelType> ModelType;
-  typedef typename ModelType::Pointer                     ModelPointerType;
-  typedef typename ModelType::InputSampleType             ModelMeasurementType;
-
-  typedef itk::Statistics::ListSample<DescriptorType>        ListSampleType;
-
-  void AddInput(itk::DataObject * dataObject) override
-  {
-    this->Superclass::AddInput(dataObject);
-  }
-
-  /** learning model used for classification */
-  void SetModel(ModelType * model);
-
-  const ModelType* GetModel(void) const;
-
-  VectorDataType* GetOutputVectorData(void);
-
-  /** The function to evaluate */
-  itkSetObjectMacro(DescriptorsFunction,      DescriptorsFunctionType);
-  itkGetObjectMacro(DescriptorsFunction,      DescriptorsFunctionType);
-  itkGetConstObjectMacro(DescriptorsFunction, DescriptorsFunctionType);
-
-  itkSetMacro( NeighborhoodRadius, unsigned int );
-  itkGetConstReferenceMacro( NeighborhoodRadius, unsigned int );
-
-  itkGetConstMacro(ClassKey, std::string);
-  itkSetMacro(ClassKey, std::string);
-
-  itkGetMacro(NoClassLabel, LabelType);
-  itkSetMacro(NoClassLabel, LabelType);
-
-  /** Set/Get the Shifts for this sample list */
-  itkGetMacro(Shifts, DescriptorType);
-  itkSetMacro(Shifts, DescriptorType);
-  itkGetMacro(Scales, DescriptorType);
-  itkSetMacro(Scales, DescriptorType);
-
-  /** Set/Get the grid step for detection */
-  itkSetMacro(GridStep, unsigned int);
-  itkGetMacro(GridStep, unsigned int);
-
-  /** Make a DataObject of the correct type to be used as the specified
-   * output. */
-  itk::DataObject::Pointer MakeOutput(DataObjectPointerArraySizeType idx) override;
-  using Superclass::MakeOutput;
-
-  void AllocateOutputs() override;
-
-  void GenerateOutputInformation() override;
-
-  void Reset(void) override;
-
-  void Synthetize(void) override;
-
-protected:
-  PersistentObjectDetectionClassifier();
-  ~PersistentObjectDetectionClassifier() override;
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-
-  void GenerateInputRequestedRegion() override;
-
-  void BeforeThreadedGenerateData() override;
-
-  /** Multi-thread version GenerateData. */
-  void  ThreadedGenerateData(const RegionType& outputRegionForThread,
-                             itk::ThreadIdType threadId) override;
-
-private:
-  PersistentObjectDetectionClassifier(const Self &) = delete;
-  void operator =(const Self&) = delete;
-
-  template <typename TCoordRepType>
-  bool
-  IsInsideWithNeighborhoodRadius(const RegionType& region, const ContinuousIndexType &index) const
-    {
-    typedef typename IndexType::IndexValueType IndexValueType;
-
-    for(unsigned int i=0; i<ImageDimension; ++i)
-      {
-      if( itk::Math::RoundHalfIntegerUp<IndexValueType>(index[i]) < static_cast<IndexValueType>( region.GetIndex(i) ) + m_NeighborhoodRadius  + 1 )
-       //Comment this instruction after itkv4 migration (correct
-       //usage of centered-pixel coordinates)
-       //if( index[i] < static_cast<TCoordRepType>( region.GetIndex(i) ) + m_NeighborhoodRadius )
-        {
-        return false;
-        }
-      // bound is the last valid pixel location
-      const TCoordRepType bound = static_cast<TCoordRepType>(
-          region.GetIndex(i) + region.GetSize(i) - 0.5);
-      //Comment this instruction after itkv4 migration (correct
-      //usage of centered-pixel coordinates)
-      //const TCoordRepType bound = static_cast<TCoordRepType>(
-      //    region.GetIndex(i) + static_cast<IndexValueType>(region.GetSize(i)) - 1);
-      if( index[i] > bound - m_NeighborhoodRadius - 1 )
-        {
-        return false;
-        }
-      }
-    return true;
-    }
-
-  typedef std::pair<DescriptorsFunctionPointType, LabelType> DetectedPoint;
-  typedef std::vector<DetectedPoint>                         PointArray;
-  typedef std::vector<PointArray>                            PointArrayContainer;
-  PointArrayContainer            m_ThreadPointArray;
-
-  DescriptorsFunctionPointerType m_DescriptorsFunction;
-
-  unsigned int   m_NeighborhoodRadius;
-  std::string    m_ClassKey;
-  LabelType      m_NoClassLabel;
-  DescriptorType m_Shifts;
-  DescriptorType m_Scales;
-  DescriptorType m_InvertedScales;
-
-  /** Step of the detection grid */
-  unsigned int m_GridStep;
-
-  /** classification model */
-  ModelPointerType m_Model;
-
-};
-
-
-/** \class ObjectDetectionClassifier
- *  \brief This class detects object in an image, given a ML model and a local descriptors function
- *
- *  Given an image (by SetInputImage()), a ML model (by SetModel) and an local descriptors ImageFunction
- *  (set by SetDescriptorsFunction()), this class computes the local descriptors on a regular grid
- *  over the image, and evaluates the class label of the corresponding sample.
- *  It outputs a vector data with the points for which the descriptors are not classified as "negative",
- *  the negative class label being given by SetNoClassLabel()
- *
- *  This class is streaming capable and multithreaded
- *
- * \ingroup OTBObjectDetection
- */
-template <class TInputImage, class TOutputVectorData, class TLabel, class TFunctionPrecision = double, class TCoordRep = double>
-class ITK_EXPORT ObjectDetectionClassifier :
-    public PersistentFilterStreamingDecorator<
-              PersistentObjectDetectionClassifier< TInputImage,
-                                                   TOutputVectorData,
-                                                   TLabel,
-                                                   itk::FunctionBase< itk::Point<TCoordRep, 2>,
-                                                                      typename DefaultDescriptorType<TFunctionPrecision>::Type> >
-                                                 >
-{
-public:
-    /** Standard Self typedef */
-    typedef ObjectDetectionClassifier           Self;
-    typedef PersistentFilterStreamingDecorator
-              < PersistentObjectDetectionClassifier
-                  <TInputImage,
-                  TOutputVectorData,
-                  TLabel,
-                  itk::FunctionBase< itk::Point<TCoordRep, 2>,
-                                     typename DefaultDescriptorType<TFunctionPrecision>::Type> >
-              >                                 Superclass;
-    typedef itk::SmartPointer<Self>             Pointer;
-    typedef itk::SmartPointer<const Self>       ConstPointer;
-
-    /** Type macro */
-    itkNewMacro(Self);
-
-    /** Creation through object factory macro */
-    itkTypeMacro(ObjectDetectionClassifier, PersistentFilterStreamingDecorator);
-
-    typedef TInputImage                              InputImageType;
-    typedef TOutputVectorData                        OutputVectorDataType;
-    typedef TLabel                                   LabelType;
-    typedef TCoordRep                                CoordRepType;
-    typedef TFunctionPrecision                       FunctionPrecision;
-
-    /** The coordinates used when evaluating function */
-    typedef itk::Point<TCoordRep, 2> PointType;
-
-    /** The return value of the function */
-    typedef typename DefaultDescriptorType<FunctionPrecision>::Type DescriptorType;
-
-    /** The function evaluated on the input image at locations specified by the vector data */
-    typedef itk::FunctionBase<PointType, DescriptorType> DescriptorsFunctionType;
-    typedef typename DescriptorsFunctionType::Pointer    DescriptorsFunctionPointerType;
-
-    typedef typename Superclass::FilterType                           PersistentFilterType;
-
-    typedef typename PersistentFilterType::ModelType                  ModelType;
-    typedef typename PersistentFilterType::ModelPointerType           ModelPointerType;
-
-    /** Input image to extract feature */
-    void SetInputImage(InputImageType* input)
-    {
-      this->GetFilter()->SetInput(input);
-    }
-
-    /** Sample locations as a VectorData of points. The label is in the ClassKey feature */
-    OutputVectorDataType* GetOutputVectorData()
-    {
-      return this->GetFilter()->GetOutputVectorData();
-    }
-
-    void AddInput(itk::DataObject * dataObject) override
-    {
-      this->GetFilter()->AddInput(dataObject);
-    }
-
-    /** The function to evaluate */
-    void SetDescriptorsFunction(DescriptorsFunctionType * input)
-    {
-      this->GetFilter()->SetDescriptorsFunction(input);
-    }
-
-    /** The function to evaluate */
-    DescriptorsFunctionType * GetDescriptorsFunction()
-    {
-      return this->GetFilter()->GetDescriptorsFunction();
-    }
-
-    /** The function to evaluate */
-    void SetModel(ModelType* model)
-    {
-      this->GetFilter()->SetModel(model);
-    }
-
-    /** The classification model */
-    const ModelType* GetModel()
-    {
-      return this->GetFilter()->GetModel();
-    }
-
-    otbSetObjectMemberMacro(Filter, NeighborhoodRadius, unsigned int);
-    otbGetObjectMemberMacro(Filter, NeighborhoodRadius, unsigned int);
-
-    /** Set/Get the name of the field containing the class information */
-    otbGetObjectMemberMacro(Filter, ClassKey, std::string);
-    otbSetObjectMemberMacro(Filter, ClassKey, std::string);
-
-    /** Set/Get the  label of the negative samples */
-    otbGetObjectMemberMacro(Filter, NoClassLabel, LabelType);
-    otbSetObjectMemberMacro(Filter, NoClassLabel, LabelType);
-
-    /** Set/Get the Shifts for this sample list */
-    otbGetObjectMemberMacro(Filter, Shifts, DescriptorType);
-    otbSetObjectMemberMacro(Filter, Shifts, DescriptorType);
-
-    /** Set/Get the Scales for this sample list */
-    otbGetObjectMemberMacro(Filter, Scales, DescriptorType);
-    otbSetObjectMemberMacro(Filter, Scales, DescriptorType);
-
-    /** Set/Get the grid step for detection */
-    otbSetObjectMemberMacro(Filter, GridStep, unsigned int);
-    otbGetObjectMemberMacro(Filter, GridStep, unsigned int);
-
-
-  protected:
-    /** Constructor */
-    ObjectDetectionClassifier();
-
-    /** Destructor */
-    ~ObjectDetectionClassifier() override;
-
-  private:
-    ObjectDetectionClassifier(const Self &) = delete;
-    void operator =(const Self&) = delete;
-};
-
-} // end namespace otb
-
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbObjectDetectionClassifier.hxx"
-#endif
-
-#endif
diff --git a/Modules/Detection/ObjectDetection/include/otbObjectDetectionClassifier.hxx b/Modules/Detection/ObjectDetection/include/otbObjectDetectionClassifier.hxx
deleted file mode 100644
index 97781629e68ef470e1f35b8aeac6ccb1d273f1dd..0000000000000000000000000000000000000000
--- a/Modules/Detection/ObjectDetection/include/otbObjectDetectionClassifier.hxx
+++ /dev/null
@@ -1,314 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbObjectDetectionClassifier_hxx
-#define otbObjectDetectionClassifier_hxx
-
-#include "otbObjectDetectionClassifier.h"
-
-#include "itkContinuousIndex.h"
-
-namespace otb
-{
-
-template <class TInputImage, class TOutputVectorData, class TLabel, class TFunctionType>
-PersistentObjectDetectionClassifier<TInputImage, TOutputVectorData, TLabel, TFunctionType>
-::PersistentObjectDetectionClassifier()
-  : m_NeighborhoodRadius(0),
-    m_ClassKey("Class"),
-    m_NoClassLabel(0),
-    m_GridStep(10)
-{
-  this->SetNumberOfRequiredInputs(1);
-
-  // Have 2 outputs : the image created by Superclass, a vector data with points
-  this->SetNumberOfRequiredOutputs(3);
-  this->itk::ProcessObject::SetNthOutput(1, this->MakeOutput(1).GetPointer());
-  this->itk::ProcessObject::SetNthOutput(2, this->MakeOutput(2).GetPointer());
-}
-
-template <class TInputImage, class TOutputVectorData, class TLabel, class TFunctionType>
-PersistentObjectDetectionClassifier<TInputImage, TOutputVectorData, TLabel, TFunctionType>
-::~PersistentObjectDetectionClassifier()
-{
-}
-
-template <class TInputImage, class TOutputVectorData, class TLabel, class TFunctionType>
-void
-PersistentObjectDetectionClassifier<TInputImage, TOutputVectorData, TLabel, TFunctionType>
-::AllocateOutputs()
-{
-  // This is commented to prevent the streaming of the whole image for the first stream strip
-  // It shall not cause any problem because the output image of this filter is not intended to be used.
-  //InputImagePointer image = const_cast< TInputImage * >( this->GetInput() );
-  //this->GraftOutput( image );
-  // Nothing that needs to be allocated for the remaining outputs
-}
-
-template <class TInputImage, class TOutputVectorData, class TLabel, class TFunctionType>
-void
-PersistentObjectDetectionClassifier<TInputImage, TOutputVectorData, TLabel, TFunctionType>
-::GenerateOutputInformation()
-{
-  Superclass::GenerateOutputInformation();
-  if (this->GetInput())
-    {
-    this->GetOutput()->CopyInformation(this->GetInput());
-    this->GetOutput()->SetLargestPossibleRegion(this->GetInput()->GetLargestPossibleRegion());
-
-    if (this->GetOutput()->GetRequestedRegion().GetNumberOfPixels() == 0)
-      {
-      this->GetOutput()->SetRequestedRegion(this->GetOutput()->GetLargestPossibleRegion());
-      }
-    }
-}
-
-template <class TInputImage, class TOutputVectorData, class TLabel, class TFunctionType>
-void
-PersistentObjectDetectionClassifier<TInputImage, TOutputVectorData, TLabel, TFunctionType>
-::SetModel(ModelType* model)
-{
-  if (model != m_Model)
-    {
-    m_Model = model;
-    this->Modified();
-    }
-}
-
-template <class TInputImage, class TOutputVectorData, class TLabel, class TFunctionType>
-const typename PersistentObjectDetectionClassifier<TInputImage, TOutputVectorData, TLabel, TFunctionType>::ModelType*
-PersistentObjectDetectionClassifier<TInputImage, TOutputVectorData, TLabel, TFunctionType>
-::GetModel(void) const
-{
-  return m_Model;
-}
-
-template <class TInputImage, class TOutputVectorData, class TLabel, class TFunctionType>
-typename PersistentObjectDetectionClassifier<TInputImage, TOutputVectorData, TLabel, TFunctionType>::VectorDataType*
-PersistentObjectDetectionClassifier<TInputImage, TOutputVectorData, TLabel, TFunctionType>
-::GetOutputVectorData()
-{
-  return static_cast<VectorDataType*>(this->itk::ProcessObject::GetOutput(1));
-}
-
-template <class TInputImage, class TOutputVectorData, class TLabel, class TFunctionType>
-itk::DataObject::Pointer
-PersistentObjectDetectionClassifier<TInputImage, TOutputVectorData, TLabel, TFunctionType>
-::MakeOutput(DataObjectPointerArraySizeType idx)
-{
-  itk::DataObject::Pointer output;
-  switch (idx)
-    {
-    case 0:
-      output = static_cast<itk::DataObject*>(InputImageType::New().GetPointer());
-      break;
-    case 1:
-      {
-      output = static_cast<itk::DataObject*>(VectorDataType::New().GetPointer());
-      break;
-      }
-    default:
-      output = static_cast<itk::DataObject*>(InputImageType::New().GetPointer());
-      break;
-    }
-  return output;
-}
-
-template <class TInputImage, class TOutputVectorData, class TLabel, class TFunctionType>
-void
-PersistentObjectDetectionClassifier<TInputImage, TOutputVectorData, TLabel, TFunctionType>
-::Reset()
-{
-  m_ThreadPointArray = PointArrayContainer(this->GetNumberOfThreads());
-
-}
-
-template <class TInputImage, class TOutputVectorData, class TLabel, class TFunctionType>
-void
-PersistentObjectDetectionClassifier<TInputImage, TOutputVectorData, TLabel, TFunctionType>
-::Synthetize()
-{
-  // merge all points in a single vector data
-  //std::copy(m_ThreadPointArray[0].begin(), m_ThreadPointArray[0].end(),
-  //std::ostream_iterator<DescriptorsFunctionPointType>(std::cout, "\n") );
-
-  VectorDataType* vdata = this->GetOutputVectorData();
-
-  // Retrieving root node
-  VectorDataNodePointerType root = vdata->GetDataTree()->GetRoot()->Get();
-  // Create the document node
-  VectorDataNodePointerType document = VectorDataNodeType::New();
-  document->SetNodeType(otb::DOCUMENT);
-  VectorDataNodePointerType folder = VectorDataNodeType::New();
-  folder->SetNodeType(otb::FOLDER);
-  // Adding the layer to the data tree
-  vdata->GetDataTree()->Add(document, root);
-  vdata->GetDataTree()->Add(folder, document);
-
-  for (itk::ThreadIdType threadId = 0; threadId < m_ThreadPointArray.size(); ++threadId)
-    {
-    PointArray& pointArray = m_ThreadPointArray[threadId];
-    typename PointArray::const_iterator it = pointArray.begin();
-    typename PointArray::const_iterator end = pointArray.end();
-
-    for (; it != end; ++it)
-      {
-      VectorDataNodePointerType currentGeometry = VectorDataNodeType::New();
-      currentGeometry->SetNodeId("FEATURE_POINT");
-      currentGeometry->SetNodeType(otb::FEATURE_POINT);
-      VectorDataPointType p;
-      p[0] = it->first[0];
-      p[1] = it->first[1];
-      currentGeometry->SetPoint(p);
-      currentGeometry->SetFieldAsInt(m_ClassKey, it->second);
-      vdata->GetDataTree()->Add(currentGeometry, folder);
-      }
-    }
-}
-
-template <class TInputImage, class TOutputVectorData, class TLabel, class TFunctionType>
-void
-PersistentObjectDetectionClassifier<TInputImage, TOutputVectorData, TLabel, TFunctionType>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-}
-
-template <class TInputImage, class TOutputVectorData, class TLabel, class TFunctionType>
-void
-PersistentObjectDetectionClassifier<TInputImage, TOutputVectorData, TLabel, TFunctionType>
-::GenerateInputRequestedRegion()
-{
-  Superclass::GenerateInputRequestedRegion();
-
-  // get pointers to the input and output
-  typename Superclass::InputImagePointer inputPtr =
-    const_cast< TInputImage * >( this->GetInput() );
-  typename Superclass::OutputImagePointer outputPtr = this->GetOutput();
-
-  if ( !inputPtr || !outputPtr )
-    {
-    return;
-    }
-
-  // get a copy of the input requested region (should equal the output
-  // requested region)
-  typename TInputImage::RegionType inputRequestedRegion;
-  inputRequestedRegion = inputPtr->GetRequestedRegion();
-
-  // pad the input requested region by the operator radius
-  inputRequestedRegion.PadByRadius( m_NeighborhoodRadius + 1 );
-
-  // crop the input requested region at the input's largest possible region
-  if ( inputRequestedRegion.Crop(inputPtr->GetLargestPossibleRegion()) )
-    {
-    inputPtr->SetRequestedRegion( inputRequestedRegion );
-    return;
-    }
-  else
-    {
-    // Couldn't crop the region (requested region is outside the largest
-    // possible region).  Throw an exception.
-
-    // store what we tried to request (prior to trying to crop)
-    inputPtr->SetRequestedRegion( inputRequestedRegion );
-    }
-}
-
-template <class TInputImage, class TOutputVectorData, class TLabel, class TFunctionType>
-void
-PersistentObjectDetectionClassifier<TInputImage, TOutputVectorData, TLabel, TFunctionType>
-::BeforeThreadedGenerateData()
-{
-  // Compute the 1/(sigma) vector
-  m_InvertedScales = m_Scales;
-  for(unsigned int idx = 0; idx < m_Scales.Size(); ++idx)
-    {
-    if(m_Scales[idx]-1e-10 < 0.)
-      m_InvertedScales[idx] = 0.;
-    else
-      m_InvertedScales[idx] = 1 / m_Scales[idx];
-    }
-
-}
-
-template <class TInputImage, class TOutputVectorData, class TLabel, class TFunctionType>
-void
-PersistentObjectDetectionClassifier<TInputImage, TOutputVectorData, TLabel, TFunctionType>
-::ThreadedGenerateData(const RegionType& outputRegionForThread,
-                       itk::ThreadIdType threadId)
-{
-  InputImageType* input = static_cast<InputImageType*>(this->itk::ProcessObject::GetInput(0));
-  const ModelType*   model = this->GetModel();
-
-  IndexType begin = outputRegionForThread.GetIndex();
-  IndexType end = begin;
-  end[0] += outputRegionForThread.GetSize(0);
-  end[1] += outputRegionForThread.GetSize(1);
-
-  IndexType current = begin;
-  for (; current[1] != end[1]; current[1]++)
-    {
-    if (current[1] % m_GridStep == 0)
-      {
-      for(current[0] = begin[0]; current[0] != end[0]; current[0]++)
-        {
-        if (current[0] % m_GridStep == 0)
-          {
-          DescriptorsFunctionPointType point;
-          input->TransformIndexToPhysicalPoint(current, point);
-
-          DescriptorType descriptor = m_DescriptorsFunction->Evaluate(point);
-          ModelMeasurementType modelMeasurement(descriptor.GetSize());
-          for (unsigned int i = 0; i < descriptor.GetSize(); ++i)
-            {
-            modelMeasurement[i] = (descriptor[i] - m_Shifts[i]) * m_InvertedScales[i];
-            }
-          LabelType label = (model->Predict(modelMeasurement))[0];
-
-          if (label != m_NoClassLabel)
-            {
-            m_ThreadPointArray[threadId].push_back(std::make_pair(point, label));
-            }
-          }
-        }
-      }
-    }
-}
-
-
-template <class TInputImage, class TOutputVectorData, class TLabel, class TFunctionPrecision, class TCoordRep>
-ObjectDetectionClassifier<TInputImage, TOutputVectorData, TLabel, TFunctionPrecision, TCoordRep>
-::ObjectDetectionClassifier()
-{
-
-}
-
-template <class TInputImage, class TOutputVectorData, class TLabel, class TFunctionPrecision, class TCoordRep>
-ObjectDetectionClassifier<TInputImage, TOutputVectorData, TLabel, TFunctionPrecision, TCoordRep>
-::~ObjectDetectionClassifier()
-{
-
-}
-
-
-} // end namespace otb
-
-#endif
diff --git a/Modules/Detection/ObjectDetection/include/otbRadiometricMomentsIFFactory.h b/Modules/Detection/ObjectDetection/include/otbRadiometricMomentsIFFactory.h
deleted file mode 100644
index a40dfbed7341939bc664d29410bebf526de9d640..0000000000000000000000000000000000000000
--- a/Modules/Detection/ObjectDetection/include/otbRadiometricMomentsIFFactory.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbRadiometricMomentsIFFactory_h
-#define otbRadiometricMomentsIFFactory_h
-
-#include "itkLightObject.h"
-
-#include "otbMetaImageFunction.h"
-#include "itkDataObject.h"
-#include "otbImage.h"
-#include "otbImageFunctionAdaptor.h"
-#include "otbRadiometricMomentsImageFunction.h"
-
-
-namespace otb
-{
-/** \class RadiometricMomentsIFFactory
- *  \brief add a RadiometricMoments image function to a
- *  MetaImageFunction
- *
- *  This class aims at adding an adapted
- *  RadiometricMomentsImageFunction to an existing MetaImageFunction
- *  through the method Create.
- *
- *
- * \ingroup OTBObjectDetection
- */
-
-template <class TImageType, class TCoordRep = double, class TPrecision = double>
-class ITK_EXPORT RadiometricMomentsIFFactory :
-    public itk::LightObject
-{
-public:
-  /** Standard class typedefs. */
-  typedef RadiometricMomentsIFFactory                                    Self;
-  typedef itk::LightObject                                                Superclass;
-  typedef itk::SmartPointer<Self>                                         Pointer;
-  typedef itk::SmartPointer<const Self>                                   ConstPointer;
-
-  // New macro
-  itkNewMacro(Self);
-
-  // RTTI typeinfo
-  itkTypeMacro(RadiometricMomentsIFFactory, itk::LightObject);
-
-  // Input and output typedef
-  typedef TImageType              InputImageType;
-  typedef TCoordRep               CoordRepType;
-  typedef TPrecision              PrecisionType;
-
-  // Other typedef
-  typedef typename MetaImageFunction<TPrecision>::Pointer  MetaImageFunctionPointerType;
-  typedef typename std::vector<itk::DataObject::Pointer>   DataObjectContainerType;
-  typedef typename std::vector<PrecisionType>              ParamContainerType;
-  typedef RadiometricMomentsImageFunction<InputImageType, CoordRepType>
-                                                           RadiometricMomentsIF;
-  typedef ImageFunctionAdaptor<RadiometricMomentsIF, TPrecision>
-                                                           AdaptedRadiometricMomentsIF;
-
-  void Create(InputImageType * image,
-              ParamContainerType param,
-              MetaImageFunctionPointerType metaIF,
-              DataObjectContainerType * container);
-
-protected:
-  RadiometricMomentsIFFactory(){}
-  ~RadiometricMomentsIFFactory() override{}
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-
-private:
-  RadiometricMomentsIFFactory(const Self& ) = delete;
-  void operator=(const Self& ) = delete;
-
-};
-
-} // End namespace otb
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbRadiometricMomentsIFFactory.hxx"
-#endif
-
-#endif
diff --git a/Modules/Detection/ObjectDetection/include/otbRadiometricMomentsIFFactory.hxx b/Modules/Detection/ObjectDetection/include/otbRadiometricMomentsIFFactory.hxx
deleted file mode 100644
index 18f0bc730a5b998d856e8052d63a289075c1e2d9..0000000000000000000000000000000000000000
--- a/Modules/Detection/ObjectDetection/include/otbRadiometricMomentsIFFactory.hxx
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbRadiometricMomentsIFFactory_hxx
-#define otbRadiometricMomentsIFFactory_hxx
-
-#include "otbRadiometricMomentsIFFactory.h"
-
-
-namespace otb
-{
-template <class TImageType, class TCoordRep, class TPrecision>
-void
-RadiometricMomentsIFFactory<TImageType, TCoordRep, TPrecision>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-}
-
-template <class TImageType, class TCoordRep, class TPrecision>
-void
-RadiometricMomentsIFFactory<TImageType, TCoordRep, TPrecision>
-::Create(InputImageType * image,
-         ParamContainerType param,
-         MetaImageFunctionPointerType metaIF,
-         DataObjectContainerType * container)
-{
-  typename AdaptedRadiometricMomentsIF::Pointer function = AdaptedRadiometricMomentsIF::New();
-
-  function->SetInputImage(image);
-  function->GetInternalImageFunction()->SetNeighborhoodRadius(param[0]);
-
-  metaIF->AddFunction(function);
-  container->push_back(image);
-}
-
-}//end namespace
-#endif
diff --git a/Modules/Detection/ObjectDetection/include/otbStandardMetaImageFunctionBuilder.h b/Modules/Detection/ObjectDetection/include/otbStandardMetaImageFunctionBuilder.h
deleted file mode 100644
index 4ff7757898791d4a8a4324f3ecbce7f1429868d4..0000000000000000000000000000000000000000
--- a/Modules/Detection/ObjectDetection/include/otbStandardMetaImageFunctionBuilder.h
+++ /dev/null
@@ -1,196 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbStandardMetaImageFunctionBuilder_h
-#define otbStandardMetaImageFunctionBuilder_h
-
-
-#include "itkVariableLengthVector.h"
-
-#include "otbMultiChannelIFFactory.h"
-
-#include "otbLocalHistogramIFFactory.h"
-#include "otbFlusserMomentsIFFactory.h"
-#include "otbRadiometricMomentsIFFactory.h"
-#include "otbFourierMellinDescriptorsIFFactory.h"
-#include "otbHaralickTexturesIFFactory.h"
-
-
-namespace otb
-{
-/** \class StandardMetaImageFunctionBuilder
- *  \brief Build a Standard MetaImageFunction
- *
- *  The StandardMetaImageFunctionBuilder class allows calling multiple
- *  ImageFunctions:
- *    - otbRadiometricMomentsImageFunction
- *    - otbFlusserMomentsImageFunction
- *    - otbFourierMellinDescriptorsImageFunction
- *    - otbLocalHistogramImageFunction
- *  On Multiple Images (and VectorImages Processed as ImageList).
- *
- *  Each ImageFunction can be parametrized. The only thing to do to
- *  complete the MetaImageFunction is to AddImages.
- *
- *
- *
- *
- * \ingroup OTBObjectDetection
- */
-
-template <class TPrecision = double, class TCoordRep = double>
-class ITK_EXPORT StandardMetaImageFunctionBuilder :
-    public itk::LightObject
-{
-public:
-  /** Standard class typedefs. */
-  typedef StandardMetaImageFunctionBuilder                                Self;
-  typedef itk::LightObject                                                Superclass;
-  typedef itk::SmartPointer<Self>                                         Pointer;
-  typedef itk::SmartPointer<const Self>                                   ConstPointer;
-
-  // New macro
-  itkNewMacro(Self);
-
-  // RTTI typeinfo
-  itkTypeMacro(StandardMetaImageFunctionBuilder, itk::LightObject);
-
-  // Input and output typedef
-  typedef TPrecision                                                ValueType;
-  typedef TCoordRep                                                 CoordRepType;
-
-  // Other typedef
-  typedef MetaImageFunction<TPrecision, CoordRepType>               MetaImageFunctionType;
-  typedef typename MetaImageFunctionType::Pointer                   MetaImageFunctionPointerType;
-  typedef typename std::vector<itk::DataObject::Pointer>            DataObjectContainerType;
-  typedef typename std::vector<ValueType>                           ParamContainerType;
-
-  //Accessors
-  unsigned int GetNeighborhoodRadius();
-  void SetNeighborhoodRadius(unsigned int radius);
-
-  ParamContainerType GetFlusserMomentsIFParameters();
-  void SetFlusserMomentsIFParameters(ParamContainerType Param);
-
-  ParamContainerType GetLocalHistogramIFParameters();
-  void SetLocalHistogramIFParameters(ParamContainerType Param);
-
-  ParamContainerType GetRadiometricMomentsIFParameters();
-  void SetRadiometricMomentsIFParameters(ParamContainerType Param);
-
-  ParamContainerType GetFourierMellinDescriptorsIFParameters();
-  void SetFourierMellinDescriptorsIFParameters(ParamContainerType Param);
-
-  ParamContainerType GetHaralickTexturesIFParameters();
-  void SetHaralickTexturesIFParameters(ParamContainerType Param);
-
-  MetaImageFunctionPointerType GetMetaImageFunction();
-  DataObjectContainerType GetDataObjectContainer();
-
-  // Adding Image
-  template <class TInputImage>
-  void AddImage(TInputImage * image)
-  {
-    typedef TInputImage                                   InputImageType;
-    typedef typename InputImageType::InternalPixelType    InternalPixelType;
-    typedef Image<InternalPixelType, 2>                   ImageType;
-
-    //Mono-Channel Factories
-    typedef LocalHistogramIFFactory<ImageType,
-      CoordRepType, TPrecision>               LocalHistogramIFFactoryType;
-    typedef FlusserMomentsIFFactory<ImageType,
-      CoordRepType, TPrecision>               FlusserMomentsIFFactoryType;
-    typedef RadiometricMomentsIFFactory<ImageType,
-      CoordRepType, TPrecision>               RadiometricMomentsIFFactoryType;
-    typedef FourierMellinDescriptorsIFFactory<ImageType,
-      CoordRepType, TPrecision>               FourierMellinDescriptorsIFFactoryType;
-    typedef HaralickTexturesIFFactory<ImageType,
-      CoordRepType, TPrecision>               HaralickTexturesIFFactoryType;
-
-    //Multi-Channel Factories
-    typedef MultiChannelIFFactory<LocalHistogramIFFactoryType, InputImageType>
-                                                            MCLocalHistogramIFFactoryType;
-    typedef MultiChannelIFFactory<FlusserMomentsIFFactoryType, InputImageType>
-                                                            MCFlusserMomentsIFFactoryType;
-    typedef MultiChannelIFFactory<RadiometricMomentsIFFactoryType, InputImageType>
-                                                            MCRadiometricMomentsIFFactoryType;
-    typedef MultiChannelIFFactory<FourierMellinDescriptorsIFFactoryType, InputImageType>
-                                                            MCFourierMellinDescriptorsIFFactoryType;
-    typedef MultiChannelIFFactory<HaralickTexturesIFFactoryType, InputImageType>
-                                                            MCHaralickTexturesIFFactoryType;
-
-    MCLocalHistogramIFFactoryType MCLocalHistogramIFFactory;
-    MCFlusserMomentsIFFactoryType MCFlusserMomentsIFFactory;
-    MCRadiometricMomentsIFFactoryType MCRadiometricMomentsIFFactory;
-    MCFourierMellinDescriptorsIFFactoryType MCFourierMellinDescriptorsIFFactory;
-    MCHaralickTexturesIFFactoryType MCHaralickTexturesIFFactory;
-
-
-    MCRadiometricMomentsIFFactory.Create(image,
-                                         this->GetRadiometricMomentsIFParameters(),
-                                         m_MetaImageFunction,
-                                         &m_DataObjectContainer);
-    MCFlusserMomentsIFFactory.Create(image,
-                                     this->GetFlusserMomentsIFParameters(),
-                                     m_MetaImageFunction,
-                                     &m_DataObjectContainer);
-
-    MCFourierMellinDescriptorsIFFactory.Create(image,
-                                               this->GetFourierMellinDescriptorsIFParameters(),
-                                               m_MetaImageFunction,
-                                               &m_DataObjectContainer);
-
-    //MCLocalHistogramIFFactory.Create(image,
-    //                                 m_LocalHistogramParam,
-    //                                 m_MetaImageFunction,
-    //                                 &m_DataObjectContainer);
-
-    //MCHaralickTexturesIFFactory.Create(image,
-    //                                   m_HaralickTexturesParam,
-    //                                   m_MetaImageFunction,
-    //                                   &m_DataObjectContainer);
-  }
-
-protected:
-  StandardMetaImageFunctionBuilder();
-  ~StandardMetaImageFunctionBuilder() override;
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-
-private:
-  StandardMetaImageFunctionBuilder(const Self& ) = delete;
-  void operator=(const Self& ) = delete;
-
-  MetaImageFunctionPointerType    m_MetaImageFunction;
-  DataObjectContainerType         m_DataObjectContainer;
-  unsigned int                    m_NeighborhoodRadius;
-  ParamContainerType              m_FlusserMomentsParam;              //[NeighborhoodRadius]
-  ParamContainerType              m_RadiometricMomentsParam;          //[NeighborhoodRadius]
-  ParamContainerType              m_LocalHistogramParam;              //[NeighborhoodRadius; nbBins; minHistogram; maxHistogram]
-  ParamContainerType              m_FourierMellinDescriptorsParam;    //[NeighborhoodRadius; PMax; QMax]
-  ParamContainerType              m_HaralickTexturesParam;            //[NeighborhoodRadius; ImageMin; ImageMax; NbBinPerAxis; Offset]
-
-};
-
-} // End namespace otb
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbStandardMetaImageFunctionBuilder.hxx"
-#endif
-
-#endif
diff --git a/Modules/Detection/ObjectDetection/include/otbStandardMetaImageFunctionBuilder.hxx b/Modules/Detection/ObjectDetection/include/otbStandardMetaImageFunctionBuilder.hxx
deleted file mode 100644
index 27313af0c10e0cc27a1b56e0915ba747c374a79f..0000000000000000000000000000000000000000
--- a/Modules/Detection/ObjectDetection/include/otbStandardMetaImageFunctionBuilder.hxx
+++ /dev/null
@@ -1,219 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbStandardMetaImageFunctionBuilder_hxx
-#define otbStandardMetaImageFunctionBuilder_hxx
-
-#include "otbStandardMetaImageFunctionBuilder.h"
-
-
-namespace otb
-{
-template <class TPrecision, class TCoordRep>
-StandardMetaImageFunctionBuilder<TPrecision, TCoordRep>
-::StandardMetaImageFunctionBuilder()
-{
-  m_NeighborhoodRadius = 4;
-
-  m_MetaImageFunction = MetaImageFunctionType::New();
-
-  m_FlusserMomentsParam.push_back(static_cast<ValueType>(this->GetNeighborhoodRadius()));
-
-  m_RadiometricMomentsParam.push_back(static_cast<ValueType>(this->GetNeighborhoodRadius()));
-
-  m_LocalHistogramParam.push_back(static_cast<ValueType>(this->GetNeighborhoodRadius()));
-  m_LocalHistogramParam.push_back(16);
-  m_LocalHistogramParam.push_back(0);
-  m_LocalHistogramParam.push_back(4096);
-
-  m_FourierMellinDescriptorsParam.push_back(static_cast<ValueType>(this->GetNeighborhoodRadius()));
-  m_FourierMellinDescriptorsParam.push_back(3);
-  m_FourierMellinDescriptorsParam.push_back(3);
-
-  m_HaralickTexturesParam.push_back(static_cast<ValueType>(this->GetNeighborhoodRadius()));
-  m_HaralickTexturesParam.push_back(0);
-  m_HaralickTexturesParam.push_back(4096);
-  m_HaralickTexturesParam.push_back(30);
-  m_HaralickTexturesParam.push_back(2);
-}
-
-template <class TPrecision, class TCoordRep>
-StandardMetaImageFunctionBuilder<TPrecision, TCoordRep>
-::~StandardMetaImageFunctionBuilder()
-{
-
-}
-
-template <class TPrecision, class TCoordRep>
-void
-StandardMetaImageFunctionBuilder<TPrecision, TCoordRep>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-}
-
-template <class TPrecision, class TCoordRep>
-unsigned int
-StandardMetaImageFunctionBuilder<TPrecision, TCoordRep>
-::GetNeighborhoodRadius()
-{
-  return m_NeighborhoodRadius;
-}
-
-template <class TPrecision, class TCoordRep>
-void
-StandardMetaImageFunctionBuilder<TPrecision, TCoordRep>
-::SetNeighborhoodRadius(unsigned int radius)
-{
-  if (radius>0)
-    {
-    m_NeighborhoodRadius = radius;
-
-    m_FlusserMomentsParam[0]           = static_cast<ValueType>(radius);
-    m_RadiometricMomentsParam[0]       = static_cast<ValueType>(radius);
-    m_LocalHistogramParam[0]           = static_cast<ValueType>(radius);
-    m_FourierMellinDescriptorsParam[0] = static_cast<ValueType>(radius);
-    m_HaralickTexturesParam[0]         = static_cast<ValueType>(radius);
-    }
-}
-
-template <class TPrecision, class TCoordRep>
-typename StandardMetaImageFunctionBuilder<TPrecision, TCoordRep>::ParamContainerType
-StandardMetaImageFunctionBuilder<TPrecision, TCoordRep>
-::GetFlusserMomentsIFParameters()
-{
-  return m_FlusserMomentsParam;
-}
-
-template <class TPrecision, class TCoordRep>
-void
-StandardMetaImageFunctionBuilder<TPrecision, TCoordRep>
-::SetFlusserMomentsIFParameters(ParamContainerType Param)
-{
-  if (Param.size()==1)
-    {
-    m_FlusserMomentsParam[0] = Param[0];
-    }
-}
-
-
-template <class TPrecision, class TCoordRep>
-typename StandardMetaImageFunctionBuilder<TPrecision, TCoordRep>::ParamContainerType
-StandardMetaImageFunctionBuilder<TPrecision, TCoordRep>
-::GetLocalHistogramIFParameters()
-{
-  return m_LocalHistogramParam;
-}
-
-template <class TPrecision, class TCoordRep>
-void
-StandardMetaImageFunctionBuilder<TPrecision, TCoordRep>
-::SetLocalHistogramIFParameters(ParamContainerType Param)
-{
-  if (Param.size()==4)
-    {
-    m_LocalHistogramParam[0] = Param[0];
-    m_LocalHistogramParam[1] = Param[1];
-    m_LocalHistogramParam[2] = Param[2];
-    m_LocalHistogramParam[3] = Param[3];
-    }
-}
-
-template <class TPrecision, class TCoordRep>
-typename StandardMetaImageFunctionBuilder<TPrecision, TCoordRep>::ParamContainerType
-StandardMetaImageFunctionBuilder<TPrecision, TCoordRep>
-::GetRadiometricMomentsIFParameters()
-{
-  return m_RadiometricMomentsParam;
-}
-
-template <class TPrecision, class TCoordRep>
-void
-StandardMetaImageFunctionBuilder<TPrecision, TCoordRep>
-::SetRadiometricMomentsIFParameters(ParamContainerType Param)
-{
-  if (Param.size()==1)
-    {
-    m_RadiometricMomentsParam[0] = Param[0];
-    }
-}
-
-template <class TPrecision, class TCoordRep>
-typename StandardMetaImageFunctionBuilder<TPrecision, TCoordRep>::ParamContainerType
-StandardMetaImageFunctionBuilder<TPrecision, TCoordRep>
-::GetFourierMellinDescriptorsIFParameters()
-{
-  return m_FourierMellinDescriptorsParam;
-}
-
-template <class TPrecision, class TCoordRep>
-void
-StandardMetaImageFunctionBuilder<TPrecision, TCoordRep>
-::SetFourierMellinDescriptorsIFParameters(ParamContainerType Param)
-{
-  if (Param.size()==3)
-    {
-    m_FourierMellinDescriptorsParam[0] = Param[0];
-    m_FourierMellinDescriptorsParam[1] = Param[1];
-    m_FourierMellinDescriptorsParam[2] = Param[2];
-    }
-}
-
-template <class TPrecision, class TCoordRep>
-typename StandardMetaImageFunctionBuilder<TPrecision, TCoordRep>::ParamContainerType
-StandardMetaImageFunctionBuilder<TPrecision, TCoordRep>
-::GetHaralickTexturesIFParameters()
-{
-  return m_HaralickTexturesParam;
-}
-
-template <class TPrecision, class TCoordRep>
-void
-StandardMetaImageFunctionBuilder<TPrecision, TCoordRep>
-::SetHaralickTexturesIFParameters(ParamContainerType Param)
-{
-  if (Param.size()==5)
-    {
-    m_HaralickTexturesParam[0] = Param[0];
-    m_HaralickTexturesParam[1] = Param[1];
-    m_HaralickTexturesParam[2] = Param[2];
-    m_HaralickTexturesParam[3] = Param[3];
-    m_HaralickTexturesParam[4] = Param[4];
-    }
-}
-
-template <class TPrecision, class TCoordRep>
-typename StandardMetaImageFunctionBuilder<TPrecision, TCoordRep>::MetaImageFunctionPointerType
-StandardMetaImageFunctionBuilder<TPrecision, TCoordRep>
-::GetMetaImageFunction()
-{
-  return  m_MetaImageFunction;
-}
-
-template <class TPrecision, class TCoordRep>
-typename StandardMetaImageFunctionBuilder<TPrecision, TCoordRep>::DataObjectContainerType
-StandardMetaImageFunctionBuilder<TPrecision, TCoordRep>
-::GetDataObjectContainer()
-{
-  return  m_DataObjectContainer;
-}
-
-}//end namespace
-#endif
diff --git a/Modules/Detection/ObjectDetection/otb-module.cmake b/Modules/Detection/ObjectDetection/otb-module.cmake
deleted file mode 100644
index 5033f185dab2dc5e272c9fa280517f193a8cacfe..0000000000000000000000000000000000000000
--- a/Modules/Detection/ObjectDetection/otb-module.cmake
+++ /dev/null
@@ -1,46 +0,0 @@
-#
-# Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
-#
-# This file is part of Orfeo Toolbox
-#
-#     https://www.orfeo-toolbox.org/
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-set(DOCUMENTATION "This module contains useful classes for object detection.")
-
-otb_module(OTBObjectDetection
-  DEPENDS
-    OTBCommon
-    OTBDescriptors
-    OTBITK
-    OTBImageBase
-    OTBMoments
-    OTBObjectList
-    OTBStatistics
-    OTBStreaming
-    OTBSupervised
-    OTBTextures
-    OTBVectorDataBase
-
-  TEST_DEPENDS
-    OTBIOXML
-    OTBImageIO
-    OTBLibSVM
-    OTBTestKernel
-    OTBVectorDataIO
-
-  DESCRIPTION
-    "${DOCUMENTATION}"
-)
diff --git a/Modules/Detection/ObjectDetection/test/CMakeLists.txt b/Modules/Detection/ObjectDetection/test/CMakeLists.txt
deleted file mode 100644
index 14989ab892c009f4f2ddbc0a61ac0d650ad74509..0000000000000000000000000000000000000000
--- a/Modules/Detection/ObjectDetection/test/CMakeLists.txt
+++ /dev/null
@@ -1,117 +0,0 @@
-#
-# Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
-#
-# This file is part of Orfeo Toolbox
-#
-#     https://www.orfeo-toolbox.org/
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-otb_module_test()
-
-set(OTBObjectDetectionTests
-otbObjectDetectionTestDriver.cxx
-otbLabeledSampleLocalizationGenerator.cxx
-otbStandardMetaImageFunctionBuilder.cxx
-otbDescriptorsListSampleGenerator.cxx
-otbObjectDetectionClassifier.cxx
-)
-
-add_executable(otbObjectDetectionTestDriver ${OTBObjectDetectionTests})
-target_link_libraries(otbObjectDetectionTestDriver ${OTBObjectDetection-Test_LIBRARIES})
-otb_module_target_label(otbObjectDetectionTestDriver)
-
-# Tests Declaration
-
-
-otb_add_test(NAME odTvLabeledSampleLocalizationGenerator COMMAND otbObjectDetectionTestDriver
-  --compare-ogr ${NOTOL}
-  ${BASELINE_FILES}/TvLabeledSampleLocalizationGeneratorOutput.shp
-  ${TEMP}/TvLabeledSampleLocalizationGeneratorOutput.shp
-  otbLabeledSampleLocalizationGenerator
-  ${INPUTDATA}/ObjectReco/Boats/maur_B010202_01LabeledPoints.shp
-  ${INPUTDATA}/ObjectReco/Boats/maur_B010202_01Polygons.shp
-  ${TEMP}/TvLabeledSampleLocalizationGeneratorOutput.shp
-  )
-
-
-otb_add_test(NAME odTvStandardMetaImageFunctionBuilder COMMAND otbObjectDetectionTestDriver
-  otbStandardMetaImageFunctionBuilder
-  ${INPUTDATA}/ObjectReco/Boats/maur_B010202_01.tif
-  )
-
-otb_add_test(NAME odTvDescriptorsListSampleGeneratorStreaming COMMAND otbObjectDetectionTestDriver
-  --compare-ascii ${NOTOL}
-  ${BASELINE_FILES}/TvDescriptorsListSampleGeneratorNoStreamingOutput.txt
-  ${TEMP}/TvDescriptorsListSampleGeneratorStreamingOutput.txt
-  otbDescriptorsListSampleGenerator
-  ${INPUTDATA}/ObjectReco/Boats/maur_B010202_01_amplitude.tif
-  ${INPUTDATA}/ObjectReco/Boats/maur_B010202_01Samples.shp
-  ${TEMP}/TvDescriptorsListSampleGeneratorStreamingOutput.txt
-  50 # streaming
-  5 # neighborhood radius
-  )
-
-#otb_add_test(NAME odTvDescriptorsSVMModelCreation COMMAND otbObjectDetectionTestDriver
-  #--compare-ascii ${NOTOL}
-  #${BASELINE_FILES}/TvDescriptorsSVMModelCreation.svm
-  #${TEMP}/TvDescriptorsSVMModelCreation.svm
-  #otbDescriptorsSVMModelCreation
-  #${INPUTDATA}/ObjectReco/Boats/maur_B010202_01_amplitude.tif
-  #${INPUTDATA}/ObjectReco/Boats/maur_B010202_01Samples.shp
-  #${INPUTDATA}/ObjectReco/Boats/FeatureStats_RadiometricMoments_amplitude.xml
-  #${TEMP}/TvDescriptorsSVMModelCreation.svm
-  #0 # streaming
-  #5 # neighborhood radius
-  #)
-
-otb_add_test(NAME odTvDescriptorsListSampleGeneratorNoStreaming COMMAND otbObjectDetectionTestDriver
-  --compare-ascii ${NOTOL}
-  ${BASELINE_FILES}/TvDescriptorsListSampleGeneratorNoStreamingOutput.txt
-  ${TEMP}/TvDescriptorsListSampleGeneratorNoStreamingOutput.txt
-  otbDescriptorsListSampleGenerator
-  ${INPUTDATA}/ObjectReco/Boats/maur_B010202_01_amplitude.tif
-  ${INPUTDATA}/ObjectReco/Boats/maur_B010202_01Samples.shp
-  ${TEMP}/TvDescriptorsListSampleGeneratorNoStreamingOutput.txt
-  0 # streaming
-  5 # neighborhood radius
-  )
-
-
-
-otb_add_test(NAME odTvObjectDetectionClassifierStreaming COMMAND otbObjectDetectionTestDriver
-  --compare-ascii ${NOTOL}
-  ${BASELINE_FILES}/TvObjectDetectionClassifierOutput.txt
-  ${TEMP}/TvObjectDetectionClassifierOutputStreaming.txt
-  otbObjectDetectionClassifier
-  ${INPUTDATA}/ObjectReco/Boats/maur_B010202_01_extract_amplitude.tif
-  ${INPUTDATA}/ObjectReco/Boats/FeatureStats_RadiometricMoments_amplitude.xml
-  ${BASELINE_FILES}/TvDescriptorsSVMModelCreation.svm
-  ${TEMP}/TvObjectDetectionClassifierOutputStreaming.txt
-  50 # streaming
-  5 # neighborhood radius
-  )
-
-otb_add_test(NAME odTvObjectDetectionClassifier COMMAND otbObjectDetectionTestDriver
-  --compare-ascii ${NOTOL}
-  ${BASELINE_FILES}/TvObjectDetectionClassifierOutput.txt
-  ${TEMP}/TvObjectDetectionClassifierOutput.txt
-  otbObjectDetectionClassifier
-  ${INPUTDATA}/ObjectReco/Boats/maur_B010202_01_extract_amplitude.tif
-  ${INPUTDATA}/ObjectReco/Boats/FeatureStats_RadiometricMoments_amplitude.xml
-  ${BASELINE_FILES}/TvDescriptorsSVMModelCreation.svm
-  ${TEMP}/TvObjectDetectionClassifierOutput.txt
-  0 # streaming
-  5 # neighborhood radius
-  )
diff --git a/Modules/Detection/ObjectDetection/test/otbDescriptorsListSampleGenerator.cxx b/Modules/Detection/ObjectDetection/test/otbDescriptorsListSampleGenerator.cxx
deleted file mode 100644
index ac0e7c21549ee6a301db2fddd7a745d51b00ce38..0000000000000000000000000000000000000000
--- a/Modules/Detection/ObjectDetection/test/otbDescriptorsListSampleGenerator.cxx
+++ /dev/null
@@ -1,234 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-#include <iterator>
-
-#include "otbImage.h"
-#include "otbRadiometricMomentsImageFunction.h"
-#include "otbDescriptorsListSampleGenerator.h"
-#include "otbImageFileReader.h"
-#include "otbVectorDataFileReader.h"
-#include "otbImageFunctionAdaptor.h"
-
-#include "otbStatisticsXMLFileReader.h"
-#include "otbShiftScaleSampleListFilter.h"
-#include "otbLibSVMMachineLearningModel.h"
-
-const unsigned int Dimension = 2;
-typedef int        LabelType;
-typedef double     PixelType;
-typedef double     FunctionPrecisionType;
-typedef double     CoordRepType;
-
-typedef otb::Image<PixelType, Dimension>                               ImageType;
-typedef otb::VectorData<>                                              VectorDataType;
-typedef otb::RadiometricMomentsImageFunction<ImageType, CoordRepType>  FunctionType;
-typedef otb::ImageFunctionAdaptor<FunctionType, FunctionPrecisionType> AdaptedFunctionType;
-
-typedef itk::VariableLengthVector<FunctionPrecisionType> SampleType;
-typedef itk::Statistics::ListSample<SampleType>          ListSampleType;
-typedef itk::FixedArray<LabelType, 1>                    LabelSampleType;
-typedef itk::Statistics::ListSample<LabelSampleType>     LabelListSampleType;
-
-typedef otb::DescriptorsListSampleGenerator
-           < ImageType,
-             VectorDataType,
-             ListSampleType,
-             LabelType,
-             FunctionPrecisionType,
-             CoordRepType > DescriptorsListSampleGeneratorType;
-
-typedef otb::ImageFileReader<ImageType>           ImageReaderType;
-typedef otb::VectorDataFileReader<VectorDataType> VectorDataReaderType;
-
-typedef otb::StatisticsXMLFileReader<SampleType>   StatisticsReader;
-typedef otb::Statistics::ShiftScaleSampleListFilter<ListSampleType> ShiftScaleListSampleFilterType;
-
-typedef otb::LibSVMMachineLearningModel<FunctionPrecisionType, LabelType> SVMType;
-
-typedef FunctionType::PointType PointType;
-typedef DescriptorsListSampleGeneratorType::SamplesPositionType SamplesPositionType;
-
-struct SampleEntry
-{
-  PointType  position;
-  LabelType  label;
-  SampleType measurement;
-};
-
-struct CompareSampleEntry
-{
-  bool operator () (SampleEntry p, SampleEntry q)
-  {
-    // order with the y axis position
-    if (p.position[1] < q.position[1])
-      return true;
-    if (p.position[1] > q.position[1])
-      return false;
-
-    // If one the same line,
-    // order with the x axis position
-    if (p.position[0] < q.position[0])
-      return true;
-
-    return false;
-  }
-};
-
-std::ostream &operator<<(std::ostream &stream, SampleEntry entry)
-{
-  stream << "---" << std::endl
-         << "Label        : " << entry.label << std::endl
-         << "Position     : " << entry.position << std::endl
-         << "Measurements : " << entry.measurement;
-  return stream;
-}
-
-
-int otbDescriptorsListSampleGenerator(int argc, char* argv[])
-{
-  if (argc != 6)
-    {
-    std::cerr << "Wrong number of arguments" << std::endl;
-    return EXIT_FAILURE;
-    }
-
-  const char* inputImageFileName = argv[1];
-  const char* inputSamplesLocation = argv[2];
-  const char* outputFileName = argv[3];
-  int streaming = atoi(argv[4]);
-  int neighborhood = atoi(argv[5]);
-
-  ImageReaderType::Pointer imageReader = ImageReaderType::New();
-  imageReader->SetFileName(inputImageFileName);
-
-  VectorDataReaderType::Pointer vectorDataReader = VectorDataReaderType::New();
-  vectorDataReader->SetFileName(inputSamplesLocation);
-
-  //imageReader->Update();
-  //vectorDataReader->Update();
-
-  AdaptedFunctionType::Pointer descriptorsFunction = AdaptedFunctionType::New();
-  descriptorsFunction->SetInputImage(imageReader->GetOutput());
-  descriptorsFunction->GetInternalImageFunction()->SetNeighborhoodRadius(5);
-
-  DescriptorsListSampleGeneratorType::Pointer descriptorsGenerator = DescriptorsListSampleGeneratorType::New();
-  descriptorsGenerator->SetInputImage(imageReader->GetOutput());
-  descriptorsGenerator->SetSamplesLocations(vectorDataReader->GetOutput());
-  descriptorsGenerator->SetDescriptorsFunction(descriptorsFunction.GetPointer());
-  descriptorsGenerator->SetNeighborhoodRadius(neighborhood);
-  descriptorsGenerator->GetStreamer()->SetNumberOfLinesStrippedStreaming( streaming );
-  descriptorsGenerator->Update();
-
-  ListSampleType::Pointer      samples = descriptorsGenerator->GetListSample();
-  LabelListSampleType::Pointer labels  = descriptorsGenerator->GetLabelListSample();
-  SamplesPositionType&         positions = descriptorsGenerator->GetSamplesPositions();
-
-  ListSampleType::Iterator sampleIt = samples->Begin();
-  LabelListSampleType::Iterator labelIt = labels->Begin();
-  SamplesPositionType::const_iterator posIt = positions.begin();
-
-  ListSampleType::Iterator sampleEnd = samples->End();
-  LabelListSampleType::Iterator labelEnd = labels->End();
-  SamplesPositionType::const_iterator posEnd = positions.end();
-
-  std::vector<SampleEntry> entries;
-
-  while (sampleIt != sampleEnd && labelIt != labelEnd && posIt != posEnd)
-    {
-    SampleEntry entry;
-    entry.position = *posIt;
-    entry.label = labelIt.GetMeasurementVector()[0];
-    entry.measurement = sampleIt.GetMeasurementVector();
-
-    entries.push_back(entry);
-
-    ++sampleIt;
-    ++labelIt;
-    ++posIt;
-    }
-
-  std::sort(entries.begin(), entries.end(), CompareSampleEntry());
-  std::ofstream file(outputFileName);
-  std::copy(entries.begin(), entries.end(), std::ostream_iterator<SampleEntry>(file, "\n"));
-  file.close();
-
-  return EXIT_SUCCESS;
-}
-
-
-
-int otbDescriptorsSVMModelCreation(int argc, char* argv[])
-{
-  if (argc != 7)
-    {
-    std::cerr << "Wrong number of arguments" << std::endl;
-    return EXIT_FAILURE;
-    }
-
-  const char* inputImageFileName = argv[1];
-  const char* inputSamplesLocation = argv[2];
-  const char* featureStatisticsFileName = argv[3];
-  const char* outputFileName = argv[4];
-  int streaming = atoi(argv[5]);
-  int neighborhood = atoi(argv[6]);
-
-  ImageReaderType::Pointer imageReader = ImageReaderType::New();
-  imageReader->SetFileName(inputImageFileName);
-
-  VectorDataReaderType::Pointer vectorDataReader = VectorDataReaderType::New();
-  vectorDataReader->SetFileName(inputSamplesLocation);
-
-  //imageReader->Update();
-  //vectorDataReader->Update();
-
-  AdaptedFunctionType::Pointer descriptorsFunction = AdaptedFunctionType::New();
-  descriptorsFunction->SetInputImage(imageReader->GetOutput());
-  descriptorsFunction->GetInternalImageFunction()->SetNeighborhoodRadius(neighborhood);
-
-  DescriptorsListSampleGeneratorType::Pointer descriptorsGenerator = DescriptorsListSampleGeneratorType::New();
-  descriptorsGenerator->SetInputImage(imageReader->GetOutput());
-  descriptorsGenerator->SetSamplesLocations(vectorDataReader->GetOutput());
-  descriptorsGenerator->SetDescriptorsFunction(descriptorsFunction.GetPointer());
-  descriptorsGenerator->SetNeighborhoodRadius(5);
-  descriptorsGenerator->GetStreamer()->SetNumberOfLinesStrippedStreaming( streaming );
-  descriptorsGenerator->Update();
-
-  // Normalize the samples
-  // Read the mean and variance form the XML file
-  StatisticsReader::Pointer  statisticsReader = StatisticsReader::New();
-  statisticsReader->SetFileName(featureStatisticsFileName);
-  SampleType meanMeasurentVector     = statisticsReader->GetStatisticVectorByName("mean");
-  SampleType varianceMeasurentVector = statisticsReader->GetStatisticVectorByName("stddev");
-
-  // Shift scale the samples
-  ShiftScaleListSampleFilterType::Pointer shiftscaleFilter = ShiftScaleListSampleFilterType::New();
-  shiftscaleFilter->SetInput(descriptorsGenerator->GetListSample());
-  shiftscaleFilter->SetShifts(meanMeasurentVector);
-  shiftscaleFilter->SetScales(varianceMeasurentVector);
-  shiftscaleFilter->Update();
-
-  SVMType::Pointer svmEstimator = SVMType::New();
-  svmEstimator->SetInputListSample(shiftscaleFilter->GetOutput());
-  svmEstimator->SetTargetListSample(descriptorsGenerator->GetLabelListSample());
-  svmEstimator->Train();
-  svmEstimator->Save(outputFileName);
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/Detection/ObjectDetection/test/otbLabeledSampleLocalizationGenerator.cxx b/Modules/Detection/ObjectDetection/test/otbLabeledSampleLocalizationGenerator.cxx
deleted file mode 100644
index 5497da01d457c7889ac52c691c5e59cdd535201f..0000000000000000000000000000000000000000
--- a/Modules/Detection/ObjectDetection/test/otbLabeledSampleLocalizationGenerator.cxx
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-
-#include "otbVectorDataFileReader.h"
-#include "otbVectorDataFileWriter.h"
-#include "otbLabeledSampleLocalizationGenerator.h"
-
-
-int otbLabeledSampleLocalizationGenerator(int itkNotUsed(argc), char* argv[])
-{
-  const char * inputVD1  = argv[1];
-  const char * inputVD2  = argv[2];
-  const char * outputVD  = argv[3];
-
-  typedef otb::VectorData<>                                        VectorDataType;
-  typedef otb::VectorDataFileReader<VectorDataType>                VectorDataReaderType;
-  typedef otb::VectorDataFileWriter<VectorDataType>                VectorDataWriterType;
-  typedef otb::LabeledSampleLocalizationGenerator<VectorDataType>  GeneratorType;
-
-  // instantiation
-  VectorDataReaderType::Pointer  reader1    = VectorDataReaderType::New();
-  VectorDataReaderType::Pointer  reader2    = VectorDataReaderType::New();
-  VectorDataWriterType::Pointer  writer     = VectorDataWriterType::New();
-  GeneratorType::Pointer         generator  = GeneratorType::New();
-
-  reader1->SetFileName(inputVD1);
-  //reader1->Update();
-
-  reader2->SetFileName(inputVD2);
-  //reader2->Update();
-
-  generator->PushBackInput(reader1->GetOutput());
-  generator->PushBackInput(reader2->GetOutput());
-
-  generator->SetSeed(0); // enable reproducible random number sequence
-  generator->SetClassKey("Class");
-  generator->SetNoClassIdentifier(0);
-  generator->SetInhibitionRadius(5);
-  generator->SetRandomLocalizationDensity(0.004);
-  generator->SetNbMaxIteration(1000);
-  generator->SetNumberOfPositiveSamplesPerPoint(2);
-
-  //generator->Update();
-
-  writer->SetFileName(outputVD);
-  writer->SetInput(generator->GetOutput());
-  writer->Update();
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/Detection/ObjectDetection/test/otbObjectDetectionClassifier.cxx b/Modules/Detection/ObjectDetection/test/otbObjectDetectionClassifier.cxx
deleted file mode 100644
index ee37856db93074bef43637baea584286c4b2959a..0000000000000000000000000000000000000000
--- a/Modules/Detection/ObjectDetection/test/otbObjectDetectionClassifier.cxx
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-
-#include <iostream>
-#include <iterator>
-
-#include "otbImage.h"
-#include "otbRadiometricMomentsImageFunction.h"
-#include "itkListSample.h"
-#include "itkVariableLengthVector.h"
-#include "otbObjectDetectionClassifier.h"
-#include "otbImageFileReader.h"
-#include "otbImageFunctionAdaptor.h"
-#include "otbStatisticsXMLFileReader.h"
-#include "itkPreOrderTreeIterator.h"
-#include "otbLibSVMMachineLearningModel.h"
-
-const unsigned int Dimension = 2;
-typedef int        LabelType;
-typedef double     PixelType;
-typedef double     FunctionPrecisionType;
-typedef double     CoordRepType;
-
-typedef otb::Image<PixelType, Dimension>                              ImageType;
-typedef otb::VectorData<>                                             VectorDataType;
-typedef VectorDataType::PointType                                     PointType;
-typedef itk::PreOrderTreeIterator<VectorDataType::DataTreeType>       TreeIteratorType;
-
-typedef otb::ObjectDetectionClassifier
-           < ImageType,
-             VectorDataType,
-             LabelType,
-             FunctionPrecisionType,
-             CoordRepType > ObjectDetectionClassifierType;
-
-typedef otb::RadiometricMomentsImageFunction<ImageType, CoordRepType>   FunctionType;
-typedef otb::ImageFunctionAdaptor<FunctionType, FunctionPrecisionType>  AdaptedFunctionType;
-
-typedef otb::ImageFileReader<ImageType>           ImageReaderType;
-
-typedef otb::LibSVMMachineLearningModel<PixelType,LabelType> SVMModelType;
-typedef SVMModelType::Pointer SVMModelPointerType;
-
-typedef otb::StatisticsXMLFileReader<AdaptedFunctionType::OutputType> StatisticsXMLFileReaderType;
-
-
-struct ComparePoint
-{
-  bool operator () (PointType p, PointType q)
-  {
-    // order with the y axis position
-    if (p[1] < q[1])
-      return true;
-    if (p[1] > q[1])
-      return false;
-
-    // If one the same line,
-    // order with the x axis position
-    if (p[0] < q[0])
-      return true;
-
-    return false;
-  }
-};
-
-std::ostream &operator<<(std::ostream &stream, PointType p)
-{
-  stream << p[0] << " " << p[1];
-  return stream;
-}
-
-
-
-int otbObjectDetectionClassifier(int argc, char* argv[])
-{
-  if (argc != 7)
-    {
-    std::cerr << "Wrong number of arguments" << std::endl;
-    return EXIT_FAILURE;
-    }
-
-  const char* inputImageFileName = argv[1];
-  const char* inputFeatureStats = argv[2];
-  const char* inputSVMModel = argv[3];
-  const char* outputVectorDataFileName = argv[4];
-  int streaming = atoi(argv[5]);
-  int neighborhood = atoi(argv[6]);
-
-  ImageReaderType::Pointer imageReader = ImageReaderType::New();
-  imageReader->SetFileName(inputImageFileName);
-
-  StatisticsXMLFileReaderType::Pointer statisticsReader = StatisticsXMLFileReaderType::New();
-  statisticsReader->SetFileName(inputFeatureStats);
-
-
-  SVMModelPointerType svmModel = SVMModelType::New();
-  svmModel->Load(inputSVMModel);
-
-  AdaptedFunctionType::Pointer descriptorsFunction = AdaptedFunctionType::New();
-  descriptorsFunction->SetInputImage(imageReader->GetOutput());
-  descriptorsFunction->GetInternalImageFunction()->SetNeighborhoodRadius(neighborhood);
-
-  ObjectDetectionClassifierType::Pointer classifier = ObjectDetectionClassifierType::New();
-  classifier->SetInputImage(imageReader->GetOutput());
-  classifier->SetNeighborhoodRadius(neighborhood);
-  classifier->SetModel(svmModel);
-  classifier->SetDescriptorsFunction(descriptorsFunction);
-  classifier->SetNoClassLabel(0);
-  classifier->SetClassKey("Class");
-  classifier->SetShifts(statisticsReader->GetStatisticVectorByName("mean"));
-  classifier->SetScales(statisticsReader->GetStatisticVectorByName("stddev"));
-  classifier->GetStreamer()->SetNumberOfLinesStrippedStreaming( streaming );
-  classifier->SetGridStep(neighborhood/2);
-  classifier->Update();
-
-  std::vector<ObjectDetectionClassifierType::PointType> points;
-  VectorDataType::Pointer vectorData = classifier->GetOutputVectorData();
-
-  TreeIteratorType itVector(vectorData->GetDataTree());
-  itVector.GoToBegin();
-  while (!itVector.IsAtEnd())
-    {
-    if (itVector.Get()->IsPointFeature())
-      {
-      points.push_back(itVector.Get()->GetPoint());
-      }
-    ++itVector;
-    }
-
-  std::sort(points.begin(), points.end(), ComparePoint());
-  std::ofstream file(outputVectorDataFileName);
-  std::copy(points.begin(), points.end(), std::ostream_iterator<PointType>(file, "\n"));
-  file.close();
-
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/Detection/ObjectDetection/test/otbObjectDetectionTestDriver.cxx b/Modules/Detection/ObjectDetection/test/otbObjectDetectionTestDriver.cxx
deleted file mode 100644
index 3d7686897dff2f713650bcf46755b97571e1b22a..0000000000000000000000000000000000000000
--- a/Modules/Detection/ObjectDetection/test/otbObjectDetectionTestDriver.cxx
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "otbTestMain.h"
-
-void RegisterTests()
-{
-  REGISTER_TEST(otbLabeledSampleLocalizationGenerator);
-  REGISTER_TEST(otbStandardMetaImageFunctionBuilder);
-  REGISTER_TEST(otbDescriptorsListSampleGenerator);
-  REGISTER_TEST(otbDescriptorsSVMModelCreation);
-  REGISTER_TEST(otbObjectDetectionClassifier);
-}
diff --git a/Modules/Detection/ObjectDetection/test/otbStandardMetaImageFunctionBuilder.cxx b/Modules/Detection/ObjectDetection/test/otbStandardMetaImageFunctionBuilder.cxx
deleted file mode 100644
index 5ac5d938059ae6671036b2e206ca820c3d17ebf2..0000000000000000000000000000000000000000
--- a/Modules/Detection/ObjectDetection/test/otbStandardMetaImageFunctionBuilder.cxx
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-
-#include "otbStandardMetaImageFunctionBuilder.h"
-#include "otbVectorImage.h"
-#include "otbImageFileReader.h"
-
-#include "otbImageFunctionAdaptor.h"
-#include "otbFlusserMomentsImageFunction.h"
-#include "otbRadiometricMomentsImageFunction.h"
-#include "otbFourierMellinDescriptorsImageFunction.h"
-#include "otbLocalHistogramImageFunction.h"
-#include "otbHaralickTexturesImageFunction.h"
-
-
-
-int otbStandardMetaImageFunctionBuilder(int itkNotUsed(argc), char* argv[])
-{
-  const char * inputFilename  = argv[1];
-
-  std::vector<double> p1, p2, p3, p4, p5;
-
-  typedef double                                                PrecisionType;
-  typedef double                                                CoordRepType;
-  typedef otb::StandardMetaImageFunctionBuilder<PrecisionType,
-    CoordRepType>                                               BuilderType;
-
-  typedef otb::Image<PrecisionType, 2>                          ImageType;
-  typedef otb::VectorImage<PrecisionType, 2>                    VectorImageType;
-  typedef otb::ImageFileReader<ImageType>                       ImageReaderType;
-  typedef otb::ImageFileReader<VectorImageType>                 VectorImageReaderType;
-
-  typedef BuilderType::MetaImageFunctionType                    MetaImageFunctionType;
-  typedef BuilderType::DataObjectContainerType                  DataObjectContainerType;
-
-  typedef otb::FlusserMomentsImageFunction<ImageType, CoordRepType>  FlusserMomentsIF;
-  typedef otb::ImageFunctionAdaptor<FlusserMomentsIF, PrecisionType> AdaptedFlusserMomentsIF;
-
-  typedef otb::RadiometricMomentsImageFunction<ImageType, CoordRepType>  RadiometricMomentsIF;
-  typedef otb::ImageFunctionAdaptor<RadiometricMomentsIF, PrecisionType>                AdaptedRadiometricMomentsIF;
-  typedef otb::FourierMellinDescriptorsImageFunction<ImageType, CoordRepType>  FourierMellinDescriptorsIF;
-  typedef otb::ImageFunctionAdaptor<FourierMellinDescriptorsIF, PrecisionType> AdaptedFourierMellinDescriptorsIF;
-
-  p1.push_back(7);
-  p1.push_back(128);
-  p1.push_back(0);
-  p1.push_back(1500);
-
-  p2.push_back(6);
-
-  p3.push_back(5);
-
-  p4.push_back(9);
-  p4.push_back(5);
-  p4.push_back(5);
-
-  p5.push_back(10);
-  p5.push_back(1);
-  p5.push_back(1500);
-  p5.push_back(16);
-  p5.push_back(4);
-
-  // instantiation
-  ImageReaderType::Pointer       Ireader  = ImageReaderType::New();
-  VectorImageReaderType::Pointer VIreader = VectorImageReaderType::New();
-
-  BuilderType::Pointer builder = BuilderType::New();
-
-  Ireader->SetFileName(inputFilename);
-  VIreader->SetFileName(inputFilename);
-
-  builder->AddImage(Ireader->GetOutput());
-  builder->SetNeighborhoodRadius(8);
-
-  builder->SetLocalHistogramIFParameters(p1);
-  builder->SetFlusserMomentsIFParameters(p2);
-  builder->SetRadiometricMomentsIFParameters(p3);
-  builder->SetFourierMellinDescriptorsIFParameters(p4);
-  builder->SetHaralickTexturesIFParameters(p5);
-
-  builder->AddImage(VIreader->GetOutput());
-
-  MetaImageFunctionType::Pointer MIF = builder->GetMetaImageFunction();
-  std::cout << MIF << std::endl;
-
-  DataObjectContainerType DOC = builder->GetDataObjectContainer();
-  std::cout << "DataObjectContainer.size(): " << DOC.size() << std::endl;
-
-  std::cout << static_cast<AdaptedRadiometricMomentsIF *>(MIF->GetNthFunction(0))->GetInternalImageFunction()
-            << std::endl;
-  std::cout << static_cast<AdaptedRadiometricMomentsIF *>(MIF->GetNthFunction(3))->GetInternalImageFunction()
-            << std::endl;
-
-
-  std::cout << static_cast<AdaptedFlusserMomentsIF *>(MIF->GetNthFunction(1))->GetInternalImageFunction()
-            << std::endl;
-  std::cout << static_cast<AdaptedFlusserMomentsIF *>(MIF->GetNthFunction(7))->GetInternalImageFunction()
-            << std::endl;
-
-  std::cout << static_cast<AdaptedFourierMellinDescriptorsIF *>(MIF->GetNthFunction(2))->GetInternalImageFunction()
-            << std::endl;
-  std::cout << static_cast<AdaptedFourierMellinDescriptorsIF *>(MIF->GetNthFunction(11))->GetInternalImageFunction()
-            << std::endl;
-
-/*
-  std::cout << static_cast<AdaptedLocalHistogramIF *>(MIF->GetNthFunction())->GetInternalImageFunction()
-            << std::endl;
-  std::cout << static_cast<AdaptedLocalHistogramIF *>(MIF->GetNthFunction(5))->GetInternalImageFunction()
-            << std::endl;
-
-  std::cout << static_cast<AdaptedHaralickTexturesIF *>(MIF->GetNthFunction(4))->GetInternalImageFunction()
-            << std::endl;
-  std::cout << static_cast<AdaptedHaralickTexturesIF *>(MIF->GetNthFunction(21))->GetInternalImageFunction()
-            << std::endl;
-*/
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/Detection/RoadExtraction/CMakeLists.txt b/Modules/Detection/RoadExtraction/CMakeLists.txt
deleted file mode 100644
index 7bb7b02fa9cc2361802ec609782cd7bb9488749b..0000000000000000000000000000000000000000
--- a/Modules/Detection/RoadExtraction/CMakeLists.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
-#
-# This file is part of Orfeo Toolbox
-#
-#     https://www.orfeo-toolbox.org/
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-project(OTBRoadExtraction)
-otb_module_impl()
diff --git a/Modules/Detection/RoadExtraction/include/otbBreakAngularPathListFilter.h b/Modules/Detection/RoadExtraction/include/otbBreakAngularPathListFilter.h
deleted file mode 100644
index fda5cfa3c111a11ce9354629dee45f43d47137e4..0000000000000000000000000000000000000000
--- a/Modules/Detection/RoadExtraction/include/otbBreakAngularPathListFilter.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbBreakAngularPathListFilter_h
-#define otbBreakAngularPathListFilter_h
-
-#include "otbPathListToPathListFilter.h"
-#include "otbMacro.h"
-
-namespace otb
-{
-/** \class BreakAngularPathListFilter
- *  \brief CBase class for breaking angulars the input PathList, returning a PathList.
-   *
-   * \example FeatureExtraction/ExtractRoadByStepsExample.cxx
-   *
- *
- * \ingroup OTBRoadExtraction
- */
-template <class TPath>
-class ITK_EXPORT BreakAngularPathListFilter
-  : public PathListToPathListFilter<TPath>
-{
-public:
-  /** Standard typedefs */
-  typedef BreakAngularPathListFilter      Self;
-  typedef PathListToPathListFilter<TPath> Superclass;
-  typedef itk::SmartPointer<Self>         Pointer;
-  typedef itk::SmartPointer<const Self>   ConstPointer;
-
-  /** Type macro */
-  itkNewMacro(Self);
-
-  /** Creation through object factory macro */
-  itkTypeMacro(BreakAngularPathListFilter, PathListToPathListFilter);
-
-  /** Template parameters typedefs */
-  typedef typename Superclass::PathType        PathType;
-  typedef typename Superclass::PathListType    PathListType;
-  typedef typename Superclass::PathPointerType PathPointerType;
-  typedef typename PathListType::Pointer       PathListPointerType;
-
-  typedef double MaxAngleType;
-
-  /** Set/Get the max angle */
-  itkSetMacro(MaxAngle, MaxAngleType);
-  itkGetConstMacro(MaxAngle, MaxAngleType);
-
-protected:
-  /** Constructor */
-  BreakAngularPathListFilter();
-  /** Destructor */
-  ~BreakAngularPathListFilter() override {}
-  /** GenerateData method */
-  void GenerateData() override;
-  /** PrintSelf method */
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-
-private:
-  BreakAngularPathListFilter(const Self &) = delete;
-  void operator =(const Self&) = delete;
-
-  /** Calculate break angular for a path */
-  void BreakAngularPath(const MaxAngleType maxAngle,
-                        const PathPointerType inputPath,
-                        PathListPointerType outputPathList);
-
-  /** Max angle value */
-  MaxAngleType m_MaxAngle;
-
-};
-} // End namespace otb
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbBreakAngularPathListFilter.hxx"
-#endif
-
-#endif
diff --git a/Modules/Detection/RoadExtraction/include/otbBreakAngularPathListFilter.hxx b/Modules/Detection/RoadExtraction/include/otbBreakAngularPathListFilter.hxx
deleted file mode 100644
index 5fcec599fd55dc345d293a089f3d070f24dddf8e..0000000000000000000000000000000000000000
--- a/Modules/Detection/RoadExtraction/include/otbBreakAngularPathListFilter.hxx
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbBreakAngularPathListFilter_hxx
-#define otbBreakAngularPathListFilter_hxx
-
-#include "otbBreakAngularPathListFilter.h"
-#include "otbMath.h"
-
-namespace otb
-{
-/**
- * Constructor
- */
-template <class TPath>
-BreakAngularPathListFilter<TPath>
-::BreakAngularPathListFilter()
-{
-}
-
-template <class TPath>
-void
-BreakAngularPathListFilter<TPath>
-::BreakAngularPath(const MaxAngleType maxAngle, const PathPointerType inputPath, PathListPointerType outputPathList)
-{
-  typename PathType::VertexListType::ConstPointer  vertexList = inputPath->GetVertexList();
-  typename PathType::VertexListType::ConstIterator pathIt = vertexList->Begin();
-
-  typename PathType::VertexType pixel1, pixel2, pixel3;
-
-  // Initialization
-  PathPointerType newPath = PathType::New();
-  newPath->Initialize();
-
-  double alpha1(0.), alpha2(0.);
-
-  while (pathIt != vertexList->End())
-    {
-    // Add Pixel 1
-    newPath->AddVertex(pathIt.Value());
-    pixel1 = pathIt.Value();
-    ++pathIt;
-    if (pathIt != vertexList->End())
-      {
-      pixel2 = pathIt.Value();
-      ++pathIt;
-      if (pathIt != vertexList->End())
-        {
-        pixel3 = pathIt.Value();
-
-        alpha1 = std::atan2((pixel1[1] - pixel2[1]), (pixel1[0] - pixel2[0]));
-        alpha2 = std::atan2((pixel2[1] - pixel3[1]), (pixel2[0] - pixel3[0]));
-        alpha1 = (alpha1 >= 0) ? alpha1 : (alpha1 + CONST_2PI);
-        alpha2 = (alpha2 >= 0) ? alpha2 : (alpha2 + CONST_2PI);
-        if (std::abs(alpha1 - alpha2) > static_cast<double>(maxAngle))
-          {
-          // Add Pixel 2
-          newPath->AddVertex(pixel2);
-          //Create new PathType in the out path list
-          outputPathList->PushBack(newPath);
-          // Reinit
-          newPath = PathType::New();
-
-          }
-        --pathIt; // Return previous pixel
-        }
-      else
-        {
-        // Add last Pixel (Pixel 2)
-        newPath->AddVertex(pixel2);
-        }
-      }
-    }
-  //Create new PathType in the out list
-  outputPathList->PushBack(newPath);
-}
-
-template <class TPath>
-void
-BreakAngularPathListFilter<TPath>
-::GenerateData()
-{
-  const PathListType * inputPathList  = this->GetInput();
-  PathListType *       outputPathList = this->GetOutput();
-
-  typename PathListType::ConstIterator listIt = inputPathList->Begin();
-  outputPathList->Clear();
-
-  PathListPointerType newTempPathList = PathListType::New();
-  while (listIt != inputPathList->End())
-    {
-    (void) BreakAngularPath(m_MaxAngle, listIt.Get(), outputPathList);
-    ++listIt;
-    }
-}
-
-/**
- * PrintSelf Method
- */
-template <class TPath>
-void
-BreakAngularPathListFilter<TPath>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-  os << indent << "Angular max value : " << m_MaxAngle << std::endl;
-}
-
-} // End namespace otb
-#endif
diff --git a/Modules/Detection/RoadExtraction/include/otbGenericRoadExtractionFilter.h b/Modules/Detection/RoadExtraction/include/otbGenericRoadExtractionFilter.h
deleted file mode 100644
index 6c57fa13c9c52783693e4e699eaf689fbaf2ff7d..0000000000000000000000000000000000000000
--- a/Modules/Detection/RoadExtraction/include/otbGenericRoadExtractionFilter.h
+++ /dev/null
@@ -1,255 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbGenericRoadExtractionFilter_h
-#define otbGenericRoadExtractionFilter_h
-
-#include "itkUnaryFunctorImageFilter.h"
-#include "itkGradientRecursiveGaussianImageFilter.h"
-
-#include "otbVectorImage.h"
-#include "otbImageToPathListFilter.h"
-#include "itkSqrtImageFilter.h"
-#include "otbNeighborhoodScalarProductFilter.h"
-#include "otbNonMaxRemovalByDirectionFilter.h"
-#include "otbVectorizationPathListFilter.h"
-#include "otbSimplifyPathListFilter.h"
-#include "otbBreakAngularPathListFilter.h"
-#include "otbRemoveTortuousPathListFilter.h"
-#include "otbLinkPathListFilter.h"
-#include "otbRemoveIsolatedByDirectionFilter.h"
-#include "otbRemoveWrongDirectionFilter.h"
-#include "otbLikelihoodPathListFilter.h"
-
-namespace otb
-{
-/**
- * \class GenericRoadExtractionFilter
- * \brief This class performs the extraction of roads from an image.
- *
- * This composite filter implements a fast and robust road extraction
- * for high resolution satellite images. The line
- * detection is done using a Gaussian gradient with a scalar product to find
- * the road directions. Finally, extracted roads are vectorized and
- * processed to improve the results removing some occultations and false
- * detections.
- *
- * The full method is detailed in E. Christophe and J. Inglada, "Robust Road
- * Extraction for High Resolution Satellite Images," in IEEE International
- * Conference on Image Processing, ICIP'07, 2007.
- *
- * This filter is fast, as the detection typically takes 3 seconds for a
- * 1000 \f$ \times \f$ 1000 images with four spectral bands. Results can be
- * used as an initialization for more complex algorithms.
- *
- * \sa itk::SqrtImageFilter
- * \sa itk::GradientRecursiveGaussianImageFilter
- * \sa NeighborhoodScalarProductFilter
- * \sa RemoveIsolatedByDirectionFilter
- * \sa RemoveWrongDirectionFilter
- * \sa NonMaxRemovalByDirectionFilter
- * \sa VectorizationPathListFilter
- * \sa SimplifyPathListFilter
- * \sa BreakAngularPathListFilter
- * \sa RemoveTortuousPathListFilter
- * \sa LinkPathListFilter
- * \sa LikelihoodPathListFilter
- *
- * \ingroup OTBRoadExtraction
- */
-template <class TInputImage, class TOutputPath>
-class ITK_EXPORT GenericRoadExtractionFilter
-  : public ImageToPathListFilter<TInputImage, TOutputPath>
-{
-public:
-  /** Standard typedefs */
-  typedef GenericRoadExtractionFilter                     Self;
-  typedef ImageToPathListFilter<TInputImage, TOutputPath> Superclass;
-  typedef itk::SmartPointer<Self>                         Pointer;
-  typedef itk::SmartPointer<const Self>                   ConstPointer;
-  /** Creation through object factory macro */
-  itkNewMacro(Self);
-  /** Type macro */
-  itkTypeMacro(GenericRoadExtractionFilter, ImageToPathListFilter);
-  /** Template parameters typedefs */
-  typedef typename Superclass::InputImageType     InputImageType;
-  typedef typename Superclass::OutputPathType     OutputPathType;
-  typedef typename Superclass::OutputPathListType OutputPathListType;
-  typedef typename InputImageType::PixelType      InputPixelType;
-  typedef double                                  InternalPixelType;
-
-  typedef otb::VectorImage<InternalPixelType, InputImageType::ImageDimension> VectorImageType;
-  typedef otb::Image<InternalPixelType, InputImageType::ImageDimension>       ModulusType;
-  typedef otb::Image<InternalPixelType, InputImageType::ImageDimension>       DirectionType;
-
-  typedef itk::CovariantVector<InternalPixelType, InputImageType::ImageDimension>
-  VectorPixelType;
-  typedef otb::Image<VectorPixelType, InputImageType::ImageDimension> CovariantVectorImageType;
-
-  typedef itk::SqrtImageFilter<
-      InputImageType,
-      InputImageType>                      SquareRootImageFilterType;
-
-  typedef itk::GradientRecursiveGaussianImageFilter<
-      InputImageType,
-      CovariantVectorImageType>               GradientFilterType;
-
-  typedef NeighborhoodScalarProductFilter<
-      CovariantVectorImageType,
-      ModulusType,
-      DirectionType>                          NeighborhoodScalarProductFilterType;
-
-  typedef RemoveIsolatedByDirectionFilter<
-      ModulusType,
-      DirectionType,
-      ModulusType>                           RemoveIsolatedByDirectionFilterType;
-
-  typedef RemoveWrongDirectionFilter<
-      ModulusType,
-      DirectionType,
-      ModulusType>                            RemoveWrongDirectionFilterType;
-
-  typedef NonMaxRemovalByDirectionFilter<
-      ModulusType,
-      DirectionType,
-      ModulusType>                           NonMaxRemovalByDirectionFilterType;
-
-  typedef VectorizationPathListFilter<
-      ModulusType,
-      DirectionType,
-      OutputPathType>                        VectorizationPathListFilterType;
-
-  typedef SimplifyPathListFilter<OutputPathType>                SimplifyPathListFilterType;
-  typedef BreakAngularPathListFilter<OutputPathType>            BreakAngularPathListFilterType;
-  typedef RemoveTortuousPathListFilter<OutputPathType>          RemoveTortuousPathListFilterType;
-  typedef LinkPathListFilter<OutputPathType>                    LinkPathListFilterType;
-  typedef LikelihoodPathListFilter<OutputPathType, ModulusType> LikelihoodPathListFilterType;
-
-  /** Template parameters typedefs for internals filters */
-  typedef typename GradientFilterType::RealType                    SigmaType;
-  typedef typename VectorizationPathListFilterType::InputPixelType AmplitudeThresholdType;
-//     typedef typename SimplifyPathListFilterType::ToleranceType ToleranceType;
-  typedef double                                                ToleranceType;
-  typedef typename BreakAngularPathListFilterType::MaxAngleType MaxAngleType;
-//     typedef typename RemoveTortuousPathListFilterType::MeanDistanceThresholdType MeanDistanceThresholdType;
-  typedef double                                    MeanDistanceThresholdType;
-  typedef typename LinkPathListFilterType::RealType LinkRealType;
-
-  /** Get/Set the alpha value */
-  itkGetConstReferenceMacro(Alpha, double);
-  itkSetMacro(Alpha, double);
-
-  /** Get/Set the amplitude threshold to start following a path (use by the VectorizationPathListFilter)*/
-  itkSetMacro(AmplitudeThreshold, AmplitudeThresholdType);
-  itkGetMacro(AmplitudeThreshold, AmplitudeThresholdType);
-
-  /** Get/Set  the tolerance for segment consistency (tolerance in terms of distance) (use by the SimplifyPathListFilter)*/
-  itkGetMacro(Tolerance, ToleranceType);
-  itkSetMacro(Tolerance, ToleranceType);
-
-  /** Get/Set  the resolution */
-  itkGetMacro(Resolution, double);
-  itkSetMacro(Resolution, double);
-
-  /** Set/Get the max angle (use bye the BreakAngularPathListFilter)*/
-  itkSetMacro(MaxAngle, MaxAngleType);
-  itkGetConstMacro(MaxAngle, MaxAngleType);
-
-  /** Get/Set the tolerance for segment consistency (tolerance in terms of distance) (use by RemoveTortuousPathListFilter)*/
-  itkGetMacro(FirstMeanDistanceThreshold, MeanDistanceThresholdType);
-  itkSetMacro(FirstMeanDistanceThreshold, MeanDistanceThresholdType);
-  itkGetMacro(SecondMeanDistanceThreshold, MeanDistanceThresholdType);
-  itkSetMacro(SecondMeanDistanceThreshold, MeanDistanceThresholdType);
-
-  /** Get/Set the angular threshold (use by LinkPathFilter)*/
-  itkSetMacro(AngularThreshold, LinkRealType);
-  itkGetMacro(AngularThreshold, LinkRealType);
-  /** Get/Set the distance threshold (use by LinkPathFilter)*/
-  itkSetMacro(DistanceThreshold, LinkRealType);
-  itkGetMacro(DistanceThreshold, LinkRealType);
-
-protected:
-  /** Constructor */
-  GenericRoadExtractionFilter();
-  /** Destructor */
-  ~GenericRoadExtractionFilter() override {}
-
-  /** Prepare main computation method
-   *  Note : this function isn't called
-   */
-  void BeforeGenerateData(void);
-
-  /** Main computation method */
-  void GenerateData(void) override;
-  /** PrintSelf method */
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-
-private:
-
-  GenericRoadExtractionFilter(const Self &) = delete;
-  void operator =(const Self&) = delete;
-
-  typename SquareRootImageFilterType::Pointer m_SquareRootImageFilter;
-  typename GradientFilterType::Pointer m_GradientFilter;
-  typename NeighborhoodScalarProductFilterType::Pointer m_NeighborhoodScalarProductFilter;
-  typename RemoveIsolatedByDirectionFilterType::Pointer m_RemoveIsolatedByDirectionFilter;
-  typename RemoveWrongDirectionFilterType::Pointer m_RemoveWrongDirectionFilter;
-  typename NonMaxRemovalByDirectionFilterType::Pointer m_NonMaxRemovalByDirectionFilter;
-  typename VectorizationPathListFilterType::Pointer m_VectorizationPathListFilter;
-  typename SimplifyPathListFilterType::Pointer m_FirstSimplifyPathListFilter;
-  typename SimplifyPathListFilterType::Pointer m_SecondSimplifyPathListFilter;
-  typename BreakAngularPathListFilterType::Pointer m_BreakAngularPathListFilter;
-  typename RemoveTortuousPathListFilterType::Pointer m_FirstRemoveTortuousPathListFilter;
-  typename RemoveTortuousPathListFilterType::Pointer m_SecondRemoveTortuousPathListFilter;
-  typename LinkPathListFilterType::Pointer m_LinkPathListFilter;
-  typename LikelihoodPathListFilterType::Pointer m_LikelihoodPathListFilter;
-
-  /** Amplitude threshold to start following a path (use by the VectorizationPathListFilter)*/
-  AmplitudeThresholdType m_AmplitudeThreshold;
-  /** Tolerance for segment consistency (tolerance in terms of distance) (use by the SimplifyPathListFilter)*/
-  ToleranceType m_Tolerance;
-  /** Max angle (use bye the BreakAngularPathListFilter)*/
-  MaxAngleType m_MaxAngle;
-  /** Tolerance for segment consistency (tolerance in terms of distance) (use by RemoveTortuousPathListFilter)*/
-  MeanDistanceThresholdType m_FirstMeanDistanceThreshold;
-  MeanDistanceThresholdType m_SecondMeanDistanceThreshold;
-  /** The angular threshold (use by LinkPathListFilter) */
-  LinkRealType m_AngularThreshold;
-
-  /** The distance threshold (use by LinkPathListFilter) */
-  double m_DistanceThreshold;
-
-  /** Alpha. Use to calculate the sigma value used by the GradientRecursiveGaussianImageFilter */
-  double m_Alpha;
-
-  /** Resolution of the image. Use to calculate the sigma value used by the GradientRecursiveGaussianImageFilter
-  and the m_DistanceThreshold value used by the LinkPathListFilter
-  This value is set bye the image's spacing.*/
-  double m_Resolution;
-
-};
-
-} // End namespace otb
-
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbGenericRoadExtractionFilter.hxx"
-#endif
-
-#endif
diff --git a/Modules/Detection/RoadExtraction/include/otbGenericRoadExtractionFilter.hxx b/Modules/Detection/RoadExtraction/include/otbGenericRoadExtractionFilter.hxx
deleted file mode 100644
index fe69fd3c7894a61ffd07e7a942c54a78e7ef8f14..0000000000000000000000000000000000000000
--- a/Modules/Detection/RoadExtraction/include/otbGenericRoadExtractionFilter.hxx
+++ /dev/null
@@ -1,192 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbGenericRoadExtractionFilter_hxx
-#define otbGenericRoadExtractionFilter_hxx
-
-#include "otbGenericRoadExtractionFilter.h"
-#include "otbMath.h"
-
-namespace otb
-{
-/**
- * Constructor
- */
-template <class TInputImage, class TOutputPath>
-GenericRoadExtractionFilter<TInputImage, TOutputPath>
-::GenericRoadExtractionFilter()
-{
-  this->SetNumberOfRequiredInputs(1);
-  this->SetNumberOfRequiredOutputs(1);
-
-  m_SquareRootImageFilter = SquareRootImageFilterType::New();
-  m_GradientFilter = GradientFilterType::New();
-  m_NeighborhoodScalarProductFilter = NeighborhoodScalarProductFilterType::New();
-  m_RemoveIsolatedByDirectionFilter = RemoveIsolatedByDirectionFilterType::New();
-  m_RemoveWrongDirectionFilter = RemoveWrongDirectionFilterType::New();
-  m_NonMaxRemovalByDirectionFilter = NonMaxRemovalByDirectionFilterType::New();
-  m_VectorizationPathListFilter = VectorizationPathListFilterType::New();
-  m_FirstSimplifyPathListFilter = SimplifyPathListFilterType::New();
-  m_SecondSimplifyPathListFilter = SimplifyPathListFilterType::New();
-  m_BreakAngularPathListFilter = BreakAngularPathListFilterType::New();
-  m_FirstRemoveTortuousPathListFilter = RemoveTortuousPathListFilterType::New();
-  m_SecondRemoveTortuousPathListFilter = RemoveTortuousPathListFilterType::New();
-  m_LinkPathListFilter = LinkPathListFilterType::New();
-  m_LikelihoodPathListFilter = LikelihoodPathListFilterType::New();
-
-  /** Amplitude threshold to start following a path (use by the VectorizationPathListFilter)*/
-  m_AmplitudeThreshold = static_cast<AmplitudeThresholdType>(0.00005);
-  /** Tolerance for segment consistency (tolerance in terms of distance) (use by the SimplifyPathFilter)*/
-  m_Tolerance = static_cast<ToleranceType>(1.);
-  /** Max angle (use bye the BreakAngularPathListFilter)*/
-  m_MaxAngle = static_cast<MaxAngleType>(CONST_PI_8);
-  /** Tolerance for segment consistency (tolerance in terms of distance) (use by RemoveTortuousPathFilter)*/
-  m_FirstMeanDistanceThreshold = static_cast<MeanDistanceThresholdType>(1.);
-  m_SecondMeanDistanceThreshold = static_cast<MeanDistanceThresholdType>(10.);
-  /** The angular threshold (use by LinkPathFilter) */
-  m_AngularThreshold = static_cast<LinkRealType>(CONST_PI_8);
-
-  /** The distance threshold (use by LinkPathFilter) */
-  m_DistanceThreshold = 25.;
-
-  /** Alpha value */
-  /** Use to calculate the sigma value use by the GradientRecursiveGaussianImageFilter */
-  m_Alpha = 1.0;
-
-  /** Resolution of the image */
-  m_Resolution = 1.;
-}
-/**
- * Prepare main computation method
- */
-template <class TInputImage, class TOutputPath>
-void
-GenericRoadExtractionFilter<TInputImage, TOutputPath>
-::BeforeGenerateData()
-{
-  /** Calculation of resolution value */
-  typename InputImageType::SpacingType spacing = this->GetInput()->GetSignedSpacing();
-  // Getting x Spacing for the resolution
-  m_Resolution = static_cast<double>(spacing[0]);
-  if (m_Resolution == 0.)
-    {
-    itkWarningMacro(<< "The image spacing is zero. So the resolution used in the filter is forced to 1.");
-    m_Resolution = 1.;
-    }
-
-}
-
-/**
- * Main computation method
- */
-template <class TInputImage, class TOutputPath>
-void
-GenericRoadExtractionFilter<TInputImage, TOutputPath>
-::GenerateData()
-{
-  // // Input images pointers
-  typename InputImageType::ConstPointer inputImage     = this->GetInput();
-  typename OutputPathListType::Pointer  outputPathList  = this->GetOutput();
-
-  ///////////////////////////////////////
-  //// Algorithm for road extraction ////
-  ///////////////////////////////////////
-
-  //
-
-  m_SquareRootImageFilter->SetInput(inputImage);
-
-  m_GradientFilter->SetInput(m_SquareRootImageFilter->GetOutput());
-  /** Sigma calculated with the alpha and image resolution parameters */
-  m_GradientFilter->SetSigma(static_cast<SigmaType>(m_Alpha * (1.2 / m_Resolution + 1.)));
-  m_GradientFilter->SetUseImageDirection(false);
-
-  m_NeighborhoodScalarProductFilter->SetInput(m_GradientFilter->GetOutput());
-
-  m_RemoveIsolatedByDirectionFilter->SetInput(m_NeighborhoodScalarProductFilter->GetOutput());
-  m_RemoveIsolatedByDirectionFilter->SetInputDirection(m_NeighborhoodScalarProductFilter->GetOutputDirection());
-
-  m_RemoveWrongDirectionFilter->SetInput(m_RemoveIsolatedByDirectionFilter->GetOutput());
-  m_RemoveWrongDirectionFilter->SetInputDirection(m_NeighborhoodScalarProductFilter->GetOutputDirection());
-
-  m_NonMaxRemovalByDirectionFilter->SetInput(m_RemoveWrongDirectionFilter->GetOutput());
-  m_NonMaxRemovalByDirectionFilter->SetInputDirection(m_NeighborhoodScalarProductFilter->GetOutputDirection());
-
-  m_VectorizationPathListFilter->SetInput(m_NonMaxRemovalByDirectionFilter->GetOutput());
-  m_VectorizationPathListFilter->SetInputDirection(m_NeighborhoodScalarProductFilter->GetOutputDirection());
-  m_VectorizationPathListFilter->SetAmplitudeThreshold(m_AmplitudeThreshold);
-
-  m_FirstSimplifyPathListFilter->SetInput(m_VectorizationPathListFilter->GetOutput());
-  m_FirstSimplifyPathListFilter->GetFunctor().SetTolerance(m_Tolerance);
-
-  m_BreakAngularPathListFilter->SetInput(m_FirstSimplifyPathListFilter->GetOutput());
-  m_BreakAngularPathListFilter->SetMaxAngle(m_MaxAngle);
-
-  m_FirstRemoveTortuousPathListFilter->SetInput(m_BreakAngularPathListFilter->GetOutput());
-  m_FirstRemoveTortuousPathListFilter->GetFunctor().SetThreshold(m_FirstMeanDistanceThreshold);
-
-  m_LinkPathListFilter->SetInput(m_FirstRemoveTortuousPathListFilter->GetOutput());
-  m_LinkPathListFilter->SetAngularThreshold(m_AngularThreshold);
-  m_LinkPathListFilter->SetDistanceThreshold(static_cast<LinkRealType>(m_DistanceThreshold / m_Resolution));
-
-  m_SecondSimplifyPathListFilter->SetInput(m_LinkPathListFilter->GetOutput());
-  m_SecondSimplifyPathListFilter->GetFunctor().SetTolerance(m_Tolerance);
-
-  m_SecondRemoveTortuousPathListFilter->SetInput(m_SecondSimplifyPathListFilter->GetOutput());
-  m_SecondRemoveTortuousPathListFilter->GetFunctor().SetThreshold(m_SecondMeanDistanceThreshold);
-
-  m_LikelihoodPathListFilter->SetInput(m_SecondRemoveTortuousPathListFilter->GetOutput());
-  m_LikelihoodPathListFilter->SetInputImage(m_NonMaxRemovalByDirectionFilter->GetOutput());
-
-  // Graft output seems to be broken for PolylineParametricPath
-  // So we use update, and copy the path to the output path list.
-  // m_LikelihoodPathListFilter->GraftOutput(this->GetOutput());
-  m_LikelihoodPathListFilter->Update();
-  // outputPathList =  m_LikelihoodPathListFilter->GetOutput();
-  for (typename LikelihoodPathListFilterType::PathListType::ConstIterator it
-         = m_LikelihoodPathListFilter->GetOutput()->Begin();
-       it != m_LikelihoodPathListFilter->GetOutput()->End();
-       ++it)
-    {
-    outputPathList->PushBack(it.Get());
-    }
-}
-/**
- * PrintSelf method
- */
-template <class TInputImage, class TOutputPath>
-void
-GenericRoadExtractionFilter<TInputImage, TOutputPath>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-  os << indent << "m_Alpha:" << m_Alpha << std::endl;
-  os << indent << "m_Resolution:" << m_Resolution << std::endl;
-  os << indent << "m_AmplitudeThreshold: " << m_AmplitudeThreshold << std::endl;
-  os << indent << "m_Tolerance: " << m_Tolerance << std::endl;
-  os << indent << "m_MaxAngle: " << m_MaxAngle << std::endl;
-  os << indent << "m_FirstMeanDistanceThreshold: " << m_FirstMeanDistanceThreshold << std::endl;
-  os << indent << "m_SecondMeanDistanceThreshold: " << m_SecondMeanDistanceThreshold << std::endl;
-  os << indent << "m_DistanceThreshold: " << m_DistanceThreshold << std::endl;
-  os << indent << "m_AngularThreshold: " << m_AngularThreshold << std::endl;
-
-}
-} // End namespace otb
-#endif
diff --git a/Modules/Detection/RoadExtraction/include/otbImageToPathListAlignFilter.h b/Modules/Detection/RoadExtraction/include/otbImageToPathListAlignFilter.h
deleted file mode 100644
index bdb44cf1f065d6f29f879f5e6da32b08fea2ca2b..0000000000000000000000000000000000000000
--- a/Modules/Detection/RoadExtraction/include/otbImageToPathListAlignFilter.h
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbImageToPathListAlignFilter_h
-#define otbImageToPathListAlignFilter_h
-
-#include "itkImageSource.h"
-#include "itkConceptChecking.h"
-#include "otbImage.h"
-#include "otbImageToPathListFilter.h"
-#include <vector>
-
-namespace otb
-{
-
-/** \class ImageToPathListAlignFilter
- * \brief Base class used to implement filter to extract align points or group of points and give the coordinates.
- *
- *
- * \ingroup OTBRoadExtraction
- */
-template <class TInputImage, class TOutputPath>
-class ITK_EXPORT ImageToPathListAlignFilter : public ImageToPathListFilter<TInputImage, TOutputPath>
-{
-public:
-  /** Standard class typedefs. */
-  typedef ImageToPathListAlignFilter                      Self;
-  typedef ImageToPathListFilter<TInputImage, TOutputPath> Superclass;
-  typedef itk::SmartPointer<Self>                         Pointer;
-  typedef itk::SmartPointer<const Self>                   ConstPointer;
-
-  /** Method for creation through the object factory. */
-  itkNewMacro(Self);
-
-  /** Run-time type information (and related methods). */
-  itkTypeMacro(ImageToPathListAlignFilter, ImageToPathListFilter);
-//  itkTypeMacro(ImageToPathListAlignFilter, itk::ImageSource);
-
-  /** ImageDimension constants */
-  itkStaticConstMacro(InputImageDimension, unsigned int,
-                      TInputImage::ImageDimension);
-
-  /** Some convenient typedefs. */
-  typedef typename Superclass::OutputPathListType OutputPathListType;
-
-  typedef typename Superclass::InputImageType       InputImageType;
-  typedef typename Superclass::InputImageRegionType InputImageRegionType;
-  typedef typename InputImageType::Pointer          InputImagePointer;
-  typedef typename InputImageType::ConstPointer     InputImageConstPointer;
-
-  typedef typename InputImageType::SizeType  SizeType;
-  typedef typename InputImageType::ValueType ValueType;
-  typedef typename InputImageType::PixelType PixelType;
-
-  typedef typename Superclass::OutputPathType OutputPathType;
-  // typedef typename Superclass::OutputPathListType     OutputPathListType;
-  typedef typename Superclass::OutputPathPointerType OutputPathPointerType;
-
-//  typedef          float                                        RealType;
-//typedef typename itk::NumericTraits<PixelType>::RealType       RealType;
-  typedef double RealType;
-//  typedef typename itk::Image<RealType, InputImageDimension>      RealImageType;
-  typedef typename otb::Image<RealType, InputImageDimension> RealImageType;
-  typedef typename RealImageType::Pointer                    RealImageTypePointer;
-  typedef typename RealImageType::IndexType                  RealImageTypeIndexType;
-
-  /** Spacing (size of a pixel) of the output image. The
-   * spacing is the geometric distance between image samples.
-   * It is stored internally as double, but may be set from
-   * float. \sa GetSpacing() */
-  virtual void SetSpacing(const double* spacing);
-  virtual void SetSpacing(const float* spacing);
-  virtual const double* GetSpacing() const;
-
-  /** Set/Get the value for pixels on and off the path.
-  * By default, this filter will return a "0" image with path pixels set to 1 */
-  itkSetMacro(PathValue, ValueType);
-  itkGetMacro(PathValue, ValueType);
-  itkSetMacro(BackgroundValue, ValueType);
-  itkGetMacro(BackgroundValue, ValueType);
-
-  /** The origin of the output image. The origin is the geometric
-   * coordinates of the index (0, 0, ..., 0).  It is stored internally
-   * as double but may be set from float.
-   * \sa GetOrigin() */
-  virtual void SetOrigin(const double* origin);
-  virtual void SetOrigin(const float* origin);
-  virtual const double * GetOrigin() const;
-
-  /** Set/Get Size */
-  itkSetMacro(Size, SizeType);
-  itkGetMacro(Size, SizeType);
-
-  itkSetMacro(isMeaningfulSegment, bool);
-  itkSetMacro(NbGradDirection, int);
-  itkSetMacro(NbLineDirection, int);
-  itkSetMacro(MinGradNorm, double);
-  itkSetMacro(Eps, double);
-  itkGetConstReferenceMacro(isMeaningfulSegment, bool);
-  itkGetConstReferenceMacro(NbGradDirection, int);
-  itkGetConstReferenceMacro(NbLineDirection, int);
-  itkGetConstReferenceMacro(MinGradNorm, double);
-  itkGetConstReferenceMacro(Eps, double);
-
-protected:
-  ImageToPathListAlignFilter();
-  ~ImageToPathListAlignFilter() override;
-
-  void GenerateOutputInformation() override {}  // do nothing
-  void GenerateData() override;
-  virtual std::vector<double> tab(int n, double p, double m);
-  virtual void AngleCalculate(const InputImageType*  InputImageIn);
-
-  SizeType  m_Size;
-  double    m_Spacing[InputImageDimension];
-  double    m_Origin[InputImageDimension];
-  ValueType m_PathValue;
-  ValueType m_BackgroundValue;
-
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-
-private:
-  ImageToPathListAlignFilter(const Self &) = delete;
-  void operator =(const Self&) = delete;
-  bool                m_isMeaningfulSegment; /// to get all meaningful segments (maximal or not
-  int                 m_NbGradDirection; /// Number of allowed gradient direction, default 16
-  int                 m_NbLineDirection; /// Number of line directions to scan, default 96)
-  double              m_MinGradNorm; /// Minimum gradient norm to define a direction, default 2.
-  double              m_Eps; /// -log10(max. number of false alarms), default 0
-  std::vector<double> m_seglist;
-
-  RealImageType * m_AngleImage; //Angle image use by GenerateData and AngleCalculate methods
-};
-
-} // end namespace otb
-
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbImageToPathListAlignFilter.hxx"
-#endif
-
-#endif
diff --git a/Modules/Detection/RoadExtraction/include/otbImageToPathListAlignFilter.hxx b/Modules/Detection/RoadExtraction/include/otbImageToPathListAlignFilter.hxx
deleted file mode 100644
index 3ba3ef83d435c64c28995b047ffcfe72a7316c79..0000000000000000000000000000000000000000
--- a/Modules/Detection/RoadExtraction/include/otbImageToPathListAlignFilter.hxx
+++ /dev/null
@@ -1,585 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbImageToPathListAlignFilter_hxx
-#define otbImageToPathListAlignFilter_hxx
-
-#include "otbImageToPathListAlignFilter.h"
-#include "itkImageRegionIteratorWithIndex.h"
-#include "itkConstNeighborhoodIterator.h"
-#include "itkPathIterator.h"
-#include "itkNumericTraits.h"
-#include "itkImageLinearIteratorWithIndex.h"
-#include "otbMath.h"
-
-namespace otb
-{
-
-struct one_segment
-{
-  short start;    /* starting position (distance from border) */
-  short end;      /* ending position (hence, length is end-start+1) */
-  double nfa;     /* number of false alarms */
-  char ok;
-};
-
-/** Constructor */
-template <class TInputImage, class TOutputPath>
-ImageToPathListAlignFilter<TInputImage, TOutputPath>
-::ImageToPathListAlignFilter()
-{
-  this->SetNumberOfRequiredInputs(1);
-  m_Size.Fill(0);
-  m_isMeaningfulSegment = false;
-  m_NbGradDirection = 16;
-  m_NbLineDirection = 96;
-  m_MinGradNorm = 2.0;
-  m_Eps = 0.0;
-
-  for (unsigned int i = 0; i < InputImageDimension; ++i)
-    {
-    // Set an image spacing for the user
-    m_Spacing[i] = 1.0;
-    m_Origin[i] = 0;
-    }
-
-  m_PathValue = itk::NumericTraits<ValueType>::One;
-  m_BackgroundValue = itk::NumericTraits<ValueType>::Zero;
-}
-
-/** Destructor */
-template <class TInputImage, class TOutputPath>
-ImageToPathListAlignFilter<TInputImage, TOutputPath>
-::~ImageToPathListAlignFilter()
-{
-}
-
-//----------------------------------------------------------------------------
-template <class TInputImage, class TOutputPath>
-void
-ImageToPathListAlignFilter<TInputImage, TOutputPath>
-::SetSpacing(const double* spacing)
-{
-  unsigned int i;
-  for (i = 0; i < InputImageDimension; ++i)
-    {
-    if (spacing[i] != m_Spacing[i])
-      {
-      break;
-      }
-    }
-  if (i < InputImageDimension)
-    {
-    for (i = 0; i < InputImageDimension; ++i)
-      {
-      m_Spacing[i] = spacing[i];
-      }
-    this->Modified();
-    }
-}
-
-template <class TInputImage, class TOutputPath>
-void
-ImageToPathListAlignFilter<TInputImage, TOutputPath>
-::SetSpacing(const float* spacing)
-{
-  unsigned int i;
-  for (i = 0; i < InputImageDimension; ++i)
-    {
-    if ((double) spacing[i] != m_Spacing[i])
-      {
-      break;
-      }
-    }
-  if (i < InputImageDimension)
-    {
-    for (i = 0; i < InputImageDimension; ++i)
-      {
-      m_Spacing[i] = spacing[i];
-      }
-    this->Modified();
-    }
-}
-
-template <class TInputImage, class TOutputPath>
-const double *
-ImageToPathListAlignFilter<TInputImage, TOutputPath>
-::GetSpacing() const
-{
-  return m_Spacing;
-}
-
-//----------------------------------------------------------------------------
-template <class TInputImage, class TOutputPath>
-void
-ImageToPathListAlignFilter<TInputImage, TOutputPath>
-::SetOrigin(const double* origin)
-{
-  unsigned int i;
-  for (i = 0; i < InputImageDimension; ++i)
-    {
-    if (origin[i] != m_Origin[i])
-      {
-      break;
-      }
-    }
-  if (i < InputImageDimension)
-    {
-    for (i = 0; i < InputImageDimension; ++i)
-      {
-      m_Origin[i] = origin[i];
-      }
-    }
-}
-
-template <class TInputImage, class TOutputPath>
-void
-ImageToPathListAlignFilter<TInputImage, TOutputPath>
-::SetOrigin(const float* origin)
-{
-  unsigned int i;
-  for (i = 0; i < InputImageDimension; ++i)
-    {
-    if ((double) origin[i] != m_Origin[i])
-      {
-      break;
-      }
-    }
-  if (i < InputImageDimension)
-    {
-    for (i = 0; i < InputImageDimension; ++i)
-      {
-      m_Origin[i] = origin[i];
-      }
-    }
-}
-
-template <class TInputImage, class TOutputPath>
-const double *
-ImageToPathListAlignFilter<TInputImage, TOutputPath>
-::GetOrigin() const
-{
-  return m_Origin;
-}
-
-//----------------------------------------------------------------------------
-/* Algorithm */
-template <class TInputImage, class TOutputPath>
-std::vector<double>
-ImageToPathListAlignFilter<TInputImage, TOutputPath>
-::tab(int n, double p, double m)
-{
-  std::vector<double> out;
-  int                 adr1, adr2, x, y;
-//  double lambda;
-  double q;
-
-  q = 1.0 - p;
-  out.resize((n + 1) * (n + 1));
-  adr1 = 0;
-
-  /*** compute proba (=x among y) ***/
-  out[0] = 1.0;
-  for (y = 1, adr2 = 0; y <= n; ++y)
-    {
-    adr1 = adr2;
-    adr2 += n + 1;
-    out[adr2] = q * out[adr1];
-    for (x = 1; x <= y; ++x)
-      out[adr2 + x] = p * out[adr1 + x - 1] + q * out[adr1 + x];
-    }
-
-  /*** sum to obtain proba (>=k among y) ***/
-  for (y = 1, adr1 = n + 1; y <= n; ++y, adr1 += n + 1)
-    for (x = y - 1; x >= 0; x--)
-      out[adr1 + x] += out[adr1 + x + 1];
-
-  /*** multiply by m (number of segments) to obtain expectation***/
-  for (adr1 = (n + 1) * (n + 1); --adr1 >= 0; )
-    out[adr1] *= m;
-
-  return out;
-}
-
-template <class TInputImage, class TOutputPath>
-void
-ImageToPathListAlignFilter<TInputImage, TOutputPath>
-::AngleCalculate(const InputImageType* InputImage)
-{
-  double threshold;
-  int    n, p, x, y;
-
-  typename InputImageType::SizeType Taille;
-  typename RealImageType::IndexType IndexOut;
-
-  Taille = InputImage->GetLargestPossibleRegion().GetSize();
-
-  typename RealImageType::RegionType region;
-  region.SetSize(InputImage->GetLargestPossibleRegion().GetSize());
-  IndexOut[0] = 0;
-  IndexOut[1] = 0;
-//  region.SetIndex(InputImage->GetLargestPossibleRegion().GetIndex());
-  region.SetIndex(IndexOut);
-  m_AngleImage->SetRegions(region);
-  m_AngleImage->SetOrigin(InputImage->GetOrigin());
-  m_AngleImage->SetSignedSpacing(InputImage->GetSignedSpacing());
-  m_AngleImage->Allocate();
-
-  n = Taille[0];
-  p = Taille[1];
-
-  threshold = m_MinGradNorm;
-  threshold *= threshold;
-
-  typename InputImageType::IndexType idx;
-
-  for (x = 0; x < p; ++x)
-    {
-    idx[0] = (n - 1);
-    idx[1] = x;
-//     indice = (n-1)*p +x
-    m_AngleImage->SetPixel(idx, static_cast<RealType>(-1000.0));
-    }
-  for (y = 0; y < n; ++y)
-    {
-    idx[0] = y;
-    idx[1] = p - 1;
-//     indice = p*y+p-1
-    m_AngleImage->SetPixel(idx, static_cast<RealType>(-1000.0));
-    }
-
-  typename InputImageType::IndexType adr;
-  RealType                           PixelA, PixelB, PixelC, PixelD;
-  RealType                           com1, com2, gx, gy, norm;
-
-  for (x = 0; x < p - 1; ++x)
-    for (y = 0; y < n - 1; ++y)
-      {
-// indice = y*p+x
-      adr[0] = y;
-      adr[1] = x;
-      idx[0] = adr[0] + 1;
-      idx[1] = adr[1] + 1;
-      PixelA = static_cast<RealType>(InputImage->GetPixel(idx));
-      idx[0] = adr[0];
-      idx[1] = adr[1];
-      assert(idx[0] < n);
-      assert(idx[1] < p);
-      assert(idx[0] >= 0);
-      assert(idx[1] >= 0);
-      PixelB = static_cast<RealType>(InputImage->GetPixel(idx));
-      idx[0] = adr[0] + 1;
-      idx[1] = adr[1];
-      assert(idx[0] < n);
-      assert(idx[1] < p);
-      assert(idx[0] >= 0);
-      assert(idx[1] >= 0);
-      PixelC = static_cast<RealType>(InputImage->GetPixel(idx));
-      idx[0] = adr[0];
-      idx[1] = adr[1] + 1;
-      assert(idx[0] < n);
-      assert(idx[1] < p);
-      assert(idx[0] >= 0);
-      assert(idx[1] >= 0);
-      PixelD = static_cast<RealType>(InputImage->GetPixel(idx));
-      com1 = PixelA - PixelB;
-      com2 = PixelC - PixelD;
-      gx = 0.5 * (com1 + com2);
-      gy = 0.5 * (com1 - com2);
-      norm = gx * gx + gy * gy;
-
-      if (norm <= threshold) m_AngleImage->SetPixel(adr, static_cast<RealType>(-1000.0));
-      else m_AngleImage->SetPixel(adr, static_cast<RealType>(std::atan2(gx, -gy)));
-      }
-}
-
-template <class TInputImage, class TOutputPath>
-void
-ImageToPathListAlignFilter<TInputImage, TOutputPath>
-::GenerateData(void)
-{
-//  SizeType size;
-//  double origin[InputImageDimension];
-  typename InputImageType::SizeType Taille;
-  RealImageTypeIndexType            indexAngle;
-//  Flist result;
-  int                      iseglist, size_seglist; /* associated counter and dynamic size */
-  int                      iseg, size_seg;
-  double                   nfa, max_nfa;
-  std::vector<double>      test;
-  std::vector<int>         count, startbloc, endbloc;
-  std::vector<double>      seglist; /* list of recorded segments */
-  std::vector<one_segment> seg;
-  int                      mx, my, ox, oy, nx, ny, n;
-  int                      xx, yy, pos, posmax, nblocs, inbloc, max_nblocs;
-  int                      cur, i, j, side, l, lphase;
-  // int tmp;
-  int    itheta, ntheta;
-  double theta, theta0, dtheta, dx, dy, prec;
-  double error = 0.0;
-  itkDebugMacro(<< "ImageToPathListAlignFilter::GenerateData() called");
-
-  // Get the input and output pointers
-  const InputImageType * InputImage   = this->GetInput();
-  OutputPathListType *   OutputPath   = this->GetOutput();
-  // Generate the image
-
-  /* Filter algorithm */
-
-  Taille = InputImage->GetLargestPossibleRegion().GetSize();
-  nx = Taille[0];
-  ny = Taille[1];
-  max_nfa = std::pow(10.0, -(m_Eps));
-
-//  typename InputImageType::IndexType adr;
-
-  /*** maximal length for a line */
-  n = (int) std::ceil(hypot((double) nx, (double) ny)) + 1;
-
-  /*** compute angle map of u ***/
-  RealImageTypePointer lAngleImagePointer = RealImageType::New();
-  m_AngleImage = static_cast<RealImageType*>(lAngleImagePointer.GetPointer());
-  this->AngleCalculate(InputImage);
-
-  /*** compute P(k, l) ***/
-  test = tab(n, 1.0 / (double) (m_NbGradDirection), (double) (nx * ny) * (double) (nx * ny));
-
-  /*** initialization ***/
-  prec = CONST_PI / (double) (m_NbGradDirection);
-  ntheta = m_NbLineDirection / 2;  /* i.e. # directions of NON-ORIENTED lines */
-  dtheta = CONST_PI / (double) ntheta;
-
-  /******************** memory allocation ********************/
-
-  max_nblocs = n / 2 + 1; /* maximal number of blocs */
-  count.resize(max_nblocs);
-  startbloc.resize(max_nblocs);
-  endbloc.resize(max_nblocs);
-
-  size_seg = 10000; /* initial allocation (may reallocate later) */
-  seg.resize(size_seg);
-
-  size_seglist = 10000; /* initial allocation (may reallocate later) */
-  seglist.resize(5 * size_seglist);
-
-  /* counter for recorded segments (seglist) */
-  iseglist = 0;
-
-  /******************** first loop : the four sides ********************/
-
-  for (side = 0; side < 4; side++)
-    {
-    printf("side %d/4 ", side + 1);
-
-    theta0 = CONST_PI_2 * (double) side;
-    mx = ((side == 0 || side == 2) ? 1 : 0);
-    my = ((side == 1 || side == 3) ? 1 : 0);
-    ox = ((side == 1) ? nx - 1 : 0);
-    oy = ((side == 2) ? ny - 1 : 0);
-
-    posmax = nx * mx + ny * my;
-
-    /*** second loop : angles ***/
-    for (itheta = 0; itheta < ntheta; itheta++)
-      {
-      printf(".");
-      fflush(stdout);
-      theta = theta0 + (double) (itheta) * dtheta;
-      dx = (double) std::cos((double) theta);
-      dy = (double) std::sin((double) theta);
-
-      /*** third loop : start positions ***/
-      for (pos = 0; pos < posmax; ++pos)
-        {
-
-        /* clear segment array */
-        iseg = 0;
-
-        /*** fourth loop : phase for two-spaced pixels ***/
-        for (lphase = 0; lphase < 2; lphase++)
-          {
-
-          /*** detect aligned points by blocs ***/
-          inbloc = nblocs = cur = l = count[0] = 0;
-          xx = ox + pos * mx + (int) (dx * (double) (l * 2 + lphase));
-          yy = oy + pos * my + (int) (dy * (double) (l * 2 + lphase));
-
-          for (; xx >= 0 && xx < nx && yy >= 0 && yy < ny; )
-            {
-            indexAngle[0] = xx;
-            indexAngle[1] = yy;
-            // indice  = yy*nx+xx
-            assert(indexAngle[0] < nx);
-            assert(indexAngle[1] < ny);
-            assert(indexAngle[0] >= 0);
-            assert(indexAngle[1] >= 0);
-
-            error = static_cast<double>(m_AngleImage->GetPixel(indexAngle));
-            if (error > -100.0)
-              {
-              error -= theta;
-              while (error <= -CONST_PI)
-                error += CONST_2PI;
-              while (error > CONST_PI)
-                error -= CONST_2PI;
-              if (error < 0.0) error = -error;
-              if (error < prec)
-                {
-                ++cur;
-                if (!inbloc)
-                  {
-                  startbloc[nblocs] = l;
-                  inbloc = 1;
-                  }
-                }
-              else
-                {
-                if (inbloc)
-                  {
-                  endbloc[nblocs] = l - 1;
-                  ++nblocs;
-                  count[nblocs] = cur;
-                  }
-                inbloc = 0;
-                }
-              }
-            /* compute next point */
-            ++l;
-            xx = ox + pos * mx + (int) (dx * (double) (l * 2 + lphase));
-            yy = oy + pos * my + (int) (dy * (double) (l * 2 + lphase));
-            }
-
-          /*** detect meaningful segments ***/
-          for (i = 0; i < nblocs; ++i)
-            for (j = i; j < nblocs; ++j)
-              if ((nfa = test[count[j + 1] - count[i]
-                              + (n + 1) * (1 + endbloc[j] - startbloc[i])]) < max_nfa)
-                {
-                seg[iseg].start = startbloc[i] * 2 + lphase;
-                seg[iseg].end = endbloc[j] * 2 + lphase;
-                seg[iseg].nfa = nfa;
-                seg[iseg].ok = 1;
-                iseg++;
-                /* reallocate if necessary */
-                if (iseg == size_seg)
-                  {
-                  size_seg = (size_seg * 3) / 2;
-                  seg.resize(size_seg);
-//      if (!seg)
-//        mwerror(FATAL, 1,"Not enough memory.");
-                  }
-                }
-          }
-        /*** end of phase loop ***/
-
-        /*** remove non-maximal segments ***/
-        if (!m_isMeaningfulSegment)
-          for (i = 0; i < iseg; ++i)
-            for (j = 0; j < iseg; ++j)
-              if (i != j)
-
-                /* seg[i] is included in seg[j] ? */
-                if (seg[i].start >= seg[j].start && seg[i].end <= seg[j].end)
-                  {
-
-                  /* remove the less meaningful of seg[i] and seg[j] */
-                  if (seg[i].nfa < seg[j].nfa) seg[j].ok = 0;
-                  else seg[i].ok = 0;
-
-                  }
-
-        /*** store detected segments ***/
-        for (i = 0; i < iseg; ++i)
-          if (seg[i].ok)
-            {
-            seglist[iseglist * 5] = (double) (ox + pos * mx) + dx * (double) (seg[i].start);
-            seglist[iseglist * 5 + 1] = (double) (oy + pos * my) + dy * (double) (seg[i].start);
-            seglist[iseglist * 5 + 2] = (double) (ox + pos * mx) + dx * (double) (seg[i].end);
-            seglist[iseglist * 5 + 3] = (double) (oy + pos * my) + dy * (double) (seg[i].end);
-            seglist[iseglist * 5 + 4] = -(double) log10(seg[i].nfa);
-            iseglist++;
-            /* reallocate seglist if necessary */
-            if (iseglist == size_seglist)
-              {
-              size_seglist = (size_seglist * 3) / 2;
-              seglist.resize(size_seglist);
-//        if (!seglist)
-//    mwerror(FATAL, 1,"Not enough memory.");
-              }
-            }
-        }
-      }
-    /*** end of second loop ***/
-
-    printf("   nb de segments: %d\n", iseglist);
-    }
-  /******************** end of first loop ********************/
-
-  seg.clear();
-  endbloc.clear();
-  startbloc.clear();
-  count.clear();
-  test.clear();
-
-  /* build segments list */
-  seglist.resize(5 * iseglist);
-
-  /* build segments list */
-  OutputPath->Clear();
-//  OutputPath->Resize(iseglist);
-
-  typedef typename OutputPathType::ContinuousIndexType ContinuousIndexType;
-  typename InputImageType::PointType point;
-
-  ContinuousIndexType cindex;
-  for (i = 0; i < iseglist; ++i)
-    {
-
-    OutputPathPointerType path = OutputPathType::New();
-
-    path->Initialize();
-    point[0] = seglist[i * 5];
-    point[1] = seglist[i * 5 + 1];
-    InputImage->TransformPhysicalPointToContinuousIndex(point, cindex);
-    path->AddVertex(cindex);
-    cindex[0] = seglist[i * 5 + 2];
-    cindex[1] = seglist[i * 5 + 3];
-    path->AddVertex(cindex);
-
-    OutputPath->PushBack(path);
-    }
-  itkDebugMacro(<< "ImageToPathListAlignFilter::GenerateData() finished");
-
-} // end update function
-
-template <class TInputImage, class TOutputPath>
-void
-ImageToPathListAlignFilter<TInputImage, TOutputPath>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-//  os << indent << "Size : " << m_Size << std::endl;
-//  os << indent << "Path Value : " << m_PathValue << std::endl;
-//  os << indent << "Background Value : " << m_BackgroundValue << std::endl;
-}
-
-} // end namespace otb
-
-#endif
diff --git a/Modules/Detection/RoadExtraction/include/otbLikelihoodPathListFilter.h b/Modules/Detection/RoadExtraction/include/otbLikelihoodPathListFilter.h
deleted file mode 100644
index 26b8f1c84b1ba6ab47644027d48b28e7d124a64f..0000000000000000000000000000000000000000
--- a/Modules/Detection/RoadExtraction/include/otbLikelihoodPathListFilter.h
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbLikelihoodPathListFilter_h
-#define otbLikelihoodPathListFilter_h
-
-#include "otbPathListToPathListFilter.h"
-#include "otbMacro.h"
-#include <string>
-
-namespace otb
-{
-/** \class LikelihoodPathListFilter
- *  \brief Affect a value to each path of the list based on the image
- *
- * PathList and image are given as an input, the filter affect a value to each
- * path: this value is equal to the sum of the pixels crossed by the path
- * (using a PolyLineImageConstIterator) divided by the number of points in the
- * path
- *
- *
- * \ingroup OTBRoadExtraction
- */
-template <class TPath, class TImage>
-class ITK_EXPORT LikelihoodPathListFilter
-  : public PathListToPathListFilter<TPath>
-{
-public:
-  /** Standard typedefs */
-  typedef LikelihoodPathListFilter        Self;
-  typedef PathListToPathListFilter<TPath> Superclass;
-  typedef itk::SmartPointer<Self>         Pointer;
-  typedef itk::SmartPointer<const Self>   ConstPointer;
-
-  /** Type macro */
-  itkNewMacro(Self);
-
-  /** Creation through object factory macro */
-  itkTypeMacro(LikelihoodPathListFilter, PathListToPathListFilter);
-
-  /** Template parameters typedefs */
-  typedef typename Superclass::PathType          PathType;
-  typedef typename Superclass::PathListType      PathListType;
-  typedef typename Superclass::PathPointerType   PathPointerType;
-  typedef typename PathListType::Pointer         PathListPointerType;
-  typedef typename PathListType::ConstIterator   IteratorType;
-  typedef typename PathType::VertexType          VertexType;
-  typedef typename PathType::VertexListType      VertexListType;
-  typedef typename VertexListType::ConstIterator VertexIteratorType;
-  typedef double                                 RealType;
-
-  typedef TImage                           ImageType;
-  typedef typename ImageType::Pointer      ImagePointerType;
-  typedef typename ImageType::ConstPointer ImageConstPointerType;
-
-  /**
-   * Set the input Likelihood image.
-   * \param image The Likelihood image.
-   */
-  void SetInputImage(const ImageType * image);
-
-  /**
-   * Get the input Likelihood image.
-   * \return The input Likelihood image.
-   */
-  const ImageType * GetInputImage(void);
-
-protected:
-  /** Constructor */
-  LikelihoodPathListFilter();
-  /** Destructor */
-  ~LikelihoodPathListFilter() override {}
-  /** GenerateData method */
-  void GenerateData() override;
-  /** PrintSelf method */
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-
-private:
-  LikelihoodPathListFilter(const Self &) = delete;
-  void operator =(const Self&) = delete;
-
-  std::string m_Key;
-};
-} // End namespace otb
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbLikelihoodPathListFilter.hxx"
-#endif
-
-#endif
diff --git a/Modules/Detection/RoadExtraction/include/otbLikelihoodPathListFilter.hxx b/Modules/Detection/RoadExtraction/include/otbLikelihoodPathListFilter.hxx
deleted file mode 100644
index f1bcde145d843ae512d228c20b78da49c740f6ad..0000000000000000000000000000000000000000
--- a/Modules/Detection/RoadExtraction/include/otbLikelihoodPathListFilter.hxx
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbLikelihoodPathListFilter_hxx
-#define otbLikelihoodPathListFilter_hxx
-
-#include "otbLikelihoodPathListFilter.h"
-#include "otbPolyLineImageConstIterator.h"
-#include "itkMetaDataObject.h"
-
-namespace otb
-{
-/**
- * Constructor
- */
-template <class TPath, class TImage>
-LikelihoodPathListFilter<TPath, TImage>
-::LikelihoodPathListFilter()
-{
-  m_Key = "Value";
-  this->SetNumberOfRequiredInputs(2);
-  this->SetNumberOfRequiredInputs(2);
-}
-template <class TPath, class TImage>
-void
-LikelihoodPathListFilter<TPath, TImage>
-::SetInputImage(const ImageType * image)
-{
-  this->itk::ProcessObject::SetNthInput(1, const_cast<ImageType *>(image));
-}
-template <class TPath, class TImage>
-const typename LikelihoodPathListFilter<TPath, TImage>
-::ImageType *
-LikelihoodPathListFilter<TPath, TImage>
-::GetInputImage(void)
-{
-  if (this->GetNumberOfInputs() < 1)
-    {
-    return nullptr;
-    }
-  return static_cast<const ImageType *>(this->itk::ProcessObject::GetInput(1));
-}
-
-template <class TPath, class TImage>
-void
-LikelihoodPathListFilter<TPath, TImage>
-::GenerateData()
-{
-  // I/O wiring
-  ImageConstPointerType inputImagePtr = this->GetInputImage();
-  const PathListType *  inputPtr  = this->GetInput();
-  PathListType *        outputPtr = this->GetOutput();
-
-  typedef otb::PolyLineImageConstIterator<ImageType, PathType> ImageIteratorType;
-
-  for (IteratorType it = inputPtr->Begin(); it != inputPtr->End(); ++it)
-    {
-    PathPointerType path = it.Get();
-    ImageIteratorType imageIt(inputImagePtr, path);
-    double cumulatedValues = 0.0;
-    double nbPoints = 0.0;
-    for (imageIt.GoToBegin(); !imageIt.IsAtEnd(); ++imageIt, ++nbPoints)
-      {
-      cumulatedValues += static_cast<double>(imageIt.Get());
-      }
-    itk::MetaDataDictionary& dict = path->GetMetaDataDictionary();
-    itk::EncapsulateMetaData<double>(dict, m_Key, cumulatedValues / nbPoints);
-    outputPtr->PushBack(path);
-    }
-}
-/**
- * PrintSelf Method
- */
-template <class TPath, class TImage>
-void
-LikelihoodPathListFilter<TPath, TImage>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-}
-
-} // End namespace otb
-#endif
diff --git a/Modules/Detection/RoadExtraction/include/otbLinkPathListFilter.h b/Modules/Detection/RoadExtraction/include/otbLinkPathListFilter.h
deleted file mode 100644
index 6fb1aef06fff2f50bd862718d6a8763357afe71e..0000000000000000000000000000000000000000
--- a/Modules/Detection/RoadExtraction/include/otbLinkPathListFilter.h
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbLinkPathListFilter_h
-#define otbLinkPathListFilter_h
-
-#include "otbPathListToPathListFilter.h"
-#include "otbMacro.h"
-
-namespace otb
-{
-/** \class LinkPathListFilter
- *  \brief This filters link path from the input path list according to distance and angular criterions.
- *
- *  This filter examines both ends of each path to link and is able to link several path into one single path.
- *  The two criterions to link a path are :
- *  - The two ends to link must be closer than the user defined threshold in terms of euclidean distance,
- *  - The angle at the link must not be sharp (less than the user defined threshold).
- *
- *  Please note that this filter may invert the order of the vertices in the newly created path.
- *
- *  This filter is part of the road extraction framework.
- *
-   * \sa ParallelLinePathListFilter
- *
-   * \ingroup PathFilters
- *
- *
- * \ingroup OTBRoadExtraction
- */
-template <class TPath>
-class ITK_EXPORT LinkPathListFilter
-  : public PathListToPathListFilter<TPath>
-{
-public:
-  /** Standard typedefs */
-  typedef LinkPathListFilter              Self;
-  typedef PathListToPathListFilter<TPath> Superclass;
-  typedef itk::SmartPointer<Self>         Pointer;
-  typedef itk::SmartPointer<const Self>   ConstPointer;
-
-  /** Type macro */
-  itkNewMacro(Self);
-
-  /** Creation through object factory macro */
-  itkTypeMacro(LinkPathListFilter, PathListToPathListFilter);
-
-  /** Template parameters typedefs */
-  typedef typename Superclass::PathType          PathType;
-  typedef typename Superclass::PathListType      PathListType;
-  typedef typename Superclass::PathPointerType   PathPointerType;
-  typedef typename PathListType::Pointer         PathListPointerType;
-  typedef typename PathListType::ConstIterator   IteratorType;
-  typedef typename PathType::VertexType          VertexType;
-  typedef typename PathType::VertexListType      VertexListType;
-  typedef typename VertexListType::ConstIterator VertexIteratorType;
-  typedef double                                 RealType;
-
-  itkSetMacro(AngularThreshold, RealType);
-  itkGetMacro(AngularThreshold, RealType);
-  itkSetMacro(DistanceThreshold, RealType);
-  itkGetMacro(DistanceThreshold, RealType);
-  itkSetMacro(ModuloPI, bool);
-  itkGetMacro(ModuloPI, bool);
-
-protected:
-  /** Constructor */
-  LinkPathListFilter();
-  /** Destructor */
-  ~LinkPathListFilter() override {}
-  /** GenerateData method */
-  void GenerateData() override;
-  /** PrintSelf method */
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-
-  /**
-   * Verify the angular condition to link a path.
-   * \param v1 First vertex (before first path ending),
-   * \param v2 second vertex (first path ending),
-   * \param v3 third vertex (second path beginning),
-   * \param v4 fourth vertex (second path after beginning),
-   * \return True or false whether the condition is verified or not.
-   **/
-  bool VerifyAngularCondition(VertexType v1, VertexType v2, VertexType v3, VertexType v4);
-
-  /**
-   * Actually link the end of path p1 to the beginning of path p2.
-   * \param p1 First path to link,
-   * \param revert1 whether p1 need to be reverted or not,
-   * \param p2 second path to link,
-   * \param revert2 whether p2 need to be reverted or not,
-   * \return the linked path.
-   */
-  PathPointerType LinkPath(PathPointerType p1, bool revert1, PathPointerType p2, bool revert2);
-
-private:
-  LinkPathListFilter(const Self &) = delete;
-  void operator =(const Self&) = delete;
-
-  RealType m_AngularThreshold;
-  RealType m_DistanceThreshold;
-
-  /// Do not use the sign of the orientation of the lines
-  bool m_ModuloPI;
-
-};
-} // End namespace otb
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbLinkPathListFilter.hxx"
-#endif
-
-#endif
diff --git a/Modules/Detection/RoadExtraction/include/otbLinkPathListFilter.hxx b/Modules/Detection/RoadExtraction/include/otbLinkPathListFilter.hxx
deleted file mode 100644
index 7b2570338264626746d1614b3c6967d9718877b4..0000000000000000000000000000000000000000
--- a/Modules/Detection/RoadExtraction/include/otbLinkPathListFilter.hxx
+++ /dev/null
@@ -1,317 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbLinkPathListFilter_hxx
-#define otbLinkPathListFilter_hxx
-
-#include "otbLinkPathListFilter.h"
-#include "otbMath.h"
-
-namespace otb
-{
-/**
- * Constructor
- */
-template <class TPath>
-LinkPathListFilter<TPath>
-::LinkPathListFilter()
-{
-  m_DistanceThreshold = 10.;
-  m_AngularThreshold = 3.14;
-  m_ModuloPI = false;
-}
-
-template <class TPath>
-void
-LinkPathListFilter<TPath>
-::GenerateData()
-{
-  // IO
-  const PathListType * inputPtr  = this->GetInput();
-  PathListType *       outputPtr = this->GetOutput();
-
-  // Input iterator
-  IteratorType inputIt = inputPtr->Begin();
-
-  std::vector<bool> eraseFlagVector;
-
-  // First we copy all input path to output
-  while (inputIt != inputPtr->End())
-    {
-    outputPtr->PushBack(inputIt.Get());
-    eraseFlagVector.push_back(false);
-    ++inputIt;
-    }
-
-  IteratorType outputIt1 = outputPtr->Begin();
-  unsigned int index1 = 0;
-
-  while (outputIt1 != outputPtr->End())
-    {
-    if (!eraseFlagVector[index1])
-      {
-      IteratorType outputIt2 = outputIt1;
-      ++outputIt2;
-      // indicate if a path was found and wath is its index
-      unsigned int pathToLinkIndex = 0;
-      double       distance = -1.0;
-      unsigned int index2 = index1 + 1;
-      bool         found = false;
-      bool         revert1 = false;
-      bool         revert2 = false;
-      if (!eraseFlagVector[index1])
-        {
-        while (outputIt2 != outputPtr->End())
-          {
-          if (!eraseFlagVector[index2])
-            {
-            //otbMsgDevMacro(<<"Examining links between path "<<index1<<" and path "<<index2);
-            // Examining end of path1 with beginning of path2
-            VertexIteratorType vSourceIt = outputIt1.Get()->GetVertexList()->End();
-            VertexIteratorType vTargetIt = outputIt2.Get()->GetVertexList()->Begin();
-            --vSourceIt;
-            VertexType v2 = vSourceIt.Value();
-            --vSourceIt;
-            VertexType v1 = vSourceIt.Value();
-            VertexType v3 = vTargetIt.Value();
-            ++vTargetIt;
-            VertexType v4 = vTargetIt.Value();
-            double     tmpDistance = std::sqrt(std::pow(v2[0] - v3[0], 2) + std::pow(v2[1] - v3[1], 2));
-            if ((tmpDistance < static_cast<double>(m_DistanceThreshold)) && ((!found) || (tmpDistance < distance)))
-              {
-              if (VerifyAngularCondition(v1, v2, v3, v4))
-                {
-                // we found a better candidate
-                //otbMsgDevMacro(<<"Link between end of path "<<index1<<" and beginning of path "<<index2<<" is currently the best choice");
-                distance = tmpDistance;
-                pathToLinkIndex = index2;
-                revert1 = false;
-                revert2 = false;
-                if (!found)
-                  {
-                  found = true;
-                  }
-                }
-              }
-            // Examining end of path1 with end of path2
-            vTargetIt = outputIt2.Get()->GetVertexList()->End();
-            --vTargetIt;
-            v3 = vTargetIt.Value();
-            --vTargetIt;
-            v4 = vTargetIt.Value();
-            tmpDistance = std::sqrt(std::pow(v2[0] - v3[0], 2) + std::pow(v2[1] - v3[1], 2));
-
-            if ((tmpDistance < static_cast<double>(m_DistanceThreshold)) && ((!found) || (tmpDistance < distance)))
-              {
-              if (VerifyAngularCondition(v1, v2, v3, v4))
-                {
-                // we found a better candidate
-                //otbMsgDevMacro(<<"Link between end of path "<<index1<<" and end of path "<<index2<<" is currently the best choice");
-                distance = tmpDistance;
-                pathToLinkIndex = index2;
-                revert1 = false;
-                revert2 = true;
-                if (!found)
-                  {
-                  found = true;
-                  }
-                }
-              }
-            // Examining beginning of path1 with end of path2
-            vSourceIt = outputIt1.Get()->GetVertexList()->Begin();
-            v2 = vSourceIt.Value();
-            ++vSourceIt;
-            v1 = vSourceIt.Value();
-            tmpDistance = std::sqrt(std::pow(v2[0] - v3[0], 2) + std::pow(v2[1] - v3[1], 2));
-
-            if ((tmpDistance < static_cast<double>(m_DistanceThreshold)) && ((!found) || (tmpDistance < distance)))
-              {
-              if (VerifyAngularCondition(v1, v2, v3, v4))
-                {
-                // we found a better candidate
-                //otbMsgDevMacro(<<"Link between beginning of path "<<index1<<" and end of path "<<index2<<" is currently the best choice");
-                distance = tmpDistance;
-                pathToLinkIndex = index2;
-                revert1 = true;
-                revert2 = true;
-                if (!found)
-                  {
-                  found = true;
-                  }
-                }
-              }
-            // Examining beginning of path1 with beginning of path2
-            vTargetIt = outputIt2.Get()->GetVertexList()->Begin();
-            v3 = vTargetIt.Value();
-            ++vTargetIt;
-            v4 = vTargetIt.Value();
-            tmpDistance = std::sqrt(std::pow(v2[0] - v3[0], 2) + std::pow(v2[1] - v3[1], 2));
-            if ((tmpDistance < static_cast<double>(m_DistanceThreshold)) && ((!found) || (tmpDistance < distance)))
-              {
-              if (VerifyAngularCondition(v1, v2, v3, v4))
-                {
-                // we found a better candidate
-                //otbMsgDevMacro(<<"Link between beginning of path "<<index1<<" and beginning of path "<<index2<<" is currently the best choice");
-                distance = tmpDistance;
-                pathToLinkIndex = index2;
-                revert1 = true;
-                revert2 = false;
-                if (!found)
-                  {
-                  found = true;
-                  }
-                }
-              }
-            }
-          ++index2;
-          ++outputIt2;
-          }
-        if (found)
-          {
-          //otbMsgDevMacro(<<"Search ended, merging path "<<index1<<" and path "<<pathToLinkIndex);
-          // an appropriate path was found
-          outputIt2 = outputPtr->Begin() + pathToLinkIndex;
-          PathPointerType newPath = this->LinkPath(outputIt1.Get(), revert1, outputIt2.Get(), revert2);
-          outputPtr->PushBack(newPath);
-          // add a non erased flag for the new path
-          eraseFlagVector.push_back(false);
-          // mark the old path as erased
-          eraseFlagVector[index1] = true;
-          eraseFlagVector[pathToLinkIndex] = true;
-          }
-        }
-      }
-    ++index1;
-    // This replaces ++outputIt1 because the iterators is somehow invalidated by a pushback.
-    outputIt1 = outputPtr->Begin() + index1;
-    }
-
-  // search ended, now removing the erased path
-  typename std::vector<bool>::reverse_iterator it = eraseFlagVector.rbegin();
-  index1 = eraseFlagVector.size() - 1;
-  while (it != eraseFlagVector.rend())
-    {
-    if (eraseFlagVector[index1])
-      {
-      outputPtr->Erase(index1);
-      }
-    --index1;
-    ++it;
-    }
-}
-/**
- * Verify the angular condition to link a path.
- * \param v1 First vertex (before first path ending),
- * \param v2 second vertex (first path ending),
- * \param v3 third vertex (second path beginning),
- * \param v4 fourth vertex (second path after beginning),
- * \return True or false whether the condition is verified or not.
- **/
-template <class TPath>
-bool
-LinkPathListFilter<TPath>
-::VerifyAngularCondition(VertexType v1, VertexType v2, VertexType v3, VertexType v4)
-{
-  double alpha1 = std::atan2((v2[1] - v1[1]), (v2[0] - v1[0]));
-  double alpha2 = std::atan2((v4[1] - v3[1]), (v4[0] - v3[0]));
-  double alpha3 = std::atan2((v3[1] - v2[1]), (v3[0] - v2[0]));
-
-  if (m_ModuloPI)
-    {
-    alpha1 = (alpha1 >= 0) ? alpha1 : (alpha1 + CONST_PI);
-    alpha2 = (alpha2 >= 0) ? alpha2 : (alpha2 + CONST_PI);
-    alpha3 = (alpha3 >= 0) ? alpha3 : (alpha3 + CONST_PI);
-    }
-  else
-    {
-    alpha1 = (alpha1 >= 0) ? alpha1 : (alpha1 + CONST_2PI);
-    alpha2 = (alpha2 >= 0) ? alpha2 : (alpha2 + CONST_2PI);
-    alpha3 = (alpha3 >= 0) ? alpha3 : (alpha3 + CONST_2PI);
-    }
-
-  bool resp = (std::abs(alpha1 - alpha2) < static_cast<double>(m_AngularThreshold))
-              && (std::abs(alpha1 - alpha3) < static_cast<double>(m_AngularThreshold))
-              && (std::abs(alpha2 - alpha3) < static_cast<double>(m_AngularThreshold));
-  return resp;
-}
-/**
- * Actually link the end of path p1 to the beginning of path p2.
- * \param p1 First path to link,
- * \param revert1 whether p1 need to be reverted or not,
- * \param p2 second path to link,
- * \param revert2 whether p2 need to be reverted or not,
- * \return the linked path.
- */
-template <class TPath>
-typename LinkPathListFilter<TPath>
-::PathPointerType
-LinkPathListFilter<TPath>
-::LinkPath(PathPointerType p1, bool revert1, PathPointerType p2, bool revert2)
-{
-  PathPointerType resp = PathType::New();
-
-  VertexIteratorType it;
-
-  if (revert1)
-    {
-    for (it = (p1->GetVertexList()->End()); it != p1->GetVertexList()->Begin(); )
-      {
-      --it;
-      resp->AddVertex((it).Value());
-      }
-    }
-  else
-    {
-    for (it = p1->GetVertexList()->Begin(); it != p1->GetVertexList()->End(); ++it)
-      {
-      resp->AddVertex((it).Value());
-      }
-    }
-
-  if (revert2)
-    {
-    for (it = (p2->GetVertexList()->End()); it != p2->GetVertexList()->Begin(); )
-      {
-      --it;
-      resp->AddVertex((it).Value());
-      }
-    }
-  else
-    {
-    for (it = p2->GetVertexList()->Begin(); it != p2->GetVertexList()->End(); ++it)
-      {
-      resp->AddVertex(it.Value());
-      }
-    }
-  return resp;
-}
-/**
- * PrintSelf Method
- */
-template <class TPath>
-void
-LinkPathListFilter<TPath>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-}
-
-} // End namespace otb
-#endif
diff --git a/Modules/Detection/RoadExtraction/include/otbModulusAndDirectionImageToImageFilter.h b/Modules/Detection/RoadExtraction/include/otbModulusAndDirectionImageToImageFilter.h
deleted file mode 100644
index 9406349db143cd333c4ad3359a4196c38667bde8..0000000000000000000000000000000000000000
--- a/Modules/Detection/RoadExtraction/include/otbModulusAndDirectionImageToImageFilter.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbModulusAndDirectionImageToImageFilter_h
-#define otbModulusAndDirectionImageToImageFilter_h
-
-#include "itkImageToImageFilter.h"
-
-namespace otb
-{
-
-/** \class ModulusAndDirectionImageToImageFilter
- *
- * \brief Base class for modulus and direction image filters.
- *
- * This is the base class for alls class' generate an image dulus and
- * by using an modulus and a direction images intputs.
- * SetInput() method set the modulus image input and
- * SetInputDirection() set the image direction input.
- *
- *
- * \ingroup OTBRoadExtraction
- */
-template <class TInputImage,
-    class TInputImageDirection,
-    class TOutputImage>
-class ITK_EXPORT ModulusAndDirectionImageToImageFilter :  public itk::ImageToImageFilter<TInputImage, TOutputImage>
-{
-public:
-  /**   Extract dimensions as well of the images of entry of exit. */
-  itkStaticConstMacro(InputImageDimension,
-                      unsigned int,
-                      TInputImage::ImageDimension);
-  itkStaticConstMacro(OutputImageDimension,
-                      unsigned int,
-                      TOutputImage::ImageDimension);
-
-  /** typedef for the classes standards. */
-  typedef ModulusAndDirectionImageToImageFilter              Self;
-  typedef itk::ImageToImageFilter<TInputImage, TOutputImage> Superclass;
-  typedef itk::SmartPointer<Self>                            Pointer;
-  typedef itk::SmartPointer<const Self>                      ConstPointer;
-
-  /** Method for management of the object factory. */
-  itkNewMacro(Self);
-
-  /** Return the name of the class. */
-  itkTypeMacro(ModulusAndDirectionImageToImageFilter, itk::ImageToImageFilter);
-
-  typedef typename Superclass::InputImageType  InputImageType;
-  typedef TInputImageDirection                 InputImageDirectionType;
-  typedef typename Superclass::OutputImageType OutputImageType;
-
-  /** Set/Get the image input of this process object.  */
-  using Superclass::SetInput;
-  void SetInput(const InputImageType *input) override;
-  virtual void SetInputDirection(const InputImageDirectionType *direction);
-  const InputImageType * GetInput(void);
-  const InputImageDirectionType * GetInputDirection(void);
-
-protected:
-  ModulusAndDirectionImageToImageFilter();
-  ~ModulusAndDirectionImageToImageFilter() override {}
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-
-private:
-  ModulusAndDirectionImageToImageFilter(const Self &) = delete;
-  void operator =(const Self&) = delete;
-
-};
-} // end namespace otb
-
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbModulusAndDirectionImageToImageFilter.hxx"
-#endif
-
-#endif
diff --git a/Modules/Detection/RoadExtraction/include/otbModulusAndDirectionImageToImageFilter.hxx b/Modules/Detection/RoadExtraction/include/otbModulusAndDirectionImageToImageFilter.hxx
deleted file mode 100644
index 159b2b95d789e01d3d855e773007fa7ad30e51e1..0000000000000000000000000000000000000000
--- a/Modules/Detection/RoadExtraction/include/otbModulusAndDirectionImageToImageFilter.hxx
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbModulusAndDirectionImageToImageFilter_hxx
-#define otbModulusAndDirectionImageToImageFilter_hxx
-
-#include "otbModulusAndDirectionImageToImageFilter.h"
-#include "itkProcessObject.h"
-
-namespace otb
-{
-
-/**
- *
- */
-template <class TInputImage, class TOutputImage, class TOutputImageDirection>
-ModulusAndDirectionImageToImageFilter<TInputImage, TOutputImage, TOutputImageDirection>::
-ModulusAndDirectionImageToImageFilter()
-{
-  this->SetNumberOfRequiredInputs(2);
-  this->SetNumberOfRequiredInputs(2);
-  this->SetNumberOfRequiredOutputs(1);
-  this->SetNumberOfRequiredOutputs(1);
-
-  this->SetNthOutput(0, OutputImageType::New());
-}
-
-template <class TInputImage, class TInputImageDirection, class TOutputImage>
-void
-ModulusAndDirectionImageToImageFilter<TInputImage, TInputImageDirection, TOutputImage>::
-SetInput(const InputImageType *input)
-{
-  // Process object is not const-correct so the const_cast is required here
-  this->itk::ProcessObject::SetNthInput(0,
-                                        const_cast<InputImageType *>(input));
-}
-
-template <class TInputImage, class TInputImageDirection, class TOutputImage>
-void
-ModulusAndDirectionImageToImageFilter<TInputImage, TInputImageDirection, TOutputImage>::
-SetInputDirection(const InputImageDirectionType *direction)
-{
-  // Process object is not const-correct so the const_cast is required here
-  this->itk::ProcessObject::SetNthInput(1,
-                                        const_cast<InputImageDirectionType *>(direction));
-}
-
-/** Return the input image modulus */
-template <class TInputImage, class TInputImageDirection, class TOutputImage>
-const typename ModulusAndDirectionImageToImageFilter<TInputImage, TInputImageDirection, TOutputImage>::InputImageType *
-ModulusAndDirectionImageToImageFilter<TInputImage, TInputImageDirection, TOutputImage>::
-GetInput(void)
-{
-  if (this->GetNumberOfInputs() < 1)
-    {
-    return nullptr;
-    }
-
-  return static_cast<const TInputImage *>
-           (this->itk::ProcessObject::GetInput(0));
-}
-
-/** Return the intput image direction */
-template <class TInputImage, class TInputImageDirection, class TOutputImage>
-const typename ModulusAndDirectionImageToImageFilter<TInputImage, TInputImageDirection,
-    TOutputImage>::InputImageDirectionType *
-ModulusAndDirectionImageToImageFilter<TInputImage, TInputImageDirection, TOutputImage>::
-GetInputDirection(void)
-{
-  if (this->GetNumberOfInputs() < 2)
-    {
-    return nullptr;
-    }
-
-  return static_cast<const TInputImageDirection *>
-           (this->itk::ProcessObject::GetInput(1));
-
-}
-
-/**
- * Standard "PrintSelf" method
- */
-template <class TInputImage, class TInputImageDirection, class TOutputImage>
-void
-ModulusAndDirectionImageToImageFilter<TInputImage, TInputImageDirection, TOutputImage>::
-PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-
-}
-
-} // end namespace otb
-
-#endif
diff --git a/Modules/Detection/RoadExtraction/include/otbNeighborhoodScalarProductFilter.h b/Modules/Detection/RoadExtraction/include/otbNeighborhoodScalarProductFilter.h
deleted file mode 100644
index b5f2ccb57daa26d30ec5aa8ab1137b312f3e8db6..0000000000000000000000000000000000000000
--- a/Modules/Detection/RoadExtraction/include/otbNeighborhoodScalarProductFilter.h
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbNeighborhoodScalarProductFilter_h
-#define otbNeighborhoodScalarProductFilter_h
-
-#include "otbImageToModulusAndDirectionImageFilter.h"
-
-namespace otb
-{
-/** \class NeighborhoodScalarProductFilter
- *  \brief This filter is designed to be part of a pipeline aiming at linear feature extraction, such as roads.
- *
- *  This filter takes as input a two-band image resulting from a gradient operator. The first channel contains
- *  the gradient value in the first image direction, the second contains the gradient value in the second image direction.
- *
- *  Assuming that the linear feature we want to detect is darker than its surrounding environnement, we can deduce that
- *  the gradient direction will be opposite on each side of the road. Therefore, we compute for each pixel to compute the scalar
- *  product of the gradient vector for each opposite pixels in the neighborhood of radius 1 of the pixel to compute.
- *
- * The lower negativ scalar product value along these four pairs of pixel gives us the direction in which there is most
- * likely a linear feature.
- *
- * This filters has two outputs :
- * - The first output (from the GetOutput() method) gives the modulus of the lower negativ scalar product value for this pixel.
- * - The second output (from the GetOutputDirection() method) gives the direction in radian of this linear feature.
- *
- * Please note that there are only 8 possible values for the direction image, corresponding to two directions for each pair of opposite
- * pixels. In our conventions, negatives angle values represent opposite gradient vectors, whereas positive angle values represent convergent
- * gradient vectors.
- *  \ingroup Streamed
- *  \ingroup Threaded
- *
- * \ingroup OTBRoadExtraction
- */
-template <class TInputImage, class TOutputModulus, class TOutputDirection>
-class ITK_EXPORT NeighborhoodScalarProductFilter
-  : public ImageToModulusAndDirectionImageFilter<TInputImage, TOutputModulus, TOutputDirection>
-{
-public:
-  /** Standard typedefs */
-  typedef NeighborhoodScalarProductFilter                                                      Self;
-  typedef ImageToModulusAndDirectionImageFilter<TInputImage, TOutputModulus, TOutputDirection> Superclass;
-  typedef itk::SmartPointer<Self>                                                              Pointer;
-  typedef itk::SmartPointer<const Self>                                                        ConstPointer;
-
-  /** Type macro */
-  itkNewMacro(Self);
-
-  /** Creation through object factory macro */
-  itkTypeMacro(NeighborhoodScalarProductFilter, ImageToModulusAndDirectionImageFilter);
-
-  /** Template parameters typedefs */
-  typedef TInputImage                              InputImageType;
-  typedef typename InputImageType::ConstPointer    InputImageConstPointerType;
-  typedef typename InputImageType::PixelType       InputPixelType;
-  typedef TOutputModulus                           OutputModulusType;
-  typedef typename OutputModulusType::Pointer      OutputModulusPointerType;
-  typedef typename OutputModulusType::RegionType   RegionType;
-  typedef typename OutputModulusType::SizeType     SizeType;
-  typedef typename OutputModulusType::IndexType    IndexType;
-  typedef TOutputDirection                         OutputDirectionType;
-  typedef typename OutputDirectionType::Pointer    OutputDirectionPointerType;
-  typedef typename OutputDirectionType::RegionType OutputImageRegionType;
-
-protected:
-  /** Constructor */
-  NeighborhoodScalarProductFilter();
-  /** Destructor */
-  ~NeighborhoodScalarProductFilter() override {}
-  /**PrintSelf method */
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-  /** NeighborhoodScalarProductImageFilter can be implemented as a multithreaded filter.
-   * Therefore, this implementation provides a ThreadedGenerateData() routine
-   * which is called for each processing thread. The output image data is
-   * allocated automatically by the superclass prior to calling
-   * ThreadedGenerateData().  ThreadedGenerateData can only write to the
-   * portion of the output image specified by the parameter
-   * "outputRegionForThread"
-   *
-   * \sa ImageToImageFilter::ThreadedGenerateData(),
-   *     ImageToImageFilter::GenerateData()  */
-  void ThreadedGenerateData(const OutputImageRegionType& outputRegionForThread,
-                            itk::ThreadIdType threadId) override;
-private:
-  NeighborhoodScalarProductFilter(const Self &) = delete;
-  void operator =(const Self&) = delete;
-};
-} // End namespace otb
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbNeighborhoodScalarProductFilter.hxx"
-#endif
-
-#endif
diff --git a/Modules/Detection/RoadExtraction/include/otbNeighborhoodScalarProductFilter.hxx b/Modules/Detection/RoadExtraction/include/otbNeighborhoodScalarProductFilter.hxx
deleted file mode 100644
index a2f66c9a02e6430f105d371e4ff41002f8b8beba..0000000000000000000000000000000000000000
--- a/Modules/Detection/RoadExtraction/include/otbNeighborhoodScalarProductFilter.hxx
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbNeighborhoodScalarProductFilter_hxx
-#define otbNeighborhoodScalarProductFilter_hxx
-
-#include "otbNeighborhoodScalarProductFilter.h"
-#include "itkImageRegionIterator.h"
-#include "itkConstNeighborhoodIterator.h"
-#include "itkNeighborhoodAlgorithm.h"
-#include "itkProgressReporter.h"
-
-#include "otbMath.h"
-
-namespace otb
-{
-/**
- * Constructor
- */
-template <class TInputImage, class TOutputModulus, class TOutputDirection>
-NeighborhoodScalarProductFilter<TInputImage, TOutputModulus, TOutputDirection>
-::NeighborhoodScalarProductFilter()
-{}
-
-template <class TInputImage, class TOutputModulus, class TOutputDirection>
-void
-NeighborhoodScalarProductFilter<TInputImage, TOutputModulus, TOutputDirection>
-::ThreadedGenerateData(const OutputImageRegionType& outputRegionForThread, itk::ThreadIdType threadId)
-{
-  // some typedefs
-  typedef itk::ConstNeighborhoodIterator<InputImageType>                           NeighborhoodIteratorType;
-  typedef typename NeighborhoodIteratorType::RadiusType                            RadiusType;
-  typedef typename NeighborhoodIteratorType::OffsetType                            OffsetType;
-  typedef itk::ImageRegionIterator<OutputModulusType>                              OutputIteratorType;
-  typedef itk::ImageRegionIterator<OutputDirectionType>                            OutputDirectionIteratorType;
-  typedef itk::NeighborhoodAlgorithm::ImageBoundaryFacesCalculator<InputImageType> BoundaryFacesCalculatorType;
-  typedef typename BoundaryFacesCalculatorType::FaceListType                       FaceListType;
-  typedef typename FaceListType::iterator                                          FaceListIteratorType;
-
-  // Pointers on inputs/outputs
-  InputImageType *           inputPtr = const_cast<InputImageType *>(this->GetInput());
-  OutputModulusPointerType   outputPtr = this->GetOutput();
-  OutputDirectionPointerType outputDirPtr = this->GetOutputDirection();
-
-  // Neighborhood radius
-  RadiusType r;
-  r.Fill(1);
-
-  // Find the data-set boundary "faces"
-  BoundaryFacesCalculatorType bC;
-  FaceListType                faceList = bC(inputPtr, outputRegionForThread, r);
-  FaceListIteratorType        fit;
-
-  // support progress methods/callbacks
-  itk::ProgressReporter progress(this, threadId, outputRegionForThread.GetNumberOfPixels());
-
-  // Process each of the boundary faces.  These are N-d regions which border
-  // the edge of the buffer.
-  for (fit = faceList.begin(); fit != faceList.end(); ++fit)
-    {
-    NeighborhoodIteratorType neighInputIt(r, inputPtr, *fit);
-    OutputIteratorType outputIt(outputPtr, *fit);
-    OutputDirectionIteratorType outputDirIt(outputDirPtr, *fit);
-    neighInputIt.GoToBegin();
-    outputIt.GoToBegin();
-    outputDirIt.GoToBegin();
-
-    while ((!neighInputIt.IsAtEnd()) && (!outputIt.IsAtEnd()) && (!outputDirIt.IsAtEnd()))
-      {
-      // local variable initialization
-      int    neighborhoodNumberMax = 0;
-      double scalarMaxValue = 0;
-      //TODO for a more general algorithm this might be replaced by:
-      //double scalarMaxValue = itk::NumericTraits<double>::NonpositiveMin();
-      int flagPosNegDirection = 0;
-
-      // walk through each case
-      for (int neighborhoodNumber = 0; neighborhoodNumber < 4; ++neighborhoodNumber)
-        {
-        double     scalarCurrentValue = 0.0;
-        OffsetType offset1;
-        OffsetType offset2;
-        switch (neighborhoodNumber)
-          {
-          case 0:
-            offset1[0] = 1;
-            offset1[1] = -1;
-            offset2[0] = -1;
-            offset2[1] = 1;
-            break;
-          case 1:
-            offset1[0] = 1;
-            offset1[1] = 0;
-            offset2[0] = -1;
-            offset2[1] = 0;
-            break;
-          case 2:
-            offset1[0] = 1;
-            offset1[1] = 1;
-            offset2[0] = -1;
-            offset2[1] = -1;
-            break;
-          case 3:
-            offset1[0] = 0;
-            offset1[1] = 1;
-            offset2[0] = 0;
-            offset2[1] = -1;
-            break;
-          }
-        // Get the gradient values
-        InputPixelType pixel1 = neighInputIt.GetPixel(offset1);
-        InputPixelType pixel2 = neighInputIt.GetPixel(offset2);
-
-        // Compute the scalar product
-        scalarCurrentValue = -(pixel1[0] * pixel2[0] + pixel1[1] * pixel2[1]);
-
-        // If the value is higher than the current max value
-        if (scalarCurrentValue > scalarMaxValue)
-          {
-          // keep this configuration
-          scalarMaxValue = scalarCurrentValue;
-          neighborhoodNumberMax = neighborhoodNumber;
-
-          // Also keep the direction
-          if (pixel1[0] < 0)
-            {
-            flagPosNegDirection = 1;
-            }
-          else
-            {
-            flagPosNegDirection = 0;
-            }
-
-          }
-        }
-      // Compute the direction
-      double angle = static_cast<double>((1 + neighborhoodNumberMax)) * static_cast<double>(CONST_PI_4);
-      if (flagPosNegDirection)
-        {
-        angle -= CONST_PI;
-        }
-
-      // Set the output values
-      outputIt.Set(scalarMaxValue);
-      outputDirIt.Set(angle);
-      ++neighInputIt;
-      ++outputIt;
-      ++outputDirIt;
-      progress.CompletedPixel();
-      }
-    }
-}
-/**
- * PrintSelf Method
- */
-template <class TInputImage, class TOutputModulus, class TOutputDirection>
-void
-NeighborhoodScalarProductFilter<TInputImage, TOutputModulus, TOutputDirection>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-}
-} // End namespace otb
-#endif
diff --git a/Modules/Detection/RoadExtraction/include/otbNonMaxRemovalByDirectionFilter.h b/Modules/Detection/RoadExtraction/include/otbNonMaxRemovalByDirectionFilter.h
deleted file mode 100644
index 4e6d12cce270fde7ccf6d77c7be4c8e4b55b7ae4..0000000000000000000000000000000000000000
--- a/Modules/Detection/RoadExtraction/include/otbNonMaxRemovalByDirectionFilter.h
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbNonMaxRemovalByDirectionFilter_h
-#define otbNonMaxRemovalByDirectionFilter_h
-
-#include "otbModulusAndDirectionImageToImageFilter.h"
-#include "otbBinaryFunctorNeighborhoodImageFilter.h"
-
-#include "otbMath.h"
-
-namespace otb
-{
-namespace Functor
-{
-/** \class NonMaxRemovalByDirectionFunctor
- *  \brief This functor is used by the NonMaxRemovalByDirectionFilter
- *  \sa NonMaxRemovalByDirectionFilter
- *  \ingroup Functor
- *
- * \ingroup OTBRoadExtraction
- */
-template <class TInput1, class TInput2, class TOutput>
-class NonMaxRemovalByDirectionFunctor
-{
-public:
-  NonMaxRemovalByDirectionFunctor() {}
-  virtual ~NonMaxRemovalByDirectionFunctor() {}
-  inline TOutput operator ()(const TInput1& itA, const TInput2& itB)
-  {
-    TOutput resp = 0;
-    if (itA.GetCenterPixel() != 0)
-      {
-      typename TInput1::OffsetType offset1, offset2;
-      offset1.Fill(0);
-      offset2.Fill(0);
-      int neighborhoodNumber;
-      if (itB.GetCenterPixel() > 0)
-        {
-        neighborhoodNumber = static_cast<int>(itB.GetCenterPixel() / (CONST_PI_4) -1);
-        }
-      else
-        {
-        neighborhoodNumber = static_cast<int>((itB.GetCenterPixel() + CONST_PI) / (CONST_PI_4) -1);
-        }
-      switch (neighborhoodNumber)
-        {
-        case 0:
-          offset1[0] =  1;
-          offset1[1] = -1;
-          offset2[0] = -1;
-          offset2[1] =  1;
-          break;
-        case 1:
-          offset1[0] =  1;
-          offset1[1] =  0;
-          offset2[0] = -1;
-          offset2[1] =  0;
-          break;
-        case 2:
-          offset1[0] =  1;
-          offset1[1] =  1;
-          offset2[0] = -1;
-          offset2[1] = -1;
-          break;
-        case 3:
-          offset1[0] =  0;
-          offset1[1] =  1;
-          offset2[0] =  0;
-          offset2[1] = -1;
-          break;
-        }
-      if ((itA.GetCenterPixel() > itA.GetPixel(offset1))
-          && (itA.GetCenterPixel() > itA.GetPixel(offset2)))
-        {
-        resp =  itA.GetCenterPixel();
-        }
-      }
-    return resp;
-  }
-};
-}
-/** \class NonMaxRemovalByDirectionFilter
- *  \brief This filters removes (sets to null intensity) pixels which are not the maxima of the
- *  scalar product modulus value in the given direction.
- *
- * \ingroup Streamed
- * \ingroup Threaded
- *
- * \ingroup OTBRoadExtraction
- */
-template <class TInputModulus, class TInputDirection, class TOutputImage>
-class ITK_EXPORT NonMaxRemovalByDirectionFilter
-  : public ModulusAndDirectionImageToImageFilter<TInputModulus, TInputDirection, TOutputImage>
-{
-public:
-  /** Standard typedefs */
-  typedef NonMaxRemovalByDirectionFilter                                                      Self;
-  typedef ModulusAndDirectionImageToImageFilter<TInputModulus, TInputDirection, TOutputImage> Superclass;
-  typedef itk::SmartPointer<Self>                                                             Pointer;
-  typedef itk::SmartPointer<const Self>                                                       ConstPointer;
-
-  /** Type macro */
-  itkNewMacro(Self);
-
-  /** Creation through object factory macro */
-  itkTypeMacro(NonMaxRemovalByDirectionFilter, ModulusAndDirectionImageToImageFilter);
-
-  /** typedef of the computing filter (this allows us to derive from ModulusAndDirectionToImageFilter as well as
-      using the BinaryFunctorNeighBorhoodImageFilter, which is appropriate here */
-  typedef Functor::NonMaxRemovalByDirectionFunctor<
-      typename itk::ConstNeighborhoodIterator<TInputModulus>,
-      typename itk::ConstNeighborhoodIterator<TInputDirection>,
-      typename TOutputImage::PixelType>  FunctorType;
-  typedef otb::BinaryFunctorNeighborhoodImageFilter<TInputModulus, TInputDirection, TOutputImage,
-      FunctorType> ComputingFilterType;
-
-protected:
-  /** Constructor */
-  NonMaxRemovalByDirectionFilter() {};
-  /** Destructor */
-  ~NonMaxRemovalByDirectionFilter() override {}
-  /**PrintSelf method */
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override
-  {
-    Superclass::PrintSelf(os, indent);
-  }
-  /** Main computation method */
-  void GenerateData(void) override
-  {
-    typename ComputingFilterType::Pointer filter = ComputingFilterType::New();
-    filter->SetInput1(this->GetInput());
-    filter->SetInput2(this->GetInputDirection());
-    filter->GraftOutput(this->GetOutput());
-    filter->Update();
-    this->GraftOutput(filter->GetOutput());
-  }
-
-private:
-  NonMaxRemovalByDirectionFilter(const Self &) = delete;
-  void operator =(const Self&) = delete;
-};
-} // End namespace otb
-#endif
diff --git a/Modules/Detection/RoadExtraction/include/otbParallelLinePathListFilter.h b/Modules/Detection/RoadExtraction/include/otbParallelLinePathListFilter.h
deleted file mode 100644
index 3cabe035adffb2aca8f72e1c236dbe930767dcf5..0000000000000000000000000000000000000000
--- a/Modules/Detection/RoadExtraction/include/otbParallelLinePathListFilter.h
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbParallelLinePathListFilter_h
-#define otbParallelLinePathListFilter_h
-
-#include "otbPathListToPathListFilter.h"
-#include "otbMacro.h"
-
-namespace otb
-{
-/** \class ParallelLinePathListFilter
- *  \brief Detects parallel lines in imagery, the required input data are a PathList object.
- *
- * The class consists of three basic functions that determine the angle between two lines,
- * the distance between the lines and the common part of the lines. First, all input lines
- * are checked if there is a second line running in the same direction. Thereafter, all line
- * pairs that already fulfilled the angular criterion are checked whether they are close to
- * each other or not, i.e. the orthogonal distance between them is calculated. Finally, it
- * has to be verified if the two lines have a common part since lines may fulfill the two
- * first criteria but be located in different parts of the image. In order to adapt the
- * detection algorithm to the user's needs, the thresholds AngularThreshold, DistanceThreshold
- * and CommonDistanceThreshold can be set.
- *
- * A possible processing chain would be to extract lines with a line detector, to convert the
- * result to PathList object (an ObjectList of PolyLineParametricPath), to link short line
- * segments with the otbLinkPathListFilter to longer lines and to finally detect all parallel
- * long lines.
- *
-   * \sa LinkPathListFilter
- *
-   * \ingroup PathFilters
- *
- *
- * \ingroup OTBRoadExtraction
- */
-template <class TPath>
-class ITK_EXPORT ParallelLinePathListFilter
-  : public PathListToPathListFilter<TPath>
-{
-public:
-  /** Standard typedefs */
-  typedef ParallelLinePathListFilter      Self;
-  typedef PathListToPathListFilter<TPath> Superclass;
-  typedef itk::SmartPointer<Self>         Pointer;
-  typedef itk::SmartPointer<const Self>   ConstPointer;
-
-  /** Type macro */
-  itkNewMacro(Self);
-
-  /** Creation through object factory macro */
-  itkTypeMacro(ParallelLinePathListFilter, PathListToPathListFilter);
-
-  /** Template parameters typedefs */
-  typedef typename Superclass::PathType          PathType;
-  typedef typename Superclass::PathListType      PathListType;
-  typedef typename Superclass::PathPointerType   PathPointerType;
-  typedef typename PathListType::Pointer         PathListPointerType;
-  typedef typename PathListType::ConstIterator   IteratorType;
-  typedef typename PathType::VertexType          VertexType;
-  typedef typename PathType::VertexListType      VertexListType;
-  typedef typename VertexListType::ConstIterator VertexIteratorType;
-  typedef double                                 RealType;
-
-  itkSetMacro(AngularThreshold, RealType);
-  itkGetMacro(AngularThreshold, RealType);
-  itkSetMacro(DistanceThreshold, RealType);
-  itkGetMacro(DistanceThreshold, RealType);
-  itkSetMacro(CommonDistanceThreshold, RealType);
-  itkGetMacro(CommonDistanceThreshold, RealType);
-
-protected:
-  /** Constructor */
-  ParallelLinePathListFilter();
-  /** Destructor */
-  ~ParallelLinePathListFilter() override {}
-  /** GenerateData method */
-  void GenerateData() override;
-  /** PrintSelf method */
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-
-  /**
-  * Verify the angular condition to find parallel lines.
-  * This function verifies if two lines are parallel by
-  * computing the angle in relation to the y-axis.
-  * First line segment: v1 is the first vertex, v2 the second one
-  * (not necessarily the path ending).
-  * Second line segment: v3 is the first vertex, v4 the second one
-  * (not necessarily the path ending).
-  * Return true if the condition is verified.
-  *
-  * This is the first criteria to be fulfilled.
-  **/
-  bool VerifyAngularCondition(VertexType v1, VertexType v2, VertexType v3, VertexType v4);
-
-  /**
-  * Verify the maximum distance condition to find parallel lines.
-  * The orthogonal distance between two parallel lines is calculated.
-  * First line segment: v1 is the first vertex, v2 the second one
-  * (not necessarily the path ending).
-  * Second line segment: v3 is the first vertex, v4 the second one
-  * (not necessarily the path ending).
-  * Return true if the condition is verified.
-  *
-  * This is the second criteria to be fulfilled.
-  **/
-  bool VerifyMaxDistanceCondition(VertexType v1, VertexType v2, VertexType v3, VertexType v4);
-
-  /**
-  * Verify the common distance condition to find parallel lines.
-  * The overlapping part of the parallel lines is computed. In case
-  * no overlapping part exists or the value is below the specified
-  * threshold, false is returned.
-  * First line segment: v1 is the first vertex, v2 the second one
-  * (not necessarily the path ending).
-  * Second line segment: v3 is the first vertex, v4 the second one
-  * (not necessarily the path ending).
-  * Return true if the condition is verified.
-  *
-  * This is the third criteria to be fulfilled.
-  **/
-  bool VerifyCommonDistanceCondition(VertexType v1, VertexType v2, VertexType v3, VertexType v4);
-
-  /**
-   * Write the first parallel path.
-   * p1: First parallel path (line segment),
-   */
-  PathPointerType WriteParallelPath(PathPointerType p1);
-
-private:
-  ParallelLinePathListFilter(const Self &) = delete;
-  void operator =(const Self&) = delete;
-
-  RealType m_AngularThreshold;
-  RealType m_DistanceThreshold;
-  RealType m_CommonDistanceThreshold;
-
-};
-} // End namespace otb
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbParallelLinePathListFilter.hxx"
-#endif
-
-#endif
diff --git a/Modules/Detection/RoadExtraction/include/otbParallelLinePathListFilter.hxx b/Modules/Detection/RoadExtraction/include/otbParallelLinePathListFilter.hxx
deleted file mode 100644
index 44eb3c082fa64a768954134cb6fa251f40f6e99f..0000000000000000000000000000000000000000
--- a/Modules/Detection/RoadExtraction/include/otbParallelLinePathListFilter.hxx
+++ /dev/null
@@ -1,536 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbParallelLinePathListFilter_hxx
-#define otbParallelLinePathListFilter_hxx
-
-#include "otbParallelLinePathListFilter.h"
-#include "otbMath.h"
-
-namespace otb
-{
-/**
- * Constructor
- */
-template <class TPath>
-ParallelLinePathListFilter<TPath>
-::ParallelLinePathListFilter()
-{
-  m_DistanceThreshold = 100.;
-  m_CommonDistanceThreshold = 10.;
-  m_AngularThreshold = 3.14;
-}
-
-template <class TPath>
-void
-ParallelLinePathListFilter<TPath>
-::GenerateData()
-{
-  // IO
-  const PathListType * inputPtr  = this->GetInput();
-  PathListType *       outputPtr = this->GetOutput();
-
-  // Input iterator
-  IteratorType inputIt = inputPtr->Begin();
-
-  std::vector<bool>         eraseFlagVector1;
-  std::vector<unsigned int> parallelLineIndex;
-
-  // First we copy all input path to output
-  while (inputIt != inputPtr->End())
-    {
-    // Write the next input path always to the
-    // last element of the list. This last element is
-    // newly created.
-    outputPtr->PushBack(inputIt.Get());
-
-    // If a new element is copied to the output vector,
-    // "false" is written to the corresponding index of
-    // the vector eraseFlagVector.
-    eraseFlagVector1.push_back(false);
-
-    ++inputIt;
-    }
-
-  unsigned int VectorSize = static_cast<unsigned int>(eraseFlagVector1.size());
-  //std::cout<<" Number of Lines: "<< VectorSize <<std::endl;
-
-  IteratorType outputIt1 = outputPtr->Begin();
-  unsigned int index1 = 0;
-  unsigned int firstLineCounter = 0, parallelLineCounter = 0;
-  unsigned int commonDistCounter = 0, maxDistCounter = 0;
-
-// Iterate through all lines of the pathlist
-  while (firstLineCounter < VectorSize)
-    {
-    if (!eraseFlagVector1[index1])
-      {
-      IteratorType outputIt2 = outputIt1;
-      ++outputIt2;
-      unsigned int index2 = index1 + 1;
-
-      // Check if any of the following lines are parallel
-      while (outputIt2 != outputPtr->End())
-        {
-
-        if (!eraseFlagVector1[index2])
-          { // Read the first and the last vertex of each line pair that is checked
-          VertexIteratorType vSourceIt = outputIt1.Get()->GetVertexList()->Begin();
-          VertexType         v1 = vSourceIt.Value();
-          vSourceIt = outputIt1.Get()->GetVertexList()->End();
-          --vSourceIt;
-          VertexType v2 = vSourceIt.Value();
-
-          VertexIteratorType vTargetIt = outputIt2.Get()->GetVertexList()->Begin();
-          VertexType         v3 = vTargetIt.Value();
-          vTargetIt = outputIt2.Get()->GetVertexList()->End();
-          --vTargetIt;
-          VertexType v4 = vTargetIt.Value();
-
-          // Check for parallel lines
-          if (VerifyAngularCondition(v1, v2, v3, v4))
-            {
-            ++parallelLineCounter;
-            if (VerifyMaxDistanceCondition(v1, v2, v3, v4))
-              {
-              ++maxDistCounter;
-              if (VerifyCommonDistanceCondition(v1, v2, v3, v4))
-                {
-                ++commonDistCounter;
-                // Write index of first parallel path
-                parallelLineIndex.push_back(index1);
-
-                // Write index of second parallel path
-                parallelLineIndex.push_back(index2);
-                }
-              }
-            }
-          }
-
-        ++index2;
-        ++outputIt2;
-        }
-      }
-
-    // mark the old path as erased
-    eraseFlagVector1[index1] = true;
-    ++firstLineCounter;
-    ++index1;
-    ++outputIt1;
-    } // end of for loop
-
-  otbMsgDevMacro( << "Number of line pairs that pass the angular condition:          " << parallelLineCounter );
-  otbMsgDevMacro( << "Number of line pairs that pass the maximum distance condition: " << maxDistCounter );
-  otbMsgDevMacro( << "Number of line pairs that pass the common distance condition:  " << commonDistCounter  );
-
-  // Write all parallel lines and set the non-erase flagg.
-  typename std::vector<unsigned int>::iterator lineIt1 = parallelLineIndex.begin();
-  unsigned int                                 sortLineIndex = 0;
-  while (lineIt1 != parallelLineIndex.end())
-    {
-    IteratorType outputIt3 = outputPtr->Begin() + parallelLineIndex[sortLineIndex];
-
-    PathPointerType newPath1 = this->WriteParallelPath(outputIt3.Get());
-    outputPtr->PushBack(newPath1);
-    // add a non-erase flag for the new path
-    eraseFlagVector1.push_back(false);
-    ++sortLineIndex;
-    otbMsgDevMacro( << "Number of lines written in the path list: " << sortLineIndex );
-    ++lineIt1;
-    }
-
-  // Search ended, now removing the erased path from the first line pointer
-  typename std::vector<bool>::reverse_iterator it1 = eraseFlagVector1.rbegin();
-  index1 = eraseFlagVector1.size() - 1;
-  while (it1 != eraseFlagVector1.rend())
-    {
-    if (eraseFlagVector1[index1])
-      {
-      outputPtr->Erase(index1);
-      }
-
-    --index1;
-    ++it1;
-    }
-
-}
-/**
- * Verify the angular condition to find parallel lines.
- * This function verifies if two lines are parallel by
- * computing the angle in relation to the y-axis.
- * First line segment: v1 is the first vertex, v2 the second one
- * (not necessarily the path ending).
- * Second line segment: v3 is the first vertex, v4 the second one
- * (not necessarily the path ending).
- * Return true if the condition is verified.
- *
- * This is the first criteria to be fulfilled.
- **/
-template <class TPath>
-bool
-ParallelLinePathListFilter<TPath>
-::VerifyAngularCondition(VertexType v1, VertexType v2, VertexType v3, VertexType v4)
-{
-  double alpha1 = std::atan2((v2[1] - v1[1]), (v2[0] - v1[0]));
-  double alpha2 = std::atan2((v4[1] - v3[1]), (v4[0] - v3[0]));
-
-  alpha1 = (alpha1 >= 0) ? alpha1 : (alpha1 + CONST_PI);
-  alpha2 = (alpha2 >= 0) ? alpha2 : (alpha2 + CONST_PI);
-
-  // Return true if the angle between the two lines is smaller than
-  // the specified threshold.
-  bool angle = (std::abs(alpha1 - alpha2) < static_cast<double>(m_AngularThreshold));
-
-  return angle;
-}
-
-/**
- * Verify the maximum distance condition to find parallel lines.
- * The orthogonal distance between two parallel lines is calculated.
- * First line segment: v1 is the first vertex, v2 the second one
- * (not necessarily the path ending).
- * Second line segment: v3 is the first vertex, v4 the second one
- * (not necessarily the path ending).
- * Return true if the condition is verified.
- *
- * This is the second criteria to be fulfilled.
- **/
-template <class TPath>
-bool
-ParallelLinePathListFilter<TPath>
-::VerifyMaxDistanceCondition(VertexType v1, VertexType v2, VertexType v3, VertexType itkNotUsed(v4))
-{
-  // Compute the direction vector of the first line
-  VertexType vectorDir12;
-
-  vectorDir12[0] = v2[0] - v1[0];
-  vectorDir12[1] = v2[1] - v1[1];
-
-  // Compute the orthogonal distance between the two parallel lines
-  // with equation d = |(v3 - v1)X(v2 - v1)|/|v2 - v1|
-  double distance = 0., denominator = 0., nominator = 0.;
-  denominator = std::abs((v3[0] - v1[0]) * vectorDir12[1] - (v3[1] - v1[1]) * vectorDir12[0]);
-  nominator = sqrt(pow(vectorDir12[0], 2) + pow(vectorDir12[1], 2));
-  distance = denominator / nominator;
-  //std::cout<< "Distance between two parallel lines: " << distance <<std::endl;
-
-  // Check if the orthogonal distance between the lines
-  // is beneath the chosen threshold.
-  bool dist = (distance <= static_cast<double>(m_DistanceThreshold));
-
-  return dist;
-}
-
-/**
- * Verify the common distance condition to find parallel lines.
- * The overlapping part of the parallel lines is computed. In case
- * no overlapping part exists or the value is below the specified
- * threshold, false is returned.
- * First line segment: v1 is the first vertex, v2 the second one
- * (not necessarily the path ending).
- * Second line segment: v3 is the first vertex, v4 the second one
- * (not necessarily the path ending).
- * Return true if the condition is verified.
- *
- * This is the third criteria to be fulfilled.
- **/
-template <class TPath>
-bool
-ParallelLinePathListFilter<TPath>
-::VerifyCommonDistanceCondition(VertexType v1, VertexType v2, VertexType v3, VertexType v4)
-{
-// Compute the length of each line
-  double length12 = 0.;
-  // double length34 = 0.;
-  length12 = sqrt(pow((v2[0] - v1[0]), 2) + pow((v2[1] - v1[1]), 2));
-  //length34 = sqrt(pow((v4[0] - v3[0]), 2) + pow((v4[1] - v3[1]), 2));
-
-  // Set v1[0] to zero and align the y-axis of
-  // the new coordinate system with line one (v1 and v2).
-  // Compute the coordinates of the first and of the
-  // second line in the new coordinate system.
-  VertexType tempv1, tempv2, tempv3, tempv4;
-
-  //Initialization
-  tempv1.Fill(0.);
-  tempv2.Fill(0.);
-  tempv3.Fill(0.);
-  tempv4.Fill(0.);
-
-  if (v1[1] == v2[1])
-    {
-    if (v1[0] < v2[0])
-      {
-      tempv1[0] = 0., tempv1[1] = 0.;
-      tempv2[0] = 0., tempv2[1] = length12;
-      tempv3[0] = v3[0] - v1[0], tempv3[1] = v3[1] - v1[1];
-      tempv4[0] = v4[0] - v1[0], tempv4[1] = v4[1] - v1[1];
-      }
-    else
-      {
-      tempv2[0] = 0., tempv2[1] = 0.;
-      tempv1[0] = 0., tempv1[1] = length12;
-      tempv3[0] = v3[0] - v2[0], tempv3[1] = v3[1] - v2[1];
-      tempv4[0] = v4[0] - v2[0], tempv4[1] = v4[1] - v2[1];
-      }
-    }
-  // Check the direction of the line (vector).
-  // The origin of the new coordinate system is
-  // set to the smaller of the two vertices.
-  // Then, a rotation and translation of the vertices
-  // of the second line (v3 and v4) to the new coordinate
-  // system is performed.
-
-  VertexType temptransv3, temptransv4;
-
-  if (v1[1] < v2[1])
-    {
-    if (v1[0] == v2[0])
-      {
-      tempv1[0] = 0., tempv1[1] = 0.;
-      tempv2[0] = 0., tempv2[1] = length12;
-      tempv3[0] = v3[0] - v1[0], tempv3[1] = v3[1] - v1[1];
-      tempv4[0] = v4[0] - v1[0], tempv4[1] = v4[1] - v1[1];
-      }
-
-    else
-      {
-      // Coordinates of the first line in the new coordinate system
-      tempv1[0] = 0.;
-      tempv1[1] = 0.;
-      tempv2[0] = 0.;
-      tempv2[1] = length12;
-
-      // Rotate the system clockwise
-      double sinealpha;
-      if (v2[0] > v1[0])
-        {
-        sinealpha = (v2[0] - v1[0]) / length12;
-        }
-      else
-        {
-        sinealpha = (v1[0] - v2[0]) / length12;
-        }
-      double alpha1 = std::asin(sinealpha);
-
-      // Translation
-      temptransv3[0] = v3[0] - v1[0];
-      temptransv3[1] = v3[1] - v1[1];
-      temptransv4[0] = v4[0] - v1[0];
-      temptransv4[1] = v4[1] - v1[1];
-
-      // Rotation
-      tempv3[0] = temptransv3[0] * cos(alpha1) + temptransv3[1] * sin(alpha1);
-      tempv3[1] = temptransv3[1] * cos(alpha1) - temptransv3[0] * sin(alpha1);
-      tempv4[0] = temptransv4[0] * cos(alpha1) + temptransv4[1] * sin(alpha1);
-      tempv4[1] = temptransv4[1] * cos(alpha1) - temptransv4[0] * sin(alpha1);
-
-      otbMsgDevMacro(<< "tempv1[0], tempv1[1], tempv2[0], tempv2[1]: " );
-      otbMsgDevMacro(<< tempv1[0] << ", " << tempv1[1] << ", " << tempv2[0] << ", " << tempv2[1] );
-      otbMsgDevMacro(<< "Alpha: " << alpha1 );
-      otbMsgDevMacro(<< "tempv3[0], tempv3[1], tempv4[0], tempv4[1]: "
-                       << tempv3[0] << ", " << tempv3[1] << ", "
-                       << tempv4[0] << ", " << tempv4[1] );
-      otbMsgDevMacro(<< "Calculated length of the second line: "
-                        << sqrt(pow((tempv4[0] - tempv3[0]), 2) + pow((tempv4[1] - tempv3[1]), 2)) );
-      otbMsgDevMacro(<< "Original length of line 1:       " << length12 );
-      }
-    }
-
-  if (v2[1] < v1[1])
-    {
-
-    if (v1[0] == v2[0])
-      {
-      tempv2[0] = 0., tempv2[1] = 0.;
-      tempv1[0] = 0., tempv1[1] = length12;
-      tempv3[0] = v3[0] - v2[0], tempv3[1] = v3[1] - v2[1];
-      tempv4[0] = v4[0] - v2[0], tempv4[1] = v4[1] - v2[1];
-      }
-    else
-      {
-      tempv1[0] = 0.;
-      tempv1[1] = 0.;
-      tempv2[0] = 0.;
-      tempv2[1] = length12;
-
-      // Rotate the system clockwise
-      double sinealpha;
-      if (v2[0] > v1[0])
-        {
-        sinealpha = (v2[0] - v1[0]) / length12;
-        }
-      else
-        {
-        sinealpha = (v1[0] - v2[0]) / length12;
-        }
-
-      double alpha1 = std::asin(sinealpha);
-
-      // Translation
-      temptransv3[0] = v3[0] - v2[0];
-      temptransv3[1] = v3[1] - v2[1];
-      temptransv4[0] = v4[0] - v2[0];
-      temptransv4[1] = v4[1] - v2[1];
-
-      // Rotation
-      tempv3[0] = temptransv3[0] * cos(alpha1) + temptransv3[1] * sin(alpha1);
-      tempv3[1] = temptransv3[1] * cos(alpha1) - temptransv3[0] * sin(alpha1);
-      tempv4[0] = temptransv4[0] * cos(alpha1) + temptransv4[1] * sin(alpha1);
-      tempv4[1] = temptransv4[1] * cos(alpha1) - temptransv4[0] * sin(alpha1);
-
-      otbMsgDevMacro( << "tempv1[0], tempv1[1], tempv2[0], tempv2[1]: " );
-      otbMsgDevMacro( << tempv1[0] << ", " << tempv1[1] << ", " << tempv2[0] << ", " << tempv2[1] );
-      otbMsgDevMacro( << "Alpha: " << alpha1 );
-      otbMsgDevMacro( << "tempv3[0], tempv3[1], tempv4[0], tempv4[1]: "
-                       << tempv3[0] << ", " << tempv3[1] << ", " << tempv4[0] << ", " << tempv4[1] );
-      otbMsgDevMacro( << "Calculated length of the second line: "
-                       << sqrt(pow((tempv4[0] - tempv3[0]), 2) + pow((tempv4[1] - tempv3[1]), 2)) );
-      otbMsgDevMacro( << "Original length of line 1:       " << length12 );
-      }
-    }
-
-  // Compute the length of the overlapping part
-  // of the two lines. This is done by simply
-  // comparing the y-values of the lines (remember
-  // that both lines are parallel and also parallel
-  // to the new y-axis).
-  double commonDist = 0.;
-
-  if (tempv3[1] >= tempv4[1])
-    {
-    if (tempv3[1] >= 0 && tempv3[1] <= tempv2[1])
-      {
-      if (tempv4[1] >= 0)
-        {
-        commonDist = std::abs(tempv4[1] - tempv3[1]);
-        }
-
-      else if (tempv4[1] < 0)
-        {
-        commonDist = tempv3[1];
-        }
-      }
-    else if (tempv3[1] >= 0 && tempv3[1] >= tempv2[1])
-      {
-      if (tempv4[1] >= 0)
-        {
-        commonDist = tempv2[1] - tempv4[1];
-        }
-
-      else if (tempv4[1] < 0)
-        {
-        commonDist = tempv2[1];
-        }
-
-      }
-    else if (tempv4[1] >= tempv2[1])
-      { // No overlapping parts exist. The (negative) distance
-        // between the two closest endpoints is calculated.
-      commonDist = -std::abs(tempv4[1] - tempv2[1]);
-      }
-    else if (tempv3[1] < 0)
-      { // No overlapping parts exist. The (negative) distance
-        // between the two closest endpoints is calculated.
-      commonDist = tempv3[1];
-      }
-    }
-
-  else
-    {
-    if (tempv4[1] >= 0 && tempv4[1] <= tempv2[1])
-      {
-      if (tempv3[1] >= 0)
-        {
-        commonDist = std::abs(tempv3[1] - tempv4[1]);
-        }
-
-      else if (tempv3[1] < 0)
-        {
-        commonDist = tempv4[1];
-        }
-      }
-    else if (tempv4[1] >= 0 && tempv4[1] >= tempv2[1])
-      {
-      if (tempv3[1] >= 0)
-        {
-        commonDist = tempv2[1] - tempv3[1];
-        }
-
-      else if (tempv3[1] < 0)
-        {
-        commonDist = tempv2[1];
-        }
-
-      }
-    else if (tempv3[1] >= tempv2[1])
-      { // No overlapping parts exist. The (negative) distance
-        // between the two closest endpoints is calculated.
-      commonDist = -std::abs(tempv3[1] - tempv2[1]);
-      }
-    else if (tempv4[1] < 0)
-      { // No overlapping parts exist. The (negative) distance
-        // between the two closest endpoints is calculated.
-      commonDist = tempv4[1];
-      }
-    }
-  // The common parallel parts of the two lines have to be greater than
-  // the provided threshold.
-  otbMsgDevMacro( << "Calculated common distance of the parallel lines: " << commonDist );
-  bool common = (commonDist >= static_cast<double>(m_CommonDistanceThreshold));
-
-  return common;
-}
-
-/**
- * Write parallel line in a new path list.
- * p1: First parallel path (line segment)
- */
-template <class TPath>
-typename ParallelLinePathListFilter<TPath>
-::PathPointerType
-ParallelLinePathListFilter<TPath>
-::WriteParallelPath(PathPointerType p1)
-{
-  PathPointerType resp = PathType::New();
-
-  VertexIteratorType it;
-
-  for (it = p1->GetVertexList()->Begin(); it != p1->GetVertexList()->End(); ++it)
-    {
-    resp->AddVertex((it).Value());
-    }
-
-  return resp;
-}
-
-/**
- * PrintSelf Method
- */
-template <class TPath>
-void
-ParallelLinePathListFilter<TPath>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-}
-
-} // End namespace otb
-#endif
diff --git a/Modules/Detection/RoadExtraction/include/otbRemoveIsolatedByDirectionFilter.h b/Modules/Detection/RoadExtraction/include/otbRemoveIsolatedByDirectionFilter.h
deleted file mode 100644
index cc60ea4b97a1a93fbf256effb390d614bb4e7a82..0000000000000000000000000000000000000000
--- a/Modules/Detection/RoadExtraction/include/otbRemoveIsolatedByDirectionFilter.h
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbRemoveIsolatedByDirectionFilter_h
-#define otbRemoveIsolatedByDirectionFilter_h
-
-#include "otbModulusAndDirectionImageToImageFilter.h"
-#include "otbBinaryFunctorNeighborhoodImageFilter.h"
-
-namespace otb
-{
-namespace Functor
-{
-/** \class RemoveIsolatedByDirectionFunctor
- *  \brief Binary neighborhood functor to remove isolated pixels by direction.
- *  Used by the RemoveIsolatedByDirectionFilter.
- *  \sa RemoveIsolatedByDirectionFilter
- *  \ingroup Functor
- *
- * \ingroup OTBRoadExtraction
- */
-template <class TInput1, class TInput2, class TOutput>
-class RemoveIsolatedByDirectionFunctor
-{
-public:
-  RemoveIsolatedByDirectionFunctor() {}
-  virtual ~RemoveIsolatedByDirectionFunctor() {}
-  inline TOutput operator ()(const TInput1& itA, const TInput2& itB)
-  {
-    double currentDirection = itB.GetCenterPixel();
-    int    nEqualNeighbors = 0;
-    for (int neighborhoodIndex = 0; neighborhoodIndex < 9; ++neighborhoodIndex)
-      {
-      if (itB.GetPixel(neighborhoodIndex) == currentDirection)
-        {
-        ++nEqualNeighbors;
-        }
-      }
-    if (nEqualNeighbors <= 1)
-      {
-      //should never be 0 as it is at least equal to itself
-      return 0;
-      }
-    else
-      {
-      return static_cast<TOutput>(itA.GetCenterPixel());
-      }
-  }
-};
-}
-/** \class RemoveIsolatedByDirectionFilter
- *  \brief This filter removes (sets to null intensity) pixels isolated by direction.
- *
- *  For a given pixel, the filter walk through its neighborhood in direction image, counting pixels having
- *  the same direction as the center pixel. If there is no such a pixel, the center pixel is considered to be
- *  isolated in direction, and thus will be removed (set to 0). If the pixel is not isolated in direction, the output
- *  value is the value of the pixel in the modulus image.
- *  Of course this filter requires the direction to be discrete, in order to be able to count the directions.
- *
- * \ingroup Streamed
- * \ingroup Threaded
- *
- * \ingroup OTBRoadExtraction
- */
-template <class TInputModulus, class TInputDirection, class TOutputImage>
-class ITK_EXPORT RemoveIsolatedByDirectionFilter
-  : public ModulusAndDirectionImageToImageFilter<TInputModulus, TInputDirection, TOutputImage>
-{
-public:
-  /** Standard typedefs */
-  typedef RemoveIsolatedByDirectionFilter                                                     Self;
-  typedef ModulusAndDirectionImageToImageFilter<TInputModulus, TInputDirection, TOutputImage> Superclass;
-  typedef itk::SmartPointer<Self>                                                             Pointer;
-  typedef itk::SmartPointer<const Self>                                                       ConstPointer;
-
-  /** Type macro */
-  itkNewMacro(Self);
-
-  /** Creation through object factory macro */
-  itkTypeMacro(RemoveIsolatedByDirectionFilter, ModulusAndDirectionImageToImageFilter);
-
-  /** typedef of the computing filter (this allows us to derive from ModulusAndDirectionToImageFilter as well as
-      using the BinaryFunctorNeighBorhoodImageFilter, which is appropriate here */
-  typedef Functor::RemoveIsolatedByDirectionFunctor<
-      typename itk::ConstNeighborhoodIterator<TInputModulus>,
-      typename itk::ConstNeighborhoodIterator<TInputDirection>,
-      typename TOutputImage::PixelType>  FunctorType;
-  typedef otb::BinaryFunctorNeighborhoodImageFilter<TInputModulus, TInputDirection, TOutputImage,
-      FunctorType> ComputingFilterType;
-
-protected:
-  /** Constructor */
-  RemoveIsolatedByDirectionFilter() {};
-  /** Destructor */
-  ~RemoveIsolatedByDirectionFilter() override {}
-  /**PrintSelf method */
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override
-  {
-    Superclass::PrintSelf(os, indent);
-  }
-  /** Main computation method */
-  void GenerateData(void) override
-  {
-    typename ComputingFilterType::Pointer filter = ComputingFilterType::New();
-    filter->SetInput1(this->GetInput());
-    filter->SetInput2(this->GetInputDirection());
-    filter->GraftOutput(this->GetOutput());
-    filter->Update();
-    this->GraftOutput(filter->GetOutput());
-  }
-
-private:
-  RemoveIsolatedByDirectionFilter(const Self &) = delete;
-  void operator =(const Self&) = delete;
-};
-} // End namespace otb
-#endif
diff --git a/Modules/Detection/RoadExtraction/include/otbRemoveTortuousPathListFilter.h b/Modules/Detection/RoadExtraction/include/otbRemoveTortuousPathListFilter.h
deleted file mode 100644
index abe69a7b58a8664696e69c5832a6e05102085dea..0000000000000000000000000000000000000000
--- a/Modules/Detection/RoadExtraction/include/otbRemoveTortuousPathListFilter.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbRemoveTortuousPathListFilter_h
-#define otbRemoveTortuousPathListFilter_h
-
-#include "otbUnaryFunctorObjectListBooleanFilter.h"
-#include "otbPathMeanDistanceFunctor.h"
-#include "otbObjectList.h"
-
-namespace otb
-{
-/** \class RemoveTortuousPathListFilter
-   *  \brief This filter remove path considered as tortuous.
-   *
-   *  A path is considered to be tortuous if the mean distance between each consecutive vertices
-   *  is strictly lower than the user provided threshold.
-   *
-   * This class is just a shortcut to the UnaryFunctorObjectListBooleanFilter with
-   * the PathMeanDistanceFunctor.
-   *
-   *<b>Recent API changes:</b>
-   * Now part of the UnaryFunctorObjectListBooleanFilter hierarchy, replace call to SetMeanDistanceThreshold()
-   * by GetFunctor().SetThreshold().
-   *
-   * The inequality is now a strict one.
-   *
-   * \sa BreakAngularPathListFilter
-   * \sa SimplifyPathFilter
-   * \sa UnaryFunctorObjectListBooleanFilter
-   * \sa PathMeanDistanceFunctor
-   *
-   * \example FeatureExtraction/ExtractRoadByStepsExample.cxx
-   *
- *
- * \ingroup OTBRoadExtraction
- */
-
-//   template <class TPath>
-template <class TPath>
-class ITK_EXPORT RemoveTortuousPathListFilter :
-  public UnaryFunctorObjectListBooleanFilter<
-      ObjectList<TPath>,
-      ObjectList<TPath>,
-      PathMeanDistanceFunctor<typename TPath::Pointer> >
-{};
-
-} // End namespace otb
-
-#endif
diff --git a/Modules/Detection/RoadExtraction/include/otbRemoveWrongDirectionFilter.h b/Modules/Detection/RoadExtraction/include/otbRemoveWrongDirectionFilter.h
deleted file mode 100644
index b0d4fffb991f383be9bbec4f9a51c187e16ab0c6..0000000000000000000000000000000000000000
--- a/Modules/Detection/RoadExtraction/include/otbRemoveWrongDirectionFilter.h
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbRemoveWrongDirectionFilter_h
-#define otbRemoveWrongDirectionFilter_h
-
-#include "otbModulusAndDirectionImageToImageFilter.h"
-#include "itkBinaryFunctorImageFilter.h"
-#include "otbMath.h"
-
-namespace otb
-{
-namespace Functor
-{
-/** \class RemoveWrongDirectionFunctor
- *  \brief This functor is used by the RemoveWrongDirectionFilter
- *
- *  \sa RemoveWrongDirectionFilter
- *  \ingroup Functor
- *
- * \example FeatureExtraction/ExtractRoadByStepsExample.cxx
- *
- *
- * \ingroup OTBRoadExtraction
- */
-template <class TInput1, class TInput2, class TOutput>
-class RemoveWrongDirectionFunctor
-{
-public:
-  RemoveWrongDirectionFunctor() {}
-  virtual ~RemoveWrongDirectionFunctor() {}
-  inline TOutput operator ()(const TInput1& A, const TInput2& B)
-  {
-    if (B < CONST_PI_8)
-      {
-      return 0;
-      }
-    else
-      {
-      return A;
-      }
-  }
-};
-}
-/** \class RemoveWrongDirectionFilter
- *  \brief This filter removes (sets to null intensity) pixels with wrong direction.
- *
- *  This filter is part of the road extraction framework. By using the Spectral Angle filter,
- *  we can assume that the direction of a road on our scalar product image is positive (greater
- *  than \f$ \pi/8 \f$).
- *  Therefore in the input modulus and direction images, pixels whose direction is lower than
- *  this threshold are suppressed
- *  (in fact, their intensity is set to 0).
- *
- * \sa NeighborhoodScalarProductFilter
- * \ingroup Streamed
- * \ingroup Threaded
- *
- * \ingroup OTBRoadExtraction
- */
-template <class TInputModulus, class TInputDirection, class TOutputImage>
-class ITK_EXPORT RemoveWrongDirectionFilter
-  : public ModulusAndDirectionImageToImageFilter<TInputModulus, TInputDirection, TOutputImage>
-{
-public:
-  /** Standard typedefs */
-  typedef RemoveWrongDirectionFilter                                                          Self;
-  typedef ModulusAndDirectionImageToImageFilter<TInputModulus, TInputDirection, TOutputImage> Superclass;
-  typedef itk::SmartPointer<Self>                                                             Pointer;
-  typedef itk::SmartPointer<const Self>                                                       ConstPointer;
-
-  /** Type macro */
-  itkNewMacro(Self);
-
-  /** Creation through object factory macro */
-  itkTypeMacro(RemoveWrongDirectionFilter, ModulusAndDirectionImageToImageFilter);
-
-  /** typedef of the computing filter (this allows us to derive from ModulusAndDirectionToImageFilter as well as
-      using the BinaryFunctorImageFilter, which is appropriate here */
-  typedef Functor::RemoveWrongDirectionFunctor<
-      typename TInputModulus::PixelType,
-      typename TInputDirection::PixelType,
-      typename TOutputImage::PixelType>  FunctorType;
-  typedef itk::BinaryFunctorImageFilter<TInputModulus, TInputDirection, TOutputImage, FunctorType> ComputingFilterType;
-
-protected:
-  /** Constructor */
-  RemoveWrongDirectionFilter() {};
-  /** Destructor */
-  ~RemoveWrongDirectionFilter() override {}
-  /**PrintSelf method */
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override
-  {
-    Superclass::PrintSelf(os, indent);
-  }
-  /** Main computation method */
-  void GenerateData(void) override
-  {
-    typename ComputingFilterType::Pointer filter = ComputingFilterType::New();
-    filter->SetInput1(this->GetInput());
-    filter->SetInput2(this->GetInputDirection());
-    filter->GraftOutput(this->GetOutput());
-    filter->Update();
-    this->GraftOutput(filter->GetOutput());
-  }
-
-private:
-  RemoveWrongDirectionFilter(const Self &) = delete;
-  void operator =(const Self&) = delete;
-};
-} // End namespace otb
-#endif
diff --git a/Modules/Detection/RoadExtraction/include/otbRoadExtractionFilter.h b/Modules/Detection/RoadExtraction/include/otbRoadExtractionFilter.h
deleted file mode 100644
index 77c19f0ca336f0300b9d1349bed6951d2608467a..0000000000000000000000000000000000000000
--- a/Modules/Detection/RoadExtraction/include/otbRoadExtractionFilter.h
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbRoadExtractionFilter_h
-#define otbRoadExtractionFilter_h
-
-
-#include "otbSpectralAngleDistanceImageFilter.h"
-#include "otbGenericRoadExtractionFilter.h"
-
-namespace otb
-{
-/**
- * \class RoadExtractionFilter
- * \brief This class performs the extraction of roads from an image.
- *
- * This composite filter implements a fast and robust road extraction
- * for high resolution satellite images. This is a composite filter using the
- * SpectralAngleDistanceImageFilter and the GenericRoadExtractionFilter and is
- * intended to be used with optical high resolution data. The full method is
- * described in E. Christophe and J. Inglada, "Robust Road Extraction for High
- * Resolution Satellite Images," in IEEE International Conference on
- * Image Processing, ICIP 2007.
- *
- * The algorithm uses all spectral
- * bands based on the spectral angle with a reference pixel. Then, the line
- * detection is done using a Gaussian gradient with a scalar product to find
- * the road directions. Finally, extracted roads are vectorized and
- * processed to improve the results removing some occultations and false
- * detections.
- *
- * This filter is fast, as the detection typically takes 3 seconds for a
- * 1000 \f$ \times \f$ 1000 images with four spectral bands. Results can be
- * used as an initialization for more complex algorithms.
- *
- * \sa SpectralAngleDistanceImageFilter
- * \sa GenericRoadExtractionFilter
- *
- * \example FeatureExtraction/ExtractRoadExample.cxx
- *
- *
- * \ingroup OTBRoadExtraction
- */
-template <class TInputImage, class TOutputPath>
-class ITK_EXPORT RoadExtractionFilter
-  : public ImageToPathListFilter<TInputImage, TOutputPath>
-{
-public:
-  /** Standard typedefs */
-  typedef RoadExtractionFilter                            Self;
-  typedef ImageToPathListFilter<TInputImage, TOutputPath> Superclass;
-  typedef itk::SmartPointer<Self>                         Pointer;
-  typedef itk::SmartPointer<const Self>                   ConstPointer;
-  /** Creation through object factory macro */
-  itkNewMacro(Self);
-  /** Type macro */
-  itkTypeMacro(RoadExtractionFilter, ImageToPathListFilter);
-  /** Template parameters typedefs */
-  typedef typename Superclass::InputImageType     InputImageType;
-  typedef typename Superclass::OutputPathType     OutputPathType;
-  typedef typename Superclass::OutputPathListType OutputPathListType;
-  typedef typename InputImageType::PixelType      InputPixelType;
-  typedef double                                  InternalPixelType;
-
-  typedef otb::VectorImage<InternalPixelType, InputImageType::ImageDimension> VectorImageType;
-  typedef otb::Image<InternalPixelType, InputImageType::ImageDimension>       SpectralAngleType;
-  typedef otb::Image<InternalPixelType, InputImageType::ImageDimension>       ModulusType;
-  typedef otb::Image<InternalPixelType, InputImageType::ImageDimension>       DirectionType;
-
-  typedef itk::CovariantVector<InternalPixelType, InputImageType::ImageDimension>
-  VectorPixelType;
-  typedef otb::Image<VectorPixelType, InputImageType::ImageDimension> CovariantVectorImageType;
-
-  /* Template parameters typedefs for composites filters */
-  typedef SpectralAngleDistanceImageFilter<
-      InputImageType,
-      SpectralAngleType>                      SpectralAngleDistanceImageFilterType;
-
-  typedef GenericRoadExtractionFilter<SpectralAngleType, OutputPathType>
-  GenericRoadExtractionFilterType;
-
-  /** Template parameters typedefs for internals filters */
-  typedef typename GenericRoadExtractionFilterType::SigmaType                 SigmaType;
-  typedef typename GenericRoadExtractionFilterType::AmplitudeThresholdType    AmplitudeThresholdType;
-  typedef typename GenericRoadExtractionFilterType::ToleranceType             ToleranceType;
-  typedef typename GenericRoadExtractionFilterType::MaxAngleType              MaxAngleType;
-  typedef typename GenericRoadExtractionFilterType::MeanDistanceThresholdType MeanDistanceThresholdType;
-  typedef typename GenericRoadExtractionFilterType::LinkRealType              LinkRealType;
-
-  /** Get/Set the reference pixel (use by the SpectralAngleDistanceImageFilter)*/
-  otbGetObjectMemberConstReferenceMacro(SpectralAngleDistanceImageFilter, ReferencePixel, InputPixelType);
-  otbSetObjectMemberMacro(SpectralAngleDistanceImageFilter, ReferencePixel, InputPixelType);
-
-  /** Get/Set the alpha value */
-  otbGetObjectMemberConstReferenceMacro(GenericRoadExtractionFilter, Alpha, double);
-  otbSetObjectMemberMacro(GenericRoadExtractionFilter, Alpha, double);
-
-  /** Get/Set the amplitude threshold to start following a path (use by the VectorizationPathListFilter)*/
-  otbSetObjectMemberMacro(GenericRoadExtractionFilter, AmplitudeThreshold, AmplitudeThresholdType);
-  otbGetObjectMemberMacro(GenericRoadExtractionFilter, AmplitudeThreshold, AmplitudeThresholdType);
-
-  /** Get/Set  the tolerance for segment consistency (tolerance in terms of distance) (use by the SimplifyPathListFilter)*/
-  otbGetObjectMemberMacro(GenericRoadExtractionFilter, Tolerance, ToleranceType);
-  otbSetObjectMemberMacro(GenericRoadExtractionFilter, Tolerance, ToleranceType);
-
-  /** Set/Get the max angle (use bye the BreakAngularPathListFilter)*/
-  otbSetObjectMemberMacro(GenericRoadExtractionFilter, MaxAngle, MaxAngleType);
-  otbGetObjectMemberConstMacro(GenericRoadExtractionFilter, MaxAngle, MaxAngleType);
-
-  /** Get/Set the tolerance for segment consistency (tolerance in terms of distance) (use by RemoveTortuousPathListFilter)*/
-  otbGetObjectMemberMacro(GenericRoadExtractionFilter, FirstMeanDistanceThreshold, MeanDistanceThresholdType);
-  otbSetObjectMemberMacro(GenericRoadExtractionFilter, FirstMeanDistanceThreshold, MeanDistanceThresholdType);
-  otbGetObjectMemberMacro(GenericRoadExtractionFilter, SecondMeanDistanceThreshold, MeanDistanceThresholdType);
-  otbSetObjectMemberMacro(GenericRoadExtractionFilter, SecondMeanDistanceThreshold, MeanDistanceThresholdType);
-
-  /** Get/Set the angular threshold (use by LinkPathFilter)*/
-  otbSetObjectMemberMacro(GenericRoadExtractionFilter, AngularThreshold, LinkRealType);
-  otbGetObjectMemberMacro(GenericRoadExtractionFilter, AngularThreshold, LinkRealType);
-  /** Get/Set the distance threshold (use by LinkPathFilter)*/
-  otbSetObjectMemberMacro(GenericRoadExtractionFilter, DistanceThreshold, LinkRealType);
-  otbGetObjectMemberMacro(GenericRoadExtractionFilter, DistanceThreshold, LinkRealType);
-
-protected:
-  /** Constructor */
-  RoadExtractionFilter();
-  /** Destructor */
-  ~RoadExtractionFilter() override {}
-
-  /** Prepare main computation method */
-  void BeforeGenerateData(void);
-
-  /** Main computation method */
-  void GenerateData(void) override;
-  /** PrintSelf method */
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-
-private:
-
-  RoadExtractionFilter(const Self &) = delete;
-  void operator =(const Self&) = delete;
-
-  /** SpectralAngleDistanceImageFilter use by the composite filter */
-  typename SpectralAngleDistanceImageFilterType::Pointer m_SpectralAngleDistanceImageFilter;
-  typename GenericRoadExtractionFilterType::Pointer m_GenericRoadExtractionFilter;
-
-};
-
-} // End namespace otb
-
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbRoadExtractionFilter.hxx"
-#endif
-
-#endif
diff --git a/Modules/Detection/RoadExtraction/include/otbRoadExtractionFilter.hxx b/Modules/Detection/RoadExtraction/include/otbRoadExtractionFilter.hxx
deleted file mode 100644
index 67ee3a9fbbc7bce8f6aa09f2a87f88995a9e1613..0000000000000000000000000000000000000000
--- a/Modules/Detection/RoadExtraction/include/otbRoadExtractionFilter.hxx
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbRoadExtractionFilter_hxx
-#define otbRoadExtractionFilter_hxx
-
-#include "otbRoadExtractionFilter.h"
-#include "otbMath.h"
-
-namespace otb
-{
-/**
- * Constructor
- */
-template <class TInputImage, class TOutputPath>
-RoadExtractionFilter<TInputImage, TOutputPath>
-::RoadExtractionFilter()
-{
-  this->SetNumberOfRequiredInputs(1);
-  this->SetNumberOfRequiredOutputs(1);
-
-  m_SpectralAngleDistanceImageFilter = SpectralAngleDistanceImageFilterType::New();
-  m_GenericRoadExtractionFilter = GenericRoadExtractionFilterType::New();
-
-}
-
-/**
- * Main computation method
- */
-template <class TInputImage, class TOutputPath>
-void
-RoadExtractionFilter<TInputImage, TOutputPath>
-::GenerateData()
-{
-  // Input images pointers
-  typename InputImageType::ConstPointer inputImage     = this->GetInput();
-  typename OutputPathListType::Pointer  outputPathList  = this->GetOutput();
-
-  m_SpectralAngleDistanceImageFilter->SetInput(inputImage);
-
-  m_GenericRoadExtractionFilter->SetInput(m_SpectralAngleDistanceImageFilter->GetOutput());
-
-  m_GenericRoadExtractionFilter->Update();
-  for (typename GenericRoadExtractionFilterType::OutputPathListType::ConstIterator it
-         = m_GenericRoadExtractionFilter->GetOutput()->Begin();
-       it != m_GenericRoadExtractionFilter->GetOutput()->End();
-       ++it)
-    {
-    outputPathList->PushBack(it.Get());
-    }
-}
-/**
- * PrintSelf method
- */
-template <class TInputImage, class TOutputPath>
-void
-RoadExtractionFilter<TInputImage, TOutputPath>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-  os << indent << "m_ReferencePixel: " << m_SpectralAngleDistanceImageFilter->GetReferencePixel() << std::endl;
-}
-
-} // End namespace otb
-#endif
diff --git a/Modules/Detection/RoadExtraction/include/otbSimplifyPathListFilter.h b/Modules/Detection/RoadExtraction/include/otbSimplifyPathListFilter.h
deleted file mode 100644
index 2c0f99fad114390d0c5517ddad580fc5da6f43b0..0000000000000000000000000000000000000000
--- a/Modules/Detection/RoadExtraction/include/otbSimplifyPathListFilter.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbSimplifyPathListFilter_h
-#define otbSimplifyPathListFilter_h
-
-#include "otbUnaryFunctorObjectListFilter.h"
-#include "otbSimplifyPathFunctor.h"
-#include "otbObjectList.h"
-
-namespace otb
-{
-/** \class SimplifyPathListFilter
-   *  \brief This filter performs a simplification of the path in the input list.
-   *
-   *  It reduces the number of vertices in each path, according to a tolerance criterion. It aims at
-   *  removing aligned vertices while keeping sharp angular points.
-   *
-   *  In order to ensure the unicity of its output, each path is considered first from begin to end, then
-   *  from begin to the first vertex before the end. At each step, the consistency of the path is checked :
-   *  the equation of the line passing by the first and last vertices is computed. Then, for each
-   *  vertices between them, the euclidean distance to this line is computed. If for one vertex, this distance
-   *  is upper than the tolerance threshold, the path is considered to be inconsistent and no vertices can be removed.
-   *
-   *  If the path is considered consistent (which will occur at least with a 2 vertices path),
-   * only the beginning and ending
-   *  vertices are kept and a new search iteration begin at its end.
-   *
-   *  This filter is part of the road extraction framework.
-   *
-   * This class is just a shortcut to the UnaryFunctorObjectListFilter with
-   * the SimplifyPathFunctor.
-   *
-   *   <b>Recent API changes:</b>
-   * Now part of the UnaryFunctorObjectListFilter hierarchy, replace call to SetTolerance()
-   * by GetFunctor().SetTolerance().
-   *
-   *
-   * \sa BreakAngularPathListFilter
-   * \sa RemoveTortuousPathFilter.
-   * \sa UnaryFunctorObjectListFilter
-   * \sa SimplifyPathFunctor
-   *
-   * \example FeatureExtraction/ExtractRoadByStepsExample.cxx
-   *
- *
- * \ingroup OTBRoadExtraction
- */
-
-template <class TPath>
-class ITK_EXPORT SimplifyPathListFilter :
-  public UnaryFunctorObjectListFilter<
-      ObjectList<TPath>,
-      ObjectList<TPath>,
-      SimplifyPathFunctor<TPath, TPath> >
-{};
-
-} // End namespace otb
-
-#endif
diff --git a/Modules/Detection/RoadExtraction/include/otbVectorDataToRoadDescriptionFilter.h b/Modules/Detection/RoadExtraction/include/otbVectorDataToRoadDescriptionFilter.h
deleted file mode 100644
index 476725d3af8d4261353de5e8a2b61165305d9873..0000000000000000000000000000000000000000
--- a/Modules/Detection/RoadExtraction/include/otbVectorDataToRoadDescriptionFilter.h
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbVectorDataToRoadDescriptionFilter_h
-#define otbVectorDataToRoadDescriptionFilter_h
-
-#include "otbVectorDataToSpecificDescriptionFilterBase.h"
-#include "otbVectorData.h"
-
-//#include "otbNDVIDataNodeFeatureFunction.h"
-//#include "otbSpectralAngleDataNodeFeatureFunction.h"
-#include "otbParserConditionDataNodeFeatureFunction.h"
-#include "otbDBOverlapDataNodeFeatureFunction.h"
-
-namespace otb
-{
-/** \class VectorDataToRoadDescriptionFilter
-  * \brief VectorDataToRoadDescriptionFilter associates a score to each
-  * adapted input VectorData DataNode.
-  *
-  * VectorDataToRoadDescriptionFilter is dedicated to road description.
-  * Input and output are both VectorDatas in index coordinate.
-  * Each DataNode of the output VectorData contains its scores
-  * regarding to the associated descriptors.
-  * The support is an Optical Image and the descriptor are:
-  * - (NDVI >= threshold) per cent along the tested lines
-  * - mean Spectral Angle regarding a reference pixel along the tested lines
-  * - DB Overlap compute the number of building crossed by the data node in percent
-  *   regarding all the buildings within a data node neighborhood
-  *
-  * \ingroup VectorDataFilter
-  * \sa VectorDataToSpecificDescriptionFilterBase
-  * \sa VectorDataToBuildingDescriptionFilter
- *
- * \ingroup OTBRoadExtraction
- */
-
-template <class TVectorData, class TOpticalImage>
-class ITK_EXPORT VectorDataToRoadDescriptionFilter :
-public otb::VectorDataToSpecificDescriptionFilterBase<TVectorData>
-{
-public:
-  /** Standard class typedefs. */
-  typedef VectorDataToRoadDescriptionFilter            Self;
-  typedef otb::VectorDataToSpecificDescriptionFilterBase<TVectorData>
-                                                       Superclass;
-  typedef itk::SmartPointer<Self>                      Pointer;
-  typedef itk::SmartPointer<const Self>                ConstPointer;
-
-  /** Method for creation through the object factory. */
-  itkNewMacro(Self);
-
-  /** Run-time type information (and related methods). */
-  itkTypeMacro(VectorDataToRoadDescriptionFilter, VectorDataToSpecificDescriptionFilterBase);
-
-  /** Some typedefs. */
-  typedef TVectorData                             VectorDataType;
-  typedef typename TVectorData::Pointer           VectorDataPointer;
-  typedef typename VectorDataType::DataNodeType   DataNodeType;
-  typedef itk::PreOrderTreeIterator<typename VectorDataType::DataTreeType>
-                                                  TreeIteratorType;
-  typedef typename DataNodeType::ValuePrecisionType
-                                                  PrecisionType;
-  typedef typename DataNodeType::PrecisionType
-                                                  CoordRepType;
-
-  typedef TOpticalImage                           OpticalImageType;
-  typedef typename TOpticalImage::Pointer         OpticalImageTypePointer;
-
-  typedef std::vector<std::string>                DescriptorsListType;
-
-  /*
-  typedef otb::NDVIDataNodeFeatureFunction<OpticalImageType, CoordRepType, PrecisionType>
-                                                  NDVIFeatureFunctionType;
-  typedef otb::SpectralAngleDataNodeFeatureFunction<OpticalImageType, CoordRepType, PrecisionType>
-                                                  SpectralAngleFeatureFunctionType;
-  */
-  typedef otb::ParserConditionDataNodeFeatureFunction<OpticalImageType, CoordRepType, PrecisionType>
-                                                  ParserConditionFeatureFunctionType;
-
-  typedef otb::DBOverlapDataNodeFeatureFunction<CoordRepType, PrecisionType>
-                                                  DBOverlapFeatureFunctionType;
-
-  typedef itk::DataObject::Pointer DataObjectPointer;
-  typedef itk::DataObject          DataObject;
-
-  virtual void AddOpticalImage(const OpticalImageType * support);
-  const OpticalImageType * GetOpticalImage();
-
-  virtual void AddBuildingsDB(const VectorDataType * support);
-  const VectorDataType * GetBuildingsDB();
-
-  const DescriptorsListType& GetDescriptorsList() const
-  {
-    return m_DescriptorsList;
-  }
-
-protected:
-  /** Constructor */
-  VectorDataToRoadDescriptionFilter();
-  /** Destructor */
-  ~VectorDataToRoadDescriptionFilter() override {}
-  /**PrintSelf method */
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-  /** Triggers the Computation of the Descriptors */
-  void GenerateData(void) override;
-
-private:
-  VectorDataToRoadDescriptionFilter(const Self &) = delete;
-  void operator =(const Self&) = delete;
-
-  typename ParserConditionFeatureFunctionType::Pointer  m_NDVIFeatureFunction;
-  typename ParserConditionFeatureFunctionType::Pointer  m_SpectralAngleFeatureFunction;
-  typename DBOverlapFeatureFunctionType::Pointer        m_DBOverlapFeatureFunction;
-  DescriptorsListType m_DescriptorsList;
-
-};
-
-} // end namespace otb
-
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbVectorDataToRoadDescriptionFilter.hxx"
-#endif
-
-#endif
diff --git a/Modules/Detection/RoadExtraction/include/otbVectorDataToRoadDescriptionFilter.hxx b/Modules/Detection/RoadExtraction/include/otbVectorDataToRoadDescriptionFilter.hxx
deleted file mode 100644
index e58488f53621c3e3423510e7b750bd7c4cee54ca..0000000000000000000000000000000000000000
--- a/Modules/Detection/RoadExtraction/include/otbVectorDataToRoadDescriptionFilter.hxx
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbVectorDataToRoadDescriptionFilter_hxx
-#define otbVectorDataToRoadDescriptionFilter_hxx
-
-#include "otbVectorDataToRoadDescriptionFilter.h"
-
-namespace otb
-{
-
-// Constructor
-template <class TVectorData, class TOpticalImage>
-VectorDataToRoadDescriptionFilter<TVectorData, TOpticalImage>
-::VectorDataToRoadDescriptionFilter()
-{
-  this->SetNumberOfRequiredInputs(3);
-
-  m_NDVIFeatureFunction = ParserConditionFeatureFunctionType::New();
-  m_NDVIFeatureFunction->SetExpression("ndvi(b3, b4) > 0.4");
-
-  m_SpectralAngleFeatureFunction = ParserConditionFeatureFunctionType::New();
-  m_SpectralAngleFeatureFunction->SetExpression("spectralAngle > 0.25");
-
-  //Example for QuickBird images (on a specific image)
-  typename ParserConditionFeatureFunctionType::PixelType refPixel;
-  refPixel.SetSize(4);
-  refPixel[0] = 252;
-  refPixel[1] = 357;
-  refPixel[2] = 232;
-  refPixel[3] = 261;
-  m_SpectralAngleFeatureFunction->SetSpectralAngleReferencePixel(refPixel);
-
-  m_DBOverlapFeatureFunction = DBOverlapFeatureFunctionType::New();
-
-  m_DescriptorsList.push_back("NONDVI");
-  m_DescriptorsList.push_back("ROADSA");
-  m_DescriptorsList.push_back("NOBUIL");
-}
-
-template <class TVectorData, class TOpticalImage>
-void
-VectorDataToRoadDescriptionFilter<TVectorData, TOpticalImage>
-::AddOpticalImage(const OpticalImageType * support)
-{
-  this->AddSupport(const_cast<OpticalImageType *>(support), 0);
-}
-
-template <class TVectorData, class TOpticalImage>
-const typename VectorDataToRoadDescriptionFilter<TVectorData, TOpticalImage>
-::OpticalImageType *
-VectorDataToRoadDescriptionFilter<TVectorData, TOpticalImage>
-::GetOpticalImage()
-{
-  return static_cast<const OpticalImageType *>
-    (this->GetSupport(0));
-}
-
-
-template <class TVectorData, class TOpticalImage>
-void
-VectorDataToRoadDescriptionFilter<TVectorData, TOpticalImage>
-::AddBuildingsDB(const VectorDataType * support)
-{
-  this->AddSupport(const_cast<VectorDataType *>(support), 1);
-}
-
-template <class TVectorData, class TOpticalImage>
-const typename VectorDataToRoadDescriptionFilter<TVectorData, TOpticalImage>
-::VectorDataType *
-VectorDataToRoadDescriptionFilter<TVectorData, TOpticalImage>
-::GetBuildingsDB()
-{
-  return static_cast<const VectorDataType *>
-    (this->GetSupport(1));
-}
-
-template <class TVectorData, class TOpticalImage>
-void
-VectorDataToRoadDescriptionFilter<TVectorData, TOpticalImage>
-::GenerateData()
-{
-  m_NDVIFeatureFunction->SetInputImage(const_cast<OpticalImageType *>(this->GetOpticalImage()));
-  m_SpectralAngleFeatureFunction->SetInputImage(const_cast<OpticalImageType *>(this->GetOpticalImage()));
-  m_DBOverlapFeatureFunction->SetInputVectorData(const_cast<VectorDataType *>(this->GetBuildingsDB()));
-
-  // Retrieving root node
-  typename DataNodeType::Pointer root = this->GetOutput(0)->GetDataTree()->GetRoot()->Get();
-  // Create the document node
-  typename DataNodeType::Pointer document = DataNodeType::New();
-  document->SetNodeType(otb::DOCUMENT);
-  // Adding the layer to the data tree
-  this->GetOutput(0)->GetDataTree()->Add(document, root);
-  // Create the folder node
-  typename DataNodeType::Pointer folder = DataNodeType::New();
-  folder->SetNodeType(otb::FOLDER);
-  // Adding the layer to the data tree
-  this->GetOutput(0)->GetDataTree()->Add(folder, document);
-
-  TreeIteratorType itVector(this->GetInput()->GetDataTree());
-  itVector.GoToBegin();
-  while (!itVector.IsAtEnd())
-    {
-    if (!itVector.Get()->IsRoot() && !itVector.Get()->IsDocument() && !itVector.Get()->IsFolder())
-      {
-      typename DataNodeType::Pointer currentGeometry = itVector.Get();
-      currentGeometry->SetFieldAsDouble("NONDVI", (double)(m_NDVIFeatureFunction->Evaluate(*(currentGeometry.GetPointer()))[0]));
-      currentGeometry->SetFieldAsDouble("ROADSA", (double)(m_SpectralAngleFeatureFunction->Evaluate(*(currentGeometry.GetPointer()))[0]));
-      currentGeometry->SetFieldAsDouble("NOBUIL", (double)(m_DBOverlapFeatureFunction->Evaluate(*(currentGeometry.GetPointer()))[0]));
-
-      this->GetOutput(0)->GetDataTree()->Add(currentGeometry, folder);
-      }
-    ++itVector;
-    }
-}
-
-// PrintSelf Method
-template <class TVectorData, class TOpticalImage>
-void
-VectorDataToRoadDescriptionFilter<TVectorData, TOpticalImage>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-}
-
-} // end namespace otb
-
-#endif
diff --git a/Modules/Detection/RoadExtraction/otb-module.cmake b/Modules/Detection/RoadExtraction/otb-module.cmake
deleted file mode 100644
index 0af2a5ba034b1c7a2444e4e744eac1921589de45..0000000000000000000000000000000000000000
--- a/Modules/Detection/RoadExtraction/otb-module.cmake
+++ /dev/null
@@ -1,43 +0,0 @@
-#
-# Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
-#
-# This file is part of Orfeo Toolbox
-#
-#     https://www.orfeo-toolbox.org/
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-set(DOCUMENTATION "Everything users need to extract roads.")
-
-otb_module(OTBRoadExtraction
-  DEPENDS
-    OTBVectorDataBase
-    OTBITK
-    OTBImageBase
-    OTBVectorDataManipulation
-    OTBImageManipulation
-    OTBMathParser
-    OTBPath
-    OTBObjectList
-    OTBCommon
-
-  TEST_DEPENDS
-    OTBTestKernel
-    OTBImageIO
-    OTBProjection
-    OTBVectorDataIO
-
-  DESCRIPTION
-    "${DOCUMENTATION}"
-)
diff --git a/Modules/Detection/RoadExtraction/test/AlignementsQB.cxx b/Modules/Detection/RoadExtraction/test/AlignementsQB.cxx
deleted file mode 100644
index 2188101cb207bdb24ff483f41d4fa3a71cbddd6e..0000000000000000000000000000000000000000
--- a/Modules/Detection/RoadExtraction/test/AlignementsQB.cxx
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#include <iostream>
-#include "itkPolyLineParametricPath.h"
-
-#include "otbImageFileWriter.h"
-#include "otbImageFileReader.h"
-#include "otbExtractROI.h"
-#include "otbImageToPathListAlignFilter.h"
-#include "otbDrawPathFilter.h"
-//#include "otbColorImageViewer.h"
-
-#include <stdio.h>
-
-int main(int argc, char ** argv)
-{
-  if (argc != 3)
-    {
-
-    std::cout << "Usage : " << argv[0] << " inputImage outputImage" << std::endl;
-    return 1;
-
-    }
-
-  const char * inputFilename  = argv[1];
-  const char * outputFilename = argv[2];
-
-  typedef unsigned char InputPixelType;
-  typedef unsigned char OutputPixelType;
-
-  const unsigned int Dimension = 2;
-
-  typedef otb::Image<InputPixelType,  Dimension> InputImageType;
-  typedef otb::Image<OutputPixelType, Dimension> OutputImageType;
-
-  typedef otb::ImageFileReader<InputImageType>  ReaderType;
-  typedef otb::ImageFileWriter<OutputImageType> WriterType;
-
-  ReaderType::Pointer reader = ReaderType::New();
-  WriterType::Pointer writer = WriterType::New();
-
-  reader->SetFileName(inputFilename);
-  writer->SetFileName(outputFilename);
-
-  reader->Update();
-
-  std::cout << "Lecture terminee" << std::endl;
-
-  typedef otb::ExtractROI<InputPixelType, InputPixelType> ROIFilterType;
-
-  ROIFilterType::Pointer roiFilter = ROIFilterType::New();
-
-  roiFilter->SetInput(reader->GetOutput());
-  roiFilter->SetStartX(10);
-  roiFilter->SetStartY(0);
-  roiFilter->SetSizeX(256);
-  roiFilter->SetSizeY(256);
-
-  roiFilter->Update();
-
-  std::cout << "Extraction ROI" << std::endl;
-
-  typedef itk::PolyLineParametricPath<Dimension>                    PathType;
-  typedef otb::ImageToPathListAlignFilter<InputImageType, PathType> ListAlignFilterType;
-
-  ListAlignFilterType::Pointer alignFilter = ListAlignFilterType::New();
-
-  alignFilter->SetInput(roiFilter->GetOutput());
-
-  alignFilter->Update();
-
-  std::cout << "Alignements termines" << std::endl;
-
-  typedef ROIFilterType::OutputImageType BackgroundImageType;
-
-  typedef otb::DrawPathFilter<BackgroundImageType, PathType, OutputImageType> DrawPathFilterType;
-
-  DrawPathFilterType::Pointer drawPathFilter = DrawPathFilterType::New();
-
-  typedef ListAlignFilterType::OutputPathListType ListType;
-
-  ListType* listePaths = alignFilter->GetOutput();
-
-  ListType::Iterator listIt = listePaths->Begin();
-
-  BackgroundImageType::Pointer backgroundImage = roiFilter->GetOutput();
-
-  roiFilter->Update();
-
-  unsigned int color = 0;
-
-  while (listIt != listePaths->End())
-    {
-
-    drawPathFilter->SetImageInput(backgroundImage);
-    drawPathFilter->SetInputPath(listIt.Get());
-    //drawPathFilter->SetPathValue( color );
-
-    drawPathFilter->Update();
-
-    backgroundImage = drawPathFilter->GetOutput();
-
-    ++listIt;
-    ++color;
-
-    }
-
-  writer->SetInput(drawPathFilter->GetOutput());
-
-  writer->Update();
-
-/*  typedef otb::ColorImageViewer<unsigned char, double>    ViewerType;
-  ViewerType                      viewer;
-
-  viewer.SetLabel( "Input Image" );
-  viewer.SetImage( drawPathFilter->GetOutput() );
-
-  viewer.Show();
-  Fl::run();
-*/
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/Detection/RoadExtraction/test/CMakeLists.txt b/Modules/Detection/RoadExtraction/test/CMakeLists.txt
deleted file mode 100644
index 8c99e4420f49ffb44aa1701a95ad0c237988a736..0000000000000000000000000000000000000000
--- a/Modules/Detection/RoadExtraction/test/CMakeLists.txt
+++ /dev/null
@@ -1,218 +0,0 @@
-#
-# Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
-#
-# This file is part of Orfeo Toolbox
-#
-#     https://www.orfeo-toolbox.org/
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-otb_module_test()
-
-set(OTBRoadExtractionTests
-otbRoadExtractionTestDriver.cxx
-otbLikelihoodPathListFilter.cxx
-otbRemoveWrongDirectionFilter.cxx
-otbSimplifyPathListFilter.cxx
-otbAlignImageToPath.cxx
-otbNonMaxRemovalByDirectionFilter.cxx
-otbRoadExtractionFilter.cxx
-otbLinkPathListFilter.cxx
-otbRemoveTortuousPathListFilter.cxx
-otbParallelLinePathListFilter.cxx
-otbRemoveIsolatedByDirectionFilter.cxx
-otbVectorDataToRoadDescriptionFilter.cxx
-otbSimplifyManyPathListFilter.cxx
-otbNeighborhoodScalarProductFilter.cxx
-otbDrawPathAlign.cxx
-otbBreakAngularPathListFilter.cxx
-)
-
-add_executable(otbRoadExtractionTestDriver ${OTBRoadExtractionTests})
-target_link_libraries(otbRoadExtractionTestDriver ${OTBRoadExtraction-Test_LIBRARIES})
-otb_module_target_label(otbRoadExtractionTestDriver)
-
-# Tests Declaration
-
-otb_add_test(NAME feTvLikelihoodPathListFilter COMMAND otbRoadExtractionTestDriver
-  --compare-ascii ${EPSILON_3}
-  ${BASELINE_FILES}/feTvLikelihoodPathOutput.txt
-  ${TEMP}/feTvLikelihoodPathOutput.txt
-  otbLikelihoodPathListFilter
-  ${INPUTDATA}/InputForRoadDetection_NonMaxRem.raw.hdr
-  ${TEMP}/feTvLikelihoodPathOutput.txt
-  157 335 204 376 |
-  21 305 35 308 77 354 85 358 |
-  73 160 126 173
-  )
-
-otb_add_test(NAME feTvRemoveWrongDirectionFilter COMMAND otbRoadExtractionTestDriver
-  --compare-image ${EPSILON_8}
-  ${BASELINE}/feTvRemoveWrongDirectionOutput.tif
-  ${TEMP}/feTvRemoveWrongDirectionOutput.tif
-  otbRemoveWrongDirectionFilter
-  ${INPUTDATA}/InputForRoadDetection_IsolatedRem.raw.hdr
-  ${INPUTDATA}/InputForRoadDetectionScalarProductDir.raw.hdr
-  ${TEMP}/feTvRemoveWrongDirectionOutput.tif
-  )
-
-otb_add_test(NAME feTvSimplifyPathListFilter COMMAND otbRoadExtractionTestDriver
-  --compare-ascii ${EPSILON_3}
-  ${BASELINE_FILES}/feTvSimplifyPathOutput.txt
-  ${TEMP}/feTvSimplifyPathOutput.txt
-  otbSimplifyPathListFilter
-  ${TEMP}/feTvSimplifyPathOutput.txt
-  1.0
-  1 1   5  1  7  1  11  1  21  1  31  1 |
-  1 1   5  1  7  1  11  1  21 11  31 11 |
-  1 1   5  5  7  7  11 11  21 21  31 31 41 41 |
-  1 1   5  1  7  1  11  1  21 11  31 11 41 11 58 11 70 11
-  )
-
-otb_add_test(NAME feTvAlignMV2ITK COMMAND otbRoadExtractionTestDriver
-  --compare-ascii ${EPSILON_3}     ${BASELINE_FILES}/feAlign.txt
-  ${TEMP}/feAlign.txt
-  otbAlignImageToPath
-  ${INPUTDATA}/poupees.raw.hdr
-  ${TEMP}/feAlign.txt)
-
-otb_add_test(NAME feTvNonMaxRemovalByDirectionFilter COMMAND otbRoadExtractionTestDriver
-  --compare-image ${EPSILON_8}
-  ${BASELINE}/feTvNonMaxRemovalByDirectionOutput.tif
-  ${TEMP}/feTvNonMaxRemovalByDirectionOutput.tif
-  otbNonMaxRemovalByDirectionFilter
-  ${INPUTDATA}/InputForRoadDetection_WrongRem.raw.hdr
-  ${INPUTDATA}/InputForRoadDetectionScalarProductDir.raw.hdr
-  ${TEMP}/feTvNonMaxRemovalByDirectionOutput.tif
-  )
-
-otb_add_test(NAME feTvRoadExtractionFilter COMMAND otbRoadExtractionTestDriver
-  --compare-image ${EPSILON_8}
-  ${BASELINE}/feTvOutputRoadDetection.tif
-  ${TEMP}/feTvOutputRoadDetection.tif
-  otbRoadExtractionFilter
-  ${INPUTDATA}/qb_RoadExtract.img.hdr
-  ${TEMP}/feTvOutputRoadDetection.tif
-  337 557 432 859  # ReferencePixel
-  1.0              # Alpha
-  0.00005          # AmplitudeThreshold
-  1.0              # Tolerance
-  22.5             # (degre) MaxAngle (3.14159265358979323846/8.)
-  1.0              # FirstMeanDistanceThreshold
-  10.0             # SecondMeanDistanceThreshold
-  25.           # DistanceThreshold for LinkPathFiler
-  22.5           # AngularThreshold for LinkPathFiler
-  )
-
-otb_add_test(NAME feTvLinkPathListFilter COMMAND otbRoadExtractionTestDriver
-  --compare-ascii ${EPSILON_3}
-  ${BASELINE_FILES}/feTvLinkPathOutput.txt
-  ${TEMP}/feTvLinkPathOutput.txt
-  otbLinkPathListFilter
-  ${TEMP}/feTvLinkPathOutput.txt
-  30  40
-  1 1 51 1 |
-  61 1 91 1 |
-  111 11 211 11 |
-  1 51 51 51 |
-  71 71 71 91 |
-  71 131 71 201 |
-  141 111 101 111 |
-  151 111 191 111 |
-  111  71 141  71 |
-  181  71 151  71 |
-  11 131  11 101 |
-  11 171  11 141
-  )
-
-otb_add_test(NAME feTvRemoveTortuousPathListFilter COMMAND otbRoadExtractionTestDriver
-  --compare-ascii ${EPSILON_3}
-  ${BASELINE_FILES}/feTvRemoveTortuousPathOutput.txt
-  ${TEMP}/feTvRemoveTortuousPathOutput.txt
-  otbRemoveTortuousPathListFilter
-  ${TEMP}/feTvRemoveTortuousPathOutput.txt
-  10.0
-  1 1   1 11  |
-  1 1   5  1  7  1  11  1  |
-  1 1   7  7 21 21  31 31 41 41 |
-  1 1   5  1  7  1  11  1  21 11  31 11 41 11 58 11 70 11
-  )
-
-otb_add_test(NAME feTvParallelLinePathListFilter COMMAND otbRoadExtractionTestDriver
-  otbParallelLinePathListFilter)
-
-otb_add_test(NAME feTvRemoveIsolatedByDirectionFilter COMMAND otbRoadExtractionTestDriver
-  --compare-image ${EPSILON_8}
-  ${BASELINE}/feTvRemoveIsolatedByDirectionOutput.tif
-  ${TEMP}/feTvRemoveIsolatedByDirectionOutput.tif
-  otbRemoveIsolatedByDirectionFilter
-  ${INPUTDATA}/InputForRoadDetectionScalarProductMod.raw.hdr
-  ${INPUTDATA}/InputForRoadDetectionScalarProductDir.raw.hdr
-  ${TEMP}/feTvRemoveIsolatedByDirectionOutput.tif
-  )
-
-otb_add_test(NAME fzTvVectorDataToRoadDescriptionFilter COMMAND otbRoadExtractionTestDriver
-  --compare-ogr ${EPSILON_9}
-  ${BASELINE_FILES}/fzTvVectorDataToRoadDescriptionFilterOutput.shp
-  ${TEMP}/fzTvVectorDataToRoadDescriptionFilterOutput.shp
-  otbVectorDataToRoadDescriptionFilter
-  ${INPUTDATA}/Dempster-Shafer/ROI_QB_TOULOUSE_ROADS.shp
-  ${INPUTDATA}/Dempster-Shafer/ROI_QB_TOULOUSE.TIF
-  ${INPUTDATA}/Dempster-Shafer/ROI_QB_TOULOUSE_BUILDINGS.shp
-  ${TEMP}/fzTvVectorDataToRoadDescriptionFilterOutput.shp
-  ${INPUTDATA}/DEM/srtm_directory
-  0
-  )
-
-otb_add_test(NAME feTpSimplifyManyPathListFilter COMMAND otbRoadExtractionTestDriver
-  otbSimplifyManyPathListFilter
-  ${TEMP}/feTvSimplifyManyPathOutput.txt
-  1.0
-  )
-
-otb_add_test(NAME feTvNeighborhoodScalarProductFilter COMMAND otbRoadExtractionTestDriver
-  --compare-n-images ${EPSILON_6} 2
-  ${BASELINE}/feTvNeighborhoodScalarProductModulusOutput.tif
-  ${TEMP}/feTvNeighborhoodScalarProductModulusOutput.tif
-  ${BASELINE}/feTvNeighborhoodScalarProductDirectionOutput.tif
-  ${TEMP}/feTvNeighborhoodScalarProductDirectionOutput.tif
-  otbNeighborhoodScalarProductFilter
-  ${INPUTDATA}/InputForRoadDetection_SpectralAngle.raw.hdr
-  ${TEMP}/feTvNeighborhoodScalarProductModulusOutput.tif
-  ${TEMP}/feTvNeighborhoodScalarProductDirectionOutput.tif
-  1.0
-  )
-
-otb_add_test(NAME feTvDrawPathTestAlign COMMAND otbRoadExtractionTestDriver
-  --compare-image ${NOTOL}  ${BASELINE}/feDrawPathAlignDeuxTraits.png
-  ${TEMP}/feDrawPathAlignDeuxTraits.png
-  otbDrawPathAlign
-  ${INPUTDATA}/DeuxTraits.png
-  ${TEMP}/feDrawPathAlignDeuxTraits.png)
-
-otb_add_test(NAME feTvBreakAngularPathListFilter COMMAND otbRoadExtractionTestDriver
-  --compare-ascii ${NOTOL}  ${BASELINE_FILES}/feBreakAngularPathListOutput.txt
-  ${TEMP}/feBreakAngularPathListOutput.txt
-  otbBreakAngularPathListFilter
-  ${TEMP}/feBreakAngularPathListOutput.txt
-  10 20 30 50 90 140 180 |
-  1 1  5 1  7 1  11 1  21 1  31 1 |
-  1 1  5 1  7 1  11 1  21 11  31 11 |
-  1 1  5 1  7 1  11 1  21 11  31 11 41 11  |
-  1 1  5 1  7 1  11 1  21 11  31 11 41 11 58 11 70 11 |
-  1 11  5 11  7 11  11 11  21 1  31 1 41 1 |
-  1 1  5 1  7 1  11 1  21 11  31 21 41 31  |
-  1 1  5 1  5 11  5 21 |
-  1 1  31 1 41 1
-  )
diff --git a/Modules/Detection/RoadExtraction/test/otbAlignImageToPath.cxx b/Modules/Detection/RoadExtraction/test/otbAlignImageToPath.cxx
deleted file mode 100644
index 567713ab741daf32e26794ade7f4be75cf9c8ffc..0000000000000000000000000000000000000000
--- a/Modules/Detection/RoadExtraction/test/otbAlignImageToPath.cxx
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-
-
-
-#include <iostream>
-#include "itkPolyLineParametricPath.h"
-
-#include "otbImageFileReader.h"
-#include "otbImageFileWriter.h"
-#include "otbImageToPathListAlignFilter.h"
-
-#include "itkPathSource.h"
-
-#include <stdio.h>
-
-int otbAlignImageToPath(int itkNotUsed(argc), char * argv[])
-{
-  const char * inputFilename  = argv[1];
-  const char * outputFilename = argv[2];
-
-  typedef double InputPixelType;
-  typedef double OutputPixelType;
-  const unsigned int Dimension = 2;
-
-  typedef otb::Image<InputPixelType,  Dimension> InputImageType;
-
-  typedef itk::PolyLineParametricPath<Dimension> PathType;
-
-  PathType::Pointer ltoto = PathType::New();
-
-  typedef otb::Image<OutputPixelType, Dimension> OutputImageType;
-
-  typedef otb::ImageFileReader<InputImageType> ReaderType;
-
-  typedef otb::ImageToPathListAlignFilter<InputImageType, PathType> ListAlignFilterType;
-  typedef ListAlignFilterType::ValueType                            ValueType;
-  typedef ListAlignFilterType::SizeType                             SizeType;
-  typedef otb::ImageFileWriter<OutputImageType>                     WriterType;
-
-  ReaderType::Pointer     reader = ReaderType::New();
-  WriterType::Pointer     writer = WriterType::New();
-  InputImageType::Pointer ImageIn = InputImageType::New();
-
-  ListAlignFilterType::Pointer testList = ListAlignFilterType::New();
-
-  reader->SetFileName(inputFilename);
-
-  //OTB-FA-00010-CS
-  testList->SetInput(reader->GetOutput());
-
-  typedef ListAlignFilterType::OutputPathListType ListAlignFilterOutputPathListType;
-
-  otbGenericMsgDebugMacro(<< "Before update");
-  testList->Update();
-  otbGenericMsgDebugMacro(<< "After update");
-
-  ValueType pathValue;
-  pathValue = testList->GetPathValue();
-  testList->SetPathValue(pathValue);
-
-  ValueType  backgroundValue;
-  backgroundValue = testList->GetBackgroundValue();
-  testList->SetBackgroundValue(backgroundValue);
-
-  SizeType   size;
-  size = testList->GetSize();
-  testList->SetSize(size);
-
-  bool isMeaningfulSegment;
-  isMeaningfulSegment = testList->GetisMeaningfulSegment();
-  testList->SetisMeaningfulSegment(isMeaningfulSegment);
-
-  int NbGradDirection;
-  NbGradDirection = testList->GetNbGradDirection();
-  testList->SetNbGradDirection(NbGradDirection);
-
-  int NbLineDirection;
-  NbLineDirection = testList->GetNbLineDirection();
-  testList->SetNbLineDirection(NbLineDirection);
-
-  double MinGradNorm;
-  MinGradNorm = testList->GetMinGradNorm();
-  testList->SetMinGradNorm(MinGradNorm);
-
-  double Eps;
-  Eps = testList->GetEps();
-  testList->SetEps(Eps);
-
-  ListAlignFilterOutputPathListType * sortiePath = testList->GetOutput();
-
-  otbGenericMsgDebugMacro(<< "Writing :");
-
-  FILE *file = fopen(outputFilename, "w");
-  if (file == nullptr)
-    {
-    fprintf(stderr, "Error, can't open file");
-    exit(-1);
-    }
-  typedef itk::ContinuousIndex<double, 2>            VertexType;
-  typedef itk::VectorContainer<unsigned, VertexType> VertexListType;
-  typedef VertexListType::ConstPointer               VertexListTypePointer;
-  VertexListTypePointer vertexList;
-  VertexType            cindex;
-  double                x1, y1;
-  //double                x2, y2;
-
-  int nbPath = sortiePath->Size();
-  otbGenericMsgDebugMacro(<< "NbSegment: " << nbPath);
-  fprintf(file, "Nb Segment: %d\n", nbPath);
-  for (int i = 0; i < nbPath; ++i)
-    {
-    vertexList = sortiePath->GetNthElement(i)->GetVertexList();
-    cindex = vertexList->GetElement(0);
-    x1 = cindex[0];
-    y1 = cindex[1];
-    cindex = vertexList->GetElement(1);
-    //x2 = cindex[0];
-    //y2 = cindex[1];
-    fprintf(file, "%8.3f %8.3f\n", x1, y1);
-    }
-  fclose(file);
-
-  //        writer->Update();
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/Detection/RoadExtraction/test/otbBreakAngularPathListFilter.cxx b/Modules/Detection/RoadExtraction/test/otbBreakAngularPathListFilter.cxx
deleted file mode 100644
index dde12b6ad8d6082b5ca64fedfa9d9a6bb0b0ab05..0000000000000000000000000000000000000000
--- a/Modules/Detection/RoadExtraction/test/otbBreakAngularPathListFilter.cxx
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "itkMacro.h"
-#include "otbBreakAngularPathListFilter.h"
-
-#include "itkPolyLineParametricPath.h"
-#include <fstream>
-#include <vector>
-#include "otbMath.h"
-#include <cstdlib>
-
-int otbBreakAngularPathListFilter(int itkNotUsed(argc), char * argv[])
-{
-  const char * outfname = argv[1];
-
-  typedef std::vector<double>           PointsVectorType;
-  typedef std::vector<PointsVectorType> PointsMatrixType;
-  PointsMatrixType MatricePoints;
-  PointsVectorType ListPoints;
-  PointsVectorType ListMaxAngle;
-
-  int cpt = 2;
-
-  ListMaxAngle.clear();
-  while (argv[cpt][0] != '|')
-    {
-    ListMaxAngle.push_back(static_cast<double>(::atof(argv[cpt])));
-    ++cpt;
-    }
-  ++cpt;
-  ListPoints.clear();
-
-  while (argv[cpt] != nullptr)
-    {
-    if (argv[cpt][0] == '|')
-      {
-      if ((ListPoints.size() % 2) != 0)
-        {
-        itkGenericExceptionMacro(<< "Missing point in parameters !");
-        }
-      MatricePoints.push_back(ListPoints);
-      ListPoints.clear();
-      }
-    else
-      {
-      ListPoints.push_back(static_cast<double>(::atof(argv[cpt])));
-      }
-    ++cpt;
-    }
-  MatricePoints.push_back(ListPoints);
-
-  const unsigned int Dimension = 2;
-  typedef itk::PolyLineParametricPath<Dimension>       PathType;
-  typedef otb::BreakAngularPathListFilter<PathType>    BreakAngularPathListFilterType;
-  typedef BreakAngularPathListFilterType::PathListType PathListType;
-  PathType::ContinuousIndexType cindex;
-
-  PathListType::Pointer InputPathList = PathListType::New();
-
-  //Generate PathList
-  for (PointsMatrixType::iterator listpos = MatricePoints.begin(); listpos != MatricePoints.end(); ++listpos)
-    {
-    PathType::Pointer path = PathType::New();
-    //Generate PathList
-    std::cout << "List " << std::endl;
-    for (PointsVectorType::iterator it = (*listpos).begin(); it != (*listpos).end(); ++it)
-      {
-      cindex[0] = *it;
-      ++it;
-      cindex[1] = *it;
-      std::cout << "Point Index :" << cindex[0] << ";" << cindex[1] << std::endl;
-      path->AddVertex(cindex);
-      }
-    InputPathList->PushBack(path);
-    }
-
-  // Instantiating object
-  BreakAngularPathListFilterType::Pointer breakAngularFilter = BreakAngularPathListFilterType::New();
-  breakAngularFilter->SetInput(InputPathList);
-
-  std::ofstream file;
-  file.open(outfname);
-
-  for (PointsVectorType::iterator itAngle = ListMaxAngle.begin(); itAngle != ListMaxAngle.end(); ++itAngle)
-    {
-
-    breakAngularFilter->SetMaxAngle((*itAngle) * otb::CONST_PI / 180.);
-    breakAngularFilter->Update();
-
-    PathListType::Pointer OutputPathList = breakAngularFilter->GetOutput();
-
-    typedef PathListType::ConstIterator   PathListIteratorType;
-    typedef PathType::VertexListType      VertexListType;
-    typedef VertexListType::ConstIterator VertexIteratorType;
-
-    unsigned int         counter = 1;
-    PathListIteratorType pathListIt = InputPathList->Begin();
-
-    file << "--------------------------------------------------------------------------" << std::endl;
-    file << "MAX ANGULAR :" << breakAngularFilter->GetMaxAngle() << "(" << (*itAngle) << " deg.)" << std::endl;
-    file << "INPUT list of Path " << ": " << std::endl;
-    while (pathListIt != InputPathList->End())
-      {
-      file << "Path " << counter << ": ";
-      for (VertexIteratorType vIt = pathListIt.Get()->GetVertexList()->Begin();
-           vIt != pathListIt.Get()->GetVertexList()->End();
-           ++vIt)
-        {
-        if (vIt != pathListIt.Get()->GetVertexList()->Begin())
-          {
-          file << ", ";
-          }
-        file << vIt.Value();
-        }
-      file << std::endl;
-      ++pathListIt;
-      ++counter;
-      }
-
-    counter = 1;
-    pathListIt = OutputPathList->Begin();
-    file << "OUTPUT list of Path " << ": " << std::endl;
-    while (pathListIt != OutputPathList->End())
-      {
-      file << "Path " << counter << ": ";
-      for (VertexIteratorType vIt = pathListIt.Get()->GetVertexList()->Begin();
-           vIt != pathListIt.Get()->GetVertexList()->End();
-           ++vIt)
-        {
-        if (vIt != pathListIt.Get()->GetVertexList()->Begin())
-          {
-          file << ", ";
-          }
-        file << vIt.Value();
-        }
-      file << std::endl;
-      ++pathListIt;
-      ++counter;
-      }
-
-    } //Enf for angle
-  file.close();
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/Detection/RoadExtraction/test/otbDrawPathAlign.cxx b/Modules/Detection/RoadExtraction/test/otbDrawPathAlign.cxx
deleted file mode 100644
index c5847cc841ae136d46887fce8fd8b6e2c2d86fc1..0000000000000000000000000000000000000000
--- a/Modules/Detection/RoadExtraction/test/otbDrawPathAlign.cxx
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-
-
-#include "itkMacro.h"
-#include "itkPolyLineParametricPath.h"
-
-#include "otbImageFileReader.h"
-#include "otbPathListSource.h"
-#include "otbImageToPathListAlignFilter.h"
-#include "otbDrawPathListFilter.h"
-#include "otbImageFileWriter.h"
-
-int otbDrawPathAlign(int itkNotUsed(argc), char * argv[])
-{
-  const char * inputFilename  = argv[1];
-  const char * outputFilename = argv[2];
-
-  typedef unsigned char InputPixelType;
-  typedef unsigned char OutputPixelType;
-  const unsigned int Dimension = 2;
-
-  typedef otb::Image<InputPixelType,  Dimension> InputImageType;
-  typedef otb::Image<OutputPixelType, Dimension> OutputImageType;
-
-  typedef itk::PolyLineParametricPath<Dimension> PathType;
-
-  typedef otb::ImageFileReader<InputImageType>  ReaderType;
-  typedef otb::ImageFileWriter<OutputImageType> WriterType;
-
-  typedef otb::ImageToPathListAlignFilter<InputImageType, PathType> PathListType;
-  typedef PathListType::OutputPathListType                          OutputPathListType;
-
-  typedef otb::DrawPathListFilter<InputImageType, PathType, OutputImageType> DrawPathFilterType;
-
-  ReaderType::Pointer reader         = ReaderType::New();
-  WriterType::Pointer writer         = WriterType::New();
-
-  DrawPathFilterType::Pointer DrawPath = DrawPathFilterType::New();
-  PathType::Pointer           VertexList     = PathType::New();
-
-  reader->SetFileName(inputFilename);
-  writer->SetFileName(outputFilename);
-
-  typedef otb::ImageToPathListAlignFilter<InputImageType, PathType> PathListAlignType;
-  PathListAlignType::Pointer testList = PathListAlignType::New();
-
-  //OTB-FA-00010-CS
-  testList->SetInput(reader->GetOutput());
-  testList->Update();
-
-  OutputPathListType * sortiePath = testList->GetOutput();
-  int                  nbPath = sortiePath->Size();
-  std::cout << "NbPath: " << nbPath << std::endl;
-
-  InputImageType::ConstPointer imageIn   = reader->GetOutput();
-
-  DrawPath->SetInput(imageIn);
-  DrawPath->SetInputPath(sortiePath);
-
-  writer->SetInput(DrawPath->GetOutput());
-  writer->Update();
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/Detection/RoadExtraction/test/otbLikelihoodPathListFilter.cxx b/Modules/Detection/RoadExtraction/test/otbLikelihoodPathListFilter.cxx
deleted file mode 100644
index a1a7054b0fec3afe46e7d85c3451ad2cb38c598a..0000000000000000000000000000000000000000
--- a/Modules/Detection/RoadExtraction/test/otbLikelihoodPathListFilter.cxx
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "itkMacro.h"
-
-#include "otbLikelihoodPathListFilter.h"
-#include "otbPolyLineParametricPathWithValue.h"
-#include "otbImage.h"
-#include "otbImageFileReader.h"
-#include <fstream>
-
-int otbLikelihoodPathListFilter(int itkNotUsed(argc), char * argv[])
-{
-
-  std::cout << std::endl;
-
-  const char * infname = argv[1];
-  const char * outfname = argv[2];
-
-  typedef std::vector<double>           PointsVectorType;
-  typedef std::vector<PointsVectorType> PointsMatrixType;
-  PointsMatrixType MatricePoints;
-  PointsVectorType ListPoints;
-
-  int cpt = 3;
-  ListPoints.clear();
-
-  while (argv[cpt] != nullptr)
-    {
-    if (argv[cpt][0] == '|')
-      {
-      if ((ListPoints.size() % 2) != 0)
-        {
-        itkGenericExceptionMacro(<< "Missing point in parameters !");
-        }
-      MatricePoints.push_back(ListPoints);
-      ListPoints.clear();
-      }
-    else
-      {
-      ListPoints.push_back(static_cast<double>(::atof(argv[cpt])));
-      }
-    ++cpt;
-    }
-  MatricePoints.push_back(ListPoints);
-
-  const unsigned int Dimension = 2;
-  typedef double                                                  PixelType;
-  typedef otb::Image<PixelType, Dimension>                        ImageType;
-  typedef otb::ImageFileReader<ImageType>                         ReaderType;
-  typedef otb::PolyLineParametricPathWithValue<double, Dimension> PathType;
-  typedef otb::LikelihoodPathListFilter<PathType, ImageType>      LikelihoodPathListFilterType;
-  typedef LikelihoodPathListFilterType::PathListType              PathListType;
-  PathType::ContinuousIndexType cindex;
-
-  PathListType::Pointer InputPathList = PathListType::New();
-
-  //Generate PathList
-  for (PointsMatrixType::iterator listpos = MatricePoints.begin(); listpos != MatricePoints.end(); ++listpos)
-    {
-    PathType::Pointer path = PathType::New();
-    //Generate PathList
-    std::cout << "List " << std::endl;
-    for (PointsVectorType::iterator it = (*listpos).begin(); it != (*listpos).end(); ++it)
-      {
-      cindex[0] = *it;
-      ++it;
-      cindex[1] = *it;
-      std::cout << "Point Index :" << cindex[0] << ";" << cindex[1] << std::endl;
-      path->AddVertex(cindex);
-      }
-    InputPathList->PushBack(path);
-    }
-
-  //Instantiating object
-  LikelihoodPathListFilterType::Pointer filter = LikelihoodPathListFilterType::New();
-  ReaderType::Pointer                   reader = ReaderType::New();
-  reader->SetFileName(infname);
-  reader->Update();
-
-  filter->SetInput(InputPathList);
-  filter->SetInputImage(reader->GetOutput());
-  filter->Update();
-
-  std::cout << "Filter execution ended" << std::endl;
-
-  PathListType::Pointer OutputPathList = filter->GetOutput();
-
-  typedef PathListType::ConstIterator   PathListIteratorType;
-  typedef PathType::VertexListType      VertexListType;
-  typedef VertexListType::ConstIterator VertexIteratorType;
-
-  std::ofstream file;
-  file.open(outfname);
-  unsigned int         counter = 1;
-  PathListIteratorType pathListIt = InputPathList->Begin();
-
-  file << "INPUT list of Path " << ": " << std::endl;
-  while (pathListIt != InputPathList->End())
-    {
-    file << "Path " << counter << ": ";
-    for (VertexIteratorType vIt = pathListIt.Get()->GetVertexList()->Begin();
-         vIt != pathListIt.Get()->GetVertexList()->End();
-         ++vIt)
-      {
-      if (vIt != pathListIt.Get()->GetVertexList()->Begin())
-        {
-        file << ", ";
-        }
-      file << vIt.Value();
-      }
-    file << std::endl;
-    ++pathListIt;
-    ++counter;
-    }
-  counter = 1;
-  pathListIt = OutputPathList->Begin();
-  file << "OUTPUT list of Path " << ": " << std::endl;
-  while (pathListIt != OutputPathList->End())
-    {
-    file << "Path " << counter << ": ";
-    for (VertexIteratorType vIt = pathListIt.Get()->GetVertexList()->Begin();
-         vIt != pathListIt.Get()->GetVertexList()->End();
-         ++vIt)
-      {
-      if (vIt != pathListIt.Get()->GetVertexList()->Begin())
-        {
-        file << ", ";
-        }
-      file << vIt.Value();
-      }
-    file << " Value: " << pathListIt.Get()->GetValue();
-    file << std::endl;
-    ++pathListIt;
-    ++counter;
-    }
-  file.close();
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/Detection/RoadExtraction/test/otbLinkPathListFilter.cxx b/Modules/Detection/RoadExtraction/test/otbLinkPathListFilter.cxx
deleted file mode 100644
index c41995abfaa600794e2e725c52121ea06f1e47bb..0000000000000000000000000000000000000000
--- a/Modules/Detection/RoadExtraction/test/otbLinkPathListFilter.cxx
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "itkMacro.h"
-
-#include "otbLinkPathListFilter.h"
-#include "itkPolyLineParametricPath.h"
-#include "otbMath.h"
-#include <fstream>
-#include <cstdlib>
-
-int otbLinkPathListFilter(int itkNotUsed(argc), char * argv[])
-{
-
-  std::cout << std::endl;
-
-  const char * outfname = argv[1];
-  const double distance = atof(argv[2]);
-  const double angle = ::atof(argv[3]) * otb::CONST_PI / 180.;
-
-  typedef std::vector<double>           PointsVectorType;
-  typedef std::vector<PointsVectorType> PointsMatrixType;
-  PointsMatrixType MatricePoints;
-  PointsVectorType ListPoints;
-
-  int cpt = 4;
-  ListPoints.clear();
-
-  while (argv[cpt] != nullptr)
-    {
-    if (argv[cpt][0] == '|')
-      {
-      if ((ListPoints.size() % 2) != 0)
-        {
-        itkGenericExceptionMacro(<< "Missing point in parameters !");
-        }
-      MatricePoints.push_back(ListPoints);
-      ListPoints.clear();
-      }
-    else
-      {
-      ListPoints.push_back(static_cast<double>(::atof(argv[cpt])));
-      }
-    ++cpt;
-    }
-  MatricePoints.push_back(ListPoints);
-
-  const unsigned int Dimension = 2;
-  typedef itk::PolyLineParametricPath<Dimension> PathType;
-  typedef otb::LinkPathListFilter<PathType>      LinkPathListFilterType;
-  typedef LinkPathListFilterType::PathListType   PathListType;
-  PathType::ContinuousIndexType cindex;
-
-  PathListType::Pointer InputPathList = PathListType::New();
-
-  //Generate PathList
-  for (PointsMatrixType::iterator listpos = MatricePoints.begin(); listpos != MatricePoints.end(); ++listpos)
-    {
-    PathType::Pointer path = PathType::New();
-    //Generate PathList
-    std::cout << "List " << std::endl;
-    for (PointsVectorType::iterator it = (*listpos).begin(); it != (*listpos).end(); ++it)
-      {
-      cindex[0] = *it;
-      ++it;
-      cindex[1] = *it;
-      std::cout << "Point Index :" << cindex[0] << ";" << cindex[1] << std::endl;
-      path->AddVertex(cindex);
-      }
-    InputPathList->PushBack(path);
-    }
-  //Instantiating object
-  LinkPathListFilterType::Pointer filter = LinkPathListFilterType::New();
-
-  filter->SetInput(InputPathList);
-  filter->SetDistanceThreshold(distance);
-  filter->SetAngularThreshold(angle);
-  filter->Update();
-
-  std::cout << "Filter execution ended" << std::endl;
-
-  PathListType::Pointer OutputPathList = filter->GetOutput();
-
-  typedef PathListType::ConstIterator   PathListIteratorType;
-  typedef PathType::VertexListType      VertexListType;
-  typedef VertexListType::ConstIterator VertexIteratorType;
-
-  std::ofstream file;
-  file.open(outfname);
-  unsigned int         counter = 1;
-  PathListIteratorType pathListIt = InputPathList->Begin();
-
-  file << "Maximum distance threshold: " << filter->GetDistanceThreshold() << " (" << distance << ")" << std::endl;
-  file << "Maximum angle threshold: " << filter->GetAngularThreshold() << " (" << angle * 180 / otb::CONST_PI << ")" <<
-  std::endl;
-  file << "INPUT list of Path " << ": " << std::endl;
-  while (pathListIt != InputPathList->End())
-    {
-    file << "Path " << counter << ": ";
-    for (VertexIteratorType vIt = pathListIt.Get()->GetVertexList()->Begin();
-         vIt != pathListIt.Get()->GetVertexList()->End();
-         ++vIt)
-      {
-      if (vIt != pathListIt.Get()->GetVertexList()->Begin())
-        {
-        file << ", ";
-        }
-      file << vIt.Value();
-      }
-    file << std::endl;
-    ++pathListIt;
-    ++counter;
-    }
-  counter = 1;
-  pathListIt = OutputPathList->Begin();
-  file << "OUTPUT list of Path " << ": " << std::endl;
-  while (pathListIt != OutputPathList->End())
-    {
-    file << "Path " << counter << ": ";
-    for (VertexIteratorType vIt = pathListIt.Get()->GetVertexList()->Begin();
-         vIt != pathListIt.Get()->GetVertexList()->End();
-         ++vIt)
-      {
-      if (vIt != pathListIt.Get()->GetVertexList()->Begin())
-        {
-        file << ", ";
-        }
-      file << vIt.Value();
-      }
-    file << std::endl;
-    ++pathListIt;
-    ++counter;
-    }
-  file.close();
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/Detection/RoadExtraction/test/otbNeighborhoodScalarProductFilter.cxx b/Modules/Detection/RoadExtraction/test/otbNeighborhoodScalarProductFilter.cxx
deleted file mode 100644
index 75c62bb6ab0c1f770bdade075f0aabc90ad5cba7..0000000000000000000000000000000000000000
--- a/Modules/Detection/RoadExtraction/test/otbNeighborhoodScalarProductFilter.cxx
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "itkMacro.h"
-
-#include "otbNeighborhoodScalarProductFilter.h"
-#include "otbImage.h"
-#include "otbImageFileReader.h"
-#include "otbImageFileWriter.h"
-#include "itkGradientRecursiveGaussianImageFilter.h"
-
-int otbNeighborhoodScalarProductFilter(int itkNotUsed(argc), char * argv[])
-{
-
-  const char * infname = argv[1];
-  const char * outfname = argv[2];
-  const char * diroutfname = argv[3];
-  const double sigma = atof(argv[4]);
-
-  const unsigned int Dimension = 2;
-  typedef double                                                                      PixelType;
-  typedef itk::CovariantVector<PixelType, Dimension>                                  VectorPixelType;
-  typedef otb::Image<VectorPixelType, Dimension>                                      VectorImageType;
-  typedef otb::Image<PixelType, Dimension>                                            ImageType;
-  typedef otb::NeighborhoodScalarProductFilter<VectorImageType, ImageType, ImageType> FilterType;
-  typedef otb::ImageFileReader<ImageType>                                             ReaderType;
-  typedef otb::ImageFileWriter<ImageType>                                             WriterType;
-  typedef itk::GradientRecursiveGaussianImageFilter<ImageType, VectorImageType>       GradientFilterType;
-
-  // Instantiating object
-  FilterType::Pointer         filter = FilterType::New();
-  ReaderType::Pointer         reader = ReaderType::New();
-  WriterType::Pointer         writer = WriterType::New();
-  GradientFilterType::Pointer gradient = GradientFilterType::New();
-
-  reader->SetFileName(infname);
-  reader->Update();
-
-  gradient->SetInput(reader->GetOutput());
-  gradient->SetSigma(sigma);
-  filter->SetInput(gradient->GetOutput());
-  writer->SetInput(filter->GetOutput());
-  writer->SetFileName(outfname);
-  writer->Update();
-  writer = WriterType::New();
-  writer->SetFileName(diroutfname);
-  writer->SetInput(filter->GetOutputDirection());
-  writer->Update();
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/Detection/RoadExtraction/test/otbNonMaxRemovalByDirectionFilter.cxx b/Modules/Detection/RoadExtraction/test/otbNonMaxRemovalByDirectionFilter.cxx
deleted file mode 100644
index cb8970e5de831bd4818789b586443a52d29d468d..0000000000000000000000000000000000000000
--- a/Modules/Detection/RoadExtraction/test/otbNonMaxRemovalByDirectionFilter.cxx
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "itkMacro.h"
-#include "otbNonMaxRemovalByDirectionFilter.h"
-#include "otbImage.h"
-#include "otbImageFileReader.h"
-#include "otbImageFileWriter.h"
-
-int otbNonMaxRemovalByDirectionFilter(int itkNotUsed(argc), char * argv[])
-{
-  const unsigned int Dimension = 2;
-  typedef double                                                               PixelType;
-  typedef otb::Image<PixelType, Dimension>                                     ImageType;
-  typedef otb::ImageFileReader<ImageType>                                      ReaderType;
-  typedef otb::ImageFileWriter<ImageType>                                      WriterType;
-  typedef otb::NonMaxRemovalByDirectionFilter<ImageType, ImageType, ImageType> NonMaxRemovalByDirectionFilterType;
-
-  // Instantiating object
-  ReaderType::Pointer modReader = ReaderType::New();
-  ReaderType::Pointer dirReader = ReaderType::New();
-  WriterType::Pointer writer = WriterType::New();
-  modReader->SetFileName(argv[1]);
-  dirReader->SetFileName(argv[2]);
-  writer->SetFileName(argv[3]);
-  NonMaxRemovalByDirectionFilterType::Pointer filter = NonMaxRemovalByDirectionFilterType::New();
-  filter->SetInput(modReader->GetOutput());
-  filter->SetInputDirection(dirReader->GetOutput());
-  writer->SetInput(filter->GetOutput());
-  writer->Update();
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/Detection/RoadExtraction/test/otbParallelLinePathListFilter.cxx b/Modules/Detection/RoadExtraction/test/otbParallelLinePathListFilter.cxx
deleted file mode 100644
index f2b67fc6ad757b8e6e93f86608a698e1ed339880..0000000000000000000000000000000000000000
--- a/Modules/Detection/RoadExtraction/test/otbParallelLinePathListFilter.cxx
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "itkMacro.h"
-
-#include "otbParallelLinePathListFilter.h"
-#include "itkPolyLineParametricPath.h"
-#include <cstdlib>
-
-int otbParallelLinePathListFilter(int itkNotUsed(argc), char * itkNotUsed(argv) [])
-{
-
-  // We create some lines
-  const unsigned int Dimension = 2;
-  typedef itk::PolyLineParametricPath<Dimension> PathType;
-  typedef otb::ObjectList<PathType>              PathListType;
-
-  PathListType::Pointer lineList = PathListType::New();
-  PathListType::Pointer parallelList = PathListType::New();
-
-  typedef PathType::ContinuousIndexType ContinuousIndexType;
-  ContinuousIndexType cindex;
-
-  /*-----*/
-  PathType::Pointer aLine = PathType::New();
-  aLine->Initialize();
-  cindex[0] = 1;
-  cindex[1] = 1;
-  aLine->AddVertex(cindex);
-
-  cindex[0] = 1;
-  cindex[1] = 100;
-  aLine->AddVertex(cindex);
-
-  lineList->PushBack(aLine);
-  parallelList->PushBack(aLine);
-
-  /*-----*/
-  aLine = PathType::New();
-  aLine->Initialize();
-  cindex[0] = 10;
-  cindex[1] = 1;
-  aLine->AddVertex(cindex);
-
-  cindex[0] = 10;
-  cindex[1] = 100;
-  aLine->AddVertex(cindex);
-  parallelList->PushBack(aLine);
-  lineList->PushBack(aLine);
-
-  /*-----*/
-  aLine = PathType::New();
-  aLine->Initialize();
-  cindex[0] = 174;
-  cindex[1] = 99;
-  aLine->AddVertex(cindex);
-
-  cindex[0] = 281;
-  cindex[1] = 1;
-  aLine->AddVertex(cindex);
-
-  lineList->PushBack(aLine);
-
-  // Parallel lines are detected.
-
-  typedef otb::ParallelLinePathListFilter<PathType> ParallelLinePathType;
-  ParallelLinePathType::Pointer parallelLinePathListFilter = ParallelLinePathType::New();
-  parallelLinePathListFilter->SetDistanceThreshold(10);
-  parallelLinePathListFilter->SetAngularThreshold(10);
-  parallelLinePathListFilter->SetCommonDistanceThreshold(10);
-  parallelLinePathListFilter->SetInput(lineList);
-  parallelLinePathListFilter->Update();
-
-  PathListType::Pointer  pathList = parallelLinePathListFilter->GetOutput();
-  PathListType::Iterator listIt = pathList->Begin();
-
-  PathListType::Iterator parListIt = parallelList->Begin();
-
-  // A path is a line segment in this case.
-  while (listIt != pathList->End() && parListIt != parallelList->End())
-    {
-    PathType::VertexListType::ConstPointer vertexList = (listIt.Get())->GetVertexList();
-
-    PathType::VertexListType::ConstPointer parVertexList = (parListIt.Get())->GetVertexList();
-
-    PathType::VertexListType::ConstIterator pathIt = vertexList->Begin();
-    PathType::VertexListType::ConstIterator parPathIt = parVertexList->Begin();
-    // Loop over all the vertices in one path
-    while (pathIt != vertexList->End() &&
-           parPathIt != parVertexList->End())
-      {
-
-      if (pathIt.Value() != parPathIt.Value())
-        {
-        std::cout << pathIt.Index() << pathIt.Value() << std::endl;
-        return EXIT_FAILURE;
-
-        }
-      ++pathIt;
-      ++parPathIt;
-      }
-    ++listIt;
-    ++parListIt;
-    }
-
-  return EXIT_SUCCESS;
-
-}
diff --git a/Modules/Detection/RoadExtraction/test/otbRemoveIsolatedByDirectionFilter.cxx b/Modules/Detection/RoadExtraction/test/otbRemoveIsolatedByDirectionFilter.cxx
deleted file mode 100644
index a2a9ade45086a8b60e17e1c71ab78a2d5dcc6cb9..0000000000000000000000000000000000000000
--- a/Modules/Detection/RoadExtraction/test/otbRemoveIsolatedByDirectionFilter.cxx
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "itkMacro.h"
-#include "otbRemoveIsolatedByDirectionFilter.h"
-#include "otbImage.h"
-#include "otbImageFileReader.h"
-#include "otbImageFileWriter.h"
-
-int otbRemoveIsolatedByDirectionFilter(int itkNotUsed(argc), char * argv[])
-{
-  const unsigned int Dimension = 2;
-  typedef double                                                                PixelType;
-  typedef otb::Image<PixelType, Dimension>                                      ImageType;
-  typedef otb::ImageFileReader<ImageType>                                       ReaderType;
-  typedef otb::ImageFileWriter<ImageType>                                       WriterType;
-  typedef otb::RemoveIsolatedByDirectionFilter<ImageType, ImageType, ImageType> RemoveIsolatedByDirectionFilterType;
-
-  // Instantiating object
-  ReaderType::Pointer modReader = ReaderType::New();
-  ReaderType::Pointer dirReader = ReaderType::New();
-  WriterType::Pointer writer = WriterType::New();
-  modReader->SetFileName(argv[1]);
-  dirReader->SetFileName(argv[2]);
-  writer->SetFileName(argv[3]);
-  RemoveIsolatedByDirectionFilterType::Pointer filter = RemoveIsolatedByDirectionFilterType::New();
-  filter->SetInput(modReader->GetOutput());
-  filter->SetInputDirection(dirReader->GetOutput());
-  writer->SetInput(filter->GetOutput());
-  writer->Update();
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/Detection/RoadExtraction/test/otbRemoveTortuousPathListFilter.cxx b/Modules/Detection/RoadExtraction/test/otbRemoveTortuousPathListFilter.cxx
deleted file mode 100644
index 21b28e0c90ec845d6c0e37887d2876a4fca2b6ee..0000000000000000000000000000000000000000
--- a/Modules/Detection/RoadExtraction/test/otbRemoveTortuousPathListFilter.cxx
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "itkMacro.h"
-
-#include "otbRemoveTortuousPathListFilter.h"
-#include "itkPolyLineParametricPath.h"
-#include <fstream>
-#include <cstdlib>
-
-int otbRemoveTortuousPathListFilter(int itkNotUsed(argc), char * argv[])
-{
-  const char * outfname = argv[1];
-  const double threshold = atof(argv[2]);
-
-  typedef std::vector<double>           PointsVectorType;
-  typedef std::vector<PointsVectorType> PointsMatrixType;
-  PointsMatrixType MatricePoints;
-  PointsVectorType ListPoints;
-
-  int cpt = 3;
-  ListPoints.clear();
-
-  while (argv[cpt] != nullptr)
-    {
-    if (argv[cpt][0] == '|')
-      {
-      if ((ListPoints.size() % 2) != 0)
-        {
-        itkGenericExceptionMacro(<< "Missing point in parameters !");
-        }
-      MatricePoints.push_back(ListPoints);
-      ListPoints.clear();
-      }
-    else
-      {
-      ListPoints.push_back(static_cast<double>(::atof(argv[cpt])));
-      }
-    ++cpt;
-    }
-  MatricePoints.push_back(ListPoints);
-
-  const unsigned int Dimension = 2;
-  typedef itk::PolyLineParametricPath<Dimension>          PathType;
-  typedef otb::RemoveTortuousPathListFilter<PathType>     RemoveTortuousPathListFilterType;
-  typedef RemoveTortuousPathListFilterType::InputListType PathListType;
-  PathType::ContinuousIndexType cindex;
-
-  PathListType::Pointer InputPathList = PathListType::New();
-
-  //Generate PathList
-  for (PointsMatrixType::iterator listpos = MatricePoints.begin(); listpos != MatricePoints.end(); ++listpos)
-    {
-    PathType::Pointer path = PathType::New();
-    //Generate PathList
-    std::cout << "List " << std::endl;
-    for (PointsVectorType::iterator it = (*listpos).begin(); it != (*listpos).end(); ++it)
-      {
-      cindex[0] = *it;
-      ++it;
-      cindex[1] = *it;
-      std::cout << "Point Index :" << cindex[0] << ";" << cindex[1] << std::endl;
-      path->AddVertex(cindex);
-      }
-    InputPathList->PushBack(path);
-    }
-  // Instantiating object
-  RemoveTortuousPathListFilterType::Pointer filter = RemoveTortuousPathListFilterType::New();
-
-  filter->SetInput(InputPathList);
-  filter->GetFunctor().SetThreshold(threshold);
-  filter->Update();
-
-  PathListType::Pointer OutputPathList = filter->GetOutput();
-
-  typedef PathListType::ConstIterator   PathListIteratorType;
-  typedef PathType::VertexListType      VertexListType;
-  typedef VertexListType::ConstIterator VertexIteratorType;
-
-  std::ofstream file;
-  file.open(outfname);
-  unsigned int         counter = 1;
-  PathListIteratorType pathListIt = InputPathList->Begin();
-
-  file << "Minimum Mean Distance: " << filter->GetFunctor().GetThreshold() << " (" << threshold << ")" << std::endl;
-  file << "INPUT list of Path " << ": " << std::endl;
-  while (pathListIt != InputPathList->End())
-    {
-    file << "Path " << counter << ": ";
-    for (VertexIteratorType vIt = pathListIt.Get()->GetVertexList()->Begin();
-         vIt != pathListIt.Get()->GetVertexList()->End();
-         ++vIt)
-      {
-      if (vIt != pathListIt.Get()->GetVertexList()->Begin())
-        {
-        file << ", ";
-        }
-      file << vIt.Value();
-      }
-    file << std::endl;
-    ++pathListIt;
-    ++counter;
-    }
-  counter = 1;
-  pathListIt = OutputPathList->Begin();
-  file << "OUTPUT list of Path " << ": " << std::endl;
-  while (pathListIt != OutputPathList->End())
-    {
-    file << "Path " << counter << ": ";
-    for (VertexIteratorType vIt = pathListIt.Get()->GetVertexList()->Begin();
-         vIt != pathListIt.Get()->GetVertexList()->End();
-         ++vIt)
-      {
-      if (vIt != pathListIt.Get()->GetVertexList()->Begin())
-        {
-        file << ", ";
-        }
-      file << vIt.Value();
-      }
-    file << std::endl;
-    ++pathListIt;
-    ++counter;
-    }
-  file.close();
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/Detection/RoadExtraction/test/otbRemoveWrongDirectionFilter.cxx b/Modules/Detection/RoadExtraction/test/otbRemoveWrongDirectionFilter.cxx
deleted file mode 100644
index 146623060c18a74dc415f0a51f8a939254d7c999..0000000000000000000000000000000000000000
--- a/Modules/Detection/RoadExtraction/test/otbRemoveWrongDirectionFilter.cxx
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "itkMacro.h"
-#include "otbRemoveWrongDirectionFilter.h"
-#include "otbImage.h"
-#include "otbImageFileReader.h"
-#include "otbImageFileWriter.h"
-
-int otbRemoveWrongDirectionFilter(int itkNotUsed(argc), char * argv[])
-{
-  const unsigned int Dimension = 2;
-  typedef double                                                           PixelType;
-  typedef otb::Image<PixelType, Dimension>                                 ImageType;
-  typedef otb::ImageFileReader<ImageType>                                  ReaderType;
-  typedef otb::ImageFileWriter<ImageType>                                  WriterType;
-  typedef otb::RemoveWrongDirectionFilter<ImageType, ImageType, ImageType> RemoveWrongDirectionFilterType;
-
-  // Instantiating object
-  ReaderType::Pointer modReader = ReaderType::New();
-  ReaderType::Pointer dirReader = ReaderType::New();
-  WriterType::Pointer writer = WriterType::New();
-  modReader->SetFileName(argv[1]);
-  dirReader->SetFileName(argv[2]);
-  writer->SetFileName(argv[3]);
-  RemoveWrongDirectionFilterType::Pointer filter = RemoveWrongDirectionFilterType::New();
-  filter->SetInput(modReader->GetOutput());
-  filter->SetInputDirection(dirReader->GetOutput());
-  writer->SetInput(filter->GetOutput());
-  writer->Update();
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/Detection/RoadExtraction/test/otbRoadExtractionFilter.cxx b/Modules/Detection/RoadExtraction/test/otbRoadExtractionFilter.cxx
deleted file mode 100644
index 80e757ab1b4a624493fbbab5b141e221ff63aff4..0000000000000000000000000000000000000000
--- a/Modules/Detection/RoadExtraction/test/otbRoadExtractionFilter.cxx
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "itkMacro.h"
-
-#include "otbImage.h"
-#include "otbRoadExtractionFilter.h"
-#include "otbDrawPathListFilter.h"
-#include "otbImageFileReader.h"
-#include "otbImageFileWriter.h"
-#include "otbPolyLineParametricPathWithValue.h"
-#include "otbMath.h"
-
-int otbRoadExtractionFilter(int itkNotUsed(argc), char * argv[])
-{
-  const unsigned int Dimension = 2;
-  typedef otb::VectorImage<double, Dimension>                     InputImageType;
-  typedef otb::Image<double, Dimension>                           OutputImageType;
-  typedef otb::PolyLineParametricPathWithValue<double, Dimension> PathType;
-
-  typedef otb::ImageFileReader<InputImageType>                                ReaderType;
-  typedef otb::ImageFileWriter<OutputImageType>                               WriterType;
-  typedef otb::RoadExtractionFilter<InputImageType, PathType>                 RoadExtractionFilterType;
-  typedef RoadExtractionFilterType::InputPixelType                            InputPixelType;
-  typedef otb::DrawPathListFilter<OutputImageType, PathType, OutputImageType> DrawPathFilterType;
-
-  //Parameters
-  const char *   inputFileName(argv[1]);
-  const char *   outputFileName(argv[2]);
-  InputPixelType ReferencePixel;
-  ReferencePixel.Reserve(4);
-  ReferencePixel.SetElement(0, ::atof(argv[3]));
-  ReferencePixel.SetElement(1, ::atof(argv[4]));
-  ReferencePixel.SetElement(2, ::atof(argv[5]));
-  ReferencePixel.SetElement(3, ::atof(argv[6]));
-  const double Alpha = ::atof(argv[7]);
-  const double AmplitudeThreshold = ::atof(argv[8]);
-  const double Tolerance = ::atof(argv[9]);
-  const double MaxAngle = ((otb::CONST_PI * ::atof(argv[10])) / 180.);
-  const double FirstMeanDistanceThreshold  = ::atof(argv[11]);
-  const double SecondMeanDistanceThreshold  = ::atof(argv[12]);
-  const double LinkAngularThreshold = ((otb::CONST_PI * ::atof(argv[13])) / 180.);
-  const double LinkDistanceThreshold  = ::atof(argv[14]);
-
-  // Instantiating object
-  ReaderType::Pointer               reader = ReaderType::New();
-  RoadExtractionFilterType::Pointer roadExtraction = RoadExtractionFilterType::New();
-  DrawPathFilterType::Pointer       draw = DrawPathFilterType::New();
-  WriterType::Pointer               writer = WriterType::New();
-
-  //Initialization parameters
-  reader->SetFileName(inputFileName);
-
-  roadExtraction->SetInput(reader->GetOutput());
-  roadExtraction->SetReferencePixel(ReferencePixel);
-  roadExtraction->SetAlpha(Alpha);
-  roadExtraction->SetAmplitudeThreshold(AmplitudeThreshold);
-  roadExtraction->SetTolerance(Tolerance);
-  roadExtraction->SetMaxAngle(MaxAngle);
-  roadExtraction->SetFirstMeanDistanceThreshold(FirstMeanDistanceThreshold);
-  roadExtraction->SetSecondMeanDistanceThreshold(SecondMeanDistanceThreshold);
-  roadExtraction->SetAngularThreshold(LinkAngularThreshold);
-  roadExtraction->SetDistanceThreshold(LinkDistanceThreshold);
-
-  reader->GenerateOutputInformation();
-  OutputImageType::Pointer image = OutputImageType::New();
-  image->CopyInformation(reader->GetOutput());
-  image->SetRegions(image->GetLargestPossibleRegion());
-  image->Allocate();
-  image->FillBuffer(0);
-
-  draw->SetInput(image);
-  //Use internal value of path
-  draw->UseInternalPathValueOn();
-  draw->SetInputPath(roadExtraction->GetOutput());
-
-  writer->SetFileName(outputFileName);
-  writer->SetInput(draw->GetOutput());
-  writer->Update();
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/Detection/RoadExtraction/test/otbRoadExtractionTestDriver.cxx b/Modules/Detection/RoadExtraction/test/otbRoadExtractionTestDriver.cxx
deleted file mode 100644
index 2765863108877e2fb1ecda2ec2914a4e15316586..0000000000000000000000000000000000000000
--- a/Modules/Detection/RoadExtraction/test/otbRoadExtractionTestDriver.cxx
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "otbTestMain.h"
-
-void RegisterTests()
-{
-  REGISTER_TEST(otbLikelihoodPathListFilter);
-  REGISTER_TEST(otbRemoveWrongDirectionFilter);
-  REGISTER_TEST(otbSimplifyPathListFilter);
-  REGISTER_TEST(otbAlignImageToPath);
-  REGISTER_TEST(otbNonMaxRemovalByDirectionFilter);
-  REGISTER_TEST(otbRoadExtractionFilter);
-  REGISTER_TEST(otbLinkPathListFilter);
-  REGISTER_TEST(otbRemoveTortuousPathListFilter);
-  REGISTER_TEST(otbParallelLinePathListFilter);
-  REGISTER_TEST(otbRemoveIsolatedByDirectionFilter);
-  REGISTER_TEST(otbVectorDataToRoadDescriptionFilter);
-  REGISTER_TEST(otbSimplifyManyPathListFilter);
-  REGISTER_TEST(otbNeighborhoodScalarProductFilter);
-  REGISTER_TEST(otbDrawPathAlign);
-  REGISTER_TEST(otbBreakAngularPathListFilter);
-}
diff --git a/Modules/Detection/RoadExtraction/test/otbSimplifyManyPathListFilter.cxx b/Modules/Detection/RoadExtraction/test/otbSimplifyManyPathListFilter.cxx
deleted file mode 100644
index 12a79b10a8160ea6d9fb4af08c92acb764607d27..0000000000000000000000000000000000000000
--- a/Modules/Detection/RoadExtraction/test/otbSimplifyManyPathListFilter.cxx
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "itkMacro.h"
-
-#include "otbSimplifyPathListFilter.h"
-#include "itkPolyLineParametricPath.h"
-#include <fstream>
-#include <cstdlib>
-
-/**
- * This filter is intended to test the multithreading capabilities
- * of the otb::UnaryFunctorObjectListFilter
- */
-
-int otbSimplifyManyPathListFilter(int itkNotUsed(argc), char * argv[])
-{
-  const char * outfname = argv[1];
-  const double tolerance = atof(argv[2]);
-
-//   typedef std::vector<double> PointsVectorType;
-//   typedef std::vector< PointsVectorType > PointsMatrixType;
-//   PointsMatrixType MatricePoints;
-//   PointsVectorType ListPoints;
-
-  const unsigned int Dimension = 2;
-  typedef itk::PolyLineParametricPath<Dimension>    PathType;
-  typedef otb::SimplifyPathListFilter<PathType>     SimplifyPathListFilterType;
-  typedef SimplifyPathListFilterType::InputListType PathListType;
-  PathType::ContinuousIndexType cindex;
-
-  PathListType::Pointer InputPathList = PathListType::New();
-
-  //Generate PathList
-  unsigned long int numberOfPaths = 10000;
-  srand(123456);
-
-  for (unsigned long int i = 0; i < numberOfPaths; ++i)
-    {
-    PathType::Pointer path = PathType::New();
-    //Generate PathList
-    unsigned int numberOfPoints = static_cast<int>((rand() / (RAND_MAX + 1.0)) * 90) + 10;
-//     std::cout << "List :" << numberOfPoints << " points" << std::endl;
-    cindex[0] = 0;
-    cindex[1] = 0;
-    for (unsigned int j = 0; j < numberOfPoints; ++j)
-      {
-      cindex[0] += (rand() / (RAND_MAX + 1.0)) * 100 - 50;
-      cindex[1] += (rand() / (RAND_MAX + 1.0)) * 100 - 50;
-//       std::cout << "Point Index :"<<cindex[0]<<", "<<cindex[1]<<std::endl;
-      path->AddVertex(cindex);
-      }
-    InputPathList->PushBack(path);
-    }
-  // Instantiating object
-  SimplifyPathListFilterType::Pointer simplifyFilter = SimplifyPathListFilterType::New();
-
-  simplifyFilter->SetInput(InputPathList);
-  simplifyFilter->GetFunctor().SetTolerance(tolerance);
-  simplifyFilter->Update();
-
-  PathListType::Pointer OutputPathList = simplifyFilter->GetOutput();
-
-  typedef PathListType::ConstIterator   PathListIteratorType;
-  typedef PathType::VertexListType      VertexListType;
-  typedef VertexListType::ConstIterator VertexIteratorType;
-
-  std::ofstream file;
-  file.open(outfname);
-  unsigned int         counter = 1;
-  PathListIteratorType pathListIt = InputPathList->Begin();
-
-  file << "TOLERANCE: " << simplifyFilter->GetFunctor().GetTolerance() << "(" << tolerance << ")" << std::endl;
-
-  pathListIt = OutputPathList->Begin();
-  file << "OUTPUT list of Path " << ": " << std::endl;
-  while (pathListIt != OutputPathList->End())
-    {
-    file << "Path " << counter << ": ";
-    for (VertexIteratorType vIt = pathListIt.Get()->GetVertexList()->Begin();
-         vIt != pathListIt.Get()->GetVertexList()->End();
-         ++vIt)
-      {
-      if (vIt != pathListIt.Get()->GetVertexList()->Begin())
-        {
-        file << ", ";
-        }
-      file << vIt.Value();
-      }
-    file << std::endl;
-    ++pathListIt;
-    ++counter;
-    }
-  file.close();
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/Detection/RoadExtraction/test/otbSimplifyPathListFilter.cxx b/Modules/Detection/RoadExtraction/test/otbSimplifyPathListFilter.cxx
deleted file mode 100644
index 54095a10ec232ab00a3ac9cc1e55fd27d27a822f..0000000000000000000000000000000000000000
--- a/Modules/Detection/RoadExtraction/test/otbSimplifyPathListFilter.cxx
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "itkMacro.h"
-
-#include "otbSimplifyPathListFilter.h"
-#include "itkPolyLineParametricPath.h"
-#include <fstream>
-#include <cstdlib>
-
-int otbSimplifyPathListFilter(int itkNotUsed(argc), char * argv[])
-{
-  const char * outfname = argv[1];
-  const double tolerance = atof(argv[2]);
-
-  typedef std::vector<double>           PointsVectorType;
-  typedef std::vector<PointsVectorType> PointsMatrixType;
-  PointsMatrixType MatricePoints;
-  PointsVectorType ListPoints;
-
-  int cpt = 3;
-  ListPoints.clear();
-
-  while (argv[cpt] != nullptr)
-    {
-    if (argv[cpt][0] == '|')
-      {
-      if ((ListPoints.size() % 2) != 0)
-        {
-        itkGenericExceptionMacro(<< "Missing point in parameters !");
-        }
-      MatricePoints.push_back(ListPoints);
-      ListPoints.clear();
-      }
-    else
-      {
-      ListPoints.push_back(static_cast<double>(::atof(argv[cpt])));
-      }
-    ++cpt;
-    }
-  MatricePoints.push_back(ListPoints);
-
-  const unsigned int Dimension = 2;
-  typedef itk::PolyLineParametricPath<Dimension>    PathType;
-  typedef otb::SimplifyPathListFilter<PathType>     SimplifyPathListFilterType;
-  typedef SimplifyPathListFilterType::InputListType PathListType;
-  PathType::ContinuousIndexType cindex;
-
-  PathListType::Pointer InputPathList = PathListType::New();
-
-  //Generate PathList
-  for (PointsMatrixType::iterator listpos = MatricePoints.begin(); listpos != MatricePoints.end(); ++listpos)
-    {
-    PathType::Pointer path = PathType::New();
-    //Generate PathList
-    std::cout << "List " << std::endl;
-    for (PointsVectorType::iterator it = (*listpos).begin(); it != (*listpos).end(); ++it)
-      {
-      cindex[0] = *it;
-      ++it;
-      cindex[1] = *it;
-      std::cout << "Point Index :" << cindex[0] << ";" << cindex[1] << std::endl;
-      path->AddVertex(cindex);
-      }
-    InputPathList->PushBack(path);
-    }
-  // Instantiating object
-  SimplifyPathListFilterType::Pointer simplifyFilter = SimplifyPathListFilterType::New();
-
-  simplifyFilter->SetInput(InputPathList);
-  simplifyFilter->GetFunctor().SetTolerance(tolerance);
-  simplifyFilter->Update();
-
-  PathListType::Pointer OutputPathList = simplifyFilter->GetOutput();
-
-  typedef PathListType::ConstIterator   PathListIteratorType;
-  typedef PathType::VertexListType      VertexListType;
-  typedef VertexListType::ConstIterator VertexIteratorType;
-
-  std::ofstream file;
-  file.open(outfname);
-  unsigned int         counter = 1;
-  PathListIteratorType pathListIt = InputPathList->Begin();
-
-  file << "TOLERANCE: " << simplifyFilter->GetFunctor().GetTolerance() << "(" << tolerance << ")" << std::endl;
-  file << "INPUT list of Path " << ": " << std::endl;
-  while (pathListIt != InputPathList->End())
-    {
-    file << "Path " << counter << ": ";
-    for (VertexIteratorType vIt = pathListIt.Get()->GetVertexList()->Begin();
-         vIt != pathListIt.Get()->GetVertexList()->End();
-         ++vIt)
-      {
-      if (vIt != pathListIt.Get()->GetVertexList()->Begin())
-        {
-        file << ", ";
-        }
-      file << vIt.Value();
-      }
-    file << std::endl;
-    ++pathListIt;
-    ++counter;
-    }
-  counter = 1;
-  pathListIt = OutputPathList->Begin();
-  file << "OUTPUT list of Path " << ": " << std::endl;
-  while (pathListIt != OutputPathList->End())
-    {
-    file << "Path " << counter << ": ";
-    for (VertexIteratorType vIt = pathListIt.Get()->GetVertexList()->Begin();
-         vIt != pathListIt.Get()->GetVertexList()->End();
-         ++vIt)
-      {
-      if (vIt != pathListIt.Get()->GetVertexList()->Begin())
-        {
-        file << ", ";
-        }
-      file << vIt.Value();
-      }
-    file << std::endl;
-    ++pathListIt;
-    ++counter;
-    }
-  file.close();
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/Detection/RoadExtraction/test/otbVectorDataToRoadDescriptionFilter.cxx b/Modules/Detection/RoadExtraction/test/otbVectorDataToRoadDescriptionFilter.cxx
deleted file mode 100644
index 98715c2b867184293e7943a188a534c96a928222..0000000000000000000000000000000000000000
--- a/Modules/Detection/RoadExtraction/test/otbVectorDataToRoadDescriptionFilter.cxx
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-
-#include "otbVectorDataToRoadDescriptionFilter.h"
-
-#include "otbVectorImage.h"
-#include "otbImageFileReader.h"
-#include "otbVectorDataFileReader.h"
-#include "otbVectorDataFileWriter.h"
-#include "otbVectorDataProperties.h"
-#include "otbRemoteSensingRegion.h"
-#include "otbVectorDataIntoImageProjectionFilter.h"
-
-
-
-
-
-int otbVectorDataToRoadDescriptionFilter(int itkNotUsed(argc), char* argv[])
-{
-  const char * inputVD  = argv[1];
-  const char * inputImg = argv[2];
-  const char * inputDB  = argv[3];
-  const char * outputVD = argv[4];
-  const char * DEMDirectory = argv[5];
-  int DisplayWarnings   = atoi(argv[6]);
-
-  typedef double                             PrecisionType;
-  typedef otb::VectorData<PrecisionType, 2>  VectorDataType;
-  typedef otb::VectorImage<PrecisionType>    ImageType;
-
-  typedef otb::VectorDataToRoadDescriptionFilter<VectorDataType, ImageType>
-                                          VectorDataToRoadDescriptionFilterType;
-
-  typedef otb::ImageFileReader<ImageType> ImageReaderType;
-  typedef otb::VectorDataFileReader<VectorDataType>
-                                          VectorDataReaderType;
-  typedef otb::VectorDataFileWriter<VectorDataType>
-                                          VectorDataWriterType;
-  typedef otb::VectorDataIntoImageProjectionFilter<VectorDataType, ImageType>
-                                          VectorDataReProjFilter;
-
-
-  VectorDataReaderType::Pointer vdReader = VectorDataReaderType::New();
-  VectorDataReaderType::Pointer DBReader = VectorDataReaderType::New();
-  ImageReaderType::Pointer      reader   = ImageReaderType::New();
-  VectorDataWriterType::Pointer vdWriter = VectorDataWriterType::New();
-  VectorDataReProjFilter::Pointer vdReProjFilter = VectorDataReProjFilter::New();
-
-  VectorDataToRoadDescriptionFilterType::Pointer filter =
-    VectorDataToRoadDescriptionFilterType::New();
-
-  if (!DisplayWarnings)
-    {
-    reader->SetGlobalWarningDisplay(0);
-    }
-  otb::DEMHandler::Instance()->OpenDEMDirectory(DEMDirectory);
-
-  reader->SetFileName(inputImg);
-  reader->UpdateOutputInformation();
-
-  DBReader->SetFileName(inputDB);
-  DBReader->Update();
-
-  vdReader->SetFileName(inputVD);
-  vdReader->Update();
-
-  vdReProjFilter->SetInputImage(reader->GetOutput());
-  vdReProjFilter->SetInputVectorData(vdReader->GetOutput());
-  vdReProjFilter->SetUseOutputSpacingAndOriginFromImage(true);
-  vdReProjFilter->Update();
-
-  filter->SetInput(vdReProjFilter->GetOutput());
-  filter->AddOpticalImage(reader->GetOutput());
-  filter->AddBuildingsDB(DBReader->GetOutput());
-
-  vdWriter->SetFileName(outputVD);
-  vdWriter->SetInput(filter->GetOutput());
-  vdWriter->Update();
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/Detection/UrbanArea/CMakeLists.txt b/Modules/Detection/UrbanArea/CMakeLists.txt
deleted file mode 100644
index 3bc279da0f37ffd74bdb90c4814be43d9ee1dec6..0000000000000000000000000000000000000000
--- a/Modules/Detection/UrbanArea/CMakeLists.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
-#
-# This file is part of Orfeo Toolbox
-#
-#     https://www.orfeo-toolbox.org/
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-project(OTBUrbanArea)
-otb_module_impl()
diff --git a/Modules/Detection/UrbanArea/include/otbUrbanAreaDetectionImageFilter.h b/Modules/Detection/UrbanArea/include/otbUrbanAreaDetectionImageFilter.h
deleted file mode 100644
index c178c9acc56ab65b4118729618177488b95368cd..0000000000000000000000000000000000000000
--- a/Modules/Detection/UrbanArea/include/otbUrbanAreaDetectionImageFilter.h
+++ /dev/null
@@ -1,275 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbUrbanAreaDetectionImageFilter_h
-#define otbUrbanAreaDetectionImageFilter_h
-
-#include "otbImage.h"
-#include "otbWaterIndicesFunctor.h"
-#include "otbVegetationIndicesFunctor.h"
-#include "itkUnaryFunctorImageFilter.h"
-#include "itkBinaryErodeImageFilter.h"
-#include "itkBinaryDilateImageFilter.h"
-#include "itkBinaryBallStructuringElement.h"
-#include "itkMacro.h"
-#include "itkSobelEdgeDetectionImageFilter.h"
-#include "otbEdgeDetectorImageFilter.h"
-#include "otbEdgeDensityImageFilter.h"
-#include "otbBinaryImageDensityFunction.h"
-#include "otbVectorImageToIntensityImageFilter.h"
-
-namespace otb
-{
-
-namespace Functor
-{
-
-/** \class RadiometricNonWaterNonVegetationIndexFunctor
- *  \brief This functor computes ndwi and ndvi of an image
- *  \brief in order to find urban areas and generate a grayscale image
- *
- * \ingroup OTBUrbanArea
- */
-template<class TInput, class TOutput = double>
-class RadiometricNonWaterNonVegetationIndexFunctor
-{
-public:
-  typedef Functor::NDVI<double, double>          VegetationFunctorType;
-  typedef Functor::NDWI2<double, double>         WaterFunctorType;
-  typedef TOutput                                ValueType;
-
-  VegetationFunctorType GetVegetationFunctor(){ return m_VegetationFunctor; }
-  WaterFunctorType GetWaterFunctor(){ return m_WaterFunctor; }
-
-  void SetRedIndex(int id)
-  {
-    m_VegetationFunctor.SetBandIndex(CommonBandNames::RED, id);
-  }
-  void SetGreenIndex(int id)
-  {
-    m_WaterFunctor.SetBandIndex(CommonBandNames::GREEN, id);
-  }
-  void SetNIRIndex(int id)
-  {
-    m_VegetationFunctor.SetBandIndex(CommonBandNames::NIR, id);
-    m_WaterFunctor.SetBandIndex(CommonBandNames::NIR, id);
-  }
-
-  RadiometricNonWaterNonVegetationIndexFunctor(){}
-  virtual ~RadiometricNonWaterNonVegetationIndexFunctor(){}
-
-  inline TOutput operator ()(const TInput& pInPix)
-  {
-    TOutput lVIval, lWIval, lOutPix;
-
-    TInput zero = pInPix;
-    zero.Fill(0);
-    if (pInPix != zero)
-      {
-      lVIval = static_cast<ValueType>(std::max(0., m_VegetationFunctor(pInPix)));
-      lWIval = static_cast<ValueType>(std::max(0., m_WaterFunctor(pInPix)));
-
-      lOutPix = std::sqrt(std::abs((1 - lVIval) * (1 - lWIval)));
-      }
-    else lOutPix = 0;
-
-    return lOutPix;
-  }
-
-protected:
-  VegetationFunctorType m_VegetationFunctor;
-  WaterFunctorType      m_WaterFunctor;
-
-};
-
-/** \class RadiometricNonWaterNonVegetationDetectionFunctor
- *  \brief This functor uses computes RadiometricNonWaterNonVegetationIndexFunctor
- *  \brief and appli a threshold to produce a binary image
- *
- * \ingroup OTBUrbanArea
- */
-template<class TInput, class TOutput>
-class RadiometricNonWaterNonVegetationDetectionFunctor
-{
-public:
-  typedef RadiometricNonWaterNonVegetationIndexFunctor<TInput> RadiometricNonWaterNonVegetationIndexFunctorType;
-
-  RadiometricNonWaterNonVegetationDetectionFunctor()
-  {
-    m_LowerThreshold = 0.0;
-    m_UpperThreshold = 1.0;
-  }
-
-  virtual ~RadiometricNonWaterNonVegetationDetectionFunctor() {}
-  inline TOutput operator ()(const TInput& inPix)
-  {
-    // The vegetation and water areas are put to 0.
-    double indexesVal = static_cast<double>(m_RadiometricNonWaterNonVegetationIndexFunctor(inPix));
-
-    if ((indexesVal > m_LowerThreshold) && (indexesVal <= m_UpperThreshold))
-      {
-      return static_cast<TOutput>(1);
-      }
-    else
-      {
-      return static_cast<TOutput>(0);
-      }
-  }
-
-  void SetLowerThreshold(double threshold){ m_LowerThreshold = threshold; }
-  void SetUpperThreshold(double threshold){ m_UpperThreshold = threshold; }
-  double GetLowerThreshold(){ return m_LowerThreshold; }
-  double GetUpperThreshold(){ return m_UpperThreshold; }
-
-  void SetRedIndex(int id){ m_RadiometricNonWaterNonVegetationIndexFunctor.SetRedIndex(id); }
-  void SetGreenIndex(int id){ m_RadiometricNonWaterNonVegetationIndexFunctor.SetGreenIndex(id); }
-  void SetNIRIndex(int id){ m_RadiometricNonWaterNonVegetationIndexFunctor.SetNIRIndex(id); }
-
-protected:
-  RadiometricNonWaterNonVegetationIndexFunctorType m_RadiometricNonWaterNonVegetationIndexFunctor;
-  double                                           m_LowerThreshold;
-  double                                           m_UpperThreshold;
-
-};
-
-} //end namespace functor
-
-/** \class UrbanAreaDetectionImageFilter
- *  \brief This filter uses associated functors to produce a binary or grayscale image
- *  \brief where the white areas represents the urban areas.
- *
- * \ingroup OTBUrbanArea
- */
-template <class TInputImage, class TOutputImage,
-    class TFunction = Functor::RadiometricNonWaterNonVegetationIndexFunctor<
-        typename TInputImage::PixelType,
-        typename TOutputImage::PixelType> >
-class ITK_EXPORT UrbanAreaDetectionImageFilter :
-  public itk::ImageToImageFilter<TInputImage, TOutputImage>
-{
-public:
-  /** Standard class typedefs. */
-  typedef UrbanAreaDetectionImageFilter                      Self;
-  typedef itk::ImageToImageFilter<TInputImage, TOutputImage> Superclass;
-  typedef itk::SmartPointer<Self>                            Pointer;
-  typedef itk::SmartPointer<const Self>                      ConstPointer;
-
-  /** Method for creation through the object factory. */
-  itkNewMacro(Self);
-
-  /** Run-time type information (and related methods). */
-  itkTypeMacro(UrbanAreaDetectionImageFilter, itk::ImageToImageFilter);
-
-  /** Images typedefs */
-  typedef TInputImage                         VectorImageType;
-  typedef TOutputImage                        OutputImageType;
-  typedef double                              SingleImagePixelType;
-  typedef Image<SingleImagePixelType, 2>      SingleImageType;
-  typedef SingleImageType::SizeType           SizeType;
-  typedef typename OutputImageType::PixelType OutputImagePixelType;
-  typedef typename VectorImageType::PixelType VectorImagePixelType;
-
-  /** Filters typedefs */
-  // NonVegetationNonWaterIndexFilter
-  typedef Functor::RadiometricNonWaterNonVegetationDetectionFunctor<VectorImagePixelType,
-      OutputImagePixelType> FunctorType;
-  typedef itk::UnaryFunctorImageFilter <VectorImageType, OutputImageType,
-      FunctorType>                           UrbanAreaExtractionFilterType;
-  typedef typename UrbanAreaExtractionFilterType::Pointer
-  UrbanAreaExtrationFilterPointerType;
-  // Erode/Dilate Filters
-  typedef typename itk::BinaryBallStructuringElement<OutputImagePixelType,
-      2>                 StructuringElementType;
-  typedef typename itk::BinaryErodeImageFilter<OutputImageType, OutputImageType,
-      StructuringElementType>  ErodeFilterType;
-  typedef typename itk::BinaryDilateImageFilter<OutputImageType, OutputImageType,
-      StructuringElementType> DilateFilterType;
-  // Intensity
-  typedef VectorImageToIntensityImageFilter<VectorImageType, SingleImageType> IntensityFilterType;
-  typedef typename IntensityFilterType::Pointer                               IntensityFilterPointerType;
-  // EdgeDensityFilter
-  typedef BinaryImageDensityFunction<SingleImageType>
-  CountFunctionType;
-  typedef itk::SobelEdgeDetectionImageFilter<SingleImageType, SingleImageType> SobelType;
-  typedef EdgeDetectorImageFilter<SingleImageType, SingleImageType,
-      SobelType>                           SobelDetectorType;
-  typedef EdgeDensityImageFilter<SingleImageType, SingleImageType, SobelDetectorType,
-      CountFunctionType> EdgeDensityFilterType;
-  typedef typename EdgeDensityFilterType::Pointer
-  EdgeDensityFilterPointerType;
-  // Threshold
-  typedef itk::BinaryThresholdImageFilter<SingleImageType, OutputImageType> ThresholdFilterType;
-  typedef typename ThresholdFilterType::Pointer                             ThresholdFilterPointerType;
-  // Multiply
-  typedef itk::MultiplyImageFilter<VectorImageType, OutputImageType, VectorImageType> MultiplyImageFilterType;
-  typedef typename MultiplyImageFilterType::Pointer                                   MultiplyImageFilterPointerType;
-
-  /** Get/Set indices */
-  void SetRedIndex(int id){ m_UrbanAreaExtractionFilter->GetFunctor().SetRedIndex(id); }
-  void SetGreenIndex(int id){ m_UrbanAreaExtractionFilter->GetFunctor().SetGreenIndex(id); }
-  void SetNIRIndex(int id){ m_UrbanAreaExtractionFilter->GetFunctor().SetNIRIndex(id); }
-  unsigned int GetRedIndex(){ return m_UrbanAreaExtractionFilter->GetFunctor().GetRedIndex(); }
-  unsigned int GetGreenIndex(){ return m_UrbanAreaExtractionFilter->GetFunctor().GetGreenIndex(); }
-  unsigned int GetNIRIndex(){ return m_UrbanAreaExtractionFilter->GetFunctor().GetNIRIndex(); }
-  /** Get/Set threshold values */
-  itkGetMacro(ThresholdValue, double);
-  itkSetMacro(ThresholdValue, double);
-  itkGetMacro(ThresholdDensity, double);
-  itkSetMacro(ThresholdDensity, double);
-  itkGetMacro(SobelLowerThreshold, double);
-  itkSetMacro(SobelLowerThreshold, double);
-  itkGetMacro(SobelUpperThreshold, double);
-  itkSetMacro(SobelUpperThreshold, double);
-
-  /** Methods */
-  void GenerateData() override;
-
-protected:
-  UrbanAreaDetectionImageFilter();
-  ~UrbanAreaDetectionImageFilter() override{}
-
-private:
-  UrbanAreaDetectionImageFilter(const Self &) = delete;
-  void operator =(const Self&) = delete;
-
-  /** Filters */
-  IntensityFilterPointerType          m_IntensityFilter;
-  EdgeDensityFilterType::Pointer      m_EdgeDensityFilter;
-  SobelDetectorType::Pointer          m_SobelFilter;
-  ThresholdFilterPointerType          m_Thresholder;
-  UrbanAreaExtrationFilterPointerType m_UrbanAreaExtractionFilter;
-  MultiplyImageFilterPointerType      m_MultiplyFilter;
-
-  /** Thresholds */
-  double m_ThresholdValue;
-  double m_ThresholdDensity;
-
-  double m_SobelLowerThreshold;
-  double m_SobelUpperThreshold;
-
-}; // end class RadiometricNonWaterNonVegetationDetectionImageFilter
-
-} // end namespace otb
-
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbUrbanAreaDetectionImageFilter.hxx"
-#endif
-
-#endif
diff --git a/Modules/Detection/UrbanArea/include/otbUrbanAreaDetectionImageFilter.hxx b/Modules/Detection/UrbanArea/include/otbUrbanAreaDetectionImageFilter.hxx
deleted file mode 100644
index f9cc85fd1fe317ae0122d7185a102200295b964c..0000000000000000000000000000000000000000
--- a/Modules/Detection/UrbanArea/include/otbUrbanAreaDetectionImageFilter.hxx
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbUrbanAreaDetectionImageFilter_hxx
-#define otbUrbanAreaDetectionImageFilter_hxx
-
-#include "otbUrbanAreaDetectionImageFilter.h"
-#include "itkProgressAccumulator.h"
-
-namespace otb
-{
-
-/**
- * Constructor
- */
-template <class TInputImage, class TOutputImage, class TFunction>
-UrbanAreaDetectionImageFilter<TInputImage, TOutputImage, TFunction>
-::UrbanAreaDetectionImageFilter()
-{
-
-  m_IntensityFilter = IntensityFilterType::New();
-  m_EdgeDensityFilter = EdgeDensityFilterType::New();
-  m_SobelFilter = SobelDetectorType::New();
-  m_Thresholder = ThresholdFilterType::New();
-  m_UrbanAreaExtractionFilter = UrbanAreaExtractionFilterType::New();
-
-  m_MultiplyFilter = MultiplyImageFilterType::New();
-
-  /** Init the Pipeline */
-  // EdgeDensity
-  m_EdgeDensityFilter->SetInput(m_IntensityFilter->GetOutput());
-  m_EdgeDensityFilter->SetDetector(m_SobelFilter);
-  // Threshold
-  m_Thresholder->SetInput(m_EdgeDensityFilter->GetOutput());
-  // Mask Image
-  m_MultiplyFilter->SetInput2(m_Thresholder->GetOutput());
-  // NonVegetationNonWaterIndex
-  m_UrbanAreaExtractionFilter->SetInput(m_MultiplyFilter->GetOutput());
-
-  m_ThresholdValue = 0.5;
-  m_ThresholdDensity = 0.1;
-  m_SobelLowerThreshold = -100.0;
-  m_SobelUpperThreshold = 200.0;
-}
-
-/**
- * Parameters the filters of the pipeline
- */
-template <class TInputImage, class TOutputImage, class TFunction>
-void
-UrbanAreaDetectionImageFilter<TInputImage, TOutputImage, TFunction>
-::GenerateData()
-{
-
-  // Intensity
-  m_IntensityFilter->SetInput(this->GetInput());
-
-  // Edge Density
-  m_SobelFilter->SetLowerThreshold(m_SobelLowerThreshold);
-  m_SobelFilter->SetUpperThreshold(m_SobelUpperThreshold);
-  SizeType lSize;
-  lSize[0] = static_cast<unsigned int>(10);
-  lSize[1] = static_cast<unsigned int>(10);
-  m_EdgeDensityFilter->SetNeighborhoodRadius(lSize);
-
-  // Threshold
-  m_Thresholder->SetInsideValue(0);
-  m_Thresholder->SetOutsideValue(1);
-  m_Thresholder->SetLowerThreshold(-10.);
-  m_Thresholder->SetUpperThreshold(m_ThresholdDensity);
-
-  // Apply the mask on the input image
-  m_MultiplyFilter->SetInput1(this->GetInput());
-
-  // Give a threshold to urbanAreaFilter
-  m_UrbanAreaExtractionFilter->GetFunctor().SetLowerThreshold(m_ThresholdValue);
-
-  // Progress accumulator
-  itk::ProgressAccumulator::Pointer progress = itk::ProgressAccumulator::New();
-  progress->SetMiniPipelineFilter(this);
-  progress->RegisterInternalFilter(m_UrbanAreaExtractionFilter, 0.5f);
-
-  /** GraftOutput */
-  m_UrbanAreaExtractionFilter->GraftOutput(this->GetOutput());
-  m_UrbanAreaExtractionFilter->Update();
-  this->GraftOutput(m_UrbanAreaExtractionFilter->GetOutput());
-
-}
-
-} // end namespace otb
-
-#endif
diff --git a/Modules/Detection/UrbanArea/otb-module.cmake b/Modules/Detection/UrbanArea/otb-module.cmake
deleted file mode 100644
index fdbd78381f39a9606ef054a34b63afe218380753..0000000000000000000000000000000000000000
--- a/Modules/Detection/UrbanArea/otb-module.cmake
+++ /dev/null
@@ -1,38 +0,0 @@
-#
-# Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
-#
-# This file is part of Orfeo Toolbox
-#
-#     https://www.orfeo-toolbox.org/
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-set(DOCUMENTATION "This module is concerned with the detection of urban area.")
-
-otb_module(OTBUrbanArea
-  DEPENDS
-    OTBStatistics
-    OTBITK
-    OTBImageBase
-    OTBEdge
-    OTBImageManipulation
-    OTBIndices
-
-  TEST_DEPENDS
-    OTBTestKernel
-    OTBImageIO
-
-  DESCRIPTION
-    "${DOCUMENTATION}"
-)
diff --git a/Modules/Detection/UrbanArea/test/CMakeLists.txt b/Modules/Detection/UrbanArea/test/CMakeLists.txt
deleted file mode 100644
index 48c2ed26443e5dd8564dfc84ecd9bceb0de148c8..0000000000000000000000000000000000000000
--- a/Modules/Detection/UrbanArea/test/CMakeLists.txt
+++ /dev/null
@@ -1,47 +0,0 @@
-#
-# Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
-#
-# This file is part of Orfeo Toolbox
-#
-#     https://www.orfeo-toolbox.org/
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-otb_module_test()
-
-set(OTBUrbanAreaTests
-otbUrbanAreaTestDriver.cxx
-otbUrbanAreaDetectionImageFilter.cxx
-)
-
-add_executable(otbUrbanAreaTestDriver ${OTBUrbanAreaTests})
-target_link_libraries(otbUrbanAreaTestDriver ${OTBUrbanArea-Test_LIBRARIES})
-otb_module_target_label(otbUrbanAreaTestDriver)
-
-# Tests Declaration
-
-
-otb_add_test(NAME raTvUrbanAreaDetectionImageFilter COMMAND otbUrbanAreaTestDriver
-  --compare-image ${EPSILON_8}   ${BASELINE}/raTvUrbanAreaDetection.png
-  ${TEMP}/raTvUrbanAreaDetection.png
-  otbUrbanAreaDetectionImageFilter
-  ${INPUTDATA}/qb_RoadExtract2sub200x200.tif
-  ${TEMP}/raTvUrbanAreaDetection.png
-  3    # red
-  2    # green
-  4    # nir
-  0.8  # threshold NDVI+NDWI
-  0.005 # threshold EdgeDensity
-  )
-
diff --git a/Modules/Detection/UrbanArea/test/otbUrbanAreaDetectionImageFilter.cxx b/Modules/Detection/UrbanArea/test/otbUrbanAreaDetectionImageFilter.cxx
deleted file mode 100644
index cac601a228731321ee4f17e2f45577f310261e5d..0000000000000000000000000000000000000000
--- a/Modules/Detection/UrbanArea/test/otbUrbanAreaDetectionImageFilter.cxx
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "itkMacro.h"
-
-#include "otbVectorImage.h"
-#include "otbImageFileReader.h"
-#include "otbImageFileWriter.h"
-#include "otbUrbanAreaDetectionImageFilter.h"
-
-int otbUrbanAreaDetectionImageFilter(int itkNotUsed(argc), char * argv[])
-{
-  const unsigned int Dimension = 2;
-  typedef double                                 PixelType;
-  typedef otb::VectorImage<PixelType, Dimension> InputVectorImageType;
-  typedef otb::Image<unsigned char, Dimension>   OutputImageType;
-
-  typedef otb::ImageFileReader<InputVectorImageType> ReaderType;
-
-  typedef otb::ImageFileWriter<OutputImageType> WriterType;
-
-  typedef otb::UrbanAreaDetectionImageFilter<InputVectorImageType,
-      OutputImageType> UrbanAreaDetectionFilterType;
-
-  // Instantiating objects
-  UrbanAreaDetectionFilterType::Pointer filter = UrbanAreaDetectionFilterType::New();
-  ReaderType::Pointer                   reader = ReaderType::New();
-  WriterType::Pointer                   writer = WriterType::New();
-
-  const char * inputFilename  = argv[1];
-  const char * outputFilename = argv[2];
-
-  reader->SetFileName(inputFilename);
-  writer->SetFileName(outputFilename);
-
-  filter->SetInput(reader->GetOutput());
-  filter->SetRedIndex(::atoi(argv[3]));
-  filter->SetGreenIndex(::atoi(argv[4]));
-  filter->SetNIRIndex(::atoi(argv[5]));
-  filter->SetThresholdValue(::atof(argv[6]));
-  filter->SetThresholdDensity(::atof(argv[7]));
-
-  writer->SetInput(filter->GetOutput());
-  writer->Update();
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/Detection/UrbanArea/test/otbUrbanAreaTestDriver.cxx b/Modules/Detection/UrbanArea/test/otbUrbanAreaTestDriver.cxx
deleted file mode 100644
index 2d035d4ce44de5ef7094525271d5d64fc6603460..0000000000000000000000000000000000000000
--- a/Modules/Detection/UrbanArea/test/otbUrbanAreaTestDriver.cxx
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "otbTestMain.h"
-
-void RegisterTests()
-{
-  REGISTER_TEST(otbUrbanAreaDetectionImageFilter);
-}
diff --git a/Modules/Feature/Edge/test/CMakeLists.txt b/Modules/Feature/Edge/test/CMakeLists.txt
index 687442cbfefdfdabffaa329e34f29029d1cb5a25..171dbfe4c705dfb54e101cc0c9697fcad5cb3fd7 100644
--- a/Modules/Feature/Edge/test/CMakeLists.txt
+++ b/Modules/Feature/Edge/test/CMakeLists.txt
@@ -120,7 +120,7 @@ otb_add_test(NAME bfTvPersistentVectorizationImageFilter COMMAND otbEdgeTestDriv
   ${BASELINE_FILES}/bfTvPersistentVectorizationImageFilterOutput.txt
   ${TEMP}/bfTvPersistentVectorizationImageFilterOutput.txt
   otbPersistentVectorizationFilter
-  ${INPUTDATA}/Seg1InputForRCC8Graph.tif
+  ${INPUTDATA}/labelImage_UnsignedChar.tif
   ${TEMP}/bfTvPersistentVectorizationImageFilterOutput.txt
   )
 
diff --git a/Modules/Feature/SeamCarving/CMakeLists.txt b/Modules/Feature/SeamCarving/CMakeLists.txt
deleted file mode 100644
index 48e2f8a8d73200ced3943178074537e8688b16ef..0000000000000000000000000000000000000000
--- a/Modules/Feature/SeamCarving/CMakeLists.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
-#
-# This file is part of Orfeo Toolbox
-#
-#     https://www.orfeo-toolbox.org/
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-project(OTBSeamCarving)
-otb_module_impl()
diff --git a/Modules/Feature/SeamCarving/include/otbAddCarvingPathFilter.h b/Modules/Feature/SeamCarving/include/otbAddCarvingPathFilter.h
deleted file mode 100644
index 7066a891f52719b0371d20eb5a13150e7a393def..0000000000000000000000000000000000000000
--- a/Modules/Feature/SeamCarving/include/otbAddCarvingPathFilter.h
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbAddCarvingPathFilter_h
-#define otbAddCarvingPathFilter_h
-
-#include "itkImageAndPathToImageFilter.h"
-#include "itkImageSliceIteratorWithIndex.h"
-
-namespace otb
-{
-/** \class AddCarvingPathFilter
- * \brief This class add pixels given in one path
- *
- * This filter add pixels found by the otb::ImageToCarvingPathFilter
- * thus increasing the image size.
-  * the image (if Direction is set to 0) or from left to right
-  * (if direction is set to 1). Pixel value is computed as the average
- * between the neighborhood pixels.
-  *
-  * This is one component necessary to apply the seam carving algorithm
-  * published by Shai Avidan, Ariel Shamir,
-  * Seam Carving for Content-Aware Image Resizing,
-  * ACM Transactions on Graphics, Volume 26, Number 3,
-  * SIGGRAPH 2007
-  *
-  * \par INPUTS
-   * The first input is an image, usually, the same one provided to the
- * otb::ImageToCarvingPathFilter
-   * The second input is a path, typically the output of otb::ImageToCarvingPathFilter.
-  *
-  * \par OUTPUTS
-  * The output is an image with a bigger size than the input image. There is one more
- * column if direction is 0 and one more line if direction is 1.
-  *
-  * \sa ImageToCarvingPathFilter
-  *
-  *
-  * \ingroup PathFilters
-  * \ingroup ImageFilters
- *
- * \ingroup OTBSeamCarving
-  */
-
-template <class TInputImage, class TInputPath, class TOutputImage>
-class ITK_EXPORT AddCarvingPathFilter : public itk::ImageAndPathToImageFilter<TInputImage, TInputPath, TOutputImage>
-{
-public:
-  /** Standard class typedefs. */
-  typedef AddCarvingPathFilter                                                  Self;
-  typedef itk::ImageAndPathToImageFilter<TInputImage, TInputPath, TOutputImage> Superclass;
-  typedef itk::SmartPointer<Self>                                               Pointer;
-  typedef itk::SmartPointer<const Self>                                         ConstPointer;
-
-  /** Method for creation through the object factory. */
-  itkNewMacro(Self);
-
-  /** Run-time type information (and related methods). */
-  itkTypeMacro(AddCarvingPathFilter, itk::ImageAndPathToImageFilter);
-
-  /** Some convenient typedefs. */
-  typedef          TInputImage                   InputImageType;
-  typedef typename InputImageType::Pointer       InputImagePointer;
-  typedef typename InputImageType::ConstPointer  InputImageConstPointer;
-  typedef typename InputImageType::RegionType    InputImageRegionType;
-  typedef typename InputImageType::PixelType     InputImagePixelType;
-  typedef          TInputPath                    InputPathType;
-  typedef typename InputPathType::Pointer        InputPathPointer;
-  typedef typename InputPathType::ConstPointer   InputPathConstPointer;
-  typedef typename InputPathType::InputType      InputPathInputType;
-  typedef typename InputPathType::OutputType     InputPathOutputType;
-  typedef typename InputPathType::IndexType      InputPathIndexType;
-  typedef typename InputPathType::OffsetType     InputPathOffsetType;
-  typedef          TOutputImage                  OutputImageType;
-  typedef typename OutputImageType::Pointer      OutputImagePointer;
-  typedef typename OutputImageType::ConstPointer OutputImageConstPointer;
-
-  typedef typename OutputImageType::RegionType OutputImageRegionType;
-  typedef typename OutputImageType::PixelType  OutputImagePixelType;
-  typedef typename OutputImageType::ValueType  OutputImageValueType;
-
-//   typedef typename itk::ImageRegionConstIterator<InputImageType> InputIteratorType;
-//   typedef typename itk::ImageRegionIterator<OutputImageType> OutputIteratorType;
-  typedef typename itk::ImageSliceConstIteratorWithIndex<InputImageType> InputIteratorType;
-  typedef typename itk::ImageSliceIteratorWithIndex<OutputImageType>     OutputIteratorType;
-
-  /** Set/Get the path input of this process object.
-    Note: these methods are adding to get the proper name */
-  void SetInputPath(const TInputPath * path);
-
-  const TInputPath * GetInputPath(void);
-
-  itkSetMacro(Value, OutputImagePixelType);
-  itkGetConstReferenceMacro(Value, OutputImagePixelType);
-
-  /** Set and Get direction value */
-  itkSetMacro(Direction, unsigned int);
-  itkGetConstMacro(Direction, unsigned int);
-
-  void GenerateOutputInformation() override;
-  void GenerateInputRequestedRegion() override;
-
-protected:
-  AddCarvingPathFilter();
-  ~AddCarvingPathFilter() override {}
-
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-  void GenerateData() override;
-
-private:
-  AddCarvingPathFilter(const Self &) = delete;
-  void operator =(const Self&) = delete;
-
-  OutputImagePixelType m_Value;
-  unsigned int         m_Direction;
-};
-
-} // end namespace otb
-
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbAddCarvingPathFilter.hxx"
-#endif
-
-#endif
diff --git a/Modules/Feature/SeamCarving/include/otbAddCarvingPathFilter.hxx b/Modules/Feature/SeamCarving/include/otbAddCarvingPathFilter.hxx
deleted file mode 100644
index 5864bc0917135aa882a10265d23c3d21ed8a57cf..0000000000000000000000000000000000000000
--- a/Modules/Feature/SeamCarving/include/otbAddCarvingPathFilter.hxx
+++ /dev/null
@@ -1,278 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#ifndef otbAddCarvingPathFilter_hxx
-#define otbAddCarvingPathFilter_hxx
-
-#include "otbAddCarvingPathFilter.h"
-#include "itkMacro.h"
-
-namespace otb
-{
-/**
- * Constructor
- */
-template <class TInputImage, class TInputPath, class TOutputImage>
-AddCarvingPathFilter<TInputImage, TInputPath, TOutputImage>
-::AddCarvingPathFilter()
-{
-  m_Value = static_cast<OutputImagePixelType>(255.0);
-  m_Direction = 0;
-}
-/**
- * Main computation method.
- */
-template <class TInputImage, class TInputPath, class TOutputImage>
-inline void
-AddCarvingPathFilter<TInputImage, TInputPath, TOutputImage>
-::SetInputPath(const TInputPath * path)
-{
-  this->SetPathInput(path);
-}
-template <class TInputImage, class TInputPath, class TOutputImage>
-const TInputPath *
-AddCarvingPathFilter<TInputImage, TInputPath, TOutputImage>
-::GetInputPath(void)
-{
-  return this->GetPathInput();
-}
-
-template <class TInputImage, class TInputPath, class TOutputImage>
-void
-AddCarvingPathFilter<TInputImage, TInputPath, TOutputImage>
-::GenerateData(void)
-{
-
-  const InputImageType * inputImage = this->GetImageInput();
-  const InputPathType *  inputPath = this->GetPathInput();
-  OutputImageType *      outputImage = this->GetOutput();
-
-  outputImage->SetBufferedRegion(outputImage->GetRequestedRegion());
-  outputImage->Allocate();
-
-  InputIteratorType inputIterator(inputImage,
-                                  inputImage->GetLargestPossibleRegion());
-  OutputIteratorType outputIterator(outputImage,
-                                    outputImage->GetLargestPossibleRegion());
-
-  unsigned int dir0;
-  unsigned int dir1;
-
-  if (m_Direction == 0)
-    {
-    dir0 = 0;
-    dir1 = 1;
-    }
-  else
-    {
-    dir0 = 1;
-    dir1 = 0;
-    }
-
-  inputIterator.SetFirstDirection(dir0);
-  inputIterator.SetSecondDirection(dir1);
-  inputIterator.GoToBegin();
-  outputIterator.SetFirstDirection(dir0);
-  outputIterator.SetSecondDirection(dir1);
-  outputIterator.GoToBegin();
-
-  int                                                   line = -1;
-  typename InputImageType::IndexType                    index;
-  typename InputPathType::VertexListType::ConstPointer  vertexList = inputPath->GetVertexList();
-  typename InputPathType::VertexListType::ConstIterator pathIterator;
-  typename InputImageType::IndexType                    indexToAdd;
-  typedef typename InputImageType::IndexType::IndexValueType IndexValueType;
-
-  typename InputImageType::SizeType inputSize;
-  inputSize = inputImage->GetLargestPossibleRegion().GetSize();
-
-  //go to the end of the path
-  pathIterator = vertexList->Begin();
-  while (pathIterator != vertexList->End())
-    {
-    ++pathIterator;
-    }
-  --pathIterator;
-
-  while (!outputIterator.IsAtEnd())
-    {
-    while (!outputIterator.IsAtEndOfSlice())
-      {
-      bool flag = false;
-      while (!outputIterator.IsAtEndOfLine())
-        {
-        index = outputIterator.GetIndex();
-
-        if (index[dir1] != line)
-          {
-          line = index[dir1];
-          typename InputImageType::PointType tmpIndex;
-          inputImage->TransformContinuousIndexToPhysicalPoint(pathIterator.Value(), tmpIndex);
-          inputImage->TransformPhysicalPointToIndex(tmpIndex, indexToAdd);
-          if (pathIterator != vertexList->Begin())
-            {
-            --pathIterator;
-            }
-          if (index[dir1] != indexToAdd[dir1])
-            {
-            itkExceptionMacro(<< "Error : " << index[dir1] << " , " << indexToAdd[dir1]);
-            }
-          }
-
-        if ((flag == true)
-            || ((index[dir0] != indexToAdd[dir0])
-                && (index[dir0] < static_cast<IndexValueType>(inputSize[dir0]))))
-          {
-          outputIterator.Set(inputIterator.Get());
-          ++inputIterator;
-          }
-        else
-          {
-          flag = true;
-          OutputImagePixelType newValue = itk::NumericTraits<OutputImagePixelType>::Zero;
-          int                  n = 0;
-          InputIteratorType    tmpIterator = inputIterator;
-          --tmpIterator;
-          if (!tmpIterator.IsAtReverseEndOfLine())
-            {
-            newValue = tmpIterator.Get();
-            ++n;
-            }
-          tmpIterator = inputIterator;
-          ++tmpIterator;
-          if (!tmpIterator.IsAtEndOfLine())
-            {
-            newValue += tmpIterator.Get();
-            ++n;
-            }
-          assert(n != 0);
-          newValue /= n;
-          outputIterator.Set(newValue);
-          }
-        ++outputIterator;
-
-        }
-
-      if ((outputIterator.GetIndex())[dir0] != (inputIterator.GetIndex())[dir0] + 1)
-        {
-        itkExceptionMacro(<< "Error 2: " << (outputIterator.GetIndex())[dir0] <<  " , "
-                          << (inputIterator.GetIndex())[dir0]);
-        }
-      inputIterator.NextLine();
-      outputIterator.NextLine();
-      }
-    inputIterator.NextSlice();
-    outputIterator.NextSlice();
-    }
-
-}
-
-/**
- * Printself Method
- */
-template <class TInputImage, class TInputPath, class TOutputImage>
-void
-AddCarvingPathFilter<TInputImage, TInputPath, TOutputImage>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-  os << indent << "Path Value: " << m_Value << std::endl;
-}
-
-template <class TInputImage, class TInputPath, class TOutputImage>
-void
-AddCarvingPathFilter<TInputImage, TInputPath, TOutputImage>
-::GenerateOutputInformation()
-{
-  // call the superclass' implementation of this method
-  Superclass::GenerateOutputInformation();
-
-  // get pointers to the input and output
-  typename Superclass::InputImageConstPointer inputPtr = this->GetInput();
-  typename Superclass::OutputImagePointer     outputPtr = this->GetOutput();
-
-  unsigned int dir0;
-  //unsigned int dir1;
-
-  if (m_Direction == 0)
-    {
-    dir0 = 0;
-    //dir1 = 1;
-    }
-  else
-    {
-    dir0 = 1;
-    //dir1 = 0;
-    }
-
-  // we need to compute the output spacing, the output image size, and the
-  // output image start index
-  const typename TInputImage::SpacingType&
-                                        inputSpacing = inputPtr->GetSignedSpacing();
-  const typename TInputImage::SizeType& inputSize
-    = inputPtr->GetLargestPossibleRegion().GetSize();
-  const typename TInputImage::IndexType& inputStartIndex
-    = inputPtr->GetLargestPossibleRegion().GetIndex();
-
-  typename TOutputImage::SpacingType outputSpacing;
-  typename TOutputImage::SizeType    outputSize;
-  typename TOutputImage::IndexType   outputStartIndex;
-
-  for (unsigned int i = 0; i < TOutputImage::ImageDimension; ++i)
-    {
-    outputSpacing[i] = inputSpacing[i];
-    outputSize[i] = (unsigned int) (inputSize[i]);
-    outputStartIndex[i] = inputStartIndex[i];
-    }
-  // we remove one column of the image
-  outputSize[dir0] = inputSize[dir0] + 1;
-
-  outputPtr->SetSignedSpacing(outputSpacing);
-
-  typename TOutputImage::RegionType outputLargestPossibleRegion;
-  outputLargestPossibleRegion.SetSize(outputSize);
-  outputLargestPossibleRegion.SetIndex(outputStartIndex);
-
-  outputPtr->SetLargestPossibleRegion(outputLargestPossibleRegion);
-}
-
-template <class TInputImage, class TInputPath, class TOutputImage>
-void
-AddCarvingPathFilter<TInputImage, TInputPath, TOutputImage>
-::GenerateInputRequestedRegion()
-{
-  // call the superclass' implementation of this method
-  Superclass::GenerateInputRequestedRegion();
-  // get pointers to the input and output
-  InputImagePointer inputPtr =
-    const_cast<InputImageType *>(this->GetInput());
-  if (!inputPtr)
-    {
-    itkExceptionMacro(<< "Input has not been set.");
-    }
-
-  inputPtr->SetRequestedRegion(inputPtr->GetLargestPossibleRegion());
-
-}
-
-} // end namespace otb
-
-#endif
diff --git a/Modules/Feature/SeamCarving/include/otbImageToCarvingPathFilter.h b/Modules/Feature/SeamCarving/include/otbImageToCarvingPathFilter.h
deleted file mode 100644
index ad9142b72266dec5ef435f97e972d8adb24f574e..0000000000000000000000000000000000000000
--- a/Modules/Feature/SeamCarving/include/otbImageToCarvingPathFilter.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbImageToCarvingPathFilter_h
-#define otbImageToCarvingPathFilter_h
-
-#include "otbImageToPathFilter.h"
-#include "itkImageSliceConstIteratorWithIndex.h"
-
-namespace otb
-{
-/**
- * \class ImageToCarvingPathFilter
- * \brief This filter find the minimum energy path of an image.
- *
- * This filter find the minimum energy path from top to bottom of
- * the image (if Direction is set to 0) or from left to right
- * (if direction is set to 1).
- *
- * This is one component necessary to apply the seam carving algorithm
- * published by Shai Avidan, Ariel Shamir,
- * Seam Carving for Content-Aware Image Resizing,
- * ACM Transactions on Graphics, Volume 26, Number 3,
- * SIGGRAPH 2007
- *
- * \par INPUTS
- * The input is an image, typically the output of a gradient filter.
- *
- * \par OUTPUTS
- * The output is
- * a polyline parametric path comprising one and only one pixel per line
- * (resp. column) if direction is 0 (resp. 1).
- *
- * \sa RemoveCarvingPathFilter
- *
- * \ingroup PathFilters
- * \ingroup ImageFilters
- *
- * \ingroup OTBSeamCarving
- */
-
-template <class TInputImage, class TOutputPath>
-class ITK_EXPORT ImageToCarvingPathFilter
-  : public ImageToPathFilter<TInputImage, TOutputPath>
-{
-public:
-  /** standards typedefs */
-  typedef ImageToCarvingPathFilter                    Self;
-  typedef ImageToPathFilter<TInputImage, TOutputPath> Superclass;
-  typedef itk::SmartPointer<Self>                     Pointer;
-  typedef itk::SmartPointer<const Self>               ConstPointer;
-
-  /// Creation through the object factory
-  itkNewMacro(Self);
-  /// Runtime information
-  itkTypeMacro(ImageToCarvingPathFilter, ImageToPathFilter);
-
-  /// Template parameters typedef
-  typedef typename Superclass::InputImageType        InputImageType;
-  typedef typename Superclass::InputImagePointerType InputImagePointerType;
-  typedef typename Superclass::OutputPathType        OutputPathType;
-  typedef typename Superclass::OutputPathPointerType OutputPathPointerType;
-
-  typedef typename InputImageType::PixelType PixelType;
-
-  /** Set and Get foreground value */
-  itkSetMacro(ForegroundValue, PixelType);
-  itkGetConstMacro(ForegroundValue, PixelType);
-
-  /** Set and Get direction value */
-  itkSetMacro(Direction, unsigned int);
-  itkGetConstMacro(Direction, unsigned int);
-
-  /** Get EnergyPerPix value */
-  itkGetConstMacro(EnergyPerPix, double);
-
-protected:
-  ImageToCarvingPathFilter();
-  ~ImageToCarvingPathFilter() override {}
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-  void GenerateOutputInformation() override {}  //does nothing
-  void GenerateData() override;
-
-private:
-  ImageToCarvingPathFilter(const Self &) = delete;
-  void operator =(const Self&) = delete;
-
-  PixelType    m_ForegroundValue;
-  unsigned int m_Direction;
-  double       m_EnergyPerPix;
-};
-
-} // end namespace otb
-
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbImageToCarvingPathFilter.hxx"
-#endif
-
-#endif
diff --git a/Modules/Feature/SeamCarving/include/otbImageToCarvingPathFilter.hxx b/Modules/Feature/SeamCarving/include/otbImageToCarvingPathFilter.hxx
deleted file mode 100644
index 11123630270d2e508b792d13397913d0b4c84bc3..0000000000000000000000000000000000000000
--- a/Modules/Feature/SeamCarving/include/otbImageToCarvingPathFilter.hxx
+++ /dev/null
@@ -1,262 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbImageToCarvingPathFilter_hxx
-#define otbImageToCarvingPathFilter_hxx
-
-#include "otbImageToCarvingPathFilter.h"
-#include "otbMacro.h"
-#include "itkConstantPadImageFilter.h"
-#include "itkConstShapedNeighborhoodIterator.h"
-#include "itkImageRegionConstIterator.h"
-#include "itkNumericTraits.h"
-#include "itkImageLinearConstIteratorWithIndex.h"
-
-namespace otb
-{
-/*
- * Constructor.
- */
-template <class TInputImage, class TOutputPath>
-ImageToCarvingPathFilter<TInputImage, TOutputPath>
-::ImageToCarvingPathFilter()
-{
-  m_ForegroundValue = PixelType(255);
-  m_Direction = 0;
-  m_EnergyPerPix = 0.0;
-}
-
-/**
- * Main computation method.
- */
-template <class TInputImage, class TOutputPath>
-void
-ImageToCarvingPathFilter<TInputImage, TOutputPath>
-::GenerateData(void)
-{
-
-  const InputImageType * inputImage = this->GetInput();
-  OutputPathType *       outputPath       = this->GetOutput();
-
-  typedef itk::ImageSliceConstIteratorWithIndex
-  <InputImageType> IteratorType;
-  typedef itk::NeighborhoodIterator<InputImageType>
-  NeighborhoodIteratorType;
-
-  IteratorType it(inputImage,
-                  inputImage->GetLargestPossibleRegion());
-  it.GoToBegin();
-
-  PixelType maxValue = itk::NumericTraits<PixelType>::max();
-
-  typename InputImageType::Pointer energyImage = InputImageType::New();
-  energyImage->SetRegions(inputImage->GetLargestPossibleRegion());
-  energyImage->Allocate();
-
-  typename NeighborhoodIteratorType::RadiusType radius;
-  radius.Fill(1);
-  NeighborhoodIteratorType neighIt(radius, energyImage,
-                                   energyImage->GetLargestPossibleRegion());
-  neighIt.GoToBegin();
-
-  unsigned int dir0;
-  unsigned int dir1;
-
-  typename IteratorType::OffsetType UP0;
-  typename IteratorType::OffsetType UP1;
-  typename IteratorType::OffsetType UP2;
-  typename IteratorType::OffsetType NEXT;
-
-  const typename IteratorType::OffsetType LEFT   = {{-1, 0}};
-  const typename IteratorType::OffsetType RIGHT  = {{1, 0}};
-  const typename IteratorType::OffsetType UP     = {{0, -1}};
-  const typename IteratorType::OffsetType DOWN   = {{0, 1}};
-  const typename IteratorType::OffsetType LEFTUP   = {{-1, -1}};
-//    const typename IteratorType::OffsetType RIGHTDOWN ={{1, 1}};
-  const typename IteratorType::OffsetType RIGHTUP  = {{1, -1}};
-  const typename IteratorType::OffsetType LEFTDOWN = {{-1, 1}};
-//    const typename IteratorType::OffsetType CENTER ={{0, 0}};
-
-  if (m_Direction == 0)
-    {
-    dir0 = 0;
-    dir1 = 1;
-    UP0 = LEFTUP;
-    UP1 = UP;
-    UP2 = RIGHTUP;
-    NEXT = DOWN;
-    }
-  else
-    {
-    dir0 = 1;
-    dir1 = 0;
-    UP0 = LEFTUP;
-    UP1 = LEFT;
-    UP2 = LEFTDOWN;
-    NEXT = RIGHT;
-    }
-
-  /** Compute the energy image top-down or left-right
-   * with cumulative energy (dynamic programming first step) */
-  it.SetFirstDirection(dir0);
-  it.SetSecondDirection(dir1);
-  it.GoToBegin();
-  neighIt.GoToBegin();
-  while (!it.IsAtEnd())
-    {
-    while (!it.IsAtEndOfSlice())
-      {
-      while (!it.IsAtEndOfLine())
-        {
-        neighIt.SetLocation(it.GetIndex()); //TODO bad for performances... find a better option
-        // this is really about 20% of total processing time !!!
-
-        PixelType min = maxValue;
-        bool      isInside = false;
-        bool      flag = false;
-        if (neighIt.GetPixel(UP0, isInside) < min)
-          {
-          if (isInside)
-            {
-            min = neighIt.GetPixel(UP0);
-            flag = true;
-            }
-          }
-        if (neighIt.GetPixel(UP1, isInside) < min)
-          {
-          if (isInside)
-            {
-            min = neighIt.GetPixel(UP1);
-            flag = true;
-            }
-          }
-        if (neighIt.GetPixel(UP2, isInside) < min)
-          {
-          if (isInside)
-            {
-            min = neighIt.GetPixel(UP2);
-            flag = true;
-            }
-          }
-
-        if (!flag) //no previous value
-          {
-          min = 0;
-          }
-
-        PixelType newValue = it.Get() + min;
-        neighIt.SetCenterPixel(newValue);
-
-        ++it;
-
-        }
-      it.NextLine();
-      }
-    it.NextSlice();
-    }
-
-  /** Follow the minima bottom-up or right-left
-   * (dynamic programming second step) */
-
-  //find the starting point to follow on the last line
-  typedef itk::ImageLinearConstIteratorWithIndex<InputImageType>
-  LinearIteratorType;
-
-  LinearIteratorType LinIt(energyImage,
-                           energyImage->GetLargestPossibleRegion());
-  LinIt.SetDirection(dir0);
-  LinIt.GoToReverseBegin();
-  typedef typename InputImageType::IndexType IndexType;
-
-  PixelType min = maxValue;
-  IndexType indexToAdd;
-  while (!LinIt.IsAtReverseEndOfLine())
-    {
-    if (LinIt.Get() < min)
-      {
-      min = LinIt.Get();
-      indexToAdd = LinIt.GetIndex();
-      }
-    --LinIt;
-    }
-  outputPath->AddVertex(indexToAdd);
-  m_EnergyPerPix = ((double) min) / (inputImage->GetLargestPossibleRegion().GetSize())[dir1];
-
-  //follow the min
-  neighIt.SetLocation(indexToAdd);
-  bool flag = true;
-  while (flag)
-    {
-    flag = false;
-    PixelType minValue = maxValue;
-    IndexType indexToAdd2;
-    bool      isInside = false;
-
-    if (neighIt.GetPixel(UP0, isInside) < min)
-      {
-      if (isInside)
-        {
-        minValue = neighIt.GetPixel(UP0);
-        indexToAdd2 = neighIt.GetIndex(UP0);
-        flag = true;
-        }
-      }
-
-    if (neighIt.GetPixel(UP1, isInside) < minValue)
-      {
-      if (isInside)
-        {
-        minValue = neighIt.GetPixel(UP1);
-        indexToAdd2 = neighIt.GetIndex(UP1);
-        flag = true;
-        }
-      }
-
-    if (neighIt.GetPixel(UP2, isInside) < minValue)
-      {
-      if (isInside)
-        {
-        minValue = neighIt.GetPixel(UP2);
-        indexToAdd2 = neighIt.GetIndex(UP2);
-        flag = true;
-        }
-      }
-
-    if (flag)
-      {
-      outputPath->AddVertex(indexToAdd2);
-      neighIt.SetLocation(indexToAdd2);
-      }
-
-    }
-
-}
-
-template <class TInputImage, class TOutputPath>
-void
-ImageToCarvingPathFilter<TInputImage, TOutputPath>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-  os << "Foreground value : " << m_ForegroundValue << std::endl;
-}
-} // end namespace otb
-
-#endif
diff --git a/Modules/Feature/SeamCarving/include/otbRemoveCarvingPathFilter.h b/Modules/Feature/SeamCarving/include/otbRemoveCarvingPathFilter.h
deleted file mode 100644
index c503944f713ee8a93ea76f5eb209557ee829ea45..0000000000000000000000000000000000000000
--- a/Modules/Feature/SeamCarving/include/otbRemoveCarvingPathFilter.h
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbRemoveCarvingPathFilter_h
-#define otbRemoveCarvingPathFilter_h
-
-#include "itkImageAndPathToImageFilter.h"
-#include "itkImageSliceIteratorWithIndex.h"
-
-namespace otb
-{
-/** \class RemoveCarvingPathFilter
- * \brief This class remove pixels given in one path
- *
- *
- *
- * This filter remove pixels found by the otb::ImageToCarvingPathFilter
- * thus decreasing the image size.
-  * the image (if Direction is set to 0) or from left to right
-  * (if direction is set to 1).
-  *
-  * This is one component necessary to apply the seam carving algorithm
-  * published by Shai Avidan, Ariel Shamir,
-  * Seam Carving for Content-Aware Image Resizing,
-  * ACM Transactions on Graphics, Volume 26, Number 3,
-  * SIGGRAPH 2007
-  *
-  * \par INPUTS
-   * The first input is an image, usually, the same one provided to the
- * otb::ImageToCarvingPathFilter
-   * The second input is a path, typically the output of otb::ImageToCarvingPathFilter.
-  *
-  * \par OUTPUTS
-  * The output is an image with a smaller size than the input image. There is one less
- * column if direction is 0 and one less line if direction is 1.
-  *
-  * \sa ImageToCarvingPathFilter
-  *
-  *
-  * \ingroup PathFilters
-  * \ingroup ImageFilters
- *
- * \ingroup OTBSeamCarving
-  */
-
-template <class TInputImage, class TInputPath, class TOutputImage>
-class ITK_EXPORT RemoveCarvingPathFilter : public itk::ImageAndPathToImageFilter<TInputImage, TInputPath, TOutputImage>
-{
-public:
-  /** Standard class typedefs. */
-  typedef RemoveCarvingPathFilter                                               Self;
-  typedef itk::ImageAndPathToImageFilter<TInputImage, TInputPath, TOutputImage> Superclass;
-  typedef itk::SmartPointer<Self>                                               Pointer;
-  typedef itk::SmartPointer<const Self>                                         ConstPointer;
-
-  /** Method for creation through the object factory. */
-  itkNewMacro(Self);
-
-  /** Run-time type information (and related methods). */
-  itkTypeMacro(RemoveCarvingPathFilter, itk::ImageAndPathToImageFilter);
-
-  /** Some convenient typedefs. */
-  typedef          TInputImage                   InputImageType;
-  typedef typename InputImageType::Pointer       InputImagePointer;
-  typedef typename InputImageType::ConstPointer  InputImageConstPointer;
-  typedef typename InputImageType::RegionType    InputImageRegionType;
-  typedef typename InputImageType::PixelType     InputImagePixelType;
-  typedef          TInputPath                    InputPathType;
-  typedef typename InputPathType::Pointer        InputPathPointer;
-  typedef typename InputPathType::ConstPointer   InputPathConstPointer;
-  typedef typename InputPathType::InputType      InputPathInputType;
-  typedef typename InputPathType::OutputType     InputPathOutputType;
-  typedef typename InputPathType::IndexType      InputPathIndexType;
-  typedef typename InputPathType::OffsetType     InputPathOffsetType;
-  typedef          TOutputImage                  OutputImageType;
-  typedef typename OutputImageType::Pointer      OutputImagePointer;
-  typedef typename OutputImageType::ConstPointer OutputImageConstPointer;
-
-  typedef typename OutputImageType::RegionType OutputImageRegionType;
-  typedef typename OutputImageType::PixelType  OutputImagePixelType;
-  typedef typename OutputImageType::ValueType  OutputImageValueType;
-
-//   typedef typename itk::ImageRegionConstIterator<InputImageType> InputIteratorType;
-//   typedef typename itk::ImageRegionIterator<OutputImageType> OutputIteratorType;
-  typedef typename itk::ImageSliceConstIteratorWithIndex<InputImageType> InputIteratorType;
-  typedef typename itk::ImageSliceIteratorWithIndex<OutputImageType>     OutputIteratorType;
-
-  /** Set/Get the path input of this process object.
-      Note: these methods are adding to get the proper name */
-  void SetInputPath(const TInputPath * path);
-
-  const TInputPath * GetInputPath(void);
-
-  itkSetMacro(Value, OutputImagePixelType);
-  itkGetConstReferenceMacro(Value, OutputImagePixelType);
-
-  /** Set and Get direction value */
-  itkSetMacro(Direction, unsigned int);
-  itkGetConstMacro(Direction, unsigned int);
-
-  void GenerateOutputInformation() override;
-
-protected:
-  RemoveCarvingPathFilter();
-  ~RemoveCarvingPathFilter() override {}
-
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-  void GenerateData() override;
-
-private:
-  RemoveCarvingPathFilter(const Self &) = delete;
-  void operator =(const Self&) = delete;
-
-  OutputImagePixelType m_Value;
-  unsigned int         m_Direction;
-};
-
-} // end namespace otb
-
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbRemoveCarvingPathFilter.hxx"
-#endif
-
-#endif
diff --git a/Modules/Feature/SeamCarving/include/otbRemoveCarvingPathFilter.hxx b/Modules/Feature/SeamCarving/include/otbRemoveCarvingPathFilter.hxx
deleted file mode 100644
index 46640119ef2d1a78837cc0d9ab133ba0fb6a137e..0000000000000000000000000000000000000000
--- a/Modules/Feature/SeamCarving/include/otbRemoveCarvingPathFilter.hxx
+++ /dev/null
@@ -1,224 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#ifndef otbRemoveCarvingPathFilter_hxx
-#define otbRemoveCarvingPathFilter_hxx
-
-#include "otbRemoveCarvingPathFilter.h"
-#include "itkMacro.h"
-
-namespace otb
-{
-/**
- * Constructor
- */
-template <class TInputImage, class TInputPath, class TOutputImage>
-RemoveCarvingPathFilter<TInputImage, TInputPath, TOutputImage>
-::RemoveCarvingPathFilter()
-{
-  m_Value = static_cast<OutputImagePixelType>(255.0);
-  m_Direction = 0;
-}
-
-template <class TInputImage, class TInputPath, class TOutputImage>
-inline void
-RemoveCarvingPathFilter<TInputImage, TInputPath, TOutputImage>
-::SetInputPath(const TInputPath * path)
-{
-  this->SetPathInput(path);
-}
-
-template <class TInputImage, class TInputPath, class TOutputImage>
-const TInputPath *
-RemoveCarvingPathFilter<TInputImage, TInputPath, TOutputImage>
-::GetInputPath(void)
-{
-  return this->GetPathInput();
-}
-
-/**
- * Main computation method.
- */
-template <class TInputImage, class TInputPath, class TOutputImage>
-void
-RemoveCarvingPathFilter<TInputImage, TInputPath, TOutputImage>
-::GenerateData(void)
-{
-
-  const InputImageType * inputImage = this->GetImageInput();
-  const InputPathType *  inputPath = this->GetPathInput();
-  OutputImageType *      outputImage = this->GetOutput();
-
-  outputImage->SetBufferedRegion(outputImage->GetRequestedRegion());
-  outputImage->Allocate();
-
-  InputIteratorType inputIterator(inputImage,
-                                  inputImage->GetLargestPossibleRegion());
-  OutputIteratorType outputIterator(outputImage,
-                                    outputImage->GetLargestPossibleRegion());
-
-  unsigned int dir0;
-  unsigned int dir1;
-
-  if (m_Direction == 0)
-    {
-    dir0 = 0;
-    dir1 = 1;
-    }
-  else
-    {
-    dir0 = 1;
-    dir1 = 0;
-    }
-
-  inputIterator.SetFirstDirection(dir0);
-  inputIterator.SetSecondDirection(dir1);
-  inputIterator.GoToBegin();
-  outputIterator.SetFirstDirection(dir0);
-  outputIterator.SetSecondDirection(dir1);
-  outputIterator.GoToBegin();
-
-  int                                                   line = -1;
-  typename InputImageType::IndexType                    index;
-  typename InputPathType::VertexListType::ConstPointer  vertexList = inputPath->GetVertexList();
-  typename InputPathType::VertexListType::ConstIterator pathIterator;
-  typename InputImageType::IndexType                    indexToRemove;
-
-  //go to the end of the path
-  pathIterator = vertexList->Begin();
-  while (pathIterator != vertexList->End())
-    {
-    ++pathIterator;
-    }
-  --pathIterator;
-
-  while (!inputIterator.IsAtEnd())
-    {
-    while (!inputIterator.IsAtEndOfSlice())
-      {
-      while (!inputIterator.IsAtEndOfLine())
-        {
-        index = inputIterator.GetIndex();
-
-        if (index[dir1] != line)
-          {
-          line = index[dir1];
-          typename InputImageType::PointType tmpIndex;
-          inputImage->TransformContinuousIndexToPhysicalPoint(pathIterator.Value(), tmpIndex);
-          inputImage->TransformPhysicalPointToIndex(tmpIndex, indexToRemove);
-
-          if (pathIterator != vertexList->Begin())
-            {
-            --pathIterator;
-            }
-          if (index[dir1] != indexToRemove[dir1])
-            {
-            itkExceptionMacro(<< "Error!!!");
-            }
-          }
-        if (index[dir0] != indexToRemove[dir0])
-          {
-          outputIterator.Set(inputIterator.Get());
-          ++outputIterator;
-          }
-        ++inputIterator;
-        }
-      inputIterator.NextLine();
-      outputIterator.NextLine();
-      }
-    inputIterator.NextSlice();
-    outputIterator.NextSlice();
-    }
-
-}
-
-/**
- * Printself Method
- */
-template <class TInputImage, class TInputPath, class TOutputImage>
-void
-RemoveCarvingPathFilter<TInputImage, TInputPath, TOutputImage>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-  os << indent << "Path Value: " << m_Value << std::endl;
-}
-
-template <class TInputImage, class TInputPath, class TOutputImage>
-void
-RemoveCarvingPathFilter<TInputImage, TInputPath, TOutputImage>
-::GenerateOutputInformation()
-{
-  // call the superclass' implementation of this method
-  Superclass::GenerateOutputInformation();
-
-  // get pointers to the input and output
-  typename Superclass::InputImageConstPointer inputPtr = this->GetInput();
-  typename Superclass::OutputImagePointer     outputPtr = this->GetOutput();
-
-  unsigned int dir0;
-  //unsigned int dir1;
-
-  if (m_Direction == 0)
-    {
-    dir0 = 0;
-    //dir1 = 1;
-    }
-  else
-    {
-    dir0 = 1;
-    //dir1 = 0;
-    }
-
-  // we need to compute the output spacing, the output image size, and the
-  // output image start index
-  const typename TInputImage::SpacingType&
-                                        inputSpacing = inputPtr->GetSignedSpacing();
-  const typename TInputImage::SizeType& inputSize
-    = inputPtr->GetLargestPossibleRegion().GetSize();
-  const typename TInputImage::IndexType& inputStartIndex
-    = inputPtr->GetLargestPossibleRegion().GetIndex();
-
-  typename TOutputImage::SpacingType outputSpacing;
-  typename TOutputImage::SizeType    outputSize;
-  typename TOutputImage::IndexType   outputStartIndex;
-
-  for (unsigned int i = 0; i < TOutputImage::ImageDimension; ++i)
-    {
-    outputSpacing[i] = inputSpacing[i];
-    outputSize[i] = (unsigned int) (inputSize[i]);
-    outputStartIndex[i] = inputStartIndex[i];
-    }
-  // we remove one column of the image
-  outputSize[dir0] = inputSize[dir0] - 1;
-
-  outputPtr->SetSignedSpacing(outputSpacing);
-
-  typename TOutputImage::RegionType outputLargestPossibleRegion;
-  outputLargestPossibleRegion.SetSize(outputSize);
-  outputLargestPossibleRegion.SetIndex(outputStartIndex);
-
-  outputPtr->SetLargestPossibleRegion(outputLargestPossibleRegion);
-}
-
-} // end namespace otb
-
-#endif
diff --git a/Modules/Feature/SeamCarving/otb-module.cmake b/Modules/Feature/SeamCarving/otb-module.cmake
deleted file mode 100644
index d0f0c8465d5031e2097b607a671cbfe534636d43..0000000000000000000000000000000000000000
--- a/Modules/Feature/SeamCarving/otb-module.cmake
+++ /dev/null
@@ -1,38 +0,0 @@
-#
-# Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
-#
-# This file is part of Orfeo Toolbox
-#
-#     https://www.orfeo-toolbox.org/
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-set(DOCUMENTATION "This module contains necessary components to apply the seam
-carving algorithm published by Shai Avidan, Ariel Shamir, Seam Carving for
-Content-Aware  Resizing, ACM Transactions on Graphics, Volume 26, Number 3, SIGGRAPH
-2007.")
-
-otb_module(OTBSeamCarving
-  DEPENDS
-    OTBPath
-    OTBCommon
-    OTBITK
-
-  TEST_DEPENDS
-    OTBTestKernel
-    OTBImageBase
-
-  DESCRIPTION
-    "${DOCUMENTATION}"
-)
diff --git a/Modules/Feature/SeamCarving/test/CMakeLists.txt b/Modules/Feature/SeamCarving/test/CMakeLists.txt
deleted file mode 100644
index f8775d775c5a1ca807d63b5504e0a58401cae263..0000000000000000000000000000000000000000
--- a/Modules/Feature/SeamCarving/test/CMakeLists.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-#
-# Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
-#
-# This file is part of Orfeo Toolbox
-#
-#     https://www.orfeo-toolbox.org/
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-otb_module_test()
-
-set(OTBSeamCarvingTests
-otbSeamCarvingTestDriver.cxx
-)
-
-add_executable(otbSeamCarvingTestDriver ${OTBSeamCarvingTests})
-target_link_libraries(otbSeamCarvingTestDriver ${OTBSeamCarving-Test_LIBRARIES})
-otb_module_target_label(otbSeamCarvingTestDriver)
-
-# Tests Declaration
-
diff --git a/Modules/Feature/SeamCarving/test/otbSeamCarvingTestDriver.cxx b/Modules/Feature/SeamCarving/test/otbSeamCarvingTestDriver.cxx
deleted file mode 100644
index fb60f6825789081e61c2b52bad4e851b9758170f..0000000000000000000000000000000000000000
--- a/Modules/Feature/SeamCarving/test/otbSeamCarvingTestDriver.cxx
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "otbTestMain.h"
-
-void RegisterTests()
-{
-}
diff --git a/Modules/Filtering/ImageManipulation/include/otbBinaryImageMinimalBoundingRegionCalculator.h b/Modules/Filtering/ImageManipulation/include/otbBinaryImageMinimalBoundingRegionCalculator.h
deleted file mode 100644
index 6d8d3fb4e696f8ff9d426f83133276001766e4b6..0000000000000000000000000000000000000000
--- a/Modules/Filtering/ImageManipulation/include/otbBinaryImageMinimalBoundingRegionCalculator.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbBinaryImageMinimalBoundingRegionCalculator_h
-#define otbBinaryImageMinimalBoundingRegionCalculator_h
-
-#include "itkImageToImageFilter.h"
-#include "itkObjectFactory.h"
-
-namespace otb
-{
-/**
- * \class BinaryImageMinimalBoundingRegionCalculator
- * \brief This class compute the smallest region of the image
- * containing every pixel with the foreground value.
- *
- * This class is used for instance in the RCC8 calculator filter,
- * where the input region used for computation has to be the smallest possible
- * for costs reasons. The Pad arg allows the user to get a region of pad  pixel larger
- * at each bound in case a security margin has to be kept.
- *
- * \sa ImageToImageRCC8Calculator
- *
- * \ingroup OTBImageManipulation
- */
-template <class TInputImage>
-class ITK_EXPORT BinaryImageMinimalBoundingRegionCalculator
-  : public itk::ImageToImageFilter<TInputImage, TInputImage>
-{
-public:
-  /** Standard typedefs */
-  typedef BinaryImageMinimalBoundingRegionCalculator        Self;
-  typedef itk::ImageToImageFilter<TInputImage, TInputImage> Superclass;
-  typedef itk::SmartPointer<Self>                           Pointer;
-  typedef itk::SmartPointer<const Self>                     ConstPointer;
-  /** Creation through object factory macro */
-  itkNewMacro(Self);
-  /** Type macro */
-  itkTypeMacro(BinaryImageMinimalBoundingRegionCalculator, ImageToImageFilter);
-
-  typedef TInputImage                         InputImageType;
-  typedef typename InputImageType::PixelType  PixelType;
-  typedef typename InputImageType::RegionType RegionType;
-  typedef typename InputImageType::Pointer    InputImagePointerType;
-  /** Toogle the pad option */
-  itkGetMacro(Region, RegionType);
-  itkSetMacro(InsideValue, PixelType);
-  itkGetMacro(InsideValue, PixelType);
-  itkSetMacro(Pad, unsigned int);
-  itkGetMacro(Pad, unsigned int);
-
-protected:
-  /** Constructor */
-  BinaryImageMinimalBoundingRegionCalculator();
-  /** Destructor */
-  ~BinaryImageMinimalBoundingRegionCalculator() override {}
-  /** Main computation method */
-  void GenerateData(void) override;
-  /** PrintSelf method */
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-private:
-  BinaryImageMinimalBoundingRegionCalculator(const Self &) = delete;
-  void operator =(const Self&) = delete;
-  /** The computed region */
-  RegionType m_Region;
-  /** Toogle if pad wanted */
-  unsigned int m_Pad;
-  /** Inside value */
-  PixelType m_InsideValue;
-};
-} // End namespace otb
-
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbBinaryImageMinimalBoundingRegionCalculator.hxx"
-#endif
-
-#endif
diff --git a/Modules/Filtering/ImageManipulation/include/otbBinaryImageMinimalBoundingRegionCalculator.hxx b/Modules/Filtering/ImageManipulation/include/otbBinaryImageMinimalBoundingRegionCalculator.hxx
deleted file mode 100644
index cfe5d95b6b9d8099421302cab87764d99d84e8a3..0000000000000000000000000000000000000000
--- a/Modules/Filtering/ImageManipulation/include/otbBinaryImageMinimalBoundingRegionCalculator.hxx
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbBinaryImageMinimalBoundingRegionCalculator_hxx
-#define otbBinaryImageMinimalBoundingRegionCalculator_hxx
-
-#include "otbBinaryImageMinimalBoundingRegionCalculator.h"
-#include "itkImageSliceConstIteratorWithIndex.h"
-#include "otbMacro.h"
-
-namespace otb
-{
-/*
- * Constructor
- */
-template <class TInputImage>
-BinaryImageMinimalBoundingRegionCalculator<TInputImage>
-::BinaryImageMinimalBoundingRegionCalculator()
-{
-  // The pad option is desactivated by default
-  m_Pad = 0;
-  // Set the default region
-  typename InputImageType::SizeType  size;
-  typename InputImageType::IndexType index;
-  size[0] = 0;
-  size[1] = 0;
-  index[0] = 0;
-  index[1] = 0;
-  m_Region.SetSize(size);
-  m_Region.SetIndex(index);
-  m_InsideValue = static_cast<PixelType>(255);
-}
-/**
- * Main computation method
- */
-template <class TInputImage>
-void
-BinaryImageMinimalBoundingRegionCalculator<TInputImage>
-::GenerateData(void)
-{
-  // Input images pointers
-  const InputImageType* image = this->GetInput();
-  // Iterator definition
-  typedef itk::ImageSliceConstIteratorWithIndex<InputImageType> SliceIteratorType;
-  // Indexes containing upper-left and lower-right corner
-  typename InputImageType::IndexType min;
-  typename InputImageType::IndexType max;
-  min[0] = 0;
-  min[1] = 0;
-  max[1] = 0;
-  max[1] = 0;
-  for (unsigned int axis = 0; axis < InputImageType::ImageDimension; ++axis)
-    { // Create the forward iterator to find lower bound
-    SliceIteratorType fit(image, image->GetLargestPossibleRegion());
-
-    fit.SetFirstDirection(!axis);
-    fit.SetSecondDirection(axis);
-    fit.GoToBegin();
-
-    // Walk through the two images line by line
-    while (!fit.IsAtEnd())
-      {
-      while (!fit.IsAtEndOfSlice())
-        {
-        while (!fit.IsAtEndOfLine())
-          {
-          // If a common intersection is found
-          if (fit.Get() == m_InsideValue)
-            {
-            // then the lower bound is found
-            min[axis] = fit.GetIndex()[axis];
-            fit.GoToReverseBegin(); // skip to the end
-            break;
-            }
-          ++fit;
-          }
-        fit.NextLine();
-        }
-      fit.NextSlice();
-      }
-    // Create the reverse iterator to find upper bound
-    SliceIteratorType rit(image, image->GetLargestPossibleRegion());
-    rit.SetFirstDirection(!axis);
-    rit.SetSecondDirection(axis);
-    rit.GoToReverseBegin();
-    // Walk through the two images line by line
-    while (!rit.IsAtReverseEnd())
-      {
-      while (!rit.IsAtReverseEndOfSlice())
-        {
-        while (!rit.IsAtReverseEndOfLine())
-          {
-          // If a common intersection is found
-          if (rit.Get() == m_InsideValue)
-            {
-            max[axis] = rit.GetIndex()[axis];
-            rit.GoToBegin(); //Skip to reverse end
-            break;
-            }
-          --rit;
-
-          }
-        rit.PreviousLine();
-
-        }
-      rit.PreviousSlice();
-      }
-    }
-
-  typename InputImageType::SizeType  size;
-  typename InputImageType::IndexType index;
-
-  for (unsigned int i = 0; i < InputImageType::ImageDimension; ++i)
-    {
-    size[i] = max[i] - min[i] + 1;
-    index[i] = min[i];
-    }
-
-  m_Region.SetIndex(index);
-  m_Region.SetSize(size);
-
-  if (m_Pad)
-    {
-    m_Region.PadByRadius(m_Pad);
-    }
-
-  m_Region.Crop(image->GetLargestPossibleRegion());
-}
-/**
- * PrintSelf method
- */
-template <class TInputImage>
-void
-BinaryImageMinimalBoundingRegionCalculator<TInputImage>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-}
-
-} // End namespace otb
-
-#endif
diff --git a/Modules/Filtering/ImageManipulation/test/CMakeLists.txt b/Modules/Filtering/ImageManipulation/test/CMakeLists.txt
index e8317ea3781b71aeff5124c768480cea1b8efd5c..53e76737f0b54cf6717ef348095b401642d630c8 100644
--- a/Modules/Filtering/ImageManipulation/test/CMakeLists.txt
+++ b/Modules/Filtering/ImageManipulation/test/CMakeLists.txt
@@ -51,7 +51,6 @@ otbVectorRescaleIntensityImageFilter.cxx
 otbLog10ThresholdedImageFilterTest.cxx
 otbExtractROIResample.cxx
 otbLocalGradientVectorImageFilter.cxx
-otbBinaryImageMinimalBoundingRegionCalculator.cxx
 otbPerBandVectorImageFilterWithSobelFilter.cxx
 otbBinaryImageDensityFunction.cxx
 otbThresholdVectorImageFilter.cxx
@@ -451,18 +450,6 @@ otb_add_test(NAME bfTvLocalGradientVectorImageFilter COMMAND otbImageManipulatio
   ${INPUTDATA}/cupriteSubHsi.tif
   ${TEMP}/bfTvLocalGradientVectorImageFilter.tif)
 
-otb_add_test(NAME bfTvBoundingRegionCalculator COMMAND otbImageManipulationTestDriver
-  --compare-ascii ${NOTOL}
-  ${BASELINE_FILES}/bfBoundingRegionCalculatorOutput.txt
-  ${TEMP}/bfBoundingRegionCalculatorOutput.txt
-  otbBinaryImageMinimalBoundingRegionCalculator
-  4
-  ${TEMP}/bfBoundingRegionCalculatorOutput.txt
-  ${INPUTDATA}/rcc8_mire1.png
-  ${INPUTDATA}/rcc8_mire2.png
-  ${INPUTDATA}/rcc8_mire3.png
-  ${INPUTDATA}/rcc8_mire4.png
-  )
 
 otb_add_test(NAME bfTvPerBandVectorImageFilterWithSobelFilter COMMAND otbImageManipulationTestDriver
   --compare-image ${EPSILON_7}
diff --git a/Modules/Filtering/ImageManipulation/test/otbBinaryImageMinimalBoundingRegionCalculator.cxx b/Modules/Filtering/ImageManipulation/test/otbBinaryImageMinimalBoundingRegionCalculator.cxx
deleted file mode 100644
index 90d3167cbb890262026198319a4b781b9af99b73..0000000000000000000000000000000000000000
--- a/Modules/Filtering/ImageManipulation/test/otbBinaryImageMinimalBoundingRegionCalculator.cxx
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "itkMacro.h"
-#include "otbImage.h"
-#include "otbBinaryImageMinimalBoundingRegionCalculator.h"
-#include "otbImageFileReader.h"
-#include "otbImageList.h"
-
-int otbBinaryImageMinimalBoundingRegionCalculator(int itkNotUsed(argc), char* argv[])
-{
-  const unsigned int Dimension = 2;
-
-  int    nbImages  = atoi(argv[1]);
-  char * outfile   = argv[2];
-
-  typedef unsigned char                    PixelType;
-  typedef otb::Image<PixelType, Dimension> ImageType;
-  typedef otb::ImageFileReader<ImageType>  ReaderType;
-  typedef otb::BinaryImageMinimalBoundingRegionCalculator<ImageType>
-  BoundingRegionCalculatorType;
-  typedef BoundingRegionCalculatorType::RegionType RegionType;
-  typedef otb::ImageList<ImageType>                ImageListType;
-  typedef ImageListType::Iterator                  IteratorType;
-  // reference image list
-  ImageListType::Pointer images = ImageListType::New();
-
-  // Reading input images
-  std::ofstream out;
-  out.open(outfile, std::ios::out);
-  out << "Test results from otbBinaryImageBoundingRegionCalculator test." << std::endl;
-  for (int i = 1; i <= nbImages; ++i)
-    {
-    ReaderType::Pointer reader = ReaderType::New();
-    reader->SetFileName(argv[2 + i]);
-    reader->Update();
-    images->PushBack(reader->GetOutput());
-    }
-
-  // Declaration
-  BoundingRegionCalculatorType::Pointer brct;
-  // Computing bounding region for each image
-  for (IteratorType it = images->Begin(); it != images->End(); ++it)
-    {
-    brct = BoundingRegionCalculatorType::New();
-    brct->SetInput(it.Get());
-    brct->Update();
-    RegionType region = brct->GetRegion();
-    out << region.GetIndex() << "\t" << region.GetSize() << std::endl;
-    }
-  out << std::endl << "Testing the pad option" << std::endl << std::endl;
-  for (IteratorType it = images->Begin(); it != images->End(); ++it)
-    {
-    brct = BoundingRegionCalculatorType::New();
-    brct->SetPad(1);
-    brct->SetInput(it.Get());
-    brct->Update();
-    RegionType region = brct->GetRegion();
-    out << region.GetIndex() << "\t" << region.GetSize() << std::endl;
-    }
-
-  out.close();
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/Filtering/ImageManipulation/test/otbImageManipulationTestDriver.cxx b/Modules/Filtering/ImageManipulation/test/otbImageManipulationTestDriver.cxx
index 98efbed44de03307f9ab8818fc8dcd85d67110a9..0b24cab0e47dd8544329617ada28fc1433a2897a 100644
--- a/Modules/Filtering/ImageManipulation/test/otbImageManipulationTestDriver.cxx
+++ b/Modules/Filtering/ImageManipulation/test/otbImageManipulationTestDriver.cxx
@@ -51,7 +51,6 @@ void RegisterTests()
   REGISTER_TEST(otbLog10ThresholdedImageFilterTest);
   REGISTER_TEST(otbExtractROIResample);
   REGISTER_TEST(otbLocalGradientVectorImageFilterTest);
-  REGISTER_TEST(otbBinaryImageMinimalBoundingRegionCalculator);
   REGISTER_TEST(otbPerBandVectorImageFilterWithSobelFilter);
   REGISTER_TEST(otbBinaryImageDensityFunction);
   REGISTER_TEST(otbThresholdVectorImageFilterTest);
diff --git a/Modules/Filtering/MathParser/include/otbParserConditionDataNodeFeatureFunction.h b/Modules/Filtering/MathParser/include/otbParserConditionDataNodeFeatureFunction.h
deleted file mode 100644
index f04fbd9892dcfbc7f378e0bdd6efce28e586f366..0000000000000000000000000000000000000000
--- a/Modules/Filtering/MathParser/include/otbParserConditionDataNodeFeatureFunction.h
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbParserConditionDataNodeFeatureFunction_h
-#define otbParserConditionDataNodeFeatureFunction_h
-
-#include "otbDataNodeImageFunction.h"
-#include "otbPolyLineImageConstIterator.h"
-#include "otbMaskMuParserFunctor.h"
-#include <string>
-
-namespace otb
-{
-/** \class ParserConditionDataNodeFeatureFunction
-  * \brief Compute a ParserCondition based feature alongside a
-  * datanode.
-  *
-  * This function evaluate a condition alongside a datanode.
-  * The descriptor is the percentage of pixels iterated for which
-  * the condition is true.
-  *
-  * \ingroup Functions
-  * \sa DataNodeImageFunction
-  * \sa SpectralAngleDataNodeFeatureFunction
- *
- * \ingroup OTBMathParser
-  */
-
-template <
-class TImage,
-class TCoordRep = double,
-class TPrecision = double
->
-class ITK_EXPORT ParserConditionDataNodeFeatureFunction :
-    public DataNodeImageFunction<TImage, std::vector<TPrecision>, TCoordRep, TPrecision>
-{
-public:
-  /** Standard class typedefs. */
-  typedef ParserConditionDataNodeFeatureFunction                         Self;
-  typedef DataNodeImageFunction<TImage, std::vector<TPrecision>, TCoordRep, TPrecision>
-                                                              Superclass;
-  typedef itk::SmartPointer<Self>                             Pointer;
-  typedef itk::SmartPointer<const Self>                       ConstPointer;
-
-  /** Method for creation through the object factory. */
-  itkNewMacro(Self);
-
-  /** Run-time type information (and related methods). */
-  itkTypeMacro(ParserConditionDataNodeFeatureFunction, DataNodeImageFunction);
-
-  /** Some typedefs. */
-  typedef typename Superclass::DataNodeType           DataNodeType;
-  typedef typename DataNodeType::LineType             LineType;
-
-  typedef TImage                                      InputImageType;
-  typedef typename InputImageType::ConstPointer       InputImageConstPointer;
-  typedef typename InputImageType::PixelType          PixelType;
-  typedef typename InputImageType::InternalPixelType  ScalarRealType;
-  typedef typename InputImageType::IndexType          IndexType;
-  typedef typename InputImageType::IndexValueType     IndexValueType;
-
-  typedef TCoordRep                                   CoordRepType;
-
-  typedef TPrecision                                  PrecisionType;
-
-  typedef PolyLineImageConstIterator<InputImageType, LineType>
-                                                      ImageLineIteratorType;
-
-  typedef Functor::MaskMuParserFunctor<PixelType>      ParserConditionFunctorType;
-  typedef typename ParserConditionFunctorType::Pointer ParserConditionFunctorPointer;
-
-  typedef std::vector<PrecisionType>                  OutputType;
-
-  OutputType Evaluate( const DataNodeType& node ) const override;
-
-  std::string GetExpression() const
-  {
-    return m_ParserConditionFunctor->GetExpression();
-  }
-
-  void SetExpression(std::string expression)
-  {
-    m_ParserConditionFunctor->SetExpression(expression);
-  }
-
-  void SetSpectralAngleReferencePixel(const PixelType& pixel)
-  {
-    m_ParserConditionFunctor->SetSpectralAngleReferencePixel(pixel);
-  }
-
-protected:
-  ParserConditionDataNodeFeatureFunction();
-  ~ParserConditionDataNodeFeatureFunction() override {}
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-
-private:
-  ParserConditionDataNodeFeatureFunction(const Self&) = delete;
-  void operator=(const Self&) = delete;
-
-  /** ParserCondition Functor */
-  ParserConditionFunctorPointer  m_ParserConditionFunctor;
-};
-
-}
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbParserConditionDataNodeFeatureFunction.hxx"
-#endif
-
-#endif
diff --git a/Modules/Filtering/MathParser/include/otbParserConditionDataNodeFeatureFunction.hxx b/Modules/Filtering/MathParser/include/otbParserConditionDataNodeFeatureFunction.hxx
deleted file mode 100644
index a32c38294f18b8a09a165f97bd7f347677813351..0000000000000000000000000000000000000000
--- a/Modules/Filtering/MathParser/include/otbParserConditionDataNodeFeatureFunction.hxx
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbParserConditionDataNodeFeatureFunction_hxx
-#define otbParserConditionDataNodeFeatureFunction_hxx
-
-#include "otbParserConditionDataNodeFeatureFunction.h"
-
-namespace otb
-{
-
-/**
- * Constructor
- */
-template <class TImage, class TCoordRep, class TPrecision>
-ParserConditionDataNodeFeatureFunction<TImage, TCoordRep, TPrecision>
-::ParserConditionDataNodeFeatureFunction()
-{
-  m_ParserConditionFunctor = ParserConditionFunctorType::New();
-}
-
-/**
- * Standard "PrintSelf" method
- */
-template <class TImage, class TCoordRep, class TPrecision>
-void
-ParserConditionDataNodeFeatureFunction<TImage, TCoordRep, TPrecision>
-::PrintSelf( std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf( os, indent );
-  //os << indent << "ParserCondition : "    << m_ParserConditionFunctor << std::endl;
-}
-
-template <class TImage, class TCoordRep, class TPrecision>
-typename ParserConditionDataNodeFeatureFunction<TImage, TCoordRep, TPrecision>
-::OutputType
- ParserConditionDataNodeFeatureFunction<TImage, TCoordRep, TPrecision>
-::Evaluate( const DataNodeType& node ) const
-{
-  // The parser evaluation can't be const since the parser state
-  // changes at the first evaluation, but in fact we don't modify
-  // anything here.
-  // To fit with the rest of the framework, we try to keep the Evaluate
-  // function const
-  Self* _this = const_cast<Self*>(this);
-  ParserConditionFunctorType& parser = *(_this->m_ParserConditionFunctor);
-  // Ugly things over
-
-
-  const typename ImageLineIteratorType::PathType* path;
-
-  switch (node.GetNodeType())
-    {
-    case FEATURE_POINT:
-      {
-      itkExceptionMacro(<< "This DataNode type is not handle yet");
-      break;
-      }
-    case FEATURE_LINE:
-      {
-      path = node.GetLine();
-      break;
-      }
-    case FEATURE_POLYGON:
-      {
-      path = node.GetPolygonExteriorRing();
-      break;
-      }
-    default:
-      {
-      itkExceptionMacro(<< "This DataNode type is not handle yet");
-      break;
-      }
-    }
-
-  ImageLineIteratorType lineIt(this->GetInputImage(), path);
-  lineIt.GoToBegin();
-
-  double nbValidPixel = 0.;
-  double nbVisitedPixel = 0.;
-
-  while(!lineIt.IsAtEnd())
-    {
-    if(this->IsInsideBuffer(lineIt.GetIndex()))
-      {
-      if( parser(this->GetInputImage()->GetPixel(lineIt.GetIndex())) )
-        {
-        nbValidPixel += 1;
-        }
-      nbVisitedPixel += 1;
-      }
-    ++lineIt;
-    }
-
-  OutputType output;
-  if(nbVisitedPixel == 0)
-    {
-    output.push_back(static_cast<PrecisionType>(0.));
-    }
-  else
-    {
-    output.push_back(static_cast<PrecisionType>(nbValidPixel/nbVisitedPixel));
-    }
-
-  output.push_back(static_cast<PrecisionType>(nbValidPixel));
-  output.push_back(static_cast<PrecisionType>(nbVisitedPixel));
-  return output;
-}
-
-} // end namespace otb
-
-#endif
diff --git a/Modules/Filtering/MathParser/test/CMakeLists.txt b/Modules/Filtering/MathParser/test/CMakeLists.txt
index 9f082865ac762f233a0383f097e990260d26203e..f2dbcdfd271d6eecd4f97d9e075847a7f49b85c3 100644
--- a/Modules/Filtering/MathParser/test/CMakeLists.txt
+++ b/Modules/Filtering/MathParser/test/CMakeLists.txt
@@ -23,7 +23,6 @@ otb_module_test()
 set(OTBMathParserTests
 otbMathParserTestDriver.cxx
 otbMaskMuParserFilterTest.cxx
-otbParserConditionDataNodeFeatureFunction.cxx
 otbParserTest.cxx
 otbImageListToSingleImageFilterTest.cxx
 otbBandMathImageFilter.cxx
@@ -48,32 +47,6 @@ otb_add_test(NAME bfTvMaskMuParserFilterTest COMMAND otbMathParserTestDriver
   "(b1>100)*(b2>120)"
   )
 
-otb_add_test(NAME bfTvParserConditionDataNodeFeatureFunction_Line_NDVI COMMAND otbMathParserTestDriver
-  --compare-ogr ${EPSILON_9}
-  ${BASELINE_FILES}/bfTvNDVIDataNodeFeatureFunctionOutput_Line.shp
-  ${TEMP}/bfTvParserConditionDataNodeFeatureFunction_Line_NDVI.shp
-  otbParserConditionDataNodeFeatureFunction
-  ${INPUTDATA}/Dempster-Shafer/ROI_QB_TOULOUSE_ROADS.shp
-  ${INPUTDATA}/Dempster-Shafer/ROI_QB_TOULOUSE.TIF
-  ${INPUTDATA}/DEM/srtm_directory
-  ${TEMP}/bfTvParserConditionDataNodeFeatureFunction_Line_NDVI.shp
-  "ndvi(b3,b4) > 0.047"
-  0
-  )
-
-otb_add_test(NAME bfTvParserConditionDataNodeFeatureFunction_Polygon_NDVI COMMAND otbMathParserTestDriver
-  --compare-ogr ${EPSILON_6}
-  ${BASELINE_FILES}/bfTvNDVIDataNodeFeatureFunctionOutput_Polygon.shp
-  ${TEMP}/bfTvParserConditionDataNodeFeatureFunction_Polygon_NDVI.shp
-  otbParserConditionDataNodeFeatureFunction
-  ${INPUTDATA}/Dempster-Shafer/ROI_QB_TOULOUSE_BUILDINGS.shp
-  ${INPUTDATA}/Dempster-Shafer/ROI_QB_TOULOUSE.TIF
-  ${INPUTDATA}/DEM/srtm_directory
-  ${TEMP}/bfTvParserConditionDataNodeFeatureFunction_Polygon_NDVI.shp
-  "ndvi(b3,b4) > 0.047"
-  0
-  )
-
 otb_add_test(NAME coTvParser COMMAND otbMathParserTestDriver
   otbParserTest
   )
diff --git a/Modules/Filtering/MathParser/test/otbMathParserTestDriver.cxx b/Modules/Filtering/MathParser/test/otbMathParserTestDriver.cxx
index 5ef579c49abbcd1d1a033f9c42ac09072d8aad97..4f12db6c962a985a8c7a0d92e2a449f28e8aef28 100644
--- a/Modules/Filtering/MathParser/test/otbMathParserTestDriver.cxx
+++ b/Modules/Filtering/MathParser/test/otbMathParserTestDriver.cxx
@@ -23,7 +23,6 @@
 void RegisterTests()
 {
   REGISTER_TEST(otbMaskMuParserFilterTest);
-  REGISTER_TEST(otbParserConditionDataNodeFeatureFunction);
   REGISTER_TEST(otbParserTest);
   REGISTER_TEST(otbImageListToSingleImageFilter);
   REGISTER_TEST(otbBandMathImageFilter);
diff --git a/Modules/Filtering/MathParser/test/otbParserConditionDataNodeFeatureFunction.cxx b/Modules/Filtering/MathParser/test/otbParserConditionDataNodeFeatureFunction.cxx
deleted file mode 100644
index 4982b50ced444f777c2ae95ef66d2990c174319a..0000000000000000000000000000000000000000
--- a/Modules/Filtering/MathParser/test/otbParserConditionDataNodeFeatureFunction.cxx
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#include "otbParserConditionDataNodeFeatureFunction.h"
-
-#include "otbVectorImage.h"
-#include "otbImageFileReader.h"
-#include "otbVectorData.h"
-#include "otbVectorDataFileReader.h"
-#include "otbVectorDataIntoImageProjectionFilter.h"
-#include "otbVectorDataFileWriter.h"
-#include "itkPreOrderTreeIterator.h"
-
-
-int otbParserConditionDataNodeFeatureFunction(int itkNotUsed(argc), char* argv[])
-{
-  const char * inputVD = argv[1];
-  const char * inputImg = argv[2];
-  const char * DEMDir = argv[3];
-  const char * outputVD = argv[4];
-  const char * expression = argv[5];
-  int DisplayWarnings = atoi(argv[6]);
-
-  typedef double CoordRepType;
-  typedef double PrecisionType;
-  typedef otb::VectorImage<PrecisionType> ImageType;
-  typedef otb::ImageFileReader<ImageType> ImageReaderType;
-  typedef otb::VectorData<CoordRepType, 2, PrecisionType> VectorDataType;
-  typedef VectorDataType::DataNodeType DataNodeType;
-  typedef otb::VectorDataFileReader<VectorDataType> VectorDataReaderType;
-  typedef otb::VectorDataIntoImageProjectionFilter<VectorDataType, ImageType> VectorDataReProjFilter;
-  typedef otb::VectorDataFileWriter<VectorDataType> VectorDataWriterType;
-  typedef itk::PreOrderTreeIterator<VectorDataType::DataTreeType> TreeIteratorType;
-
-  typedef otb::ParserConditionDataNodeFeatureFunction<ImageType, CoordRepType, PrecisionType>
-      ParserConditionDataNodeFeaturefunctionType;
-  typedef ParserConditionDataNodeFeaturefunctionType::OutputType ParserConditionFeatureOutputType;
-
-  ImageReaderType::Pointer imgReader = ImageReaderType::New();
-  VectorDataReaderType::Pointer vdReader = VectorDataReaderType::New();
-  VectorDataReProjFilter::Pointer vdReProjFilter = VectorDataReProjFilter::New();
-  VectorDataWriterType::Pointer vdWriter = VectorDataWriterType::New();
-  ParserConditionDataNodeFeaturefunctionType::Pointer
-      ParserConditionFeatureFunction = ParserConditionDataNodeFeaturefunctionType::New();
-
-  if (!DisplayWarnings)
-    {
-    imgReader->SetGlobalWarningDisplay(0);
-    }
-
-  otb::DEMHandler::Instance()->OpenDEMDirectory(DEMDir);
-
-  vdReader->SetFileName(inputVD);
-  vdReader->Update();
-
-  imgReader->SetFileName(inputImg);
-  imgReader->UpdateOutputInformation();
-  imgReader->Update(); //Needed to set m_EndIndex, m_StartIndex in otbDataNodeImageFunction
-
-  vdReProjFilter->SetInputImage(imgReader->GetOutput());
-  vdReProjFilter->SetInputVectorData(vdReader->GetOutput());
-  vdReProjFilter->SetUseOutputSpacingAndOriginFromImage(true);
-  vdReProjFilter->Update();
-
-  ParserConditionFeatureFunction->SetExpression(expression);
-  ParserConditionFeatureFunction->SetInputImage(imgReader->GetOutput());
-
-  // Output
-  VectorDataType::Pointer outVD = VectorDataType::New();
-  // Retrieving root node
-  DataNodeType::Pointer root = outVD->GetDataTree()->GetRoot()->Get();
-  // Create the document node
-  DataNodeType::Pointer document = DataNodeType::New();
-  document->SetNodeType(otb::DOCUMENT);
-  // Adding the layer to the data tree
-  outVD->GetDataTree()->Add(document, root);
-  // Create the folder node
-  DataNodeType::Pointer folder = DataNodeType::New();
-  folder->SetNodeType(otb::FOLDER);
-  // Adding the layer to the data tree
-  outVD->GetDataTree()->Add(folder, document);
-
-  TreeIteratorType itVector(vdReProjFilter->GetOutput()->GetDataTree());
-  itVector.GoToBegin();
-  while (!itVector.IsAtEnd())
-    {
-    if (itVector.Get()->IsLineFeature() || itVector.Get()->IsPolygonFeature())
-      {
-      const DataNodeType::Pointer currentGeometry = itVector.Get();
-      ParserConditionFeatureOutputType currentResult;
-      currentResult = ParserConditionFeatureFunction->Evaluate(*(currentGeometry.GetPointer()));
-      currentGeometry->SetFieldAsDouble("NDVI", (double) (currentResult[0]));
-      outVD->GetDataTree()->Add(currentGeometry, folder);
-      }
-    ++itVector;
-    }
-
-  vdWriter->SetInput(outVD);
-  vdWriter->SetFileName(outputVD);
-  vdWriter->Update();
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/Filtering/MorphologicalPyramid/CMakeLists.txt b/Modules/Filtering/MorphologicalPyramid/CMakeLists.txt
deleted file mode 100644
index fdbf5b6d47d68fab8095ce62a22602de84cc7092..0000000000000000000000000000000000000000
--- a/Modules/Filtering/MorphologicalPyramid/CMakeLists.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
-#
-# This file is part of Orfeo Toolbox
-#
-#     https://www.orfeo-toolbox.org/
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-project(OTBMorphologicalPyramid)
-otb_module_impl()
diff --git a/Modules/Filtering/MorphologicalPyramid/include/otbMorphologicalPyramidAnalysisFilter.h b/Modules/Filtering/MorphologicalPyramid/include/otbMorphologicalPyramidAnalysisFilter.h
deleted file mode 100644
index b74ea6f27e557e57d9f33e79217a4170cab9d26b..0000000000000000000000000000000000000000
--- a/Modules/Filtering/MorphologicalPyramid/include/otbMorphologicalPyramidAnalysisFilter.h
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbMorphologicalPyramidAnalysisFilter_h
-#define otbMorphologicalPyramidAnalysisFilter_h
-
-#include "otbImageToImageListFilter.h"
-
-namespace otb
-{
-/** \class MorphologicalPyramidAnalysisFilter
- * \brief Multiscale analysis filter using the morphological pyramid algorithm.
- *
- * Pyramidal decomposition is based on the following statement : once an
- * image has been smoothed with a linear filter, it does not contain
- * any more high-frequency details. Therefore, it can be down-sampled
- * without any loss of information, according to Shannon Theorem. By
- * iterating the same smoothing on the down-sampled image, a
- * multi-resolution decomposition of the scene is
- * computed. If the smoothing filter is a morphological filter, this
- * is no longer true, as the filter is not linear. However, by keeping
- * the details possibly lost in the down-sampling operation, such a
- * decomposition can be used.
- *
- * The MorphologicalPyramidAnalysisFilter provide such a
- * decomposition. It's computation process is an iterative analyse
- * involving smoothing by the morphological filter, computing the
- * details lost in the smoothing, down-sampling the current image, and
- * computing the details lost in the down-sampling.
- *
- * \ingroup MultiScale
- * \sa MorphologicalPyramidSynthesisFilter, OpeningClosingMorphologicalFilter,
- * ClosingOpeningMorphologicalFilter
- *
- * \ingroup OTBMorphologicalPyramid
- */
-template <class TInputImage, class TOutputImage, class TMorphoFilter>
-class ITK_EXPORT MorphologicalPyramidAnalysisFilter
-  : public ImageToImageListFilter<TInputImage, TOutputImage>
-{
-public:
-  /** Standard typedefs */
-  typedef MorphologicalPyramidAnalysisFilter                Self;
-  typedef ImageToImageListFilter<TInputImage, TOutputImage> Superclass;
-  typedef itk::SmartPointer<Self>                           Pointer;
-  typedef itk::SmartPointer<const Self>                     ConstPointer;
-  /** Creation through object factory macro */
-  itkNewMacro(Self);
-  /** Type macro */
-  itkTypeMacro(MorphologicalPyramidAnalysisFilter, MorphologicalPyramidAnalysisFilter);
-  /** Input image dimension constant macro */
-  itkStaticConstMacro(InputImageDimension, unsigned int, TInputImage::ImageDimension);
-  /** Template parameters typedefs */
-  typedef TMorphoFilter                         MorphoFilterType;
-  typedef typename MorphoFilterType::KernelType KernelType;
-  /** Output related typedefs */
-  typedef typename Superclass::OutputImageType        OutputImageType;
-  typedef typename Superclass::OutputImageListType    OutputImageListType;
-  typedef typename OutputImageListType::Pointer       OutputImageListPointerType;
-  typedef typename Superclass::OutputImagePointerType OutputImagePointerType;
-  /** Input related typedefs */
-  typedef typename Superclass::InputImageType       InputImageType;
-  typedef typename Superclass::InputImageRegionType InputImageRegionType;
-  typedef typename InputImageType::Pointer          InputImagePointerType;
-  typedef typename InputImageType::ConstPointer     InputImageConstPointerType;
-  typedef typename InputImageType::SizeType         SizeType;
-  typedef typename InputImageType::ValueType        ValueType;
-  typedef typename InputImageType::PixelType        PixelType;
-  typedef typename InputImageType::SpacingType      SpacingType;
-  /** Accessors */
-  itkSetMacro(NumberOfLevels, int);
-  itkSetMacro(DecimationRatio, double);
-  itkGetConstReferenceMacro(NumberOfLevels, int);
-  itkGetConstReferenceMacro(DecimationRatio, double);
-  /**
-   * Get The Analyse image at each level of the pyramid.
-   * \return The analysed image at each level of the pyramid.
-   */
-  OutputImageListType* GetOutput(void) override;
-  /**
-   * Get The SupFilter details
-   * \return The brighter details extracted from the filtering operation.
-   */
-  OutputImageListType * GetSupFilter(void);
-  /**
-   * Get The InfFilter details
-   * \return The darker details extracted from the filtering operation.
-   */
-  OutputImageListType * GetInfFilter(void);
-  /**
-   * Get The SupDeci details
-   * \return The brighter details extracted from the resampling operation.
-   */
-  OutputImageListType * GetSupDeci(void);
-  /**
-   * Get The InfDeci details
-   * \return The brighter details extracted from the resampling operation.
-   */
-  OutputImageListType * GetInfDeci(void);
-
-protected:
-  /** Constructor */
-  MorphologicalPyramidAnalysisFilter();
-  /** Destructor */
-  ~MorphologicalPyramidAnalysisFilter() override;
-  void GenerateOutputInformation() override {}  // does nothing
-  /** Main computation method */
-  void GenerateData() override;
-  /** Printself method */
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-
-private:
-  /** Number of levels of the algorithm */
-  int m_NumberOfLevels;
-  /** Subsampling scale used */
-  double m_DecimationRatio;
-};
-} // End namespace otb
-
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbMorphologicalPyramidAnalysisFilter.hxx"
-#endif
-
-#endif
diff --git a/Modules/Filtering/MorphologicalPyramid/include/otbMorphologicalPyramidAnalysisFilter.hxx b/Modules/Filtering/MorphologicalPyramid/include/otbMorphologicalPyramidAnalysisFilter.hxx
deleted file mode 100644
index efa6eb0b51ea324ee4742cf7f7cc0c912dc060d3..0000000000000000000000000000000000000000
--- a/Modules/Filtering/MorphologicalPyramid/include/otbMorphologicalPyramidAnalysisFilter.hxx
+++ /dev/null
@@ -1,294 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbMorphologicalPyramidAnalysisFilter_hxx
-#define otbMorphologicalPyramidAnalysisFilter_hxx
-
-#include "otbMorphologicalPyramidAnalysisFilter.h"
-
-#include "itkSubtractImageFilter.h"
-#include "itkMaximumImageFilter.h"
-#include "itkImageDuplicator.h"
-#include "otbMorphologicalPyramidResampler.h"
-#include "itkProgressAccumulator.h"
-#include "otbMacro.h"
-
-namespace otb
-{
-/**
- * Constructor
- */
-template <class TInputImage, class TOutputImage, class TMorphoFilter>
-MorphologicalPyramidAnalysisFilter<TInputImage, TOutputImage, TMorphoFilter>
-::MorphologicalPyramidAnalysisFilter()
-{
-  this->SetNumberOfRequiredOutputs(2);
-  m_DecimationRatio = 2.0;
-  m_NumberOfLevels = 4;
-  OutputImageListPointerType supFilter = OutputImageListType::New();
-  this->SetNthOutput(0, supFilter.GetPointer());
-  OutputImageListPointerType infFilter = OutputImageListType::New();
-  this->SetNthOutput(1, infFilter.GetPointer());
-  OutputImageListPointerType outputList = OutputImageListType::New();
-  this->SetNthOutput(2, outputList.GetPointer());
-  OutputImageListPointerType supDeci =   OutputImageListType::New();
-  this->SetNthOutput(3, supDeci.GetPointer());
-  OutputImageListPointerType infDeci =   OutputImageListType::New();
-  this->SetNthOutput(4, infDeci.GetPointer());
-}
-/**
- * Destructor
- */
-template <class TInputImage, class TOutputImage, class TMorphoFilter>
-MorphologicalPyramidAnalysisFilter<TInputImage, TOutputImage, TMorphoFilter>
-::~MorphologicalPyramidAnalysisFilter() {}
-/**
- * Get The Analyse image at each level of the pyramid.
- * \return The analysed image at each level of the pyramid.
- */
-template <class TInputImage, class TOutputImage, class TMorphoFilter>
-typename MorphologicalPyramidAnalysisFilter<TInputImage, TOutputImage, TMorphoFilter>
-::OutputImageListType*
-MorphologicalPyramidAnalysisFilter<TInputImage, TOutputImage, TMorphoFilter>
-::GetOutput(void)
-{
-  return dynamic_cast<OutputImageListType*>(this->itk::ProcessObject::GetOutput(2));
-}
-/**
- * Get The SupFilter details
- * \return The brighter details extracted from the filtering operation.
- */
-template <class TInputImage, class TOutputImage, class TMorphoFilter>
-typename MorphologicalPyramidAnalysisFilter<TInputImage, TOutputImage, TMorphoFilter>
-::OutputImageListType*
-MorphologicalPyramidAnalysisFilter<TInputImage, TOutputImage, TMorphoFilter>
-::GetSupFilter(void)
-{
-  return dynamic_cast<OutputImageListType*>(this->itk::ProcessObject::GetOutput(0));
-}
-/**
- * Get The InfFilter details
- * \return The darker details extracted from the filtering operation.
- */
-template <class TInputImage, class TOutputImage, class TMorphoFilter>
-typename MorphologicalPyramidAnalysisFilter<TInputImage, TOutputImage, TMorphoFilter>
-::OutputImageListType*
-MorphologicalPyramidAnalysisFilter<TInputImage, TOutputImage, TMorphoFilter>
-::GetInfFilter(void)
-{
-  return dynamic_cast<OutputImageListType*>(this->itk::ProcessObject::GetOutput(1));
-}
-/**
- * Get The SupDeci details
- * \return The brighter details extracted from the resampling operation.
- */
-template <class TInputImage, class TOutputImage, class TMorphoFilter>
-typename MorphologicalPyramidAnalysisFilter<TInputImage, TOutputImage, TMorphoFilter>
-::OutputImageListType*
-MorphologicalPyramidAnalysisFilter<TInputImage, TOutputImage, TMorphoFilter>
-::GetSupDeci(void)
-{
-  return dynamic_cast<OutputImageListType*>(this->itk::ProcessObject::GetOutput(3));
-}
-/**
- * Get The InfDeci details
- * \return The brighter details extracted from the resampling operation.
- */
-template <class TInputImage, class TOutputImage, class TMorphoFilter>
-typename MorphologicalPyramidAnalysisFilter<TInputImage, TOutputImage, TMorphoFilter>
-::OutputImageListType*
-MorphologicalPyramidAnalysisFilter<TInputImage, TOutputImage, TMorphoFilter>
-::GetInfDeci(void)
-{
-  return dynamic_cast<OutputImageListType*>(this->itk::ProcessObject::GetOutput(4));
-}
-/**
- * Main computation method
- */
-template <class TInputImage, class TOutputImage, class TMorphoFilter>
-void
-MorphologicalPyramidAnalysisFilter<TInputImage, TOutputImage, TMorphoFilter>
-::GenerateData(void)
-{
-  // Input image pointer
-  OutputImageListType * OutputImageList   = this->GetOutput();
-
-  // Output images pointers
-  OutputImageListType * supFilter = this->GetSupFilter();
-  OutputImageListType * infFilter = this->GetInfFilter();
-  OutputImageListType * supDeci = this->GetSupDeci();
-  OutputImageListType * infDeci = this->GetInfDeci();
-
-  // typedefs of the filters
-  typedef itk::SubtractImageFilter<InputImageType, InputImageType, OutputImageType> SubtractFilterType;
-  typedef itk::MaximumImageFilter<InputImageType, InputImageType, InputImageType>   MaxFilterType;
-  typedef itk::ImageDuplicator<InputImageType>                                      DuplicatorType;
-  typedef otb::MorphologicalPyramid::Resampler<InputImageType, OutputImageType>     ResamplerType;
-
-  // Input Image duplication to the currentImage Pointer
-  typename DuplicatorType::Pointer duplicator = DuplicatorType::New();
-  duplicator->SetInputImage(this->GetInput());
-  duplicator->Update();
-  typename InputImageType::Pointer currentImage = duplicator->GetOutput();
-  typename InputImageType::Pointer upsampled;
-
-  // Structuring element size computation
-  const int structElementDimension = static_cast<int>(std::ceil(this->GetDecimationRatio() / 2.));
-
-  // Structuring element creation
-  KernelType structuringElement;
-  structuringElement.SetRadius(structElementDimension);
-  structuringElement.CreateStructuringElement();
-
-  // Filters declarations
-  typename MorphoFilterType::Pointer   morphoFilter;
-  typename MaxFilterType::Pointer      max;
-  typename SubtractFilterType::Pointer subtract1, subtract2, subtract3, subtract4;
-  typename ResamplerType::Pointer      resampler1, resampler2;
-
-  // Size declaration
-  typename InputImageType::SizeType size;
-
-  // local variables declarations and initializations
-  int i = 0;
-  int sizeTmp;
-  //--------------------------------------------------------//
-  //                      Main loop                         //
-  //--------------------------------------------------------//
-  // While the number of iterations is not reached
-  otbMsgDevMacro(<< "Entering main loop");
-  while (i < this->GetNumberOfLevels())
-    {
-
-    // morphological filtering
-    morphoFilter = MorphoFilterType::New();
-    morphoFilter->SetKernel(structuringElement);
-    morphoFilter->SetInput(currentImage);
-    morphoFilter->Update();
-
-    // Maximum between current and filtered image
-    max = MaxFilterType::New();
-    max->SetInput1(morphoFilter->GetOutput());
-    max->SetInput2(currentImage);
-    max->Update();
-
-    // SupFilter detail image computation
-    subtract1 = SubtractFilterType::New();
-    subtract1->SetInput1(max->GetOutput());
-    subtract1->SetInput2(morphoFilter->GetOutput());
-    subtract1->Update();
-    otbMsgDevMacro(
-      << "MorphologicalPyramidAnalysisFilter: subtract1 OK " <<
-      subtract1->GetOutput()->GetLargestPossibleRegion().GetSize());
-    supFilter->PushBack(subtract1->GetOutput());
-    otbMsgDevMacro("MorphologicalPyramidAnalysisFilter: step " << i << " - Image appended to SupFilter");
-
-    // InfFilter detail image computation
-    subtract2 = SubtractFilterType::New();
-    subtract2->SetInput1(max->GetOutput());
-    subtract2->SetInput2(currentImage);
-    subtract2->Update();
-    otbMsgDevMacro(
-      << "MorphologicalPyramidAnalysisFilter: subtract2 OK " <<
-      subtract2->GetOutput()->GetLargestPossibleRegion().GetSize());
-    infFilter->PushBack(subtract2->GetOutput());
-    otbMsgDevMacro("MorphologicalPyramidAnalysisFilter: step " << i << " - Image appended to InfFilter");
-
-    // New  Size
-    size = morphoFilter->GetOutput()->GetLargestPossibleRegion().GetSize();
-    for (unsigned int j = 0; j < InputImageType::ImageDimension; ++j)
-      {
-      sizeTmp = size[j];
-      // As we knwow that our values will always be positive ones, we can simulate round by ceil(value+0.5)
-      size[j] = static_cast<unsigned int>(std::ceil((static_cast<double>(sizeTmp) / this->GetDecimationRatio()) + 0.5));
-      }
-    otbMsgDevMacro(<< "New size: " << size);
-
-    // Image subsampling
-    // Current image becomes the newly subsampled image
-    resampler1 = ResamplerType::New();
-    resampler1->SetInput(morphoFilter->GetOutput());
-    resampler1->SetSize(size);
-    resampler1->Update();
-    currentImage = resampler1->GetOutput();
-
-    otbMsgDevMacro(
-      << "MorphologicalPyramidAnalysisFilter: DownSampling OK " << currentImage->GetLargestPossibleRegion().GetSize());
-    // New current image is appended to the output list
-    OutputImageList->PushBack(currentImage);
-
-    // Image upsampling
-    resampler2 = ResamplerType::New();
-    resampler2->SetInput(resampler1->GetOutput());
-    resampler2->SetSize(morphoFilter->GetOutput()->GetLargestPossibleRegion().GetSize());
-    resampler2->Update();
-
-    otbMsgDevMacro(
-      << "MorphologicalPyramidAnalysisFilter: UpSampling OK " <<
-      resampler2->GetOutput()->GetLargestPossibleRegion().GetSize());
-    // Computation of the details lost in the subsampling operation
-    max = MaxFilterType::New();
-    max->SetInput1(morphoFilter->GetOutput());
-    max->SetInput2(resampler2->GetOutput());
-    max->Update();
-    otbMsgDevMacro(
-      << "MorphologicalPyramidAnalysisFilter: Max OK " << max->GetOutput()->GetLargestPossibleRegion().GetSize());
-
-    // InfDeci detail image computation
-    subtract4 = SubtractFilterType::New();
-    subtract4->SetInput1(max->GetOutput());
-    subtract4->SetInput2(morphoFilter->GetOutput());
-    subtract4->Update();
-    otbMsgDevMacro(
-      << "MorphologicalPyramidAnalysisFilter: subtract4 OK " <<
-      subtract4->GetOutput()->GetLargestPossibleRegion().GetSize());
-    infDeci->PushBack(subtract4->GetOutput());
-    otbMsgDevMacro("MorphologicalPyramidAnalysisFilter: step " << i << " - Image appended to InfDeci");
-
-    // SupDeci detail image computation
-    subtract3 = SubtractFilterType::New();
-    subtract3->SetInput1(max->GetOutput());
-    subtract3->SetInput2(resampler2->GetOutput());
-    subtract3->Update();
-    otbMsgDevMacro(
-      << "MorphologicalPyramidAnalysisFilter: subtract3 OK " <<
-      subtract3->GetOutput()->GetLargestPossibleRegion().GetSize());
-    supDeci->PushBack(subtract3->GetOutput());
-    otbMsgDevMacro("MorphologicalPyramidAnalysisFilter: step " << i << " - Image appended to SupDeci");
-
-    // Iteration ounter incrementation
-    ++i;
-    }
-  otbMsgDevMacro(<< "Exiting main loop");
-}
-/**
- * PrintSelf method
- */
-template <class TInputImage, class TOutputImage, class TMorphoFilter>
-void
-MorphologicalPyramidAnalysisFilter<TInputImage, TOutputImage, TMorphoFilter>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-  os << indent << "DecimationRatio: " << m_DecimationRatio << std::endl;
-  os << indent << "NumberOfLevels: " << m_NumberOfLevels << std::endl;
-}
-} // End namespace otb
-#endif
diff --git a/Modules/Filtering/MorphologicalPyramid/include/otbMorphologicalPyramidMRToMSConverter.h b/Modules/Filtering/MorphologicalPyramid/include/otbMorphologicalPyramidMRToMSConverter.h
deleted file mode 100644
index 65768b624caba0047b54cb4ced32745a59326cca..0000000000000000000000000000000000000000
--- a/Modules/Filtering/MorphologicalPyramid/include/otbMorphologicalPyramidMRToMSConverter.h
+++ /dev/null
@@ -1,173 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbMorphologicalPyramidMRToMSConverter_h
-#define otbMorphologicalPyramidMRToMSConverter_h
-
-#include "otbImageListToImageListFilter.h"
-
-namespace otb
-{
-namespace MorphologicalPyramid
-{
-/**
- * \class MRToMSConverter
- * \brief This class convert a multi resolution decomposition from the morphological pyramid to a multi-scale one.
- *
- * This class convert a multi resolution decomposition from the morphological pyramid to a multi-scale one.
- *
- * The operation consists in iterativly upsampling and adding decimation details to a given detail image.
- *
- * \sa MorphologicalPyramidAnalyseFilter
- * \sa MorphologicalPyramidSynthesisFilter
- *
- * \ingroup OTBMorphologicalPyramid
- */
-template <class TInputImage, class TOutputImage>
-class ITK_EXPORT MRToMSConverter
-  : public ImageListToImageListFilter<TInputImage, TOutputImage>
-{
-public:
-  /** Standard typedefs */
-  typedef MRToMSConverter                                       Self;
-  typedef ImageListToImageListFilter<TInputImage, TOutputImage> Superclass;
-  typedef itk::SmartPointer<Self>                               Pointer;
-  typedef itk::SmartPointer<const Self>                         ConstPointer;
-  /** Creation through object factory macro */
-  itkNewMacro(Self);
-  /** Type macro */
-  itkTypeMacro(MRToMSConverter, ImageListToImageListFilter);
-  /** Input parameters typedefs */
-  typedef TInputImage                                    InputImageType;
-  typedef typename Superclass::InputImagePointer         InputImagePointer;
-  typedef typename Superclass::InputImageListType        InputImageListType;
-  typedef typename Superclass::InputImageListPointerType InputImageListPointerType;
-  typedef typename InputImageListType::Iterator          InputImageListIteratorType;
-  /** Output parameters typedefs */
-  typedef TOutputImage                                    OutputImageType;
-  typedef typename Superclass::OutputImagePointer         OutputImagePointerType;
-  typedef typename Superclass::OutputImageListType        OutputImageListType;
-  typedef typename Superclass::OutputImageListPointerType OutputImageListPointerType;
-
-  /**
-   * Set The input list.
-   * \param imageList The analysed image at each level of the pyramid.
-   */
-  using Superclass::SetInput;
-  void SetInput(const InputImageListType * imageList) override;
-  /**
-   * Set The SupFilter details
-   * \param imageList The brighter details extracted from the filtering operation.
-   */
-  void SetSupFilter(InputImageListType * imageList);
-  /**
-   * Set The InfFilter details
-   * \param imageList The darker details extracted from the filtering operation.
-   */
-  void SetInfFilter(InputImageListType * imageList);
-  /**
-   * Set The SupDeci details
-   * \param imageList The brighter details extracted from the filtering operation.
-   */
-  void SetSupDeci(InputImageListType * imageList);
-  /**
-   * Set The InfDeci details
-   * \param imageList The darker details extracted from the filtering operation.
-   */
-  void SetInfDeci(InputImageListType * imageList);
-  /**
-   * Get the input list.
-   * \return The list of the analysed image at each pyramid level.
-   */
-  InputImageListType* GetInput(void) override;
-  /**
-   * Get The SupFilter details
-   * \return The brighter details extracted from the filtering operation.
-   */
-  InputImageListType* GetSupFilter(void);
-  /**
-   * Get The InfFilter details
-   * \return The darker details extracted from the filtering operation.
-   */
-  InputImageListType* GetInfFilter(void);
-  /**
-   * Get The SupDeci details
-   * \return The brighter details extracted from the resampling operation.
-   */
-  InputImageListType* GetSupDeci(void);
-  /**
-   * Get The InfDeci details
-   * \return The brighter details extracted from the resampling operation.
-   */
-  InputImageListType* GetInfDeci(void);
-  /**
-   * Get The inputList at full resolution.
-   * \return The analysed image at each pyramid level
-   * resampled at full resolution.
-   */
-  OutputImageListType* GetOutput(void) override;
-  /**
-   * Get The SupFilter details at full resolution.
-   * \return The brighter details extracted from the filtering operation
-   * resampled at full resolution.
-   */
-  OutputImageListType * GetSupFilterFullResolution(void);
-  /**
-   * Get The InfFilter details at full resolution.
-   * \return The darker details extracted from the filtering operation
-   * resampled at full resolution.
-   */
-  OutputImageListType * GetInfFilterFullResolution(void);
-  /**
-   * Get The SupDeci details at full resolution.
-   * \return The brighter details extracted from the resampling operation
-   * resampled at full resolution.
-   */
-  OutputImageListType * GetSupDeciFullResolution(void);
-  /**
-   * Get The InfDeci details at full resolution.
-   * \return The darker details extracted from the resampling operation
-   * resampled at full resolution.
-   */
-  OutputImageListType * GetInfDeciFullResolution(void);
-
-protected:
-  /** Constructor */
-  MRToMSConverter();
-  /** Destructor */
-  ~MRToMSConverter() override {}
-
-  /** Main computation method */
-  void GenerateData() override;
-  /** PrintSelf method */
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-
-private:
-  MRToMSConverter(const Self &) = delete;
-  void operator =(const Self&) = delete;
-};
-} // End namespace MorphologicalPyramid
-} // End namespace otb
-
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbMorphologicalPyramidMRToMSConverter.hxx"
-#endif
-
-#endif
diff --git a/Modules/Filtering/MorphologicalPyramid/include/otbMorphologicalPyramidMRToMSConverter.hxx b/Modules/Filtering/MorphologicalPyramid/include/otbMorphologicalPyramidMRToMSConverter.hxx
deleted file mode 100644
index 51f9ff57e667d987d420a3a02d2c8a120da27e46..0000000000000000000000000000000000000000
--- a/Modules/Filtering/MorphologicalPyramid/include/otbMorphologicalPyramidMRToMSConverter.hxx
+++ /dev/null
@@ -1,359 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbMorphologicalPyramidMRToMSConverter_hxx
-#define otbMorphologicalPyramidMRToMSConverter_hxx
-
-#include "otbMorphologicalPyramidMRToMSConverter.h"
-#include "otbMorphologicalPyramidResampler.h"
-#include "otbMacro.h"
-
-namespace otb
-{
-namespace MorphologicalPyramid
-{
-/**
- * Constructor
- */
-template <class TInputImage, class TOutputImage>
-MRToMSConverter<TInputImage, TOutputImage>
-::MRToMSConverter()
-{
-  this->SetNumberOfRequiredInputs(2);
-  this->SetNumberOfRequiredOutputs(2);
-  OutputImageListPointerType supFilter = OutputImageListType::New();
-  this->SetNthOutput(0, supFilter.GetPointer());
-  OutputImageListPointerType infFilter = OutputImageListType::New();
-  this->SetNthOutput(1, infFilter.GetPointer());
-  OutputImageListPointerType outputList = OutputImageListType::New();
-  this->SetNthOutput(2, outputList.GetPointer());
-  OutputImageListPointerType supDeci =   OutputImageListType::New();
-  this->SetNthOutput(3, supDeci.GetPointer());
-  OutputImageListPointerType infDeci =   OutputImageListType::New();
-  this->SetNthOutput(4, infDeci.GetPointer());
-}
-/**
- * Get The inputList at full resolution.
- * \return The analysed image at each pyramid level
- * resampled at full resolution.
- */
-template <class TInputImage, class TOutputImage>
-typename MRToMSConverter<TInputImage, TOutputImage>
-::OutputImageListType*
-MRToMSConverter<TInputImage, TOutputImage>
-::GetOutput(void)
-{
-  return dynamic_cast<OutputImageListType*>(this->itk::ProcessObject::GetOutput(2));
-}
-/**
- * Get The SupFilter details at full resolution.
- * \return The brighter details extracted from the filtering operation.
- * resampled at full resolution.
- */
-template <class TInputImage, class TOutputImage>
-typename MRToMSConverter<TInputImage, TOutputImage>
-::OutputImageListType*
-MRToMSConverter<TInputImage, TOutputImage>
-::GetSupFilterFullResolution(void)
-{
-  return dynamic_cast<OutputImageListType*>(this->itk::ProcessObject::GetOutput(0));
-}
-/**
- * Get The InfFilter details at full resolution.
- * \return The darker details extracted from the filtering operation.
- * resampled at full resolution.
- */
-template <class TInputImage, class TOutputImage>
-typename MRToMSConverter<TInputImage, TOutputImage>
-::OutputImageListType*
-MRToMSConverter<TInputImage, TOutputImage>
-::GetInfFilterFullResolution(void)
-{
-  return dynamic_cast<OutputImageListType*>(this->itk::ProcessObject::GetOutput(1));
-}
-/**
- * Get The SupDeci details at full resolution.
- * \return The brighter details extracted from the resampling operation.
- * resampled at full resolution.
- */
-template <class TInputImage, class TOutputImage>
-typename MRToMSConverter<TInputImage, TOutputImage>
-::OutputImageListType*
-MRToMSConverter<TInputImage, TOutputImage>
-::GetSupDeciFullResolution(void)
-{
-  return dynamic_cast<OutputImageListType*>(this->itk::ProcessObject::GetOutput(3));
-}
-/**
- * Get The InfDeci details  at full resolution.
- * \return The brighter details extracted from the resampling operation.
- * resampled at full resolution.
- */
-template <class TInputImage, class TOutputImage>
-typename MRToMSConverter<TInputImage, TOutputImage>
-::OutputImageListType*
-MRToMSConverter<TInputImage, TOutputImage>
-::GetInfDeciFullResolution(void)
-{
-  return dynamic_cast<OutputImageListType*>(this->itk::ProcessObject::GetOutput(4));
-}
-/**
- * Set The input list.
- * \param imageList The analysed image at each level of the pyramid.
- */
-template <class TInputImage, class TOutputImage>
-void
-MRToMSConverter<TInputImage, TOutputImage>
-::SetInput(const InputImageListType * imageList)
-{
-  this->SetNthInput(2, const_cast<InputImageListType *>(imageList));
-}
-/**
- * Set The SupFilter details
- * \param imageList The brighter details extracted from the filtering operation.
- */
-template <class TInputImage, class TOutputImage>
-void
-MRToMSConverter<TInputImage, TOutputImage>
-::SetSupFilter(InputImageListType * imageList)
-{
-  this->SetNthInput(0, const_cast<InputImageListType *>(imageList));
-}
-/**
- * Set The InfFilter details
- * \param imageList The darker details extracted from the filtering operation.
- */
-template <class TInputImage, class TOutputImage>
-void
-MRToMSConverter<TInputImage, TOutputImage>
-::SetInfFilter(InputImageListType * imageList)
-{
-  this->SetNthInput(1, const_cast<InputImageListType *>(imageList));
-}
-/**
- * Set The SupDeci details
- * \param imageList The brighter details extracted from the filtering operation.
- */
-template <class TInputImage, class TOutputImage>
-void
-MRToMSConverter<TInputImage, TOutputImage>
-::SetSupDeci(InputImageListType * imageList)
-{
-  this->SetNthInput(3, const_cast<InputImageListType *>(imageList));
-}
-/**
- * Set The InfDeci details
- * \param imageList The darker details extracted from the filtering operation.
- */
-template <class TInputImage, class TOutputImage>
-void
-MRToMSConverter<TInputImage, TOutputImage>
-::SetInfDeci(InputImageListType * imageList)
-{
-  this->SetNthInput(4, const_cast<InputImageListType *>(imageList));
-}
-/**
- * Get the input list.
- * \return The list of the analysed image at each pyramid level.
- */
-template <class TInputImage, class TOutputImage>
-typename MRToMSConverter<TInputImage, TOutputImage>
-::InputImageListType*
-MRToMSConverter<TInputImage, TOutputImage>
-::GetInput(void)
-{
-  return dynamic_cast<InputImageListType *>(this->itk::ProcessObject::GetInput(2));
-}
-/**
- * Get The SupFilter details.
- * \return The brighter details extracted from the filtering operation
- */
-template <class TInputImage, class TOutputImage>
-typename MRToMSConverter<TInputImage, TOutputImage>
-::InputImageListType*
-MRToMSConverter<TInputImage, TOutputImage>
-::GetSupFilter(void)
-{
-  return dynamic_cast<InputImageListType *>(this->itk::ProcessObject::GetInput(0));
-}
-/**
- * Get The InfFilter details.
- * \return The darker details extracted from the filtering operation
- */
-template <class TInputImage, class TOutputImage>
-typename MRToMSConverter<TInputImage, TOutputImage>
-::InputImageListType*
-MRToMSConverter<TInputImage, TOutputImage>
-::GetInfFilter(void)
-{
-  return dynamic_cast<InputImageListType *>(this->itk::ProcessObject::GetInput(1));
-}
-/**
- * Get The SupDeci details.
- * \return The brighter details extracted from the resampling operation
- */
-template <class TInputImage, class TOutputImage>
-typename MRToMSConverter<TInputImage, TOutputImage>
-::InputImageListType*
-MRToMSConverter<TInputImage, TOutputImage>
-::GetSupDeci(void)
-{
-  return dynamic_cast<InputImageListType *>(this->itk::ProcessObject::GetInput(3));
-}
-/**
- * Get The InfDeci details.
- * \return The darker details extracted from the resampling operation.
- */
-template <class TInputImage, class TOutputImage>
-typename MRToMSConverter<TInputImage, TOutputImage>
-::InputImageListType*
-MRToMSConverter<TInputImage, TOutputImage>
-::GetInfDeci(void)
-{
-  return dynamic_cast<InputImageListType *>(this->itk::ProcessObject::GetInput(4));
-}
-/**
- * Main computation method
- */
-template <class TInputImage, class TOutputImage>
-void
-MRToMSConverter<TInputImage, TOutputImage>
-::GenerateData()
-{
-  // Input images lists pointers
-  InputImageListPointerType supFilter = this->GetSupFilter();
-  InputImageListPointerType infFilter = this->GetInfFilter();
-  InputImageListPointerType supDeci = this->GetSupDeci();
-  InputImageListPointerType infDeci = this->GetInfDeci();
-  InputImageListPointerType inputList = this->GetInput();
-
-  // Output images lists pointers
-  OutputImageListPointerType supFilterFullResolution = this->GetSupFilterFullResolution();
-  OutputImageListPointerType infFilterFullResolution = this->GetInfFilterFullResolution();
-  OutputImageListPointerType supDeciFullResolution = this->GetSupDeciFullResolution();
-  OutputImageListPointerType infDeciFullResolution = this->GetInfDeciFullResolution();
-  OutputImageListPointerType outputList = this->GetOutput();
-
-  // typedef of the resampling filter
-  typedef otb::MorphologicalPyramid::Resampler<InputImageType, OutputImageType> ResamplerType;
-
-  // Definition of the resampler filters
-  typename ResamplerType::Pointer resampler;
-
-  // Full resolution size
-  typename InputImageType::SizeType frsize = supFilter->Front()->GetLargestPossibleRegion().GetSize();
-  otbMsgDevMacro(<< "MRToMSConverter: Full resolution size: " << frsize);
-
-  // SupFilter resampling
-  otbMsgDevMacro(<< "MRToMSConverter: SupFilter resampling.");
-  InputImageListIteratorType it = supFilter->Begin();
-  // The first image does not need any resampling
-  supFilterFullResolution->PushBack(it.Get());
-  ++it;
-  for (; it != supFilter->End(); ++it)
-    {
-    resampler = ResamplerType::New();
-    resampler->SetSize(frsize);
-    resampler->SetInput(it.Get());
-    resampler->Update();
-    supFilterFullResolution->PushBack(resampler->GetOutput());
-    }
-  otbMsgDevMacro(<< "MRToMSConverter: InfFilter resampling.");
-  // InfFilter resampling
-  it = infFilter->Begin();
-  // The first image does not need any resampling
-  infFilterFullResolution->PushBack(it.Get());
-  ++it;
-  for (; it != infFilter->End(); ++it)
-    {
-    resampler = ResamplerType::New();
-    resampler->SetSize(frsize);
-    resampler->SetInput(it.Get());
-    resampler->Update();
-    infFilterFullResolution->PushBack(resampler->GetOutput());
-    }
-
-  if (inputList)
-    {
-    otbMsgDevMacro(<< "MRToMSConverter: Optional inputList resampling.");
-    // Analyse image resampling
-    it = inputList->Begin();
-    // The first image does not need any resampling
-    outputList->PushBack(it.Get());
-    ++it;
-    for (; it != inputList->End(); ++it)
-      {
-      resampler = ResamplerType::New();
-      resampler->SetSize(frsize);
-      resampler->SetInput(it.Get());
-      resampler->Update();
-      outputList->PushBack(resampler->GetOutput());
-      }
-    }
-
-  if (supDeci)
-    {
-    otbMsgDevMacro(<< "MRToMSConverter: Optional supDeci resampling.");
-    // SupDeci resampling
-    it = supDeci->Begin();
-    // The first image does not need any resampling
-    supDeciFullResolution->PushBack(it.Get());
-    ++it;
-    for (; it != supDeci->End(); ++it)
-      {
-      resampler = ResamplerType::New();
-      resampler->SetSize(frsize);
-      resampler->SetInput(it.Get());
-      resampler->Update();
-      supDeciFullResolution->PushBack(resampler->GetOutput());
-      }
-    }
-
-  if (infDeci)
-    {
-    otbMsgDevMacro(<< "MRToMSConverter: Optional infDeci resampling.");
-    // InfDeci resampling
-    it = infDeci->Begin();
-    // The first image does not need any resampling
-    infDeciFullResolution->PushBack(it.Get());
-    ++it;
-    for (; it != infDeci->End(); ++it)
-      {
-      resampler = ResamplerType::New();
-      resampler->SetSize(frsize);
-      resampler->SetInput(it.Get());
-      resampler->Update();
-      infDeciFullResolution->PushBack(resampler->GetOutput());
-      }
-    }
-}
-/**
- * PrintSelf method
- */
-template <class TInputImage, class TOutputImage>
-void
-MRToMSConverter<TInputImage, TOutputImage>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-}
-} // End namespace MorphologicalPyramid
-} // End namespace otb
-#endif
diff --git a/Modules/Filtering/MorphologicalPyramid/include/otbMorphologicalPyramidResampler.h b/Modules/Filtering/MorphologicalPyramid/include/otbMorphologicalPyramidResampler.h
deleted file mode 100644
index 7ce6013ba36c5a2a8b28627f6135a13ea942abfa..0000000000000000000000000000000000000000
--- a/Modules/Filtering/MorphologicalPyramid/include/otbMorphologicalPyramidResampler.h
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbMorphologicalPyramidResampler_h
-#define otbMorphologicalPyramidResampler_h
-
-#include "itkImageToImageFilter.h"
-
-namespace otb
-{
-namespace MorphologicalPyramid
-{
-/**
- * \class Resampler
- * \brief This class performs the resampling of the given image to the given size.
- *
- * This class performs the resampling of the given image to the given size.It is used
- * in the MorphologicalPyramidAnalyseFilter and MorphologicalPyramidSynthesisFilter.
- *
- * The resampling is done by the itk::ResampleImageFilter, templated with the interpolator
- * itk::LinearInterpolateImageFunction and the transform itk::ScaleTransform.
- *
- * \sa MorphologicalPyramidAnalyseFilter
- * \sa MorphologicalPyramidSynthesisFilter
- * \sa ResampleImageFilter
- * \sa LinearInterpolateImageFunction
- * \sa ScaleTransform
- *
- * \ingroup OTBMorphologicalPyramid
- */
-template <class TInputImage, class TOutputImage>
-class ITK_EXPORT Resampler
-  : public itk::ImageToImageFilter<TInputImage, TOutputImage>
-{
-public:
-  /** Standard typedefs */
-  typedef Resampler                                          Self;
-  typedef itk::ImageToImageFilter<TInputImage, TOutputImage> Superclass;
-  typedef itk::SmartPointer<Self>                            Pointer;
-  typedef itk::SmartPointer<const Self>                      ConstPointer;
-  /** Creation through object factory macro */
-  itkNewMacro(Self);
-  /** Type macro */
-  itkTypeMacro(Resampler, ImageToImageFilter);
-  /** Template parameters typedefs */
-  typedef TInputImage                           InputImageType;
-  typedef TOutputImage                          OutputImageType;
-  typedef typename OutputImageType::Pointer     OutputImagePointer;
-  typedef typename InputImageType::Pointer      InputImagePointer;
-  typedef typename OutputImageType::RegionType  OutputImageRegionType;
-  typedef typename TInputImage::PixelType       PixelType;
-  typedef typename InputImageType::ConstPointer InputImageConstPointer;
-  typedef typename OutputImageType::SizeType    SizeType;
-  typedef typename OutputImageType::SpacingType SpacingType;
-  /** Size parameter accessor */
-  itkSetMacro(Size, SizeType);
-  itkGetMacro(Size, SizeType);
-
-protected:
-  /** Constructor */
-  Resampler();
-  /** Destructor */
-  ~Resampler() override {}
-  /** Generate output information */
-  void GenerateOutputInformation() override;
-  /** Configure input requested region to be the largest possible region */
-  void GenerateInputRequestedRegion() override;
-  /** Configure output requested region to be the largest possible region */
-  void EnlargeOutputRequestedRegion(itk::DataObject * itkNotUsed(output)) override;
-  /** Main computation method */
-  void GenerateData() override;
-  /** PrintSelf method */
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-private:
-  Resampler(const Self &) = delete;
-  void operator =(const Self&) = delete;
-  /// Output image size
-  SizeType m_Size;
-};
-} // End namespace MorphologicalPyramid
-} // End namespace otb
-
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbMorphologicalPyramidResampler.hxx"
-#endif
-
-#endif
diff --git a/Modules/Filtering/MorphologicalPyramid/include/otbMorphologicalPyramidResampler.hxx b/Modules/Filtering/MorphologicalPyramid/include/otbMorphologicalPyramidResampler.hxx
deleted file mode 100644
index 97cbf4a3c122c794ba8e2b735c49ff8ca3f64d79..0000000000000000000000000000000000000000
--- a/Modules/Filtering/MorphologicalPyramid/include/otbMorphologicalPyramidResampler.hxx
+++ /dev/null
@@ -1,183 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbMorphologicalPyramidResampler_hxx
-#define otbMorphologicalPyramidResampler_hxx
-#include "otbMorphologicalPyramidResampler.h"
-#include "itkResampleImageFilter.h"
-#include "itkScalableAffineTransform.h"
-#include "itkNearestNeighborInterpolateImageFunction.h"
-#include "itkProgressAccumulator.h"
-
-namespace otb
-{
-namespace MorphologicalPyramid
-{
-/**
- * Constructor
- */
-template <class TInputImage, class TOutputImage>
-Resampler<TInputImage, TOutputImage>
-::Resampler()
-{
-  for (unsigned int i = 0; i < InputImageType::ImageDimension; ++i)
-    {
-    m_Size[i] = 0;
-    }
-}
-/**
- * Configure input requested region to be the largest possible region.
- */
-template <class TInputImage, class TOutputImage>
-void
-Resampler<TInputImage, TOutputImage>
-::GenerateInputRequestedRegion()
-{
-  // Superclass method call
-  Superclass::GenerateInputRequestedRegion();
-  // Input and output image pointers retrieval
-  InputImagePointer  inputPtr = const_cast<InputImageType *> (this->GetInput());
-  OutputImagePointer outputPtr = this->GetOutput();
-  // If the pointers are not correct
-  if (!inputPtr || !outputPtr)
-    {
-    // exit
-    return;
-    }
-  // else
-  // Configure input requested region to be the largest possible region
-  inputPtr->SetRequestedRegion(inputPtr->GetLargestPossibleRegion());
-}
-/**
- * Configure output requested region to be the largest possible region
- */
-template <class TInputImage, class TOutputImage>
-void
-Resampler<TInputImage, TOutputImage>
-::EnlargeOutputRequestedRegion(itk::DataObject *itkNotUsed(output))
-{
-  this->GetOutput()->SetRequestedRegion(this->GetOutput()->GetLargestPossibleRegion());
-}
-/**
- * Generate output information
- */
-template <class TInputImage, class TOutputImage>
-void
-Resampler<TInputImage, TOutputImage>
-::GenerateOutputInformation()
-{
-  // Superclass method call
-  Superclass::GenerateOutputInformation();
-  // Input and output image pointers retrieval
-  InputImageConstPointer inputPtr  = this->GetInput();
-  OutputImagePointer     outputPtr = this->GetOutput();
-  // If the pointers are not correct
-  if (!inputPtr || !outputPtr)
-    {
-    // exit
-    return;
-    }
-  unsigned int i;
-  // Computing output spacing, size and index from input data
-  const typename InputImageType::SpacingType& inputSpacing    = inputPtr->GetSignedSpacing();
-  const typename InputImageType::IndexType&   inputStartIndex = inputPtr->GetLargestPossibleRegion().GetIndex();
-  typename OutputImageType::IndexType         outputStartIndex;
-  typename OutputImageType::SpacingType       spacing;
-  for (i = 0; i < OutputImageType::ImageDimension; ++i)
-    {
-    outputStartIndex[i] =  inputStartIndex[i];
-    }
-
-  outputPtr->SetSignedSpacing(inputSpacing);
-  typename OutputImageType::RegionType outputLargestPossibleRegion;
-  outputLargestPossibleRegion.SetSize(this->GetSize());
-  outputLargestPossibleRegion.SetIndex(outputStartIndex);
-  outputPtr->SetLargestPossibleRegion(outputLargestPossibleRegion);
-}
-/**
- * Main computation method
- */
-template <class TInputImage, class TOutputImage>
-void
-Resampler<TInputImage, TOutputImage>
-::GenerateData()
-{
-  typename OutputImageType::Pointer result;
-
-  // Filters typedefs
-  typedef itk::ResampleImageFilter<InputImageType, OutputImageType>   ResampleFilterType;
-  typedef itk::ScalableAffineTransform<double, InputImageType::ImageDimension> TransformType;
-  typedef itk::LinearInterpolateImageFunction<InputImageType, double> InterpolatorType;
-
-  // Resampling filter creation
-  typename ResampleFilterType::Pointer resampler = ResampleFilterType::New();
-  typename InterpolatorType::Pointer   interpolator = InterpolatorType::New();
-  typename TransformType::Pointer      transform = TransformType::New();
-
-  // Scale parameters computation
-  typename TransformType::InputVectorType scales;
-  typename InputImageType::SizeType    inputSize = this->GetInput()->GetLargestPossibleRegion().GetSize();
-  typename InputImageType::SpacingType inputSpacing = this->GetInput()->GetSignedSpacing();
-  scales[0] = static_cast<double>(inputSize[0]) / static_cast<double>(m_Size[0]);
-  scales[1] = static_cast<double>(inputSize[1]) / static_cast<double>(m_Size[1]);
-  transform->SetScale(scales);
-  transform->SetCenter(this->GetInput()->GetOrigin());
-  typename TransformType::OutputVectorType translation;
-  translation[0] = 0.5 * inputSpacing[0] * (scales[0] - 1.0);
-  translation[1] = 0.5 * inputSpacing[1] * (scales[1] - 1.0);
-  transform->SetTranslation(translation);
-
-
-  // Resampling filter set up
-  resampler->SetTransform(transform);
-  resampler->SetInterpolator(interpolator);
-  resampler->SetOutputOrigin(this->GetInput()->GetOrigin());
-  resampler->SetSize(this->GetSize());
-  resampler->SetOutputSpacing( this->GetInput()->GetSpacing() );
-  resampler->SetOutputDirection( this->GetInput()->GetDirection() );
-  resampler->ReleaseDataFlagOn();
-
-  // Progress accumulator
-  itk::ProgressAccumulator::Pointer progress = itk::ProgressAccumulator::New();
-  progress->SetMiniPipelineFilter(this);
-  progress->RegisterInternalFilter(resampler, .5f);
-
-  // Input image connexion
-  resampler->SetInput(this->GetInput());
-  resampler->Update();
-  result = resampler->GetOutput();
-
-  /** Output filter connexion */
-  this->GraftOutput(result);
-}
-/**
- * PrintSelf method
- */
-template <class TInputImage, class TOutputImage>
-void
-Resampler<TInputImage, TOutputImage>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-  os << indent << "Size: " << m_Size << std::endl;
-}
-} // End namespace MorphologicalPyramid
-} // End namespace otb
-#endif
diff --git a/Modules/Filtering/MorphologicalPyramid/include/otbMorphologicalPyramidSegmentationFilter.h b/Modules/Filtering/MorphologicalPyramid/include/otbMorphologicalPyramidSegmentationFilter.h
deleted file mode 100644
index ea999b2a6d399ac17c860be768c528f5166feff2..0000000000000000000000000000000000000000
--- a/Modules/Filtering/MorphologicalPyramid/include/otbMorphologicalPyramidSegmentationFilter.h
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbMorphologicalPyramidSegmentationFilter_h
-#define otbMorphologicalPyramidSegmentationFilter_h
-
-#include "otbImageListToImageListFilter.h"
-namespace otb
-{
-/** \class MorphologicalPyramidSegmentationFilter
- * \brief This filter performs a segmentation of the details supFilter and infFilter extracted
- * with the morphological pyramid.
- *
- * The first step is to convert the multi-resolution analysis from the pyramid to a multi-scale one using the
- * MRToMSConverter filter.
- *
- * The segmentation algorithm used is based on seeds extraction using the ImageToPointSetFilter, followed by
- * a connected threshold segmentation using the ConnectedThresholdImageFilter. A final relabelling step is done
- * with the LabelImageFilter and RelabelImageFilter to remove object whose sizes are to small regarding the
- * MinimumObjectSize parameter. The threshold for seeds extraction and segmentation are computed using quantiles.
- *
- * A pre processing step is applied by multiplying the full resolution brighter details (resp. darker details)
- * with the original image (resp. the inverted original image). This performs an enhancement of the regions contour
- * precision.
- *
- * The details from the pyramid are set via the SetBrighterDetails() and SetDarkerDetails() methods. The brighter and
- * darker details depends on the filter used in the pyramid analysis. If the OpeningClosing filter is used, then the
- * brighter details are those from the supFilter image list, whereas if the ClosingOpening filter is used, the brighter
- * details are those from the infFilter list.
- *
- * The output of the segmentation filter is a single segmentation images list, containing first the brighter details
- * segmentation from higher scale to lower, and then the darker details in the same order. The attention of the used
- * is drawn to the fact that since the label filter used internally will deal with a large number of labels, so the
- * OutputPixelType is required to be sufficiently precise. Unsigned short or Unsigned long would be a good choice,
- * unless the user has a very good reason to think that a less precise type will be sufficient.
- *
- * \ingroup MultiScale
- * \sa MorphologicalPyramidSynthesisFilter, OpeningClosingMorphologicalFilter,
- * ClosingOpeningMorphologicalFilter, Segmenter, MRToMSConverter, Resampler
- *
- * \ingroup OTBMorphologicalPyramid
- */
-template <class TInputImage, class TOutputImage>
-class ITK_EXPORT MorphologicalPyramidSegmentationFilter
-  : public ImageListToImageListFilter<TInputImage, TOutputImage>
-{
-public:
-  /** Standard typedefs */
-  typedef MorphologicalPyramidSegmentationFilter                Self;
-  typedef ImageListToImageListFilter<TInputImage, TOutputImage> Superclass;
-  typedef itk::SmartPointer<Self>                               Pointer;
-  typedef itk::SmartPointer<const Self>                         ConstPointer;
-  /** Creation through object factory macro */
-  itkNewMacro(Self);
-  /** Type macro */
-  itkTypeMacro(MorphologicalPyramidSegmentationFilter, ImageListToImageListFilter);
-  /** Input image dimension constant macro */
-  itkStaticConstMacro(InputImageDimension, unsigned int, TInputImage::ImageDimension);
-  /** Output related typedefs */
-  typedef typename Superclass::OutputImageType        OutputImageType;
-  typedef typename OutputImageType::PixelType         OutputPixelType;
-  typedef typename Superclass::OutputImageListType    OutputImageListType;
-  typedef typename OutputImageListType::Pointer       OutputImageListPointerType;
-  typedef typename Superclass::OutputImagePointerType OutputImagePointerType;
-  typedef typename OutputImageListType::Iterator      OutputImageListIteratorType;
-  /** Input related typedefs */
-  typedef typename Superclass::InputImageType     InputImageType;
-  typedef typename InputImageType::PixelType      InputPixelType;
-  typedef typename InputImageType::Pointer        InputImagePointerType;
-  typedef typename Superclass::InputImageListType InputImageListType;
-  typedef typename InputImageListType::Pointer    InputImageListPointerType;
-  /** Vector of number of objects */
-  typedef std::vector<OutputPixelType> NumberOfObjectsVectorType;
-  /** Min object size parameter accessor */
-  itkSetMacro(MinimumObjectSize, unsigned long);
-  itkGetMacro(MinimumObjectSize, unsigned long);
-  /** Quantile for seeds extraction */
-  itkSetMacro(SeedsQuantile, double);
-  itkGetMacro(SeedsQuantile, double);
-  /** Quantile for connected thresholding */
-  itkSetMacro(ConnectedThresholdQuantile, double);
-  itkGetMacro(ConnectedThresholdQuantile, double);
-  /**
-   * Get a vector containing the number of segmented objects for each image.
-   * \return The vector.
-   */
-  NumberOfObjectsVectorType GetNumberOfObjectsVector(void);
-  /**
-   * Set the reference image.
-   * \param image The reference image which was decomposed by the pyramid.
-   */
-  void SetReferenceImage(InputImageType * image);
-  /**
-   * Set the brighter details from the pyramid. The brighter details are the supFilter or
-   * infFilter details from the pyramid, depending on the morphological filter used.
-   * \param imageList The brighter details extracted from the filtering operation.
-   */
-  void SetBrighterDetails(InputImageListType * imageList);
-  /**
-   * Set the darker details from the pyramid. The darker details are the supFilter or
-   * infFilter details from the pyramid, depending on the morphological filter used.
-   * \param imageList The darker details extracted from the filtering operation.
-   */
-  void SetDarkerDetails(InputImageListType * imageList);
-  /**
-   * Get the reference image
-   * \return The reference image.
-   */
-  InputImageType* GetReferenceImage(void);
-  /**
-   * Get the brighter details from the pyramid. The brighter details are the supFilter or
-   * infFilter details from the pyramid, depending on the morphological filter used.
-   * \return The brighter details extracted from the resampling operation.
-   */
-  InputImageListType* GetBrighterDetails(void);
-  /**
-   * Get the darker details from the pyramid. The darker details are the supFilter or
-   * infFilter details from the pyramid, depending on the morphological filter used.
-   * \return The darker details extracted from the resampling operation.
-   */
-  InputImageListType *GetDarkerDetails(void);
-
-protected:
-  /** Constructor */
-  MorphologicalPyramidSegmentationFilter();
-  /** Destructor */
-  ~MorphologicalPyramidSegmentationFilter() override;
-  void GenerateOutputInformation() override {}  // does nothing
-  /** Main computation method */
-  void GenerateData() override;
-  /** Printself method */
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-private:
-  unsigned long m_MinimumObjectSize;
-  /** Quantile for seeds determination */
-  double m_SeedsQuantile;
-  /** Quantile to set the connectedThresholdFilter threshold */
-  double m_ConnectedThresholdQuantile;
-  /** Number of segmented objects per images */
-  NumberOfObjectsVectorType m_NumberOfObjectsVector;
-};
-} // End namespace otb
-
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbMorphologicalPyramidSegmentationFilter.hxx"
-#endif
-
-#endif
diff --git a/Modules/Filtering/MorphologicalPyramid/include/otbMorphologicalPyramidSegmentationFilter.hxx b/Modules/Filtering/MorphologicalPyramid/include/otbMorphologicalPyramidSegmentationFilter.hxx
deleted file mode 100644
index eab84021facc5864d3204878b836da3088359f84..0000000000000000000000000000000000000000
--- a/Modules/Filtering/MorphologicalPyramid/include/otbMorphologicalPyramidSegmentationFilter.hxx
+++ /dev/null
@@ -1,212 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbMorphologicalPyramidSegmentationFilter_hxx
-#define otbMorphologicalPyramidSegmentationFilter_hxx
-
-#include "otbMorphologicalPyramidSegmentationFilter.h"
-
-#include "otbMorphologicalPyramidMRToMSConverter.h"
-#include "otbMorphologicalPyramidSegmenter.h"
-#include "otbMacro.h"
-
-namespace otb
-{
-/**
- * Constructor
- */
-template <class TInputImage, class TOutputImage>
-MorphologicalPyramidSegmentationFilter<TInputImage, TOutputImage>
-::MorphologicalPyramidSegmentationFilter()
-{
-  this->SetNumberOfRequiredInputs(3);
-  m_MinimumObjectSize = 10;
-  m_SeedsQuantile = 0.9;
-  m_ConnectedThresholdQuantile = 0.9;
-}
-/**
- * Destructor
- */
-template <class TInputImage, class TOutputImage>
-MorphologicalPyramidSegmentationFilter<TInputImage, TOutputImage>
-::~MorphologicalPyramidSegmentationFilter() {}
-
-/**
- * Set the reference image.
- * \param image The reference image which was decomposed by the pyramid.
- */
-template <class TInputImage, class TOutputImage>
-void
-MorphologicalPyramidSegmentationFilter<TInputImage, TOutputImage>
-::SetReferenceImage(InputImageType * image)
-{
-  this->SetNthInput(0, const_cast<InputImageType *>(image));
-}
-/**
- * Set the brighter details from the pyramid. The brighter details are the supFilter or
- * infFilter details from the pyramid, depending on the morphological filter used.
- * \param imageList The brighter details extracted from the filtering operation.
- */
-template <class TInputImage, class TOutputImage>
-void
-MorphologicalPyramidSegmentationFilter<TInputImage, TOutputImage>
-::SetBrighterDetails(InputImageListType * imageList)
-{
-  this->SetNthInput(1, const_cast<InputImageListType *>(imageList));
-}
-/**
- * Set the darker details from the pyramid. The darker details are the supFilter or
- * infFilter details from the pyramid, depending on the morphological filter used.
- * \param imageList The darker details extracted from the filtering operation.
- */
-template <class TInputImage, class TOutputImage>
-void
-MorphologicalPyramidSegmentationFilter<TInputImage, TOutputImage>
-::SetDarkerDetails(InputImageListType * imageList)
-{
-  this->SetNthInput(2, const_cast<InputImageListType *>(imageList));
-}
-/**
- * Get the reference image
- * \return The reference image.
- */
-template <class TInputImage, class TOutputImage>
-typename MorphologicalPyramidSegmentationFilter<TInputImage, TOutputImage>
-::InputImageType*
-MorphologicalPyramidSegmentationFilter<TInputImage, TOutputImage>
-::GetReferenceImage(void)
-{
-  return dynamic_cast<InputImageType *>(this->itk::ProcessObject::GetInput(0));
-}
-/**
- * Get the brighter details from the pyramid. The brighter details are the supFilter or
- * infFilter details from the pyramid, depending on the morphological filter used.
- * \param imageList The brighter details extracted from the filtering operation.
- */
-template <class TInputImage, class TOutputImage>
-typename MorphologicalPyramidSegmentationFilter<TInputImage, TOutputImage>
-::InputImageListType*
-MorphologicalPyramidSegmentationFilter<TInputImage, TOutputImage>
-::GetBrighterDetails(void)
-{
-  return dynamic_cast<InputImageListType *>(this->itk::ProcessObject::GetInput(1));
-}
-/**
- * Get the darker details from the pyramid. The darker details are the supFilter or
- * infFilter details from the pyramid, depending on the morphological filter used.
- * \return The darker details extracted from the resampling operation.
- */
-template <class TInputImage, class TOutputImage>
-typename MorphologicalPyramidSegmentationFilter<TInputImage, TOutputImage>
-::InputImageListType*
-MorphologicalPyramidSegmentationFilter<TInputImage, TOutputImage>
-::GetDarkerDetails(void)
-{
-  return dynamic_cast<InputImageListType *>(this->itk::ProcessObject::GetInput(2));
-}
-
-/**
- * Get a vector containing the number of segmented objects for each image.
- * \return The vector.
- */
-template <class TInputImage, class TOutputImage>
-typename MorphologicalPyramidSegmentationFilter<TInputImage, TOutputImage>
-::NumberOfObjectsVectorType
-MorphologicalPyramidSegmentationFilter<TInputImage, TOutputImage>
-::GetNumberOfObjectsVector(void)
-{
-  return m_NumberOfObjectsVector;
-}
-/**
- * Main computation method
- */
-template <class TInputImage, class TOutputImage>
-void
-MorphologicalPyramidSegmentationFilter<TInputImage, TOutputImage>
-::GenerateData(void)
-{
-  // Reference image pointer
-  InputImagePointerType referenceImage = this->GetReferenceImage();
-  otbMsgDevMacro("SegmentationFilter: reference image size: " << referenceImage->GetLargestPossibleRegion().GetSize());
-
-  // Output images list pointer
-  OutputImageListPointerType outputList = this->GetOutput();
-
-  // Multi resolution to multi scale filter typedef
-  typedef otb::MorphologicalPyramid::MRToMSConverter<InputImageType, InputImageType> MRToMSConverterType;
-
-  // Segmentation filter typedef
-  typedef otb::MorphologicalPyramid::Segmenter<InputImageType, OutputImageType> SegmenterType;
-
-  // MR To MS conversion
-  typename MRToMSConverterType::Pointer mrtoms = MRToMSConverterType::New();
-  mrtoms->SetSupFilter(this->GetBrighterDetails());
-  mrtoms->SetInfFilter(this->GetDarkerDetails());
-  mrtoms->Update();
-
-  // Full resolution Input images lists pointers
-  InputImageListPointerType brighter = mrtoms->GetSupFilterFullResolution();
-  InputImageListPointerType darker = mrtoms->GetInfFilterFullResolution();
-
-  // Segmentation filter definition
-  typename InputImageListType::Iterator it;
-  // Segment the supFilter details
-  for (it = brighter->Begin(); it != brighter->End(); ++it)
-    {
-    typename SegmenterType::Pointer segmenter = SegmenterType::New();
-    segmenter->SetMinimumObjectSize(m_MinimumObjectSize);
-    segmenter->SetSeedsQuantile(m_SeedsQuantile);
-    segmenter->SetConnectedThresholdQuantile(m_ConnectedThresholdQuantile);
-    segmenter->SetOriginalImage(referenceImage);
-    segmenter->SetDetailsImage(it.Get());
-    segmenter->Update();
-    m_NumberOfObjectsVector.push_back(segmenter->GetNumberOfObjects());
-    outputList->PushBack(segmenter->GetOutput());
-    }
-
-  // Segment the infFilter details
-  for (it = darker->Begin(); it != darker->End(); ++it)
-    {
-    typename SegmenterType::Pointer segmenter = SegmenterType::New();
-    segmenter->SetMinimumObjectSize(m_MinimumObjectSize);
-    segmenter->SetSeedsQuantile(m_SeedsQuantile);
-    segmenter->SetConnectedThresholdQuantile(m_ConnectedThresholdQuantile);
-    segmenter->SetOriginalImage(referenceImage);
-    segmenter->SetSegmentDarkDetailsBool(true);
-
-    segmenter->SetDetailsImage(it.Get());
-    segmenter->Update();
-    m_NumberOfObjectsVector.push_back(segmenter->GetNumberOfObjects());
-    outputList->PushBack(segmenter->GetOutput());
-    }
-}
-/**
- * PrintSelf method
- */
-template <class TInputImage, class TOutputImage>
-void
-MorphologicalPyramidSegmentationFilter<TInputImage, TOutputImage>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-}
-} // End namespace otb
-
-#endif
diff --git a/Modules/Filtering/MorphologicalPyramid/include/otbMorphologicalPyramidSegmenter.h b/Modules/Filtering/MorphologicalPyramid/include/otbMorphologicalPyramidSegmenter.h
deleted file mode 100644
index 873ee46da44eab0b49cf18fef11e36406b55c3e2..0000000000000000000000000000000000000000
--- a/Modules/Filtering/MorphologicalPyramid/include/otbMorphologicalPyramidSegmenter.h
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbMorphologicalPyramidSegmenter_h
-#define otbMorphologicalPyramidSegmenter_h
-
-#include "itkImageToImageFilter.h"
-
-namespace otb
-{
-namespace MorphologicalPyramid
-{
-/**
- * \class Segmenter
- * \brief This class performs the segmentation of a detail image extracted from a
- * morphological pyramid analysis.
- *
- * This class performs the segmentation of a detail image extracted from a
- * morphological pyramid analysis.
- *
- * The Segmentation is performed using the ConnectedThresholdImageFilter. The seeds
- * are extracted from the image using the ImageToPointSetFilter. The thresolds are set
- * by using quantiles computed with the HistogramGenerator.
- *
- * \sa MorphologicalPyramidAnalyseFilter
- * \sa MorphologicalPyramidSynthesisFilter
- * \sa ResampleImageFilter
- * \sa LinearInterpolateImageFunction
- * \sa ScaleTransform
- *
- * \ingroup OTBMorphologicalPyramid
- */
-template <class TInputImage, class TOutputImage>
-class ITK_EXPORT Segmenter
-  : public itk::ImageToImageFilter<TInputImage, TOutputImage>
-{
-public:
-  /** Standard typedefs */
-  typedef Segmenter                                          Self;
-  typedef itk::ImageToImageFilter<TInputImage, TOutputImage> Superclass;
-  typedef itk::SmartPointer<Self>                            Pointer;
-  typedef itk::SmartPointer<const Self>                      ConstPointer;
-  /** Creation through object factory macro */
-  itkNewMacro(Self);
-  /** Type macro */
-  itkTypeMacro(Segmenter, ImageToImageFilter);
-  /** Template parameters typedefs */
-  typedef TInputImage                           InputImageType;
-  typedef typename InputImageType::PixelType    InputPixelType;
-  typedef typename InputImageType::Pointer      InputImagePointerType;
-  typedef TOutputImage                          OutputImageType;
-  typedef typename OutputImageType::Pointer     OutputImagePointerType;
-  typedef typename OutputImageType::PixelType   OutputPixelType;
-  typedef typename OutputImageType::RegionType  OutputImageRegionType;
-  typedef typename OutputImageType::SizeType    SizeType;
-  typedef typename OutputImageType::SpacingType SpacingType;
-
-  /** ImageDimension constants */
-  itkStaticConstMacro(DetailsImageDimension, unsigned int,
-                      TInputImage::ImageDimension);
-  itkStaticConstMacro(OriginalImageDimension, unsigned int,
-                      TInputImage::ImageDimension);
-  itkStaticConstMacro(OutputImageDimension, unsigned int,
-                      TOutputImage::ImageDimension);
-  /**
-   * Set the details image.
-   * \param detailsImage The details image from the morphological pyramid
-   */
-  void SetDetailsImage(const InputImageType * detailsImage);
-  /**
-   * Get the details image.
-   * \return detailsImage The input details image.
-   */
-  InputImageType * GetDetailsImage(void);
-  /**
-   * Set the original image.
-   * \param originalImage The original image to segment.
-   */
-  void SetOriginalImage(const InputImageType * originalImage);
-  /**
-   * Get the original image.
-   * \return originalImage The original image to segment.
-   */
-  InputImageType * GetOriginalImage(void);
-
-  /** Min object size parameter accessor */
-  itkSetMacro(MinimumObjectSize, unsigned long);
-  itkGetMacro(MinimumObjectSize, unsigned long);
-  /** Quantile for seeds extraction */
-  itkSetMacro(SeedsQuantile, double);
-  itkGetMacro(SeedsQuantile, double);
-  /** Quantile for connected thresholding */
-  itkSetMacro(ConnectedThresholdQuantile, double);
-  itkGetMacro(ConnectedThresholdQuantile, double);
-  /** Toogle the darker detail segmentation */
-  itkSetMacro(SegmentDarkDetailsBool, bool);
-  itkGetMacro(SegmentDarkDetailsBool, bool);
-  itkBooleanMacro(SegmentDarkDetailsBool);
-  /** Get the number of segmented objects */
-  itkGetMacro(NumberOfObjects, OutputPixelType);
-
-protected:
-  /** Constructor */
-  Segmenter();
-  /** Destructor */
-  ~Segmenter() override {}
-  /** Main computation method */
-  void GenerateData(void) override;
-  /** PrintSelf method */
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-  /**
-   * Configure the input datas.
-   */
-  void GenerateInputRequestedRegion(void) override;
-  /**
-   * Configure the output data.
-   */
-  using Superclass::EnlargeOutputRequestedRegion;
-  void EnlargeOutputRequestedRegion(void);
-
-private:
-  Segmenter(const Self &) = delete;
-  void operator =(const Self&) = delete;
-  /** Minimum size for the segmented object */
-  unsigned long m_MinimumObjectSize;
-  /** Quantile for seeds determination */
-  double m_SeedsQuantile;
-  /** Quantile to set the connectedThresholdFilter threshold */
-  double m_ConnectedThresholdQuantile;
-  /** Set to true if the details to segment are darker than background */
-  bool m_SegmentDarkDetailsBool;
-  /** Number of segmented objects */
-  OutputPixelType m_NumberOfObjects;
-};
-} // End namespace MorphologicalPyramid
-} // End namespace otb
-
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbMorphologicalPyramidSegmenter.hxx"
-#endif
-
-#endif
diff --git a/Modules/Filtering/MorphologicalPyramid/include/otbMorphologicalPyramidSegmenter.hxx b/Modules/Filtering/MorphologicalPyramid/include/otbMorphologicalPyramidSegmenter.hxx
deleted file mode 100644
index 555b483dd25bdc150964a02d9fc8dab61beb90ac..0000000000000000000000000000000000000000
--- a/Modules/Filtering/MorphologicalPyramid/include/otbMorphologicalPyramidSegmenter.hxx
+++ /dev/null
@@ -1,319 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbMorphologicalPyramidSegmenter_hxx
-#define otbMorphologicalPyramidSegmenter_hxx
-
-#include "otbMorphologicalPyramidSegmenter.h"
-
-#include "otbImage.h"
-#include "itkUnaryFunctorImageFilter.h"
-#include "itkConnectedThresholdImageFilter.h"
-#include "itkConnectedComponentImageFilter.h"
-#include "itkRelabelComponentImageFilter.h"
-#include "itkThresholdImageFilter.h"
-#include "itkMultiplyImageFilter.h"
-#include "itkCastImageFilter.h"
-#include "itkInvertIntensityImageFilter.h"
-#include "itkRescaleIntensityImageFilter.h"
-#include "otbThresholdImageToPointSetFilter.h"
-#include "itkScalarImageToHistogramGenerator.h"
-#include "itkMinimumMaximumImageCalculator.h"
-
-namespace otb
-{
-namespace MorphologicalPyramid
-{
-/**
- * Constructor
- */
-template <class TInputImage, class TOutputImage>
-Segmenter<TInputImage, TOutputImage>
-::Segmenter()
-{
-  this->SetNumberOfRequiredInputs(2);
-  m_SeedsQuantile = 0.9;
-  m_MinimumObjectSize = 10;
-  m_SegmentDarkDetailsBool = false;
-  m_NumberOfObjects = 0;
-  m_ConnectedThresholdQuantile = 0.9;
-}
-/**
- * Set the details image.
- * \param detailsImage The details image from the morphological pyramid
- */
-template <class TInputImage, class TOutputImage>
-void
-Segmenter<TInputImage, TOutputImage>
-::SetDetailsImage(const InputImageType * detailsImage)
-{
-  this->SetNthInput(0, const_cast<TInputImage *>(detailsImage));
-}
-/**
- * Set the details image.
- * \return detailsImage The input details image.
- */
-template <class TInputImage, class TOutputImage>
-typename Segmenter<TInputImage, TOutputImage>::InputImageType *
-Segmenter<TInputImage, TOutputImage>
-::GetDetailsImage(void)
-{
-  return const_cast<InputImageType *>(this->GetInput(0));
-}
-/**
-  * Set the original image.
-  * \param originalImage The original image to segment.
-  */
-template <class TInputImage, class TOutputImage>
-void
-Segmenter<TInputImage, TOutputImage>
-::SetOriginalImage(const InputImageType * originalImage)
-{
-  this->SetNthInput(1, const_cast<TInputImage *>(originalImage));
-}
-/**
- * Get the original image.
- * \return originalImage The original image to segment.
- */
-template <class TInputImage, class TOutputImage>
-typename Segmenter<TInputImage, TOutputImage>::InputImageType *
-Segmenter<TInputImage, TOutputImage>
-::GetOriginalImage(void)
-{
-  return const_cast<InputImageType *>(this->GetInput(1));
-}
-/**
- * Configure the input datas.
- */
-template <class TInputImage, class TOutputImage>
-void
-Segmenter<TInputImage, TOutputImage>
-::GenerateInputRequestedRegion()
-{
-  // call the superclass' implementation of this method
-  Superclass::GenerateInputRequestedRegion();
-
-  // get pointers to the inputs
-  InputImagePointerType detailsPtr =
-    const_cast<InputImageType *>(this->GetInput(0));
-
-  InputImagePointerType origPtr =
-    const_cast<InputImageType *>(this->GetInput(1));
-
-  if (!detailsPtr || !origPtr)
-    {
-    return;
-    }
-
-  // We need to
-  // configure the inputs such that all the data is available.
-  detailsPtr->SetRequestedRegion(detailsPtr->GetLargestPossibleRegion());
-  origPtr->SetRequestedRegion(origPtr->GetLargestPossibleRegion());
-}
-/**
- * Configure the output data
- */
-template <class TInputImage, class TOutputImage>
-void
-Segmenter<TInputImage, TOutputImage>
-::EnlargeOutputRequestedRegion(void)
-{
-  this->GetOutput()
-  ->SetRequestedRegion(this->GetOutput()->GetLargestPossibleRegion());
-}
-
-/**
- * Main computation method
- */
-template <class TInputImage, class TOutputImage>
-void
-Segmenter<TInputImage, TOutputImage>
-::GenerateData()
-{
-  // Input images pointers
-  InputImagePointerType details = this->GetDetailsImage();
-  InputImagePointerType original = this->GetOriginalImage();
-
-  // Typedefs for details image enhancement
-  typedef double                                                                   FloatPixelType;
-  typedef otb::Image<FloatPixelType, InputImageType::ImageDimension>               FloatImageType;
-  typedef itk::InvertIntensityImageFilter<InputImageType, InputImageType>          InvertFilterType;
-  typedef itk::MultiplyImageFilter<FloatImageType, FloatImageType, InputImageType> MultiplyFilterType;
-  typedef itk::CastImageFilter<InputImageType, FloatImageType>                     CastImageFilterType;
-  typedef itk::MinimumMaximumImageCalculator<InputImageType>                       MinMaxCalculatorType;
-
-  //Typedefs for seeds extraction
-  typedef itk::PointSet<InputPixelType, InputImageType::ImageDimension>     PointSetType;
-  typedef otb::ThresholdImageToPointSetFilter<InputImageType, PointSetType> PointSetFilterType;
-  typedef typename PointSetType::PointsContainer::Iterator                  PointSetIteratorType;
-
-  // Typedefs for segmentation
-  typedef itk::ConnectedThresholdImageFilter<InputImageType, InputImageType>  ConnectedFilterType;
-  typedef itk::ConnectedComponentImageFilter<InputImageType, OutputImageType> LabelFilterType;
-  typedef itk::RelabelComponentImageFilter<OutputImageType, OutputImageType>  RelabelFilterType;
-  typedef itk::ThresholdImageFilter<OutputImageType>                          ThresholdFilterType;
-
-  // Typedefs for statistics computation
-  typedef itk::Statistics::ScalarImageToHistogramGenerator<InputImageType> HistGeneratorType;
-
-  /////////////////////////////////////
-  //// Details image enhancement //////
-  /////////////////////////////////////
-
-  // Filters instantiation
-  typename InvertFilterType::Pointer     invert;
-  typename CastImageFilterType::Pointer  cast1 = CastImageFilterType::New();
-  typename CastImageFilterType::Pointer  cast2 = CastImageFilterType::New();
-  typename MultiplyFilterType::Pointer   mult = MultiplyFilterType::New();
-  typename MinMaxCalculatorType::Pointer minMax =  MinMaxCalculatorType::New();
-
-  // Pipeline connection
-  cast1->SetInput(details);
-
-  minMax->SetImage(original);
-  minMax->ComputeMaximum();
-
-  // If we want to segment darker detail, the original image must have its itensity inverted
-  if (m_SegmentDarkDetailsBool)
-    {
-    invert = InvertFilterType::New();
-    invert->SetInput(original);
-    invert->SetMaximum(minMax->GetMaximum());
-    cast2->SetInput(invert->GetOutput());
-    }
-  else
-    {
-    cast2->SetInput(original);
-    }
-  mult->SetInput1(cast1->GetOutput());
-  mult->SetInput2(cast2->GetOutput());
-  mult->Update();
-
-  /////////////////////////////////////
-  //// Thresholds computation /////////
-  /////////////////////////////////////
-
-  // Filter instantiation
-  typename HistGeneratorType::Pointer histogram = HistGeneratorType::New();
-  // Seeds Threshold is computed from the quantile
-  histogram->SetInput(details);
-  histogram->SetNumberOfBins(255);
-  histogram->SetMarginalScale(10.0);
-  histogram->Compute();
-  InputPixelType pointSetThreshold =
-    static_cast<InputPixelType>(histogram->GetOutput()->Quantile(0, m_SeedsQuantile));
-
-  // Segmentation Threshold is computed from the quantile
-  histogram = HistGeneratorType::New();
-  histogram->SetInput(mult->GetOutput());
-  histogram->SetNumberOfBins(255);
-  histogram->SetMarginalScale(10.0);
-  histogram->Compute();
-  InputPixelType connectedThresholdValue =
-    static_cast<InputPixelType>(histogram->GetOutput()->Quantile(0, m_ConnectedThresholdQuantile));
-
-  /////////////////////////////////////
-  //// Seeds extraction ///////////////
-  /////////////////////////////////////
-
-  typename PointSetFilterType::Pointer pointSetFilter = PointSetFilterType::New();
-  pointSetFilter->SetInput(0, details);
-  pointSetFilter->SetLowerThreshold(pointSetThreshold);
-  pointSetFilter->Update();
-
-  /////////////////////////////////////
-  //// Segmentation ///////////////////
-  /////////////////////////////////////
-
-  // Filters instantiation
-  typename ConnectedFilterType::Pointer connectedThreshold = ConnectedFilterType::New();
-  typename LabelFilterType::Pointer     labeler = LabelFilterType::New();
-  typename RelabelFilterType::Pointer   relabeler = RelabelFilterType::New();
-  typename ThresholdFilterType::Pointer threshold = ThresholdFilterType::New();
-
-  //Passing seeds to the connected filter
-  connectedThreshold = ConnectedFilterType::New();
-  connectedThreshold->ClearSeeds();
-  connectedThreshold->SetInput(mult->GetOutput());
-  PointSetIteratorType it = pointSetFilter->GetOutput()->GetPoints()->Begin();
-  while (it != pointSetFilter->GetOutput()->GetPoints()->End())
-    {
-    typename OutputImageType::IndexType index;
-    index[0] = static_cast<long int>(it.Value()[0]);
-    index[1] = static_cast<long int>(it.Value()[1]);
-    connectedThreshold->AddSeed(index);
-    ++it;
-    }
-
-  // segmentation
-  connectedThreshold->SetLower(connectedThresholdValue);
-
-  // labelling
-  labeler = LabelFilterType::New();
-  relabeler = RelabelFilterType::New();
-  labeler->SetInput(connectedThreshold->GetOutput());
-  relabeler->SetInput(labeler->GetOutput());
-  relabeler->SetMinimumObjectSize(m_MinimumObjectSize);
-  relabeler->Update();
-
-  // In some cases it might happen that the whole extent of the image is segmented as a single region.
-  // Since this is not desirable, we test this case here to avoid it.
-  threshold = ThresholdFilterType::New();
-  threshold->SetInput(relabeler->GetOutput());
-  OutputPixelType num = 0;
-  if (relabeler->GetNumberOfObjects() == 1)
-    {
-    unsigned int surface = mult->GetOutput()->GetLargestPossibleRegion().GetSize()[0]
-                           * mult->GetOutput()->GetLargestPossibleRegion().GetSize()[1];
-    if (relabeler->GetSizeOfObjectsInPixels()[0] == surface)
-      {
-      num = 0;
-      }
-    else
-      {
-      num = 1;
-      }
-    }
-  else
-    {
-    num = static_cast<OutputPixelType>(relabeler->GetNumberOfObjects());
-    }
-  threshold->ThresholdOutside(0, num);
-
-  // Output connection
-  threshold->GraftOutput(this->GetOutput());
-  threshold->Update();
-  this->GraftOutput(threshold->GetOutput());
-  m_NumberOfObjects = num;
-}
-/**
- * PrintSelf method
- */
-template <class TInputImage, class TOutputImage>
-void
-Segmenter<TInputImage, TOutputImage>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-
-}
-} // End namespace MorphologicalPyramid
-} // End namespace otb
-#endif
diff --git a/Modules/Filtering/MorphologicalPyramid/include/otbMorphologicalPyramidSynthesisFilter.h b/Modules/Filtering/MorphologicalPyramid/include/otbMorphologicalPyramidSynthesisFilter.h
deleted file mode 100644
index 20a8f447aef515dbb646b154de76e1fe832bca29..0000000000000000000000000000000000000000
--- a/Modules/Filtering/MorphologicalPyramid/include/otbMorphologicalPyramidSynthesisFilter.h
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbMorphologicalPyramidSynthesisFilter_h
-#define otbMorphologicalPyramidSynthesisFilter_h
-
-#include "otbImageToImageListFilter.h"
-
-namespace otb
-{
-/**
- * \class MorphologicalPyramidSynthesisFilter
- * \brief Recomposition of the multiscale analysis performed with
- * a MorphologicalPyramidAnalyseFilter.
- *
- * Once a morphological pyramidal decompisition has been made, it is
- * possible to rebuild without any loss of information the original
- * image at full resolution. The MorphologicalPyramidsynthesisFilter
- * provides such a functionality. At each iteration, it performs the
- * up-sampling of the current image using the
- * otb::morphologicalPyramid::Resampler filter, the addition of
- * the details lost in down-sampling, and the addition of the details
- * lost in smoothing.
- *
- * \ingroup MultiScale
- * \sa MorphologicalPyramidAnalyseFilter
- * \sa MorphologicalPyramidResampler
- *
- * \ingroup OTBMorphologicalPyramid
- */
-template <class TInputImage, class TOutputImage>
-class ITK_EXPORT MorphologicalPyramidSynthesisFilter
-  : public ImageToImageListFilter<TInputImage, TOutputImage>
-{
-public:
-  /** Standard typedefs */
-  typedef MorphologicalPyramidSynthesisFilter               Self;
-  typedef ImageToImageListFilter<TInputImage, TOutputImage> Superclass;
-  typedef itk::SmartPointer<Self>                           Pointer;
-  typedef itk::SmartPointer<const Self>                     ConstPointer;
-  /** Creation through object factory macro */
-  itkNewMacro(Self);
-  /** Type macro */
-  itkTypeMacro(MorphologicalPyramidSynthesisFilter, MorphologicalPyramidSynthesisFilter);
-  /** Input image dimension constant macro */
-  itkStaticConstMacro(InputImageDimension, unsigned int, TInputImage::ImageDimension);
-  /** Output related typedefs */
-  typedef typename Superclass::OutputImageType                      OutputImageType;
-  typedef typename Superclass::OutputImageListType                  OutputImageListType;
-  typedef typename OutputImageListType::Pointer                     OutputImageListPointerType;
-  typedef typename Superclass::OutputImagePointerType               OutputImagePointerType;
-  typedef typename Superclass::OutputImageListType::Iterator        ImageListIterator;
-  typedef typename Superclass::OutputImageListType::ReverseIterator ImageListReverseIterator;
-  /** Input related typedefs */
-  typedef typename Superclass::InputImageType       InputImageType;
-  typedef typename Superclass::InputImageRegionType InputImageRegionType;
-  typedef typename InputImageType::Pointer          InputImagePointer;
-  typedef typename InputImageType::ConstPointer     InputImageConstPointer;
-  typedef typename InputImageType::SizeType         SizeType;
-  typedef typename InputImageType::ValueType        ValueType;
-  typedef typename InputImageType::PixelType        PixelType;
-  typedef typename InputImageType::SpacingType      SpacingType;
-  typedef otb::ImageList<InputImageType>            InputImageListType;
-  typedef typename InputImageListType::Pointer      InputImageListPointerType;
-  /** Size vector typedefs */
-  typedef std::vector<SizeType>                     SizeVectorType;
-  typedef typename SizeVectorType::iterator         SizeIterator;
-  typedef typename SizeVectorType::reverse_iterator SizeReverseIterator;
-  /**
-   * Set The SupFilter details
-   * \param imageList The brighter details extracted from the filtering operation.
-   */
-  void SetSupFilter(InputImageListType * imageList);
-  /**
-   * Set The InfFilter details
-   * \param imageList The darker details extracted from the filtering operation.
-   */
-  void SetInfFilter(InputImageListType * imageList);
-  /**
-   * Set The SupDeci details
-   * \param imageList The brighter details extracted from the filtering operation.
-   */
-  void SetSupDeci(InputImageListType * imageList);
-  /**
-   * Set The InfDeci details
-   * \param imageList The darker details extracted from the filtering operation.
-   */
-  void SetInfDeci(InputImageListType * imageList);
-  /**
-   * Get The SupFilter details
-   * \return The brighter details extracted from the filtering operation.
-   */
-  InputImageListType* GetSupFilter(void);
-  /**
-   * Get The InfFilter details
-   * \return The darker details extracted from the filtering operation.
-   */
-  InputImageListType* GetInfFilter(void);
-  /**
-   * Get The SupDeci details
-   * \return The brighter details extracted from the resampling operation.
-   */
-  InputImageListType* GetSupDeci(void);
-  /**
-   * Get The InfDeci details
-   * \return The brighter details extracted from the resampling operation.
-   */
-  InputImageListType* GetInfDeci(void);
-
-protected:
-  /** Constructor */
-  MorphologicalPyramidSynthesisFilter();
-  /** Destructor */
-  ~MorphologicalPyramidSynthesisFilter() override;
-  void GenerateOutputInformation() override {}  // does nothing
-  /** Main computation method */
-  void GenerateData() override;
-  /** Printself method */
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-};
-} // End namespace otb
-
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbMorphologicalPyramidSynthesisFilter.hxx"
-#endif
-
-#endif
diff --git a/Modules/Filtering/MorphologicalPyramid/include/otbMorphologicalPyramidSynthesisFilter.hxx b/Modules/Filtering/MorphologicalPyramid/include/otbMorphologicalPyramidSynthesisFilter.hxx
deleted file mode 100644
index 3f8d81ccf76f316314434ba1c39437c007115289..0000000000000000000000000000000000000000
--- a/Modules/Filtering/MorphologicalPyramid/include/otbMorphologicalPyramidSynthesisFilter.hxx
+++ /dev/null
@@ -1,260 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbMorphologicalPyramidSynthesisFilter_hxx
-#define otbMorphologicalPyramidSynthesisFilter_hxx
-
-#include "otbMorphologicalPyramidSynthesisFilter.h"
-
-#include "otbMorphologicalPyramidResampler.h"
-#include "itkSubtractImageFilter.h"
-#include "itkAddImageFilter.h"
-#include "itkImageDuplicator.h"
-#include "otbMacro.h"
-
-namespace otb
-{
-/**
- * Constructor
- */
-template <class TInputImage, class TOutputImage>
-MorphologicalPyramidSynthesisFilter<TInputImage, TOutputImage>
-::MorphologicalPyramidSynthesisFilter()
-{
-  this->SetNumberOfRequiredInputs(5);
-}
-/**
- * Destructor
- */
-template <class TInputImage, class TOutputImage>
-MorphologicalPyramidSynthesisFilter<TInputImage, TOutputImage>
-::~MorphologicalPyramidSynthesisFilter() {}
-/**
- * Set The SupFilter details
- * \param imageList The brighter details extracted from the filtering operation.
- */
-template <class TInputImage, class TOutputImage>
-void
-MorphologicalPyramidSynthesisFilter<TInputImage, TOutputImage>
-::SetSupFilter(InputImageListType * imageList)
-{
-  this->SetNthInput(1, const_cast<InputImageListType *>(imageList));
-}
-/**
- * Set The InfFilter details
- * \param imageList The darker details extracted from the filtering operation.
- */
-template <class TInputImage, class TOutputImage>
-void
-MorphologicalPyramidSynthesisFilter<TInputImage, TOutputImage>
-::SetInfFilter(InputImageListType * imageList)
-{
-  this->SetNthInput(2, const_cast<InputImageListType *>(imageList));
-}
-
-/**
-  * Set The SupDeci details
-  * \param imageList The brighter details extracted from the filtering operation.
-  */
-template <class TInputImage, class TOutputImage>
-void
-MorphologicalPyramidSynthesisFilter<TInputImage, TOutputImage>
-::SetSupDeci(InputImageListType * imageList)
-{
-  this->SetNthInput(3, const_cast<InputImageListType *>(imageList));
-}
-/**
- * Set The InfDeci details
- * \param imageList The darker details extracted from the filtering operation.
- */
-template <class TInputImage, class TOutputImage>
-void
-MorphologicalPyramidSynthesisFilter<TInputImage, TOutputImage>
-::SetInfDeci(InputImageListType * imageList)
-{
-  this->SetNthInput(4, const_cast<InputImageListType *>(imageList));
-}
-
-/**
- * Get The SupFilter details
- * \return The brighter details extracted from the filtering operation.
- */
-template <class TInputImage, class TOutputImage>
-typename MorphologicalPyramidSynthesisFilter<TInputImage, TOutputImage>
-::InputImageListType*
-MorphologicalPyramidSynthesisFilter<TInputImage, TOutputImage>
-::GetSupFilter(void)
-{
-  return dynamic_cast<InputImageListType *>(this->itk::ProcessObject::GetInput(1));
-}
-/**
- * Get The InfFilter details
- * \return The darker details extracted from the filtering operation.
- */
-template <class TInputImage, class TOutputImage>
-typename MorphologicalPyramidSynthesisFilter<TInputImage, TOutputImage>
-::InputImageListType*
-MorphologicalPyramidSynthesisFilter<TInputImage, TOutputImage>
-::GetInfFilter(void)
-{
-  return dynamic_cast<InputImageListType *>(this->itk::ProcessObject::GetInput(2));
-}
-/**
- * Get The SupDeci details
- * \return The brighter details extracted from the resampling operation.
- */
-template <class TInputImage, class TOutputImage>
-typename MorphologicalPyramidSynthesisFilter<TInputImage, TOutputImage>
-::InputImageListType*
-MorphologicalPyramidSynthesisFilter<TInputImage, TOutputImage>
-::GetSupDeci(void)
-{
-  return dynamic_cast<InputImageListType *>(this->itk::ProcessObject::GetInput(3));
-}
-/**
- * Get The InfDeci details
- * \return The darker details extracted from the resampling operation.
- */
-template <class TInputImage, class TOutputImage>
-typename MorphologicalPyramidSynthesisFilter<TInputImage, TOutputImage>
-::InputImageListType*
-MorphologicalPyramidSynthesisFilter<TInputImage, TOutputImage>
-::GetInfDeci(void)
-{
-  return dynamic_cast<InputImageListType *>(this->itk::ProcessObject::GetInput(4));
-}
-/**
- * Main computation method
- */
-template <class TInputImage, class TOutputImage>
-void
-MorphologicalPyramidSynthesisFilter<TInputImage, TOutputImage>
-::GenerateData(void)
-{
-  otbMsgDevMacro(<< "MorphologicalPyramidSynthesisFilter : Entering main method.");
-  // Input image pointer
-  InputImageListType * supFilter = this->GetSupFilter();
-  InputImageListType * infFilter = this->GetInfFilter();
-  InputImageListType * supDeci = this->GetSupDeci();
-  InputImageListType * infDeci = this->GetInfDeci();
-
-  // Output pointer
-  OutputImageListType * OutputImageList   = this->GetOutput();
-
-  // typedefs of the filters
-  typedef itk::SubtractImageFilter<InputImageType, InputImageType, OutputImageType> SubtractFilterType;
-  typedef itk::AddImageFilter<InputImageType, InputImageType, InputImageType>       AddFilterType;
-  typedef otb::MorphologicalPyramid::Resampler<InputImageType, InputImageType>      ResamplerType;
-  typedef itk::ImageDuplicator<InputImageType>                                      DuplicatorType;
-
-  // Input Image duplication to the currentImage Pointer
-  typename DuplicatorType::Pointer duplicator = DuplicatorType::New();
-  duplicator->SetInputImage(this->GetInput());
-  duplicator->Update();
-
-  // Input Image duplication to the currentImage Pointer
-  typename InputImageType::Pointer currentImage = duplicator->GetOutput();
-
-  // Filters declarations
-  typename AddFilterType::Pointer      add1, add2;
-  typename SubtractFilterType::Pointer subtract1, subtract2;
-  typename ResamplerType::Pointer      resampler;
-
-  // Size vector computation
-  SizeVectorType size;
-
-  ImageListIterator it = supFilter->Begin();
-
-  while (it != supFilter->End())
-    {
-    size.push_back(it.Get()->GetLargestPossibleRegion().GetSize());
-    ++it;
-    }
-  otbMsgDevMacro(<< "MorphologicalPyramidSynthesisFilter : Size vector computation OK");
-
-  // Iterators definition
-  ImageListReverseIterator itinfFilter = infFilter->ReverseBegin();
-  ImageListReverseIterator itsupFilter = supFilter->ReverseBegin();
-  ImageListReverseIterator itinfDeci = infDeci->ReverseBegin();
-  ImageListReverseIterator itsupDeci = supDeci->ReverseBegin();
-  SizeReverseIterator      itSize = size.rbegin();
-
-  int i = 1;
-//--------------------------------------------------------//
-//                      Main loop                         //
-//--------------------------------------------------------//
-  while (itinfFilter != infFilter->ReverseEnd()
-         && itsupFilter != supFilter->ReverseEnd()
-         && itinfDeci != infDeci->ReverseEnd()
-         && itsupDeci != supDeci->ReverseEnd()
-         && itSize != size.rend())
-    {
-
-    ++i;
-    // Upsampling current image
-    resampler = ResamplerType::New();
-    resampler->SetSize(*itSize);
-    resampler->SetInput(currentImage);
-    resampler->Update();
-    otbMsgDevMacro(<< "MorphologicalPyramidSynthesisFilter: step " << i << " Upsampling OK");
-    // Adding *sup details from current level
-    add1 = AddFilterType::New();
-    add1->SetInput1(resampler->GetOutput());
-    add1->SetInput2(itsupFilter.Get());
-    add2 = AddFilterType::New();
-    add2->SetInput1(add1->GetOutput());
-    add2->SetInput2(itsupDeci.Get());
-
-    // Adding *inf details from current level
-    subtract1 = SubtractFilterType::New();
-    subtract1->SetInput1(add2->GetOutput());
-    subtract1->SetInput2(itinfFilter.Get());
-    subtract2 = SubtractFilterType::New();
-    subtract2->SetInput1(subtract1->GetOutput());
-    subtract2->SetInput2(itinfDeci.Get());
-    subtract2->Update();
-    otbMsgDevMacro(<< "MorphologicalPyramidSynthesisFilter: step " << i << " Details addition OK");
-
-    // Updating current image
-    currentImage = subtract2->GetOutput();
-    OutputImageList->PushBack(currentImage);
-
-    // Iterators incrementation
-    ++itsupFilter;
-    ++itinfFilter;
-    ++itsupDeci;
-    ++itinfDeci;
-    ++itSize;
-    }
-  otbMsgDevMacro(<< "MorphologicalPyramidSynthesisFilter: Exiting main method.");
-}
-/**
- * PrintSelf method
- */
-template <class TInputImage, class TOutputImage>
-void
-MorphologicalPyramidSynthesisFilter<TInputImage, TOutputImage>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-}
-} // End namespace otb
-
-#endif
diff --git a/Modules/Filtering/MorphologicalPyramid/otb-module.cmake b/Modules/Filtering/MorphologicalPyramid/otb-module.cmake
deleted file mode 100644
index 677f456dbaf8e456576007b5ba645deeb8e4a3f0..0000000000000000000000000000000000000000
--- a/Modules/Filtering/MorphologicalPyramid/otb-module.cmake
+++ /dev/null
@@ -1,43 +0,0 @@
-#
-# Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
-#
-# This file is part of Orfeo Toolbox
-#
-#     https://www.orfeo-toolbox.org/
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-set(DOCUMENTATION "If the smoothing filter used in the pyramidal analysis is a
-morphological filter, one cannot safely subsample the filtered image without loss
-of information. However, by keeping the details possibly lost in the
-down-sampling operation, such a decomposition can be used. The Morphological Pyramid is an
-approach to such a decomposition. This module contains classes useful in meeting
-that goal.")
-
-otb_module(OTBMorphologicalPyramid
-  DEPENDS
-    OTBCommon
-    OTBITK
-    OTBImageBase
-    OTBObjectList
-    OTBPointSet
-
-  TEST_DEPENDS
-    OTBImageIO
-    OTBMorphologicalProfiles
-    OTBTestKernel
-
-  DESCRIPTION
-    "${DOCUMENTATION}"
-)
diff --git a/Modules/Filtering/MorphologicalPyramid/test/CMakeLists.txt b/Modules/Filtering/MorphologicalPyramid/test/CMakeLists.txt
deleted file mode 100644
index 90bf757fdcb09ac89bbd1b9deb5899cd11f81b1f..0000000000000000000000000000000000000000
--- a/Modules/Filtering/MorphologicalPyramid/test/CMakeLists.txt
+++ /dev/null
@@ -1,148 +0,0 @@
-#
-# Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
-#
-# This file is part of Orfeo Toolbox
-#
-#     https://www.orfeo-toolbox.org/
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-otb_module_test()
-
-set(OTBMorphologicalPyramidTests
-otbMorphologicalPyramidTestDriver.cxx
-otbMorphologicalPyramidAnalysisFilter.cxx
-otbMorphologicalPyramidSegmenter.cxx
-otbMorphologicalPyramidSynthesisFilter.cxx
-otbMorphologicalPyramidMRToMSConverter.cxx
-otbMorphologicalPyramidResampler.cxx
-otbMorphologicalPyramidSegmentationFilter.cxx
-)
-
-add_executable(otbMorphologicalPyramidTestDriver ${OTBMorphologicalPyramidTests})
-target_link_libraries(otbMorphologicalPyramidTestDriver ${OTBMorphologicalPyramid-Test_LIBRARIES})
-otb_module_target_label(otbMorphologicalPyramidTestDriver)
-
-# Tests Declaration
-
-otb_add_test(NAME msTvMorphoPyrAnalysisFilter COMMAND otbMorphologicalPyramidTestDriver
-  --compare-n-images ${NOTOL} 5
-  ${BASELINE}/msPyrAn_mire_log_an_2.png
-  ${TEMP}/msPyrAn_mire_log_an_2.png
-  ${BASELINE}/msPyrAn_mire_log_sf_2.png
-  ${TEMP}/msPyrAn_mire_log_sf_2.png
-  ${BASELINE}/msPyrAn_mire_log_if_2.png
-  ${TEMP}/msPyrAn_mire_log_if_2.png
-  ${BASELINE}/msPyrAn_mire_log_sd_2.png
-  ${TEMP}/msPyrAn_mire_log_sd_2.png
-  ${BASELINE}/msPyrAn_mire_log_id_2.png
-  ${TEMP}/msPyrAn_mire_log_id_2.png
-  otbMorphologicalPyramidAnalysisFilter
-  ${INPUTDATA}/mire_log.png
-  ${TEMP}/msPyrAn_mire_log
-  png
-  2
-  2.0)
-
-otb_add_test(NAME msTvMorphoPyrSegmentBright COMMAND otbMorphologicalPyramidTestDriver
-  --compare-image ${NOTOL}
-  ${BASELINE}/msPyrSegmenter_IKO_Halles_4_2_sf.tif
-  ${TEMP}/msPyrSegmenter_IKO_Halles_4_2_sf.tif
-  otbMorphologicalPyramidSegmenter
-  ${TEMP}/msPyrMRToMS_IKO_Halles_4_2_sf_full.tif
-  ${INPUTDATA}/ROI_IKO_PAN_LesHalles.tif
-  ${TEMP}/msPyrSegmenter_IKO_Halles_4_2_sf.tif
-  0
-  0.9
-  0.9
-  10
-  )
-set_property(TEST msTvMorphoPyrSegmentBright PROPERTY DEPENDS msTvMorphoPyrMRToMSConverter)
-
-otb_add_test(NAME msTvMorphoPyrSegmentDark COMMAND otbMorphologicalPyramidTestDriver
-  --compare-image ${NOTOL}
-  ${BASELINE}/msPyrSegmenter_IKO_Halles_4_2_if.tif
-  ${TEMP}/msPyrSegmenter_IKO_Halles_4_2_if.tif
-  otbMorphologicalPyramidSegmenter
-  ${TEMP}/msPyrMRToMS_IKO_Halles_4_2_if_full.tif
-  ${INPUTDATA}/ROI_IKO_PAN_LesHalles.tif
-  ${TEMP}/msPyrSegmenter_IKO_Halles_4_2_if.tif
-  1
-  0.9
-  0.9
-  10
-  )
-set_property(TEST msTvMorphoPyrSegmentDark PROPERTY DEPENDS msTvMorphoPyrMRToMSConverter)
-
-otb_add_test(NAME msTvMorphoPyrSynthesisFilter COMMAND otbMorphologicalPyramidTestDriver
-  --compare-image ${NOTOL}
-  ${INPUTDATA}/ROI_IKO_PAN_LesHalles.tif
-  ${TEMP}/msPyrSynth_IKO_Halles_4_2.tif
-  otbMorphologicalPyramidSynthesisFilter
-  ${INPUTDATA}/ROI_IKO_PAN_LesHalles.tif
-  ${TEMP}/msPyrSynth_IKO_Halles_4_2.tif
-  4
-  2.0)
-
-otb_add_test(NAME msTvMorphoPyrMRToMSConverter COMMAND otbMorphologicalPyramidTestDriver
-  --compare-n-images ${EPSILON_8} 3
-  ${BASELINE}/msPyrMRToMS_IKO_Halles_4_2_sf_full.tif
-  ${TEMP}/msPyrMRToMS_IKO_Halles_4_2_sf_full.tif
-  ${BASELINE}/msPyrMRToMS_IKO_Halles_4_2_if_full.tif
-  ${TEMP}/msPyrMRToMS_IKO_Halles_4_2_if_full.tif
-  ${BASELINE}/msPyrMRToMS_IKO_Halles_4_2_an_full.tif
-  ${TEMP}/msPyrMRToMS_IKO_Halles_4_2_an_full.tif
-  otbMorphologicalPyramidMRToMSConverter
-  ${INPUTDATA}/ROI_IKO_PAN_LesHalles.tif
-  ${TEMP}/msPyrMRToMS_IKO_Halles_4_2_sf_full.tif
-  ${TEMP}/msPyrMRToMS_IKO_Halles_4_2_if_full.tif
-  ${TEMP}/msPyrMRToMS_IKO_Halles_4_2_an_full.tif
-  4
-  2.0)
-
-otb_add_test(NAME msTvMorphoPyrResampler COMMAND otbMorphologicalPyramidTestDriver
-  --compare-n-images ${EPSILON_8} 2
-  ${BASELINE}/msPyrResampler_IKO_LesHalles_256_2.tif
-  ${TEMP}/msPyrResampler_IKO_LesHalles_256_2.tif
-  ${BASELINE}/msPyrResampler_IKO_LesHalles_full.tif
-  ${TEMP}/msPyrResampler_IKO_LesHalles_full.tif
-  otbMorphologicalPyramidResampler
-  ${INPUTDATA}/ROI_IKO_PAN_LesHalles.tif
-  ${TEMP}/msPyrResampler_IKO_LesHalles_256_2.tif
-  ${TEMP}/msPyrResampler_IKO_LesHalles_full.tif
-  256
-  256
-  )
-
-otb_add_test(NAME msTvMorphoPyrSegmentationFilter COMMAND otbMorphologicalPyramidTestDriver
-  --compare-n-images ${NOTOL} 4
-  ${BASELINE}/msPyrSegmentation_IKO_Halles_2.tif
-  ${TEMP}/msPyrSegmentation_IKO_Halles_2.tif
-  ${BASELINE}/msPyrSegmentation_IKO_Halles_4.tif
-  ${TEMP}/msPyrSegmentation_IKO_Halles_4.tif
-  ${BASELINE}/msPyrSegmentation_IKO_Halles_5.tif
-  ${TEMP}/msPyrSegmentation_IKO_Halles_5.tif
-  ${BASELINE}/msPyrSegmentation_IKO_Halles_7.tif
-  ${TEMP}/msPyrSegmentation_IKO_Halles_7.tif
-  otbMorphologicalPyramidSegmentationFilter
-  ${INPUTDATA}/ROI_IKO_PAN_LesHalles.tif
-  ${TEMP}/msPyrSegmentation_IKO_Halles_
-  tif
-  4
-  2.0
-  0.9
-  0.9
-  10
-  )
-
diff --git a/Modules/Filtering/MorphologicalPyramid/test/otbMorphologicalPyramidAnalysisFilter.cxx b/Modules/Filtering/MorphologicalPyramid/test/otbMorphologicalPyramidAnalysisFilter.cxx
deleted file mode 100644
index c2704c3627f73b4d0a830b6fdaf65a4d46cb44fe..0000000000000000000000000000000000000000
--- a/Modules/Filtering/MorphologicalPyramid/test/otbMorphologicalPyramidAnalysisFilter.cxx
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "itkMacro.h"
-
-#include "otbMorphologicalPyramidAnalysisFilter.h"
-#include "otbOpeningClosingMorphologicalFilter.h"
-#include "itkBinaryBallStructuringElement.h"
-#include "otbImageFileReader.h"
-#include "otbImageFileWriter.h"
-#include "otbImage.h"
-
-int otbMorphologicalPyramidAnalysisFilter(int itkNotUsed(argc), char * argv[])
-{
-  const char *       inputFilename = argv[1];
-  const char *       outputFilenamePrefix = argv[2];
-  const char *       outputFilenameSuffix = argv[3];
-  const unsigned int numberOfLevels = atoi(argv[4]);
-  const float        decimationRatio = atof(argv[5]);
-
-  const unsigned int Dimension = 2;
-  typedef unsigned char InputPixelType;
-  typedef unsigned char OutputPixelType;
-
-  typedef otb::Image<InputPixelType, Dimension>  InputImageType;
-  typedef otb::Image<OutputPixelType, Dimension> OutputImageType;
-
-  typedef otb::ImageFileReader<InputImageType>  ReaderType;
-  typedef otb::ImageFileWriter<OutputImageType> WriterType;
-
-  typedef itk::BinaryBallStructuringElement<InputPixelType, Dimension> StructuringElementType;
-  typedef otb::OpeningClosingMorphologicalFilter<InputImageType, InputImageType, StructuringElementType>
-  OpeningClosingFilterType;
-  typedef otb::MorphologicalPyramidAnalysisFilter<InputImageType, OutputImageType, OpeningClosingFilterType>
-  PyramidFilterType;
-  typedef PyramidFilterType::OutputImageListType::Iterator ImageListIterator;
-
-  // Reading input image
-  ReaderType::Pointer reader = ReaderType::New();
-  reader->SetFileName(inputFilename);
-
-  // Instantiation
-  PyramidFilterType::Pointer pyramid = PyramidFilterType::New();
-  pyramid->SetNumberOfLevels(numberOfLevels);
-  pyramid->SetDecimationRatio(decimationRatio);
-  pyramid->SetInput(reader->GetOutput());
-  pyramid->Update();
-
-  // Retrieving iterators on the results images
-  ImageListIterator itAnalyse = pyramid->GetOutput()->Begin();
-  ImageListIterator itSupFilter = pyramid->GetSupFilter()->Begin();
-  ImageListIterator itInfFilter = pyramid->GetInfFilter()->Begin();
-  ImageListIterator itInfDeci = pyramid->GetInfDeci()->Begin();
-  ImageListIterator itSupDeci =  pyramid->GetSupDeci()->Begin();
-
-  WriterType::Pointer writer =  WriterType::New();
-
-  int i = 1;
-  //      std::stringstream oss;
-  std::ostringstream oss;
-  // Writing the results images
-  while ((itAnalyse != pyramid->GetOutput()->End())
-         && (itSupFilter != pyramid->GetSupFilter()->End())
-         && (itInfFilter != pyramid->GetInfFilter()->End())
-         && (itInfDeci != pyramid->GetInfDeci()->End())
-         && (itSupDeci != pyramid->GetSupDeci()->End())
-         )
-    {
-    oss << outputFilenamePrefix << "_an_" << i << "." << outputFilenameSuffix;
-    writer->SetInput(itAnalyse.Get());
-    writer->SetFileName(oss.str());
-    writer->Update();
-    oss.str("");
-    oss << outputFilenamePrefix << "_sf_" << i << "." << outputFilenameSuffix;
-    writer->SetInput(itSupFilter.Get());
-    writer->SetFileName(oss.str());
-    writer->Update();
-    oss.str("");
-    oss << outputFilenamePrefix << "_if_" << i << "." << outputFilenameSuffix;
-    writer->SetInput(itInfFilter.Get());
-    writer->SetFileName(oss.str());
-    writer->Update();
-    oss.str("");
-    oss << outputFilenamePrefix << "_id_" << i << "." << outputFilenameSuffix;
-    writer->SetInput(itInfDeci.Get());
-    writer->SetFileName(oss.str());
-    writer->Update();
-    std::cout << "File " << oss.str() << " written" << std::endl;
-    oss.str("");
-    oss << outputFilenamePrefix << "_sd_" << i << "." << outputFilenameSuffix;
-    writer->SetInput(itSupDeci.Get());
-    writer->SetFileName(oss.str());
-    writer->Update();
-    oss.str("");
-    ++itAnalyse;
-    ++itSupFilter;
-    ++itInfFilter;
-    ++itInfDeci;
-    ++itSupDeci;
-    ++i;
-    }
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/Filtering/MorphologicalPyramid/test/otbMorphologicalPyramidMRToMSConverter.cxx b/Modules/Filtering/MorphologicalPyramid/test/otbMorphologicalPyramidMRToMSConverter.cxx
deleted file mode 100644
index cfc82520f07c0d3996c88da2a996b42b1058f4b2..0000000000000000000000000000000000000000
--- a/Modules/Filtering/MorphologicalPyramid/test/otbMorphologicalPyramidMRToMSConverter.cxx
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "itkMacro.h"
-
-#include "otbMorphologicalPyramidAnalysisFilter.h"
-#include "otbMorphologicalPyramidMRToMSConverter.h"
-#include "otbOpeningClosingMorphologicalFilter.h"
-#include "itkBinaryBallStructuringElement.h"
-#include "otbImageFileReader.h"
-#include "otbImageFileWriter.h"
-#include "otbImage.h"
-
-int otbMorphologicalPyramidMRToMSConverter(int itkNotUsed(argc), char * argv[])
-{
-  const char *       inputFilename = argv[1];
-  const char *       outputFilename1 = argv[2];
-  const char *       outputFilename2 = argv[3];
-  const char *       outputFilename3 = argv[4];
-  const unsigned int numberOfLevels = atoi(argv[5]);
-  const float        decimationRatio = atof(argv[6]);
-
-  const unsigned int Dimension = 2;
-  typedef double InputPixelType;
-  typedef double OutputPixelType;
-
-  typedef otb::Image<InputPixelType, Dimension>  InputImageType;
-  typedef otb::Image<OutputPixelType, Dimension> OutputImageType;
-
-  typedef otb::ImageFileReader<InputImageType>  ReaderType;
-  typedef otb::ImageFileWriter<OutputImageType> WriterType;
-
-  typedef itk::BinaryBallStructuringElement<InputPixelType, Dimension> StructuringElementType;
-  typedef otb::OpeningClosingMorphologicalFilter<InputImageType, InputImageType, StructuringElementType>
-  OpeningClosingFilterType;
-  typedef otb::MorphologicalPyramidAnalysisFilter<InputImageType, InputImageType, OpeningClosingFilterType>
-  PyramidAnalysisFilterType;
-  typedef otb::MorphologicalPyramid::MRToMSConverter<InputImageType, OutputImageType> MRToMSConverterType;
-
-  // Reading input image
-  ReaderType::Pointer reader = ReaderType::New();
-  reader->SetFileName(inputFilename);
-
-  // Analysis
-  PyramidAnalysisFilterType::Pointer pyramidAnalysis = PyramidAnalysisFilterType::New();
-  pyramidAnalysis->SetNumberOfLevels(numberOfLevels);
-  pyramidAnalysis->SetDecimationRatio(decimationRatio);
-  pyramidAnalysis->SetInput(reader->GetOutput());
-
-  // From multi resolution to multi scale
-  MRToMSConverterType::Pointer mrtoms = MRToMSConverterType::New();
-  mrtoms->SetInput(pyramidAnalysis->GetOutput());
-  mrtoms->SetSupFilter(pyramidAnalysis->GetSupFilter());
-  mrtoms->SetSupDeci(pyramidAnalysis->GetSupDeci());
-  mrtoms->SetInfFilter(pyramidAnalysis->GetInfFilter());
-  mrtoms->SetInfDeci(pyramidAnalysis->GetInfDeci());
-  mrtoms->Update();
-
-  // Writing the output images
-  WriterType::Pointer writer1 = WriterType::New();
-  writer1->SetFileName(outputFilename1);
-  writer1->SetInput(mrtoms->GetSupFilterFullResolution()->Back());
-  writer1->Update();
-
-  WriterType::Pointer writer2 = WriterType::New();
-  writer2->SetFileName(outputFilename2);
-  writer2->SetInput(mrtoms->GetInfFilterFullResolution()->Back());
-  writer2->Update();
-
-  WriterType::Pointer writer3 = WriterType::New();
-  writer3->SetFileName(outputFilename3);
-  writer3->SetInput(mrtoms->GetOutput()->Back());
-  writer3->Update();
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/Filtering/MorphologicalPyramid/test/otbMorphologicalPyramidResampler.cxx b/Modules/Filtering/MorphologicalPyramid/test/otbMorphologicalPyramidResampler.cxx
deleted file mode 100644
index 0d43971cf29e675072a0437c1f9e2f91a6d805e6..0000000000000000000000000000000000000000
--- a/Modules/Filtering/MorphologicalPyramid/test/otbMorphologicalPyramidResampler.cxx
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "itkMacro.h"
-#include "otbMorphologicalPyramidResampler.h"
-#include "otbImageFileReader.h"
-#include "otbImageFileWriter.h"
-#include "otbImage.h"
-
-int otbMorphologicalPyramidResampler(int itkNotUsed(argc), char * argv[])
-{
-  const char*        inputFilename = argv[1];
-  const char*        outputFilename1 = argv[2];
-  const char*        outputFilename2 = argv[3];
-  const unsigned int size_x = atoi(argv[4]);
-  const unsigned int size_y = atoi(argv[5]);
-
-  const unsigned int Dimension = 2;
-  typedef double InputPixelType;
-  typedef double OutputPixelType;
-
-  typedef otb::Image<InputPixelType, Dimension>  InputImageType;
-  typedef otb::Image<OutputPixelType, Dimension> OutputImageType;
-
-  typedef otb::ImageFileReader<InputImageType>  ReaderType;
-  typedef otb::ImageFileWriter<OutputImageType> WriterType;
-
-  typedef otb::MorphologicalPyramid::Resampler<InputImageType, OutputImageType>
-  ResamplerType;
-
-  // Input image reading
-  ReaderType::Pointer reader = ReaderType::New();
-  reader->SetFileName(inputFilename);
-
-  InputImageType::SizeType size;
-  size[0] = size_x;
-  size[1] = size_y;
-
-  // Instantiation
-  ResamplerType::Pointer resampler = ResamplerType::New();
-  resampler->SetInput(reader->GetOutput());
-  resampler->SetSize(size);
-
-  // File writing
-  WriterType::Pointer writer = WriterType::New();
-  writer->SetInput(resampler->GetOutput());
-  writer->SetFileName(outputFilename1);
-  writer->Update();
-
-  ResamplerType::Pointer resampler2 = ResamplerType::New();
-  resampler2->SetInput(resampler->GetOutput());
-  resampler2->SetSize(reader->GetOutput()->GetLargestPossibleRegion().GetSize());
-
-  WriterType::Pointer writer2 = WriterType::New();
-  writer2->SetInput(resampler2->GetOutput());
-  writer2->SetFileName(outputFilename2);
-  writer2->Update();
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/Filtering/MorphologicalPyramid/test/otbMorphologicalPyramidSegmentationFilter.cxx b/Modules/Filtering/MorphologicalPyramid/test/otbMorphologicalPyramidSegmentationFilter.cxx
deleted file mode 100644
index 959150db21b47e4ddd2131fe26736ff19a11a6a5..0000000000000000000000000000000000000000
--- a/Modules/Filtering/MorphologicalPyramid/test/otbMorphologicalPyramidSegmentationFilter.cxx
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "itkMacro.h"
-#include "otbMorphologicalPyramidSegmentationFilter.h"
-#include "otbOpeningClosingMorphologicalFilter.h"
-#include "itkBinaryBallStructuringElement.h"
-#include "otbMorphologicalPyramidAnalysisFilter.h"
-#include "otbImageFileReader.h"
-#include "otbImageFileWriter.h"
-#include "otbImage.h"
-
-int otbMorphologicalPyramidSegmentationFilter(int itkNotUsed(argc), char * argv[])
-{
-  const char*        inputFilename = argv[1];
-  const char*        outputFilenamePrefix = argv[2];
-  const char *       outputFilenameSuffix = argv[3];
-  const unsigned int numberOfLevels = atoi(argv[4]);
-  const double       decimationRatio = atof(argv[5]);
-  const float        seedsQuantile = atof(argv[6]);
-  const float        segmentationQuantile = atof(argv[7]);
-  const unsigned int minObjectSize = atoi(argv[8]);
-
-  const unsigned int Dimension = 2;
-  typedef double         InputPixelType;
-  typedef unsigned short OutputPixelType;
-
-  typedef otb::Image<InputPixelType, Dimension>  InputImageType;
-  typedef otb::Image<OutputPixelType, Dimension> OutputImageType;
-
-  typedef otb::ImageFileReader<InputImageType>  ReaderType;
-  typedef otb::ImageFileWriter<OutputImageType> WriterType;
-
-  typedef itk::BinaryBallStructuringElement<InputPixelType, Dimension> StructuringElementType;
-  typedef otb::OpeningClosingMorphologicalFilter<InputImageType, InputImageType, StructuringElementType>
-  OpeningClosingFilterType;
-  typedef otb::MorphologicalPyramidAnalysisFilter<InputImageType, InputImageType, OpeningClosingFilterType>
-  PyramidFilterType;
-  typedef otb::MorphologicalPyramidSegmentationFilter<InputImageType, OutputImageType>
-  SegmentationFilterType;
-  typedef SegmentationFilterType::OutputImageListIteratorType OutputListIteratorType;
-
-  // Input images reading
-  ReaderType::Pointer reader = ReaderType::New();
-  reader->SetFileName(inputFilename);
-
-  //Analyse
-  PyramidFilterType::Pointer pyramid = PyramidFilterType::New();
-  pyramid->SetNumberOfLevels(numberOfLevels);
-  pyramid->SetDecimationRatio(decimationRatio);
-  pyramid->SetInput(reader->GetOutput());
-
-  // Segmentation
-  SegmentationFilterType::Pointer segmentation = SegmentationFilterType::New();
-  segmentation->SetReferenceImage(reader->GetOutput());
-  segmentation->SetBrighterDetails(pyramid->GetSupFilter());
-  segmentation->SetDarkerDetails(pyramid->GetInfFilter());
-  segmentation->SetSeedsQuantile(seedsQuantile);
-  segmentation->SetConnectedThresholdQuantile(segmentationQuantile);
-  segmentation->SetMinimumObjectSize(minObjectSize);
-  segmentation->Update();
-
-  // Output writing
-  OutputListIteratorType it = segmentation->GetOutput()->Begin();
-  WriterType::Pointer    writer;
-  int                    index = 1;
-  std::stringstream      oss;
-  while (it != segmentation->GetOutput()->End())
-    {
-    oss << outputFilenamePrefix << index << "." << outputFilenameSuffix;
-    writer = WriterType::New();
-    writer->SetInput(it.Get());
-    writer->SetFileName(oss.str());
-    writer->Update();
-    std::cout << oss.str() << " file written." << std::endl;
-    oss.str("");
-    ++index;
-    ++it;
-    }
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/Filtering/MorphologicalPyramid/test/otbMorphologicalPyramidSegmenter.cxx b/Modules/Filtering/MorphologicalPyramid/test/otbMorphologicalPyramidSegmenter.cxx
deleted file mode 100644
index 12b2ac54df9a3ec70a7e2d8490ed48f1fc2bff51..0000000000000000000000000000000000000000
--- a/Modules/Filtering/MorphologicalPyramid/test/otbMorphologicalPyramidSegmenter.cxx
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "itkMacro.h"
-#include "otbMorphologicalPyramidSegmenter.h"
-#include "otbImageFileReader.h"
-#include "otbImageFileWriter.h"
-#include "otbImage.h"
-
-int otbMorphologicalPyramidSegmenter(int itkNotUsed(argc), char * argv[])
-{
-  const char*        inputFilename = argv[1];
-  const char*        originalFilename = argv[2];
-  const char*        outputFilename1 = argv[3];
-  const bool         segmentDark = atoi(argv[4]);
-  const float        seedsQuantile = atof(argv[5]);
-  const float        segmentationQuantile = atof(argv[6]);
-  const unsigned int minObjectSize = atoi(argv[7]);
-
-  const unsigned int Dimension = 2;
-  typedef double         InputPixelType;
-  typedef unsigned short OutputPixelType;
-
-  typedef otb::Image<InputPixelType, Dimension>  InputImageType;
-  typedef otb::Image<OutputPixelType, Dimension> OutputImageType;
-
-  typedef otb::ImageFileReader<InputImageType>  ReaderType;
-  typedef otb::ImageFileWriter<OutputImageType> WriterType;
-
-  typedef otb::MorphologicalPyramid::Segmenter<InputImageType, OutputImageType>
-  SegmenterType;
-
-  // Input images reading
-  ReaderType::Pointer reader = ReaderType::New();
-  reader->SetFileName(inputFilename);
-  ReaderType::Pointer reader2 = ReaderType::New();
-  reader2->SetFileName(originalFilename);
-
-  // Instantiation
-  SegmenterType::Pointer segmenter = SegmenterType::New();
-  segmenter->SetDetailsImage(reader->GetOutput());
-  segmenter->SetOriginalImage(reader2->GetOutput());
-  segmenter->SetSegmentDarkDetailsBool(segmentDark);
-  segmenter->SetSeedsQuantile(seedsQuantile);
-  segmenter->SetConnectedThresholdQuantile(segmentationQuantile);
-  segmenter->SetMinimumObjectSize(minObjectSize);
-
-  // File writing
-  WriterType::Pointer writer = WriterType::New();
-  writer->SetInput(segmenter->GetOutput());
-  writer->SetFileName(outputFilename1);
-  writer->Update();
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/Filtering/MorphologicalPyramid/test/otbMorphologicalPyramidSynthesisFilter.cxx b/Modules/Filtering/MorphologicalPyramid/test/otbMorphologicalPyramidSynthesisFilter.cxx
deleted file mode 100644
index 084ba8bd43b89bd77f8b326dddf1b231725f3eec..0000000000000000000000000000000000000000
--- a/Modules/Filtering/MorphologicalPyramid/test/otbMorphologicalPyramidSynthesisFilter.cxx
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "itkMacro.h"
-
-#include "otbMorphologicalPyramidAnalysisFilter.h"
-#include "otbMorphologicalPyramidSynthesisFilter.h"
-#include "otbOpeningClosingMorphologicalFilter.h"
-#include "itkBinaryBallStructuringElement.h"
-#include "otbImageFileReader.h"
-#include "otbImageFileWriter.h"
-#include "otbImage.h"
-
-int otbMorphologicalPyramidSynthesisFilter(int itkNotUsed(argc), char * argv[])
-{
-  const char *       inputFilename = argv[1];
-  const char *       outputFilename = argv[2];
-  const unsigned int numberOfLevels = atoi(argv[3]);
-  const float        decimationRatio = atof(argv[4]);
-
-  const unsigned int Dimension = 2;
-  typedef unsigned char InputPixelType;
-  typedef unsigned char OutputPixelType;
-
-  typedef otb::Image<InputPixelType, Dimension>  InputImageType;
-  typedef otb::Image<OutputPixelType, Dimension> OutputImageType;
-
-  typedef otb::ImageFileReader<InputImageType>  ReaderType;
-  typedef otb::ImageFileWriter<OutputImageType> WriterType;
-
-  typedef itk::BinaryBallStructuringElement<InputPixelType, Dimension> StructuringElementType;
-  typedef otb::OpeningClosingMorphologicalFilter<InputImageType, InputImageType, StructuringElementType>
-  OpeningClosingFilterType;
-  typedef otb::MorphologicalPyramidAnalysisFilter<InputImageType, OutputImageType, OpeningClosingFilterType>
-  PyramidAnalysisFilterType;
-  typedef otb::MorphologicalPyramidSynthesisFilter<InputImageType, OutputImageType>
-  PyramidSynthesisFilterType;
-
-  // Reading input image
-  ReaderType::Pointer reader = ReaderType::New();
-  reader->SetFileName(inputFilename);
-
-  // Analysis
-  PyramidAnalysisFilterType::Pointer pyramidAnalysis = PyramidAnalysisFilterType::New();
-  pyramidAnalysis->SetNumberOfLevels(numberOfLevels);
-  pyramidAnalysis->SetDecimationRatio(decimationRatio);
-  pyramidAnalysis->SetInput(reader->GetOutput());
-  pyramidAnalysis->Update();
-
-  // Synthesis
-  PyramidSynthesisFilterType::Pointer pyramidSynthesis = PyramidSynthesisFilterType::New();
-  pyramidSynthesis->SetInput(pyramidAnalysis->GetOutput()->Back());
-  pyramidSynthesis->SetSupFilter(pyramidAnalysis->GetSupFilter());
-  pyramidSynthesis->SetSupDeci(pyramidAnalysis->GetSupDeci());
-  pyramidSynthesis->SetInfFilter(pyramidAnalysis->GetInfFilter());
-  pyramidSynthesis->SetInfDeci(pyramidAnalysis->GetInfDeci());
-  pyramidSynthesis->Update();
-
-  // Writing the output image
-  WriterType::Pointer writer = WriterType::New();
-  writer->SetFileName(outputFilename);
-  writer->SetInput(pyramidSynthesis->GetOutput()->Back());
-  writer->Update();
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/Filtering/MorphologicalPyramid/test/otbMorphologicalPyramidTestDriver.cxx b/Modules/Filtering/MorphologicalPyramid/test/otbMorphologicalPyramidTestDriver.cxx
deleted file mode 100644
index 7eae072f41716ed76033b26bbd70d0592fd0ce36..0000000000000000000000000000000000000000
--- a/Modules/Filtering/MorphologicalPyramid/test/otbMorphologicalPyramidTestDriver.cxx
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "otbTestMain.h"
-
-void RegisterTests()
-{
-  REGISTER_TEST(otbMorphologicalPyramidAnalysisFilter);
-  REGISTER_TEST(otbMorphologicalPyramidSegmenter);
-  REGISTER_TEST(otbMorphologicalPyramidSynthesisFilter);
-  REGISTER_TEST(otbMorphologicalPyramidMRToMSConverter);
-  REGISTER_TEST(otbMorphologicalPyramidResampler);
-  REGISTER_TEST(otbMorphologicalPyramidSegmentationFilter);
-}
diff --git a/Modules/Filtering/Path/include/otbVectorizationPathListFilter.h b/Modules/Filtering/Path/include/otbVectorizationPathListFilter.h
deleted file mode 100644
index 5ca5b65c5285040ec2079884721d9ec09de46ca5..0000000000000000000000000000000000000000
--- a/Modules/Filtering/Path/include/otbVectorizationPathListFilter.h
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbVectorizationPathListFilter_h
-#define otbVectorizationPathListFilter_h
-
-#include "otbPathListSource.h"
-#include "itkImageRegionIterator.h"
-#include "itkNeighborhoodIterator.h"
-#include "itkConstantBoundaryCondition.h"
-#include "otbImage.h"
-
-namespace otb
-{
-/** \class VectorizationPathListFilter
- *  \brief This filter performs a vectorization from a line detector modulus and direction outputs.
- *
- *  The output of this filter is an otb::ObjectList<TOutputPath>.
- *
- *  This filter performs vectorization at non-grid position by using the barycenter of the few pixels with
- *  non-null intensity in the given direction. A threshold can be set to tune the sensibility of the first point
- *  detection. Path with less than three vertices are not kept by the filter.
- *
- * \ingroup PathListSource
- *
- * \ingroup OTBPath
- */
-template <class TInputModulus, class TInputDirection, class TOutputPath>
-class ITK_EXPORT VectorizationPathListFilter
-  : public PathListSource<TOutputPath>
-{
-public:
-  /** Standard typedefs */
-  typedef VectorizationPathListFilter   Self;
-  typedef PathListSource<TOutputPath>   Superclass;
-  typedef itk::SmartPointer<Self>       Pointer;
-  typedef itk::SmartPointer<const Self> ConstPointer;
-
-  /** Type macro */
-  itkNewMacro(Self);
-
-  /** Creation through object factory macro */
-  itkTypeMacro(VectorizationPathListFilter, PathListSource);
-
-  /** Template parameters typedefs */
-  typedef TInputModulus                           InputModulusType;
-  typedef typename InputModulusType::ConstPointer InputModulusConstPointerType;
-  typedef typename InputModulusType::PixelType    InputPixelType;
-  typedef typename InputModulusType::PointType    PointType;
-  typedef typename InputModulusType::IndexType    IndexType;
-
-  typedef TInputDirection                              InputDirectionType;
-  typedef typename InputDirectionType::ConstPointer    InputDirectionConstPointerType;
-  typedef TOutputPath                                  OutputPathType;
-  typedef typename OutputPathType::Pointer             OutputPathPointerType;
-  typedef typename OutputPathType::ContinuousIndexType VertexType;
-
-  /** Derived typedefs */
-  typedef typename Superclass::OutputPathListType        OutputPathListType;
-  typedef typename Superclass::OutputPathListPointerType OutputPathListPointerType;
-
-  /** Set/get the input modulus */
-  using Superclass::SetInput;
-  void SetInput(InputModulusType * inputModulus);
-  const InputModulusType * GetInput(void);
-
-  /** Set/get the input direction */
-  void SetInputDirection(InputDirectionType * inputDirection);
-  const InputDirectionType * GetInputDirection(void);
-
-  itkSetMacro(AmplitudeThreshold, InputPixelType);
-  itkGetMacro(AmplitudeThreshold, InputPixelType);
-
-protected:
-
-  /** Other internal useful typedefs */
-  typedef otb::Image<bool, InputModulusType::ImageDimension> FlagImageType;
-  typedef typename FlagImageType::Pointer                    FlagImagePointerType;
-
-  typedef itk::ImageRegionConstIterator<InputModulusType>   ModRegionIteratorType;
-  typedef itk::ImageRegionConstIterator<InputDirectionType> DirRegionIteratorType;
-  typedef itk::ImageRegionIterator<FlagImageType>           FlagRegionIteratorType;
-
-  typedef itk::ConstantBoundaryCondition<InputModulusType>   ModBCType;
-  typedef itk::ConstantBoundaryCondition<InputDirectionType> DirBCType;
-  typedef itk::ConstantBoundaryCondition<FlagImageType>      FlagBCType;
-
-  typedef itk::ConstNeighborhoodIterator<InputModulusType, ModBCType>   ModNeighborhoodIteratorType;
-  typedef itk::ConstNeighborhoodIterator<InputDirectionType, ModBCType> DirNeighborhoodIteratorType;
-  typedef itk::NeighborhoodIterator<FlagImageType, FlagBCType>          FlagNeighborhoodIteratorType;
-
-  typedef typename ModNeighborhoodIteratorType::RadiusType RadiusType;
-  typedef typename ModNeighborhoodIteratorType::OffsetType OffsetType;
-  typedef std::vector<OffsetType>                          OffsetVectorType;
-
-  typedef typename OutputPathType::VertexListType VertexListType;
-  typedef typename VertexListType::ConstPointer   VertexListPointerType;
-  typedef typename VertexListType::ConstIterator  VertexIteratorType;
-
-  /** Constructor */
-  VectorizationPathListFilter();
-  /** Destructor */
-  ~VectorizationPathListFilter() override {}
-  /**PrintSelf method */
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-  /** Main computation method */
-  void GenerateData(void) override;
-  /**
-   * Compute a vector of the 8  neighbors to explore from the direction and the type of search (forward or backward).
-   * \param direction The direction
-   * \param flagReverse The type of search
-   * \return The neighborhood vector
-   */
-  OffsetVectorType GetEightNeighborOffsetFromDirection(double direction, unsigned int flagReverse);
-  /**
-   * Compute a vector of the 3  neighbors to explore from the direction and the type of search (forward or backward).
-   * \param direction The direction
-   * \param flagReverse The type of search
-   * \return The neighborhood vector
-   */
-  OffsetVectorType GetThreeNeighborOffsetFromDirection(double direction, unsigned int flagReverse);
-private:
-  VectorizationPathListFilter(const Self &) = delete;
-  void operator =(const Self&) = delete;
-  /** Amplitude threshold to start following a path */
-  InputPixelType m_AmplitudeThreshold;
-};
-} // End namespace otb
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbVectorizationPathListFilter.hxx"
-#endif
-
-#endif
diff --git a/Modules/Filtering/Path/include/otbVectorizationPathListFilter.hxx b/Modules/Filtering/Path/include/otbVectorizationPathListFilter.hxx
deleted file mode 100644
index 66ac753b113d61519262f03e0dbf29c4eaf60c38..0000000000000000000000000000000000000000
--- a/Modules/Filtering/Path/include/otbVectorizationPathListFilter.hxx
+++ /dev/null
@@ -1,677 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbVectorizationPathListFilter_hxx
-#define otbVectorizationPathListFilter_hxx
-
-#include "otbVectorizationPathListFilter.h"
-#include "otbMacro.h"
-#include "otbMath.h"
-
-namespace otb
-{
-/**
- * Constructor
- */
-template <class TInputModulus, class TInputDirection, class TOutputPath>
-VectorizationPathListFilter<TInputModulus, TInputDirection, TOutputPath>
-::VectorizationPathListFilter()
-{
-  this->SetNumberOfRequiredInputs(2);
-  this->SetNumberOfRequiredInputs(2);
-  m_AmplitudeThreshold = 1.0;
-}
-
-template <class TInputModulus, class TInputDirection, class TOutputPath>
-void
-VectorizationPathListFilter<TInputModulus, TInputDirection, TOutputPath>
-::SetInput(InputModulusType * inputModulus)
-{
-  this->itk::ProcessObject::SetNthInput(0, const_cast<InputModulusType *>(inputModulus));
-}
-
-template <class TInputModulus, class TInputDirection, class TOutputPath>
-const typename VectorizationPathListFilter<TInputModulus, TInputDirection, TOutputPath>
-::InputModulusType *
-VectorizationPathListFilter<TInputModulus, TInputDirection, TOutputPath>
-::GetInput(void)
-{
-  if (this->GetNumberOfInputs() < 1)
-    {
-    return nullptr;
-    }
-  return static_cast<const TInputModulus*>(this->itk::ProcessObject::GetInput(0));
-}
-
-template <class TInputModulus, class TInputDirection, class TOutputPath>
-void
-VectorizationPathListFilter<TInputModulus, TInputDirection, TOutputPath>
-::SetInputDirection(InputDirectionType * inputDirection)
-{
-  this->itk::ProcessObject::SetNthInput(1, const_cast<InputDirectionType *>(inputDirection));
-}
-
-template <class TInputModulus, class TInputDirection, class TOutputPath>
-const typename VectorizationPathListFilter<TInputModulus, TInputDirection, TOutputPath>
-::InputDirectionType *
-VectorizationPathListFilter<TInputModulus, TInputDirection, TOutputPath>
-::GetInputDirection(void)
-{
-  if (this->GetNumberOfInputs() < 2)
-    {
-    return nullptr;
-    }
-  return static_cast<const TInputDirection *>(this->itk::ProcessObject::GetInput(1));
-}
-
-/**
- * Main computation method
- */
-template <class TInputModulus, class TInputDirection, class TOutputPath>
-void
-VectorizationPathListFilter<TInputModulus, TInputDirection, TOutputPath>
-::GenerateData(void)
-{
-  InputModulusConstPointerType   modPtr = this->GetInput();
-  InputDirectionConstPointerType dirPtr = this->GetInputDirection();
-  OutputPathListPointerType      outPtr = this->GetOutput();
-
-  typedef typename OffsetVectorType::iterator OffsetIteratorType;
-
-  RadiusType radius;
-  radius.Fill(2);
-  OffsetVectorType offsetVector;
-
-  // Creation of the flag image
-  FlagImagePointerType flagImage = FlagImageType::New();
-  flagImage->SetRegions(modPtr->GetLargestPossibleRegion());
-  flagImage->Allocate();
-  flagImage->FillBuffer(false);
-
-  // Iterators instantiation
-  ModRegionIteratorType modIt(modPtr, modPtr->GetLargestPossibleRegion());
-  DirRegionIteratorType dirIt(dirPtr, dirPtr->GetLargestPossibleRegion());
-  FlagRegionIteratorType flagIt(flagImage, flagImage->GetLargestPossibleRegion());
-
-  for (modIt.GoToBegin(), dirIt.GoToBegin(), flagIt.GoToBegin();
-       (!modIt.IsAtEnd()) && (!dirIt.IsAtEnd()) && (!flagIt.IsAtEnd());
-       ++modIt, ++dirIt, ++flagIt)
-    {
-    if ((modIt.Get() > m_AmplitudeThreshold) && (!flagIt.Get()))
-      {
-      //this is a beginning, to follow in two directions
-      OutputPathPointerType pathTempDirect = OutputPathType::New();
-      OutputPathPointerType pathTempReverse = OutputPathType::New();
-      OutputPathPointerType path = OutputPathType::New();
-
-      bool   flagFinish;
-      int    flagReverse = 0;
-      double totalAmplitude = 0;
-
-      ModNeighborhoodIteratorType nModIt(radius, modPtr, modPtr->GetLargestPossibleRegion());
-      DirNeighborhoodIteratorType nDirIt(radius, dirPtr, dirPtr->GetLargestPossibleRegion());
-      FlagNeighborhoodIteratorType nFlagIt(radius, flagImage, flagImage->GetLargestPossibleRegion());
-
-      for (flagReverse = 0; flagReverse < 2; ++flagReverse)
-        {
-        nModIt.SetLocation(modIt.GetIndex());
-        nDirIt.SetLocation(dirIt.GetIndex());
-        nFlagIt.SetLocation(flagIt.GetIndex());
-        // temporary point
-        PointType  point;
-        VertexType vertex;
-        modPtr->TransformIndexToPhysicalPoint(nModIt.GetIndex(), point);
-        modPtr->TransformPhysicalPointToContinuousIndex(point, vertex);
-        if (flagReverse == 0)
-          {
-          flagIt.Set(true);
-
-          //  otbMsgDebugMacro(<<"Adding new vertex: "<<vertex);
-
-          pathTempDirect->AddVertex(vertex);
-          }
-        flagFinish = false;
-        while (!flagFinish)
-          {
-          offsetVector = GetThreeNeighborOffsetFromDirection(nDirIt.GetCenterPixel(), flagReverse);
-          OffsetIteratorType vecIt = offsetVector.begin();
-          bool               flagFound = false;
-          while (vecIt != offsetVector.end() && !flagFound)
-            {
-            flagFound = nModIt.GetPixel(*vecIt) > 0
-                        && !nFlagIt.GetPixel(*vecIt);
-            ++vecIt;
-            }
-          if (flagFound)
-            {
-            point.Fill(0);
-            PointType tmpPoint;
-            totalAmplitude = 0;
-            for (vecIt = offsetVector.begin(); vecIt != offsetVector.end(); ++vecIt)
-              {
-              double currentAmplitude = nModIt.GetPixel(*vecIt);
-              modPtr->TransformIndexToPhysicalPoint(nModIt.GetIndex(*vecIt), tmpPoint);
-              point[0] += currentAmplitude * tmpPoint[0];
-              point[1] += currentAmplitude * tmpPoint[1];
-              totalAmplitude += currentAmplitude;
-              }
-            point[0] = point[0] / totalAmplitude;
-            point[1] = point[1] / totalAmplitude;
-            modPtr->TransformPhysicalPointToContinuousIndex(point, vertex);
-            if (flagReverse == 0)
-              {
-//               otbMsgDevMacro(<<"Adding new vertex (direct): "<<vertex);
-
-              pathTempDirect->AddVertex(vertex);
-              }
-            else
-              {
-
-//               otbMsgDevMacro(<<"Adding new vertex (reverse): "<<vertex);
-
-              pathTempReverse->AddVertex(vertex);
-              }
-            // flag the pixel use
-            nFlagIt.SetCenterPixel(true);
-            //update the neighbor iterators so they are centered on the nearest pixel to the barycenter
-            IndexType newIndex;
-            if (modPtr->TransformPhysicalPointToIndex(point, newIndex))
-              {
-//              otbMsgDevMacro(<<"Moving to new center: " << newIndex);
-              nModIt.SetLocation(newIndex);
-              nDirIt.SetLocation(newIndex);
-              nFlagIt.SetLocation(newIndex);
-
-              if (nModIt.GetCenterPixel() == 0)
-                {
-                //we need to check that in case the barycenter is out...
-                flagFinish = true;
-                }
-              if (nFlagIt.GetCenterPixel())
-                {
-                //we don't want to go back to the same pixels
-                flagFinish = true;
-                }
-              }
-            else
-              {
-              //new point outside image
-              flagFinish = true;
-              }
-            }
-          else
-            {
-            flagFinish = true;
-            }
-          }
-        }
-      VertexListPointerType vertexDirect = pathTempDirect->GetVertexList();
-      VertexListPointerType vertexReverse = pathTempReverse->GetVertexList();
-
-      unsigned int numberVertex = 0;
-
-      VertexIteratorType vertexReverseIt = vertexReverse->End();
-      if (vertexReverseIt != vertexReverse->Begin())
-        {
-        --vertexReverseIt;
-        while (vertexReverseIt != vertexReverse->Begin())
-          {
-          path->AddVertex(vertexReverseIt.Value());
-          ++numberVertex;
-          --vertexReverseIt;
-          }
-        path->AddVertex(vertexReverseIt.Value());
-        }
-
-      VertexIteratorType vertexDirectIt = vertexDirect->Begin();
-      while (vertexDirectIt != vertexDirect->End())
-        {
-        path->AddVertex(vertexDirectIt.Value());
-        ++vertexDirectIt;
-        ++numberVertex;
-        }
-
-      // otbMsgDebugMacro(<<"Path number of vertices: "<<numberVertex);
-
-      if (numberVertex > 3)
-        {
-        outPtr->PushBack(path);
-        }
-      }
-    }
-}
-
-/**
- * Compute the 8 neighbors to explore from the direction and the type of search (forward or backward).
- * \param direction The direction
- * \param flagReverse The type of search
- * \return The neighborhood
- */
-template <class TInputModulus, class TInputDirection, class TOutputPath>
-typename VectorizationPathListFilter<TInputModulus, TInputDirection, TOutputPath>
-::OffsetVectorType
-VectorizationPathListFilter<TInputModulus, TInputDirection, TOutputPath>
-::GetEightNeighborOffsetFromDirection(double direction, unsigned int flagReverse)
-{
-  int              neighborhoodNumber = 0;
-  OffsetVectorType offset;
-  offset.reserve(8);
-  if (direction > 0)
-    {
-    //find the direction in terms of 0, 1, 2, 3
-    neighborhoodNumber = (int) (direction / (CONST_PI_4) -1);
-    }
-  else
-    {
-    neighborhoodNumber = (int) ((direction + CONST_PI) / (CONST_PI_4) -1);
-    neighborhoodNumber = (neighborhoodNumber + 4);
-    //if the direction was <0 need to convert to 4, 5, 6, 7
-    }
-  if (flagReverse)
-    {
-    //if the reverse flag is activated we need to look on the other side
-    neighborhoodNumber = (neighborhoodNumber + 4) % 8;
-    }
-  OffsetType tmpOffset;
-  switch (neighborhoodNumber)
-    {
-    case 0:
-      tmpOffset[0] = 1;
-      tmpOffset[1] = 0;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = 1;
-      tmpOffset[1] = 1;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = 0;
-      tmpOffset[1] = 1;
-      offset.push_back(tmpOffset);
-
-      tmpOffset[0] = 2;
-      tmpOffset[1] = 0;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = 2;
-      tmpOffset[1] = 1;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = 2;
-      tmpOffset[1] = 2;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = 1;
-      tmpOffset[1] = 2;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = 0;
-      tmpOffset[1] = 2;
-      offset.push_back(tmpOffset);
-
-      break;
-
-    case 1:
-      tmpOffset[0] = 1;
-      tmpOffset[1] = 1;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = 0;
-      tmpOffset[1] = 1;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = -1;
-      tmpOffset[1] = 1;
-      offset.push_back(tmpOffset);
-
-      tmpOffset[0] = 2;
-      tmpOffset[1] = 2;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = 1;
-      tmpOffset[1] = 2;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = 0;
-      tmpOffset[1] = 2;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = -1;
-      tmpOffset[1] = 2;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = -2;
-      tmpOffset[1] = 2;
-      offset.push_back(tmpOffset);
-      break;
-
-    case 2:
-      tmpOffset[0] = 0;
-      tmpOffset[1] = 1;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = -1;
-      tmpOffset[1] = 1;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = -1;
-      tmpOffset[1] = 0;
-      offset.push_back(tmpOffset);
-
-      tmpOffset[0] = 0;
-      tmpOffset[1] = 2;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = -1;
-      tmpOffset[1] = 2;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = -2;
-      tmpOffset[1] = 2;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = -2;
-      tmpOffset[1] = 1;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = -2;
-      tmpOffset[1] = 0;
-      offset.push_back(tmpOffset);
-      break;
-
-    case 3:
-      tmpOffset[0] = -1;
-      tmpOffset[1] = 1;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = -1;
-      tmpOffset[1] = 0;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = -1;
-      tmpOffset[1] = -1;
-      offset.push_back(tmpOffset);
-
-      tmpOffset[0] = -2;
-      tmpOffset[1] = 2;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = -2;
-      tmpOffset[1] = 1;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = -2;
-      tmpOffset[1] = 0;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = -2;
-      tmpOffset[1] = -1;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = -2;
-      tmpOffset[1] = -2;
-      offset.push_back(tmpOffset);
-      break;
-
-    case 4:
-      tmpOffset[0] = -1;
-      tmpOffset[1] = 0;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = -1;
-      tmpOffset[1] = -1;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = 0;
-      tmpOffset[1] = -1;
-      offset.push_back(tmpOffset);
-
-      tmpOffset[0] = -2;
-      tmpOffset[1] = 0;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = -2;
-      tmpOffset[1] = -1;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = -2;
-      tmpOffset[1] = -2;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = -1;
-      tmpOffset[1] = -2;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = 0;
-      tmpOffset[1] = -2;
-      offset.push_back(tmpOffset);
-      break;
-
-    case 5:
-      tmpOffset[0] = -1;
-      tmpOffset[1] = -1;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = 0;
-      tmpOffset[1] = -1;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = 1;
-      tmpOffset[1] = -1;
-      offset.push_back(tmpOffset);
-
-      tmpOffset[0] = -2;
-      tmpOffset[1] = -2;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = -1;
-      tmpOffset[1] = -2;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = 0;
-      tmpOffset[1] = -2;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = 1;
-      tmpOffset[1] = -2;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = 2;
-      tmpOffset[1] = -2;
-      offset.push_back(tmpOffset);
-      break;
-
-    case 6:
-      tmpOffset[0] = 0;
-      tmpOffset[1] = -1;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = 1;
-      tmpOffset[1] = -1;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = 1;
-      tmpOffset[1] = 0;
-      offset.push_back(tmpOffset);
-
-      tmpOffset[0] = 0;
-      tmpOffset[1] = -2;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = 1;
-      tmpOffset[1] = -2;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = 2;
-      tmpOffset[1] = -2;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = 2;
-      tmpOffset[1] = -1;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = 2;
-      tmpOffset[1] = 0;
-      offset.push_back(tmpOffset);
-      break;
-
-    case 7:
-      tmpOffset[0] = 1;
-      tmpOffset[1] = -1;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = 1;
-      tmpOffset[1] = 0;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = 1;
-      tmpOffset[1] = 1;
-      offset.push_back(tmpOffset);
-
-      tmpOffset[0] = 2;
-      tmpOffset[1] = -2;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = 2;
-      tmpOffset[1] = -1;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = 2;
-      tmpOffset[1] = 0;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = 2;
-      tmpOffset[1] = 1;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = 2;
-      tmpOffset[1] = 2;
-      offset.push_back(tmpOffset);
-      break;
-    }
-  return offset;
-}
-
-/**
- * Compute the 3 neighbors to explore from the direction and the type of search (forward or backward).
- * \param direction The direction
- * \param flagReverse The type of search
- * \return The neighborhood
- */
-template <class TInputModulus, class TInputDirection, class TOutputPath>
-typename VectorizationPathListFilter<TInputModulus, TInputDirection, TOutputPath>
-::OffsetVectorType
-VectorizationPathListFilter<TInputModulus, TInputDirection, TOutputPath>
-::GetThreeNeighborOffsetFromDirection(double direction, unsigned int flagReverse)
-{
-  int              neighborhoodNumber = 0;
-  OffsetVectorType offset;
-  offset.reserve(3);
-  if (direction > 0)
-    {
-    //find the direction in terms of 0, 1, 2, 3
-    neighborhoodNumber = (int) (direction / (CONST_PI_4) -1);
-    }
-  else
-    {
-    neighborhoodNumber = (int) ((direction + CONST_PI) / (CONST_PI_4) -1);
-    neighborhoodNumber = (neighborhoodNumber + 4);
-    //if the direction was <0 need to convert to 4, 5, 6, 7
-    }
-  if (flagReverse)
-    {
-    //if the reverse flag is activated we need to look on the other side
-    neighborhoodNumber = (neighborhoodNumber + 4) % 8;
-    }
-  OffsetType tmpOffset;
-//  otbMsgDevMacro(<<"Direction: " << neighborhoodNumber)
-  switch (neighborhoodNumber)
-    {
-    case 0:
-      tmpOffset[0] = 1;
-      tmpOffset[1] = 0;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = 1;
-      tmpOffset[1] = 1;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = 0;
-      tmpOffset[1] = 1;
-      offset.push_back(tmpOffset);
-
-      break;
-
-    case 1:
-      tmpOffset[0] = 1;
-      tmpOffset[1] = 1;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = 0;
-      tmpOffset[1] = 1;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = -1;
-      tmpOffset[1] = 1;
-      offset.push_back(tmpOffset);
-
-      break;
-
-    case 2:
-      tmpOffset[0] = 0;
-      tmpOffset[1] = 1;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = -1;
-      tmpOffset[1] = 1;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = -1;
-      tmpOffset[1] = 0;
-      offset.push_back(tmpOffset);
-
-      break;
-
-    case 3:
-      tmpOffset[0] = -1;
-      tmpOffset[1] = 1;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = -1;
-      tmpOffset[1] = 0;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = -1;
-      tmpOffset[1] = -1;
-      offset.push_back(tmpOffset);
-
-      break;
-
-    case 4:
-      tmpOffset[0] = -1;
-      tmpOffset[1] = 0;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = -1;
-      tmpOffset[1] = -1;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = 0;
-      tmpOffset[1] = -1;
-      offset.push_back(tmpOffset);
-
-      break;
-
-    case 5:
-      tmpOffset[0] = -1;
-      tmpOffset[1] = -1;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = 0;
-      tmpOffset[1] = -1;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = 1;
-      tmpOffset[1] = -1;
-      offset.push_back(tmpOffset);
-
-      break;
-
-    case 6:
-      tmpOffset[0] = 0;
-      tmpOffset[1] = -1;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = 1;
-      tmpOffset[1] = -1;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = 1;
-      tmpOffset[1] = 0;
-      offset.push_back(tmpOffset);
-
-      break;
-
-    case 7:
-      tmpOffset[0] = 1;
-      tmpOffset[1] = -1;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = 1;
-      tmpOffset[1] = 0;
-      offset.push_back(tmpOffset);
-      tmpOffset[0] = 1;
-      tmpOffset[1] = 1;
-      offset.push_back(tmpOffset);
-
-      break;
-    }
-  return offset;
-}
-
-/**
- * PrintSelf Method
- */
-template <class TInputModulus, class TInputDirection, class TOutputPath>
-void
-VectorizationPathListFilter<TInputModulus, TInputDirection, TOutputPath>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-}
-
-} // End namespace otb
-#endif
diff --git a/Modules/Filtering/Path/test/CMakeLists.txt b/Modules/Filtering/Path/test/CMakeLists.txt
index 699c24a3ca0a9e7761c463280b97dc4e468282da..79fe10a22d30c9ca5bd5d652c8e663fea243964d 100644
--- a/Modules/Filtering/Path/test/CMakeLists.txt
+++ b/Modules/Filtering/Path/test/CMakeLists.txt
@@ -36,7 +36,6 @@ otbDrawPathFilter.cxx
 otbOrientationPath.cxx
 otbPolyLineImageConstIterator.cxx
 otbRegionImageToRectangularPathListFilter.cxx
-otbVectorizationPathListFilter.cxx
 otbClosePathFunctor.cxx
 otbPolyLineImageIterator.cxx
 )
@@ -62,12 +61,12 @@ otb_add_test(NAME feTvImageToEdgePathFilterBis COMMAND otbPathTestDriver
 
 otb_add_test(NAME feTvImageToEdgePathFilter COMMAND otbPathTestDriver
   --compare-image ${EPSILON_8}
-  ${BASELINE}/feImageToEdgePathFilter_rcc8_mire4.png
-  ${TEMP}/feImageToEdgePathFilter_rcc8_mire4.png
+  ${BASELINE}/feImageToEdgePathFilterOutput.tif
+  ${TEMP}/feImageToEdgePathFilterOutput.tif
   otbImageToEdgePathFilter
-  ${INPUTDATA}/rcc8_mire4.png
-  ${TEMP}/feImageToEdgePathFilter_rcc8_mire4.png
-  255
+  ${INPUTDATA}/labelImage_UnsignedChar.tif
+  ${TEMP}/feImageToEdgePathFilterOutput.tif
+  3
   )
 
 otb_add_test(NAME feTuCompacityPathCircle COMMAND otbPathTestDriver
@@ -165,31 +164,6 @@ otb_add_test(NAME feTvRegionImageToRectangularPathListFilter COMMAND otbPathTest
   0.9 #fit score
   10)  #minimum size
 
-otb_add_test(NAME feTvVectorizationPathListFilterImageOutput COMMAND otbPathTestDriver
-  --compare-image ${EPSILON_8}
-  ${BASELINE}/feTvVectorizationPathListOutput.png
-  ${TEMP}/feTvVectorizationPathListOutput.png
-  otbVectorizationPathListFilter
-  ${INPUTDATA}/InputForRoadDetection_NonMaxRem.raw.hdr
-  ${INPUTDATA}/InputForRoadDetectionScalarProductDir.raw.hdr
-  ${TEMP}/feTvVectorizationPathListOutputIgnored.txt
-  ${TEMP}/feTvVectorizationPathListOutput.png
-  0.0001
-  )
-
-otb_add_test(NAME feTvVectorizationPathListFilterAsciiOutput COMMAND otbPathTestDriver
-  --compare-ascii ${EPSILON_3}
-  ${BASELINE_FILES}/feTvVectorizationPathListOutput.txt
-  ${TEMP}/feTvVectorizationPathListOutput.txt
-  otbVectorizationPathListFilter
-  ${INPUTDATA}/InputForRoadDetection_NonMaxRem.raw.hdr
-  ${INPUTDATA}/InputForRoadDetectionScalarProductDir.raw.hdr
-  ${TEMP}/feTvVectorizationPathListOutput.txt
-  ${TEMP}/feTvVectorizationPathListOutputIgnored.png
-  0.0005
-  )
-
-
 otb_add_test(NAME bfTvClosePathFunctor COMMAND otbPathTestDriver
   --compare-ascii ${NOTOL}
   ${BASELINE_FILES}/bfClosePathFunctorTest.txt
diff --git a/Modules/Filtering/Path/test/otbPathTestDriver.cxx b/Modules/Filtering/Path/test/otbPathTestDriver.cxx
index 5d1b508991581b0c74237020d6a8eb0d819f6c48..36352f2ca861edbda39448ed175d19b844c00ee3 100644
--- a/Modules/Filtering/Path/test/otbPathTestDriver.cxx
+++ b/Modules/Filtering/Path/test/otbPathTestDriver.cxx
@@ -36,7 +36,6 @@ void RegisterTests()
   REGISTER_TEST(otbOrientationPath);
   REGISTER_TEST(otbPolyLineImageConstIterator);
   REGISTER_TEST(otbRegionImageToRectangularPathListFilter);
-  REGISTER_TEST(otbVectorizationPathListFilter);
   REGISTER_TEST(otbClosePathFunctor);
   REGISTER_TEST(otbPolyLineImageIterator);
 }
diff --git a/Modules/Filtering/Path/test/otbVectorizationPathListFilter.cxx b/Modules/Filtering/Path/test/otbVectorizationPathListFilter.cxx
deleted file mode 100644
index d4bf64c81c83e7628b6561ed906de841d124190a..0000000000000000000000000000000000000000
--- a/Modules/Filtering/Path/test/otbVectorizationPathListFilter.cxx
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "itkMacro.h"
-#include "otbVectorizationPathListFilter.h"
-#include "itkPolyLineParametricPath.h"
-#include "otbImageFileReader.h"
-#include <fstream>
-
-#include "otbDrawPathListFilter.h"
-#include "otbImageFileWriter.h"
-
-int otbVectorizationPathListFilter(int itkNotUsed(argc), char * argv[])
-{
-  const char * modfname = argv[1];
-  const char * dirfname = argv[2];
-  const char * outfname = argv[3];
-  const char * outImagefname = argv[4];
-  const double thresh = atof(argv[5]);
-
-  const unsigned int Dimension = 2;
-  typedef double                                                              PixelType;
-  typedef unsigned char                                                       OutputPixelType;
-  typedef otb::Image<PixelType, Dimension>                                    ImageType;
-  typedef otb::Image<OutputPixelType, Dimension>                              OutputImageType;
-  typedef otb::ImageFileWriter<OutputImageType>                               WriterType;
-  typedef otb::ImageFileReader<ImageType>                                     ReaderType;
-  typedef itk::PolyLineParametricPath<Dimension>                              PathType;
-  typedef otb::DrawPathListFilter<OutputImageType, PathType, OutputImageType> DrawFilterType;
-  typedef otb::VectorizationPathListFilter<ImageType, ImageType, PathType>    VectorizationPathListFilterType;
-  typedef VectorizationPathListFilterType::OutputPathListType                 PathListType;
-  typedef PathListType::ConstIterator                                         PathListIteratorType;
-  typedef PathType::VertexListType                                            VertexListType;
-  typedef VertexListType::ConstIterator                                       VertexIteratorType;
-  // Instantiating objects
-  VectorizationPathListFilterType::Pointer filter = VectorizationPathListFilterType::New();
-  ReaderType::Pointer                      modReader = ReaderType::New();
-  ReaderType::Pointer                      dirReader = ReaderType::New();
-
-  modReader->SetFileName(modfname);
-  dirReader->SetFileName(dirfname);
-
-  filter->SetInput(modReader->GetOutput());
-  filter->SetInputDirection(dirReader->GetOutput());
-  filter->SetAmplitudeThreshold(thresh);
-  filter->Update();
-
-  PathListType::Pointer pathList = filter->GetOutput();
-  PathListIteratorType  pathListIt = pathList->Begin();
-
-  std::ofstream file;
-  file.open(outfname);
-  unsigned int counter = 0;
-
-  while (pathListIt != pathList->End())
-    {
-    file << "Path " << counter << ": ";
-    for (VertexIteratorType vIt = pathListIt.Get()->GetVertexList()->Begin();
-         vIt != pathListIt.Get()->GetVertexList()->End();
-         ++vIt)
-      {
-      if (vIt != pathListIt.Get()->GetVertexList()->Begin())
-        {
-        file << ", ";
-        }
-      file << vIt.Value();
-      }
-    file << std::endl;
-    ++pathListIt;
-    ++counter;
-    }
-  file.close();
-
-  OutputImageType::Pointer output = OutputImageType::New();
-  output->SetRegions(modReader->GetOutput()->GetLargestPossibleRegion());
-  output->Allocate();
-  output->FillBuffer(255);
-
-  DrawFilterType::Pointer drawer = DrawFilterType::New();
-  drawer->SetInput(output);
-  drawer->SetInputPath(filter->GetOutput());
-  drawer->SetPathValue(0);
-
-  WriterType::Pointer writer = WriterType::New();
-  writer->SetFileName(outImagefname);
-  writer->SetInput(drawer->GetOutput());
-  writer->Update();
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/Filtering/Projection/include/otbOrthoRectificationFilter.h b/Modules/Filtering/Projection/include/otbOrthoRectificationFilter.h
deleted file mode 100644
index 056a1003cbb58712343a0cc63fa3193483d6eb17..0000000000000000000000000000000000000000
--- a/Modules/Filtering/Projection/include/otbOrthoRectificationFilter.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbOrthoRectificationFilter_h
-#define otbOrthoRectificationFilter_h
-
-#include <sstream>
-#include <stdio.h>
-
-#include "otbGenericRSResampleImageFilter.h"
-#include "otbCompositeTransform.h"
-#include "otbInverseSensorModel.h"
-
-#include "otbVectorImage.h"
-#include "otbImage.h"
-
-namespace otb
-{
-/** \class OrthoRectificationFilter
- *
- * \brief Class for Orthorectifying an image
- *
- * This class is used to apply map projection and sensor model transformation
- * to orthorectify an image, with or without DEM.
- *
- * \ingroup Projection
- *
- * \example Projections/OrthoRectificationExample.cxx
- *
- *
- * \ingroup OTBProjection
- */
-
-template <class TInputImage, class TOutputImage, class TMapProjection, class TInterpolatorPrecision = double>
-class ITK_EXPORT OrthoRectificationFilter :
-    public GenericRSResampleImageFilter<TInputImage, TOutputImage>
-{
-public:
-  /** Standard class typedefs */
-  typedef GenericRSResampleImageFilter<TInputImage,
-      TOutputImage>                     Superclass;
-  typedef OrthoRectificationFilter      Self;
-  typedef itk::SmartPointer<Self>       Pointer;
-  typedef itk::SmartPointer<const Self> ConstPointer;
-
-  /** types definitions */
-  typedef typename TInputImage::IndexType   IndexType;
-  typedef typename TInputImage::SizeType    SizeType;
-  typedef typename TInputImage::SpacingType SpacingType;
-  typedef typename TInputImage::PointType   PointType;
-  typedef typename TInputImage::RegionType  RegionType;
-
-  typedef typename TOutputImage::PixelType OutputPixelType;
-
-  /** output map projection */
-  typedef TMapProjection                   MapProjectionType;
-  typedef typename TMapProjection::Pointer MapProjectionPointerType;
-
-  /** Method for creation through the object factory. */
-  itkNewMacro(Self);
-
-  /** Run-time type information (and related methods). */
-  itkTypeMacro(OrthoRectificationFilter, GenericRSResampleImageFilter);
-
-  /** Accessors */
-  virtual void SetMapProjection(MapProjectionType* arg)
-  {
-    if (this->m_MapProjection != arg)
-      {
-      this->m_MapProjection = arg;
-      this->Modified();
-      }
-  }
-  itkGetObjectMacro(MapProjection, MapProjectionType);
-
-protected:
-  OrthoRectificationFilter();
-  ~OrthoRectificationFilter() override;
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-
-  void GenerateInputRequestedRegion() override;
-  void GenerateOutputInformation(void) override;
-
-private:
-  OrthoRectificationFilter(const Self &) = delete;
-  void operator =(const Self&) = delete;
-
-  /** Map Projection used to transform cartographic coordinates in geographic  coordinates */
-  MapProjectionPointerType m_MapProjection;
-
-};
-
-} // namespace otb
-
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbOrthoRectificationFilter.hxx"
-#endif
-
-#endif
diff --git a/Modules/Filtering/Projection/include/otbOrthoRectificationFilter.hxx b/Modules/Filtering/Projection/include/otbOrthoRectificationFilter.hxx
deleted file mode 100644
index c383f86a9cb2bfb58e39c9511eda1f4088cef048..0000000000000000000000000000000000000000
--- a/Modules/Filtering/Projection/include/otbOrthoRectificationFilter.hxx
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbOrthoRectificationFilter_hxx
-#define otbOrthoRectificationFilter_hxx
-
-#include "otbOrthoRectificationFilter.h"
-#include "itkMetaDataObject.h"
-
-namespace otb
-{
-
-template <class TInputImage, class TOutputImage, class TMapProjection, class TInterpolatorPrecision>
-OrthoRectificationFilter<TInputImage, TOutputImage, TMapProjection, TInterpolatorPrecision>
-::OrthoRectificationFilter(): m_MapProjection(nullptr)
-{}
-
-template <class TInputImage, class TOutputImage, class TMapProjection, class TInterpolatorPrecision>
-OrthoRectificationFilter<TInputImage, TOutputImage, TMapProjection, TInterpolatorPrecision>
-::~OrthoRectificationFilter()
-{}
-
-template <class TInputImage, class TOutputImage, class TMapProjection, class TInterpolatorPrecision>
-void OrthoRectificationFilter<TInputImage, TOutputImage, TMapProjection, TInterpolatorPrecision>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-  os << indent << "OrthoRectification" << "\n";
-}
-
-template <class TInputImage, class TOutputImage, class TMapProjection, class TInterpolatorPrecision>
-void
-OrthoRectificationFilter<TInputImage, TOutputImage, TMapProjection, TInterpolatorPrecision>
-::GenerateInputRequestedRegion()
-{
-  Superclass::GenerateInputRequestedRegion();
-}
-
-template <class TInputImage, class TOutputImage, class TMapProjection, class TInterpolatorPrecision>
-void
-OrthoRectificationFilter<TInputImage, TOutputImage, TMapProjection, TInterpolatorPrecision>
-::GenerateOutputInformation()
-{
-  // call the superclass' implementation of this method
-  Superclass::GenerateOutputInformation();
-
-  if(!m_MapProjection.IsNull()  && !m_MapProjection->GetWkt().empty())
-    {
-    // fill up the metadata information for ProjectionRef
-    itk::MetaDataDictionary&  dict          = this->GetOutput()->GetMetaDataDictionary();
-    std::string               projectionRef = m_MapProjection->GetWkt();
-    itk::EncapsulateMetaData<std::string>(dict, MetaDataKey::ProjectionRefKey, projectionRef);
-
-    // Fill the GenericRSTransform with those information
-    this->SetOutputProjectionRef(projectionRef);
-    this->UpdateTransform();
-    }
-}
-
-} //namespace otb
-
-#endif
diff --git a/Modules/Filtering/Projection/test/CMakeLists.txt b/Modules/Filtering/Projection/test/CMakeLists.txt
index adbca8d880be8c086e3e33a8d86c4424ebd1b0e9..b2e82e3676835ab5d7883aee53e014939ae41d3e 100644
--- a/Modules/Filtering/Projection/test/CMakeLists.txt
+++ b/Modules/Filtering/Projection/test/CMakeLists.txt
@@ -24,7 +24,6 @@ set(OTBProjectionTests
 otbSensorModel.cxx
 otbProjectionTestDriver.cxx
 otbVectorDataProjectionFilterFromGeoToMap.cxx
-otbOrthoRectificationFilter.cxx
 otbGenericRSResampleImageFilter.cxx
 otbGeometriesProjectionFilter.cxx
 otbGenericRSTransformGenericTest.cxx
@@ -44,7 +43,6 @@ otbVectorDataProjectionFilterFromMapToImage.cxx
 otbGenericRSTransformFromImage.cxx
 otbCompositeTransform.cxx
 otbLeastSquareAffineTransformEstimator.cxx
-otbSpectralAngleDataNodeFeatureFunction.cxx
 otbGCPsToRPCSensorModelImageFilterCheckRpcModel.cxx
 otbGeographicalDistance.cxx
 otbTileImageFilterRSTransformTest.cxx
@@ -325,8 +323,8 @@ foreach(current_img ${IMG_TEST_ORTHO})
 	  otb_add_test(NAME prTvOrthoRectification_${current_imgtype}_${current_mode} COMMAND otbProjectionTestDriver
 		  --compare-image ${EPSILON_4}  ${BASELINE}/prTvOrthoRectification_${current_imgtype}_${current_mode}.tif
 		  ${TEMP}/prTvOrthoRectification_${current_imgtype}_${current_mode}.tif
-      --tolerance-ratio ${current_tolerance_ratio}
-		  otbOrthoRectificationFilter
+                  --tolerance-ratio ${current_tolerance_ratio}
+		  otbGenericRSResampleImageFilter
 		  LARGEINPUT{${current_img}?&geom=${INPUTDATA}/${current_geomgcp}.geom}
 		  ${TEMP}/prTvOrthoRectification_${current_imgtype}_${current_mode}.tif
 		  ${current_originx}
@@ -349,19 +347,6 @@ endforeach()
 #----------------- OrthoRectification tests (end) -----------------------
 #------------------------------------------------------------------------
 
-otb_add_test(NAME prTvotbGenericRSResampleImageFilter COMMAND otbProjectionTestDriver
-  --compare-image ${EPSILON_4}
-  ${BASELINE}/prTvotbGenericRSResampleImageFilterOutput.tif
-  ${TEMP}/prTvotbGenericRSResampleImageFilterOutput.tif
-  otbGenericRSResampleImageFilter
-  LARGEINPUT{QUICKBIRD/TOULOUSE/000000128955_01_P001_PAN/02APR01105228-P1BS-000000128955_01_P001.TIF}
-  1000
-  15
-  0
-  1
-  ${TEMP}/prTvotbGenericRSResampleImageFilterOutput.tif
-  )
-
 otb_add_test(NAME prTvGeometriesProjectionFilterLines COMMAND otbProjectionTestDriver
   --compare-ogr ${EPSILON_9}
   ${BASELINE_FILES}/prTvVectorDataProjectionFilterLines.shp
@@ -596,29 +581,6 @@ otb_add_test(NAME prTvLeastSquareAffineTransformEstimator COMMAND otbProjectionT
   352 807 919 10023 12102 14181
   )
 
-otb_add_test(NAME bfTvSpectralAngleDataNodeFeatureFunction_Polygon COMMAND otbProjectionTestDriver
-  --compare-ogr ${EPSILON_3}
-  ${BASELINE_FILES}/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Polygon.shp
-  ${TEMP}/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Polygon.shp
-  otbSpectralAngleDataNodeFeatureFunction
-  ${INPUTDATA}/Dempster-Shafer/ROI_QB_TOULOUSE_BUILDINGS.shp
-  ${INPUTDATA}/Dempster-Shafer/ROI_QB_TOULOUSE.TIF
-  ${INPUTDATA}/DEM/srtm_directory
-  ${TEMP}/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Polygon.shp
-  0 )
-
-otb_add_test(NAME bfTvSpectralAngleDataNodeFeatureFunction_Line COMMAND otbProjectionTestDriver
-  --compare-ogr ${EPSILON_9}
-  ${BASELINE_FILES}/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Line.shp
-  ${TEMP}/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Line.shp
-  otbSpectralAngleDataNodeFeatureFunction
-  ${INPUTDATA}/Dempster-Shafer/ROI_QB_TOULOUSE_ROADS.shp
-  ${INPUTDATA}/Dempster-Shafer/ROI_QB_TOULOUSE.TIF
-  ${INPUTDATA}/DEM/srtm_directory
-  ${TEMP}/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Line.shp
-  0
-  )
-
 set(VALID_CONDITION err=12)
 if(OTB_OSSIM_VERSION LESS 20200)
 set(VALID_CONDITION err=10)
@@ -1222,28 +1184,3 @@ set(GenericConversionChecking_INPUTS
       #${INPUTDATA}/DEM/srtm_directory
       #3 )
   #endforeach()
-
-
-
-  set(SENSOR_TYPES
-    "QUICKBIRD/TOULOUSE/000000128955_01_P001_PAN/02APR01105228-P1BS-000000128955_01_P001.TIF"
-    "GEOEYE/LES_ROCHES/po_350134_bgrn_0000000.tif"
-    "WORLDVIEW2/ROME/WV-2_standard_8band_bundle_16bit/052298844010_01_P001_MUL/09DEC10103019-M2AS-052298844010_01_P001.TIF"
-    )
-
-  foreach( file ${SENSOR_TYPES})
-    # Get the sensor name
-    set(sharp_regexp "([0-9A-Za-z_]*)[ ]*/[ ]*(.*)")
-    string(REGEX REPLACE "${sharp_regexp}" "\\1" sensor_name "${file}")
-    # Tests
-    otb_add_test(NAME prTvotbGenericRSResampleImageFilterFromMap_${sensor_name} COMMAND otbProjectionTestDriver
-      --compare-image ${EPSILON_4}
-      ${BASELINE}/prTvotbGenericRSResampleImageFilterOutputFromMap_${sensor_name}.tif
-      ${TEMP}/prTvotbGenericRSResampleImageFilterOutputFromMap_${sensor_name}.tif
-      otbGenericRSResampleImageFilterFromMap
-      LARGEINPUT{${file}}
-      15
-      0
-      ${TEMP}/prTvotbGenericRSResampleImageFilterOutputFromMap_${sensor_name}.tif
-      )
-  endforeach()
diff --git a/Modules/Filtering/Projection/test/otbGCPsToRPCSensorModelImageFilterAndOrtho.cxx b/Modules/Filtering/Projection/test/otbGCPsToRPCSensorModelImageFilterAndOrtho.cxx
index 20dc63f23e52b24bdfadf74aabb6159f61f6372b..f9eb115fcf556b9104b6b157d4fa0425e3ebd0a1 100644
--- a/Modules/Filtering/Projection/test/otbGCPsToRPCSensorModelImageFilterAndOrtho.cxx
+++ b/Modules/Filtering/Projection/test/otbGCPsToRPCSensorModelImageFilterAndOrtho.cxx
@@ -21,8 +21,7 @@
 #include "otbImageFileReader.h"
 #include "otbGCPsToRPCSensorModelImageFilter.h"
 #include "otbImageFileWriter.h"
-#include "otbGenericMapProjection.h"
-#include "otbOrthoRectificationFilter.h"
+#include "otbGenericRSResampleImageFilter.h"
 #include "otbMacro.h"
 
 int otbGCPsToRPCSensorModelImageFilterAndOrtho(int argc, char* argv[])
@@ -47,8 +46,7 @@ int otbGCPsToRPCSensorModelImageFilterAndOrtho(int argc, char* argv[])
   typedef GCPsToSensorModelFilterType::Point2DType        Point2DType;
   typedef GCPsToSensorModelFilterType::Point3DType        Point3DType;
   typedef otb::ImageFileWriter<ImageType>                                  WriterType;
-  typedef otb::GenericMapProjection<otb::TransformDirection::INVERSE> MapProjectionType;
-  typedef otb::OrthoRectificationFilter<ImageType, ImageType, MapProjectionType> OrthoRectifFilterType;
+  typedef otb::GenericRSResampleImageFilter<ImageType, ImageType> OrthoRectifFilterType;
 
   ReaderType::Pointer reader = ReaderType::New();
   reader->SetFileName(infname);
@@ -91,9 +89,6 @@ int otbGCPsToRPCSensorModelImageFilterAndOrtho(int argc, char* argv[])
 
   OrthoRectifFilterType::Pointer orthoRectifFilter = OrthoRectifFilterType::New();
 
-
-  MapProjectionType::Pointer  utmMapProjection = MapProjectionType::New();
-
   orthoRectifFilter->SetInput(rpcEstimator->GetOutput());
 
   ImageType::IndexType start;
@@ -116,9 +111,9 @@ int otbGCPsToRPCSensorModelImageFilterAndOrtho(int argc, char* argv[])
   origin[1] = strtod(argv[4], nullptr);         //Origin northing
   orthoRectifFilter->SetOutputOrigin(origin);
 
-  utmMapProjection->SetWkt(otb::SpatialReference::FromUTM(atoi(argv[9]),argv[10][0]=='N'?otb::SpatialReference::hemisphere::north : otb::SpatialReference::hemisphere::south).ToWkt());
+  std::string wkt = otb::SpatialReference::FromUTM(atoi(argv[9]),argv[10][0]=='N'?otb::SpatialReference::hemisphere::north : otb::SpatialReference::hemisphere::south).ToWkt();
 
-  orthoRectifFilter->SetMapProjection(utmMapProjection);
+  orthoRectifFilter->SetOutputProjectionRef(wkt);
 
   ImageType::PixelType no_data(reader->GetOutput()->GetNumberOfComponentsPerPixel());
   no_data.Fill(0.0);
diff --git a/Modules/Filtering/Projection/test/otbGenericRSResampleImageFilter.cxx b/Modules/Filtering/Projection/test/otbGenericRSResampleImageFilter.cxx
index c61ad46200e62e100276c9cb1a3a661071918535..31027d1eae899c096547675667a3c57403498061 100644
--- a/Modules/Filtering/Projection/test/otbGenericRSResampleImageFilter.cxx
+++ b/Modules/Filtering/Projection/test/otbGenericRSResampleImageFilter.cxx
@@ -19,183 +19,124 @@
  */
 
 
-#include "otbGenericRSResampleImageFilter.h"
+
+// iostream is used for general output
+#include <iostream>
+#include <stdlib.h>
+#include <complex>
 
 #include "otbImageFileReader.h"
 #include "otbImageFileWriter.h"
+#include "otbGenericMapProjection.h"
+#include "itkUnaryFunctorImageFilter.h"
 
-#include <ogr_spatialref.h>
-
-// Extract ROI
-#include "otbMultiChannelExtractROI.h"
-
-// Images definition
-const unsigned int Dimension = 2;
-typedef double                                      PixelType;
-typedef otb::VectorImage<PixelType, Dimension>      ImageType;
-typedef ImageType::SizeType                         SizeType;
-
-typedef otb::GenericRSResampleImageFilter<ImageType,
-                                          ImageType> ImageResamplerType;
-typedef ImageResamplerType::OriginType              OriginType;
-typedef ImageResamplerType::SpacingType             SpacingType;
-
-typedef otb::ImageFileReader<ImageType>             ReaderType;
-typedef otb::ImageFileWriter<ImageType>    WriterType;
-
+#include "otbDEMHandler.h"
+#include "otbUnaryImageFunctorWithVectorImageFilter.h"
+#include "otbGenericRSResampleImageFilter.h"
+#include "otbComplexToIntensityImageFilter.h"
+#include "otbPerBandVectorImageFilter.h"
 
-int otbGenericRSResampleImageFilter(int itkNotUsed(argc), char* argv[])
+int otbGenericRSResampleImageFilter(int argc, char* argv[])
 {
+  if (argc != 15)
+    {
+    std::cout << argv[0] <<
+    " <input filename> <output filename> <origin easting> <origin northing>"
+    " <x size> <y size> <x spacing> <y spacing> <UTM zone> <UTM hemisphere>"
+    " <grid_spacing> <mode> <mode.info> <is_complex>"
+              << std::endl;
 
-  // SmartPointer instantiation
-  ImageResamplerType::Pointer resampler = ImageResamplerType::New();
-
-  const char * infname = argv[1];
-  const char * outfname = argv[6];
-  unsigned int isize    = atoi(argv[2]);
-  double iGridSpacing    = atof(argv[3]);
-  int    useInRpc          = atoi(argv[4]);
-  int    useOutRpc          = atoi(argv[5]);
-
-
-  ReaderType::Pointer         reader    = ReaderType::New();
-
-  // Read the input image
-  reader->SetFileName(infname);
-  reader->UpdateOutputInformation();
-
-  // Fill the output size with the user selection
-  SizeType      size;
-  size.Fill(isize);
-
-  // Set the origin & the spacing of the output
-  OriginType  origin;
-  origin[0] = 367340;
-  origin[1] = 4.83467e+06;
-
-  SpacingType  spacing;
-  spacing[0] = 0.6;
-  spacing[1] = -0.6;
-
-  // Build the output projection ref : UTM ref
-  OGRSpatialReference    oSRS;
-  oSRS.SetProjCS("UTM");
-  oSRS.SetUTM(31, true);
-  char * utmRef = nullptr;
-  oSRS.exportToWkt(&utmRef);
+    return EXIT_FAILURE;
+    }
 
-  // Displacement Field spacing
-  SpacingType  gridSpacing;
-  gridSpacing[0] = iGridSpacing;
-  gridSpacing[1] = -iGridSpacing;
-
-  // Default value builder
-  ImageType::PixelType defaultValue;
-  itk::NumericTraits<ImageType::PixelType>::SetLength(defaultValue, reader->GetOutput()->GetNumberOfComponentsPerPixel());
-
-  // Set the Resampler Parameters
-  resampler->SetInput(reader->GetOutput());
-  resampler->SetDisplacementFieldSpacing(gridSpacing);
-  resampler->SetOutputOrigin(origin);
-  resampler->SetOutputSize(size);
-  resampler->SetOutputSpacing(spacing);
-  resampler->SetOutputProjectionRef(utmRef);
-  resampler->SetEdgePaddingValue(defaultValue);
-  if (useInRpc)
+  typedef std::complex<double>                                                      ComplexPixelType;
+  typedef otb::VectorImage<ComplexPixelType,2>                                     ComplexVectorImageType;
+  typedef otb::VectorImage<double, 2>                                               VectorImageType;
+  typedef otb::ImageFileReader<VectorImageType>                                     ReaderType;
+  typedef otb::ImageFileReader<ComplexVectorImageType>                              ComplexReaderType;
+  typedef otb::ImageFileWriter<VectorImageType>                                     WriterType;
+
+  // Handling of complex images
+  typedef otb::Image<ComplexPixelType> ComplexImageType;
+  typedef otb::Image<double>           ImageType;
+  typedef otb::ComplexToIntensityImageFilter<ComplexImageType, ImageType> IntensityFilterType;
+  typedef otb::PerBandVectorImageFilter<ComplexVectorImageType,VectorImageType,IntensityFilterType> PerBandIntensityFilterType;
+  typedef otb::GenericRSResampleImageFilter<VectorImageType, VectorImageType> OrthoRectifFilterType;
+
+  //Allocate pointer
+  ReaderType::Pointer reader = ReaderType::New();
+  ComplexReaderType::Pointer cReader = ComplexReaderType::New();
+  WriterType::Pointer writer = WriterType::New();
+  PerBandIntensityFilterType::Pointer intensityFilter = PerBandIntensityFilterType::New();
+  
+  OrthoRectifFilterType::Pointer orthoRectifFilter = OrthoRectifFilterType::New();
+
+  writer->SetFileName(argv[2]);
+  
+  bool isComplex = atoi(argv[14]);
+
+  if(isComplex)
     {
-    resampler->SetInputRpcGridSize(20);
-    resampler->EstimateInputRpcModelOn();
+      cReader->SetFileName(argv[1]);
+      cReader->GenerateOutputInformation();
+      intensityFilter->SetInput(cReader->GetOutput());
+      VectorImageType::PixelType no_data(cReader->GetOutput()->GetNumberOfComponentsPerPixel());
+      no_data.Fill(0);
+      orthoRectifFilter->SetEdgePaddingValue(no_data);
+      orthoRectifFilter->SetInput(intensityFilter->GetOutput());
     }
-
-  if (useOutRpc)
+  else
     {
-    resampler->SetOutputRpcGridSize(20);
-    resampler->EstimateOutputRpcModelOn();
+      reader->SetFileName(argv[1]);
+      reader->GenerateOutputInformation();
+      VectorImageType::PixelType no_data(reader->GetOutput()->GetNumberOfComponentsPerPixel());
+      no_data.Fill(0);
+      orthoRectifFilter->SetEdgePaddingValue(no_data);
+      orthoRectifFilter->SetInput(reader->GetOutput());
     }
 
+  VectorImageType::IndexType start;
+  start[0] = 0;
+  start[1] = 0;
+  orthoRectifFilter->SetOutputStartIndex(start);
 
-  // Write the resampled image
-  WriterType::Pointer writer= WriterType::New();
-  writer->SetNumberOfDivisionsTiledStreaming(4);
-  writer->SetFileName(outfname);
-  writer->SetInput(resampler->GetOutput());
-  writer->Update();
+  VectorImageType::SizeType size;
+  size[0] = atoi(argv[5]);      // X size
+  size[1] = atoi(argv[6]);            //Y size
+  orthoRectifFilter->SetOutputSize(size);
 
-  std::cout << resampler << std::endl;
+  VectorImageType::SpacingType spacing;
+  spacing[0] = atof(argv[7]);
+  spacing[1] = atof(argv[8]);
+  orthoRectifFilter->SetOutputSpacing(spacing);
 
-  return EXIT_SUCCESS;
-}
-
-
-int otbGenericRSResampleImageFilterFromMap(int itkNotUsed(argc), char* argv[])
-{
-  typedef otb::MultiChannelExtractROI<PixelType, PixelType>  ExtractROIType;
-
-  // SmartPointer instantiation
-  ExtractROIType::Pointer extractor = ExtractROIType::New();
-  ImageResamplerType::Pointer resampler = ImageResamplerType::New();
+  VectorImageType::PointType origin;
+  origin[0] = strtod(argv[3], nullptr);         //Origin easting
+  origin[1] = strtod(argv[4], nullptr);         //Origin northing
+  orthoRectifFilter->SetOutputOrigin(origin);
 
-  const char * infname   = argv[1];
-  const char * outfname  = argv[4];
-  double iGridSpacing    = atof(argv[2]);
-  int    useInRpc        = atoi(argv[3]);
-
-  // Reader Instantiation
-  ReaderType::Pointer         reader    = ReaderType::New();
-  reader->SetFileName(infname);
-  reader->UpdateOutputInformation();
-
-  SpacingType  spacing;
-  spacing[0] =  2.5;
-  spacing[1] = -2.5;
+  std::string wkt = otb::SpatialReference::FromUTM(atoi(argv[9]),atoi(argv[10]) ? otb::SpatialReference::hemisphere::north : otb::SpatialReference::hemisphere::south).ToWkt();
+  orthoRectifFilter->SetOutputProjectionRef(wkt);
 
   // Displacement Field spacing
-  SpacingType  gridSpacing;
-  gridSpacing[0] = iGridSpacing;
-  gridSpacing[1] = -iGridSpacing;
-
-  // Default value builder
-  ImageType::PixelType defaultValue;
-  itk::NumericTraits<ImageType::PixelType>::SetLength(defaultValue, reader->GetOutput()->GetNumberOfComponentsPerPixel());
-
-  // Extract a roi centered on the input center
-  ImageType::RegionType roi;
-  ImageType::IndexType  roiIndex;
-  SizeType              roiSize;
-
-  // Fill the size
-  roiSize.Fill(250);
-
-  // Fill the start index
-  roiIndex[0] = (unsigned int)((reader->GetOutput()->GetLargestPossibleRegion().GetSize()[0] - roiSize[0]) /2);
-  roiIndex[1] = (unsigned int)((reader->GetOutput()->GetLargestPossibleRegion().GetSize()[1] - roiSize[1]) /2);
-
-  roi.SetIndex(roiIndex);
-  roi.SetSize(roiSize);
-
-  extractor->SetExtractionRegion(roi);
-  extractor->SetInput(reader->GetOutput());
-  extractor->UpdateOutputInformation();
-
-  // Set the Resampler Parameters
-  resampler->SetInput(extractor->GetOutput());
-  resampler->SetDisplacementFieldSpacing(gridSpacing);
-  resampler->SetOutputParametersFromMap("UTM", spacing);
-
-  if (useInRpc)
-    {
-    resampler->SetInputRpcGridSize(20);
-    resampler->EstimateInputRpcModelOn();
-    }
-
-  // Write the resampled image
-  WriterType::Pointer writer= WriterType::New();
-  writer->SetAutomaticTiledStreaming();
-  writer->SetFileName(outfname);
-  writer->SetInput(resampler->GetOutput());
+  VectorImageType::SpacingType  gridSpacing;
+  gridSpacing[0] = atof(argv[11]);
+  gridSpacing[1] = -atof(argv[11]);
+  orthoRectifFilter->SetDisplacementFieldSpacing(gridSpacing);
+  
+  // manage demHandler
+  if (atoi(argv[12])==1) //mode = no DEM
+  {
+	  otb::DEMHandler::Instance()->SetDefaultHeightAboveEllipsoid(135.8);
+  }
+  else if ( (atoi(argv[12])==2) || (atoi(argv[12])==3) ) //mode = DEM SRTM || DEM GTIFF
+  {
+	  otb::DEMHandler::Instance()->OpenDEMDirectory(argv[13]);
+  }
+
+  writer->SetInput(orthoRectifFilter->GetOutput());
+  writer->SetNumberOfDivisionsTiledStreaming(4);
   writer->Update();
 
-  std::cout << resampler << std::endl;
-
   return EXIT_SUCCESS;
 }
diff --git a/Modules/Filtering/Projection/test/otbOrthoRectificationFilter.cxx b/Modules/Filtering/Projection/test/otbOrthoRectificationFilter.cxx
deleted file mode 100644
index e832b5dc0ff2163ec5abe0c0518544932f845552..0000000000000000000000000000000000000000
--- a/Modules/Filtering/Projection/test/otbOrthoRectificationFilter.cxx
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-
-// iostream is used for general output
-#include <iostream>
-#include <stdlib.h>
-#include <complex>
-
-#include "otbImageFileReader.h"
-#include "otbImageFileWriter.h"
-#include "otbGenericMapProjection.h"
-#include "itkUnaryFunctorImageFilter.h"
-//#include "itkComplexToModulusImageFilter.h"
-#include "otbDEMHandler.h"
-#include "otbUnaryImageFunctorWithVectorImageFilter.h"
-#include "otbOrthoRectificationFilter.h"
-#include "otbComplexToIntensityImageFilter.h"
-#include "otbPerBandVectorImageFilter.h"
-
-int otbOrthoRectificationFilter(int argc, char* argv[])
-{
-  if (argc != 15)
-    {
-    std::cout << argv[0] <<
-    " <input filename> <output filename> <origin easting> <origin northing>"
-    " <x size> <y size> <x spacing> <y spacing> <UTM zone> <UTM hemisphere>"
-    " <grid_spacing> <mode> <mode.info> <is_complex>"
-              << std::endl;
-
-    return EXIT_FAILURE;
-    }
-
-  typedef std::complex<double>                                                      ComplexPixelType;
-  typedef otb::VectorImage<ComplexPixelType,2>                                     ComplexVectorImageType;
-  typedef otb::VectorImage<double, 2>                                               VectorImageType;
-  typedef otb::ImageFileReader<VectorImageType>                                     ReaderType;
-  typedef otb::ImageFileReader<ComplexVectorImageType>                              ComplexReaderType;
-  typedef otb::ImageFileWriter<VectorImageType>                                     WriterType;
-
-  // Handling of complex images
-  typedef otb::Image<ComplexPixelType> ComplexImageType;
-  typedef otb::Image<double>           ImageType;
-  typedef otb::ComplexToIntensityImageFilter<ComplexImageType, ImageType> IntensityFilterType;
-  typedef otb::PerBandVectorImageFilter<ComplexVectorImageType,VectorImageType,IntensityFilterType> PerBandIntensityFilterType;
-  typedef otb::GenericMapProjection<otb::TransformDirection::INVERSE> MapProjectionType;
-  typedef otb::OrthoRectificationFilter<VectorImageType, VectorImageType, MapProjectionType> OrthoRectifFilterType;
-
-  //Allocate pointer
-  ReaderType::Pointer reader = ReaderType::New();
-  ComplexReaderType::Pointer cReader = ComplexReaderType::New();
-  WriterType::Pointer writer = WriterType::New();
-  PerBandIntensityFilterType::Pointer intensityFilter = PerBandIntensityFilterType::New();
-  
-  OrthoRectifFilterType::Pointer orthoRectifFilter = OrthoRectifFilterType::New();
-
-  writer->SetFileName(argv[2]);
-  
-  bool isComplex = atoi(argv[14]);
-
-  if(isComplex)
-    {
-      cReader->SetFileName(argv[1]);
-      cReader->GenerateOutputInformation();
-      intensityFilter->SetInput(cReader->GetOutput());
-      VectorImageType::PixelType no_data(cReader->GetOutput()->GetNumberOfComponentsPerPixel());
-      no_data.Fill(0);
-      orthoRectifFilter->SetEdgePaddingValue(no_data);
-      orthoRectifFilter->SetInput(intensityFilter->GetOutput());
-    }
-  else
-    {
-      reader->SetFileName(argv[1]);
-      reader->GenerateOutputInformation();
-      VectorImageType::PixelType no_data(reader->GetOutput()->GetNumberOfComponentsPerPixel());
-      no_data.Fill(0);
-      orthoRectifFilter->SetEdgePaddingValue(no_data);
-      orthoRectifFilter->SetInput(reader->GetOutput());
-    }
-
-  VectorImageType::IndexType start;
-  start[0] = 0;
-  start[1] = 0;
-  orthoRectifFilter->SetOutputStartIndex(start);
-
-  VectorImageType::SizeType size;
-  size[0] = atoi(argv[5]);      // X size
-  size[1] = atoi(argv[6]);            //Y size
-  orthoRectifFilter->SetOutputSize(size);
-
-  VectorImageType::SpacingType spacing;
-  spacing[0] = atof(argv[7]);
-  spacing[1] = atof(argv[8]);
-  orthoRectifFilter->SetOutputSpacing(spacing);
-
-  VectorImageType::PointType origin;
-  origin[0] = strtod(argv[3], nullptr);         //Origin easting
-  origin[1] = strtod(argv[4], nullptr);         //Origin northing
-  orthoRectifFilter->SetOutputOrigin(origin);
-
-  MapProjectionType::Pointer utmMapProjection = MapProjectionType::New();
-  utmMapProjection->SetWkt(otb::SpatialReference::FromUTM(atoi(argv[9]),atoi(argv[10]) ? otb::SpatialReference::hemisphere::north : otb::SpatialReference::hemisphere::south).ToWkt());
-  orthoRectifFilter->SetMapProjection(utmMapProjection);
-
-  // Displacement Field spacing
-  VectorImageType::SpacingType  gridSpacing;
-  gridSpacing[0] = atof(argv[11]);
-  gridSpacing[1] = -atof(argv[11]);
-  orthoRectifFilter->SetDisplacementFieldSpacing(gridSpacing);
-  
-  // manage demHandler
-  if (atoi(argv[12])==1) //mode = no DEM
-  {
-	  otb::DEMHandler::Instance()->SetDefaultHeightAboveEllipsoid(135.8);
-  }
-  else if ( (atoi(argv[12])==2) || (atoi(argv[12])==3) ) //mode = DEM SRTM || DEM GTIFF
-  {
-	  otb::DEMHandler::Instance()->OpenDEMDirectory(argv[13]);
-  }
-
-  writer->SetInput(orthoRectifFilter->GetOutput());
-  writer->SetNumberOfDivisionsTiledStreaming(4);
-  writer->Update();
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/Filtering/Projection/test/otbProjectionTestDriver.cxx b/Modules/Filtering/Projection/test/otbProjectionTestDriver.cxx
index 6f985e5f5c797ef0a758fb4e70eb198d42b629ad..acbe2a16407fa3b09ef58adf069c95c836bc83ab 100644
--- a/Modules/Filtering/Projection/test/otbProjectionTestDriver.cxx
+++ b/Modules/Filtering/Projection/test/otbProjectionTestDriver.cxx
@@ -24,9 +24,7 @@ void RegisterTests()
 {
   REGISTER_TEST(otbSensorModel);
   REGISTER_TEST(otbVectorDataProjectionFilterFromGeoToMap);
-  REGISTER_TEST(otbOrthoRectificationFilter);
   REGISTER_TEST(otbGenericRSResampleImageFilter);
-  REGISTER_TEST(otbGenericRSResampleImageFilterFromMap);
   REGISTER_TEST(otbGeometriesProjectionFilter);
   REGISTER_TEST(otbGenericRSTransformGenericTest);
   REGISTER_TEST(otbVectorDataTransformFilter);
@@ -46,7 +44,6 @@ void RegisterTests()
   REGISTER_TEST(otbGenericRSTransformImageAndMNTToWGS84ConversionChecking);
   REGISTER_TEST(otbCompositeTransform);
   REGISTER_TEST(otbLeastSquareAffineTransformEstimator);
-  REGISTER_TEST(otbSpectralAngleDataNodeFeatureFunction);
   REGISTER_TEST(otbGCPsToRPCSensorModelImageFilterCheckRpcModel);
   REGISTER_TEST(otbGeographicalDistance);
   REGISTER_TEST(otbTileImageFilterRSTransformTest);
diff --git a/Modules/Filtering/Projection/test/otbSpectralAngleDataNodeFeatureFunction.cxx b/Modules/Filtering/Projection/test/otbSpectralAngleDataNodeFeatureFunction.cxx
deleted file mode 100644
index eb239242e2ad774a69c3480b8d447904c0945516..0000000000000000000000000000000000000000
--- a/Modules/Filtering/Projection/test/otbSpectralAngleDataNodeFeatureFunction.cxx
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-
-#include "otbSpectralAngleDataNodeFeatureFunction.h"
-
-#include "otbVectorImage.h"
-#include "otbImageFileReader.h"
-#include "otbVectorData.h"
-#include "otbVectorDataFileReader.h"
-#include "otbVectorDataIntoImageProjectionFilter.h"
-#include "otbVectorDataFileWriter.h"
-#include "itkPreOrderTreeIterator.h"
-
-
-int otbSpectralAngleDataNodeFeatureFunction(int itkNotUsed(argc), char* argv[])
-{
-  const char * inputVD  = argv[1];
-  const char * inputImg = argv[2];
-  const char * DEMDir   = argv[3];
-  const char * outputVD = argv[4];
-  int DisplayWarnings   = atoi(argv[5]);
-
-  typedef double                                      CoordRepType;
-  typedef double                                      PrecisionType;
-  typedef otb::VectorImage<PrecisionType>             ImageType;
-  typedef otb::ImageFileReader<ImageType>             ImageReaderType;
-  typedef otb::VectorData<CoordRepType, 2, PrecisionType>
-                                                      VectorDataType;
-  typedef VectorDataType::DataNodeType                DataNodeType;
-  typedef otb::VectorDataFileReader<VectorDataType>   VectorDataReaderType;
-  typedef otb::VectorDataIntoImageProjectionFilter<VectorDataType, ImageType>
-                                                      VectorDataReProjFilter;
-  typedef otb::VectorDataFileWriter<VectorDataType>   VectorDataWriterType;
-  typedef itk::PreOrderTreeIterator<VectorDataType::DataTreeType>
-                                                      TreeIteratorType;
-
-  typedef otb::SpectralAngleDataNodeFeatureFunction<ImageType, CoordRepType, PrecisionType>
-                                                      FeaturefunctionType;
-  typedef FeaturefunctionType::OutputType
-                                                      FeatureOutputType;
-
-  ImageReaderType::Pointer imgReader = ImageReaderType::New();
-  VectorDataReaderType::Pointer vdReader = VectorDataReaderType::New();
-  VectorDataReProjFilter::Pointer vdReProjFilter = VectorDataReProjFilter::New();
-  VectorDataWriterType::Pointer vdWriter = VectorDataWriterType::New();
-  FeaturefunctionType::Pointer featureFunction = FeaturefunctionType::New();
-
-  if (!DisplayWarnings)
-   {
-    imgReader->SetGlobalWarningDisplay(0);
-   }
-
-  otb::DEMHandler::Instance()->OpenDEMDirectory(DEMDir);
-
-  vdReader->SetFileName(inputVD);
-  vdReader->Update();
-
-  imgReader->SetFileName(inputImg);
-  imgReader->UpdateOutputInformation();
-  imgReader->Update(); //Needed to set m_EndIndex, m_StartIndex in otbDataNodeImageFunction
-
-  vdReProjFilter->SetInputImage(imgReader->GetOutput());
-  vdReProjFilter->SetInputVectorData(vdReader->GetOutput());
-  vdReProjFilter->SetUseOutputSpacingAndOriginFromImage(true);
-  vdReProjFilter->Update();
-
-  std::cout<< "vdReProjFilter->GetOutput()->Size(): "
-        << vdReProjFilter->GetOutput()->Size() << std::endl;
-
-  featureFunction->SetInputImage(imgReader->GetOutput());
-  featureFunction->SetRadius(0);
-
-  // Output
-  VectorDataType::Pointer outVD = VectorDataType::New();
-  // Retrieving root node
-  DataNodeType::Pointer root = outVD->GetDataTree()->GetRoot()->Get();
-  // Create the document node
-  DataNodeType::Pointer document = DataNodeType::New();
-  document->SetNodeType(otb::DOCUMENT);
-  // Adding the layer to the data tree
-  outVD->GetDataTree()->Add(document, root);
-  // Create the folder node
-  DataNodeType::Pointer folder = DataNodeType::New();
-  folder->SetNodeType(otb::FOLDER);
-  // Adding the layer to the data tree
-  outVD->GetDataTree()->Add(folder, document);
-
-  TreeIteratorType itVector(vdReProjFilter->GetOutput()->GetDataTree());
-  itVector.GoToBegin();
-  while (!itVector.IsAtEnd())
-    {
-    if (itVector.Get()->IsLineFeature() || itVector.Get()->IsPolygonFeature())
-         {
-          const DataNodeType::Pointer currentGeometry = itVector.Get();
-          FeatureOutputType currentResult;
-          currentResult = featureFunction->Evaluate(*(currentGeometry.GetPointer()));
-          currentGeometry->SetFieldAsDouble("RADIOM", (double)(currentResult[0]));
-          outVD->GetDataTree()->Add(currentGeometry, folder);
-         }
-    ++itVector;
-    }
-
-  vdWriter->SetInput(outVD);
-  vdWriter->SetFileName(outputVD);
-  vdWriter->Update();
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/Filtering/VectorDataManipulation/include/otbDBOverlapDataNodeFeatureFunction.h b/Modules/Filtering/VectorDataManipulation/include/otbDBOverlapDataNodeFeatureFunction.h
deleted file mode 100644
index 5a0d897384035224960895f0ce23a76dacc68d80..0000000000000000000000000000000000000000
--- a/Modules/Filtering/VectorDataManipulation/include/otbDBOverlapDataNodeFeatureFunction.h
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbDBOverlapDataNodeFeatureFunction_h
-#define otbDBOverlapDataNodeFeatureFunction_h
-
-#include "otbDataNodeVectorDataFunction.h"
-
-#include "itkPreOrderTreeIterator.h"
-
-namespace otb
-{
-/** \class DBOverlapDataNodeFeatureFunction
-  * \brief
-  *
-  *
-  * \ingroup Functions
-  * \sa DataNodeVectorDataFunction
- *
- * \ingroup OTBVectorDataManipulation
-  */
-
-template <
-class TCoordRep = double,
-class TPrecision = double
->
-class ITK_EXPORT DBOverlapDataNodeFeatureFunction :
-    public DataNodeVectorDataFunction<std::vector<TPrecision>, TCoordRep, TPrecision>
-{
-public:
-  /** Standard class typedefs. */
-  typedef DBOverlapDataNodeFeatureFunction                    Self;
-  typedef DataNodeVectorDataFunction<std::vector<TPrecision>, TCoordRep, TPrecision>
-                                                              Superclass;
-  typedef itk::SmartPointer<Self>                             Pointer;
-  typedef itk::SmartPointer<const Self>                       ConstPointer;
-
-  /** Method for creation through the object factory. */
-  itkNewMacro(Self);
-
-  /** Run-time type information (and related methods). */
-  itkTypeMacro(DBOverlapDataNodeFeatureFunction, DataNodeVectorDataFunction);
-
-  /** Some typedefs. */
-  typedef typename Superclass::DataNodeType           DataNodeType;
-  typedef typename DataNodeType::PointType            PointType;
-  typedef typename DataNodeType::LineType             LineType;
-  typedef typename LineType::VertexType               VertexType;
-  typedef typename DataNodeType::PolygonType          PolygonType;
-
-  typedef typename Superclass::VectorDataType         VectorDataType;
-  typedef typename VectorDataType::DataTreeType       DataTreeType;
-  typedef itk::PreOrderTreeIterator<typename VectorDataType::DataTreeType>
-                                                      TreeIteratorType;
-
-  typedef TCoordRep                                   CoordRepType;
-
-  typedef TPrecision                                  PrecisionType;
-
-  typedef std::vector<PrecisionType>                  OutputType;
-
-  OutputType Evaluate( const DataNodeType& node ) const override;
-
-  /** Set/Get methods */
-  itkGetConstMacro(DistanceThreshold, PrecisionType);
-  itkSetMacro(DistanceThreshold, PrecisionType);
-
-  /** Method to compute the distance of a point to a segment */
-  double ComputeEuclideanDistanceMetricToSegment(VertexType q1, VertexType q2, VertexType p) const;
-
-protected:
-  DBOverlapDataNodeFeatureFunction();
-  ~DBOverlapDataNodeFeatureFunction() override {}
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-
-private:
-  DBOverlapDataNodeFeatureFunction(const Self&) = delete;
-  void operator=(const Self&) = delete;
-
-  /** Road / Building distance Threshold */
-  PrecisionType               m_DistanceThreshold;
-};
-
-}
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbDBOverlapDataNodeFeatureFunction.hxx"
-#endif
-
-#endif
diff --git a/Modules/Filtering/VectorDataManipulation/include/otbDBOverlapDataNodeFeatureFunction.hxx b/Modules/Filtering/VectorDataManipulation/include/otbDBOverlapDataNodeFeatureFunction.hxx
deleted file mode 100644
index 3ede4ecc7f096b033ae7ff40a85a0c14fc832c04..0000000000000000000000000000000000000000
--- a/Modules/Filtering/VectorDataManipulation/include/otbDBOverlapDataNodeFeatureFunction.hxx
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbDBOverlapDataNodeFeatureFunction_hxx
-#define otbDBOverlapDataNodeFeatureFunction_hxx
-
-#include "otbDBOverlapDataNodeFeatureFunction.h"
-
-namespace otb
-{
-
-/**
- * Constructor
- */
-template <class TCoordRep, class TPrecision>
-DBOverlapDataNodeFeatureFunction<TCoordRep, TPrecision>
-::DBOverlapDataNodeFeatureFunction()
- :m_DistanceThreshold(50)//in physical coordinates
-{
-}
-
-/**
- * Standard "PrintSelf" method
- */
-template <class TCoordRep, class TPrecision>
-void
-DBOverlapDataNodeFeatureFunction<TCoordRep, TPrecision>
-::PrintSelf(
-  std::ostream& os,
-  itk::Indent indent) const
-{
-  Superclass::PrintSelf( os, indent );
-  os << indent << "Distance Threshold: " << m_DistanceThreshold << std::endl;
-}
-
-/**
- * Method to compute the distance of a point to a segment
- */
-template <class TCoordRep, class TPrecision>
-double
-DBOverlapDataNodeFeatureFunction<TCoordRep, TPrecision>
-::ComputeEuclideanDistanceMetricToSegment(VertexType q1, VertexType q2, VertexType p) const
-{
-  // Length of the segment
-  double l2 = q1.SquaredEuclideanDistanceTo(q2);
-
-  // Is the projection of p on the segment inside (0<u<1) or
-  // inside the segment bounds
-  double u = ((p[0] - q1[0]) *(q2[0] - q1[0] ) +
-    (p[1] - q1[1]) *(q2[1] - q1[1])) / l2;
-
-  if( u < 1e-10 ) u = 0.;
-  if( u -1. > 1e-10 ) u = 1.;
-  double x = q1[0] + u *(q2[0] - q1[0] );
-  double y = q1[1] + u *(q2[1] - q1[1] );
-  double dx = x - p[0];
-  double dy = y - p[1];
-
-  return std::sqrt(dx*dx + dy*dy);
- }
-
-template <class TCoordRep, class TPrecision>
-typename DBOverlapDataNodeFeatureFunction<TCoordRep, TPrecision>
-::OutputType
-DBOverlapDataNodeFeatureFunction<TCoordRep, TPrecision>
-::Evaluate( const DataNodeType& node ) const
-{
-  OutputType output;
-
-  //build the tmp DataTree containing polygon within the radius
-  typename VectorDataType::Pointer tmpDataTree = VectorDataType::New();
-  typename DataNodeType::Pointer root = tmpDataTree->GetDataTree()->GetRoot()->Get();
-  typename DataNodeType::Pointer document = DataNodeType::New();
-  document->SetNodeType(otb::DOCUMENT);
-  tmpDataTree->GetDataTree()->Add(document, root);
-
-  TreeIteratorType itVector(this->GetInputVectorData()->GetDataTree());
-  itVector.GoToBegin();
-    while (!itVector.IsAtEnd())
-      {
-      if (itVector.Get()->IsPolygonFeature())
-        {
-        typename DataNodeType::Pointer currentGeometry = itVector.Get();
-        unsigned int i=0;
-        while (i<currentGeometry->GetPolygonExteriorRing()->GetVertexList()->Size())
-          {
-          unsigned int j=0;
-          while (j<node.GetLine()->GetVertexList()->Size()-1)
-            {
-            double dist;
-            dist = this->ComputeEuclideanDistanceMetricToSegment(node.GetLine()->GetVertexList()->GetElement(j),
-                                                     node.GetLine()->GetVertexList()->GetElement(j+1),
-                                                     currentGeometry->GetPolygonExteriorRing()->GetVertexList()->GetElement(i));
-            //std::cout << "dist: " << dist << std::endl;
-            //std::cout << "m_DistanceThreshold: " << m_DistanceThreshold << std::endl;
-            if (dist <= m_DistanceThreshold)
-              {
-              //Add the current polygon to the tmp DataTree
-              //jump to the next one
-              tmpDataTree->GetDataTree()->Add(currentGeometry, document);
-              j = node.GetLine()->GetVertexList()->Size();
-              i = currentGeometry->GetPolygonExteriorRing()->GetVertexList()->Size();
-              }
-            ++j;
-            }
-          ++i;
-          }
-        }
-      ++itVector;
-      }
-
-  /*
-  std::cout << this->GetInputVectorData()->GetDataTree()->Count() << std::endl;
-  std::cout << tmpDataTree->GetDataTree()->Count() << std::endl;
-  */
-  unsigned int crossAcc = 0;
-  unsigned int nbBuildings = 0;
-
-  TreeIteratorType it(tmpDataTree->GetDataTree());
-  it.GoToBegin();
-  while (!it.IsAtEnd())
-    {
-    if (it.Get()->IsPolygonFeature())
-      {
-      typename DataNodeType::Pointer currentGeometry = it.Get();
-      nbBuildings ++;
-      for (unsigned int i=0; i<node.GetLine()->GetVertexList()->Size()-1; ++i)
-        {
-
-        if(currentGeometry->GetPolygonExteriorRing()->NbCrossing(node.GetLine()->GetVertexList()->GetElement(i),
-                                                                 node.GetLine()->GetVertexList()->GetElement(i+1)))
-          {
-          crossAcc ++;
-          break;
-          }
-        }
-      }
-    ++it;
-    }
-
-  if(nbBuildings == 0)
-    {
-    output.push_back(static_cast<PrecisionType>(0.));
-    }
-  else
-    {
-    output.push_back(static_cast<PrecisionType>((double)(crossAcc)/(double)(nbBuildings)));
-    }
-
-  output.push_back(static_cast<PrecisionType>(crossAcc));
-  output.push_back(static_cast<PrecisionType>(nbBuildings));
-
-  return output;
-}
-
-
-} // end namespace otb
-
-#endif
diff --git a/Modules/Filtering/VectorDataManipulation/include/otbRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction.h b/Modules/Filtering/VectorDataManipulation/include/otbRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction.h
deleted file mode 100644
index 303db1003b0aeae9e2b39c24a551d57bc2b3bb4c..0000000000000000000000000000000000000000
--- a/Modules/Filtering/VectorDataManipulation/include/otbRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction.h
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction_h
-#define otbRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction_h
-
-#include "otbDataNodeImageFunction.h"
-
-#include "otbBinarySpectralAngleFunctor.h"
-#include "otbPolyLineImageConstIterator.h"
-#include "itkLineConstIterator.h"
-#include "itkVariableLengthVector.h"
-
-namespace otb
-{
-/** \class RadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction
-  * \brief Compute the spectral angle between the radiometry along
-  * a line and its neighborhood
-  *
-  * This function compares the radiometry along a datanode with the
-  * radiometry of the neighborhood.
-  *
-  * It computes the mean of a rectangular area around each line segment,
-  * and the mean of two rectangular areas on each side of the line segment.
-  * The descriptor is the spectral angle between the two values,
-  * scaled by \$f\pi\$f.
-  *
-  * The width of the area around a line segment can be specified with
-  * SetCenterRadius.
-  *
-  * The neighborhood area can be specified by two radius, using SetNeighborhoodBeginRadius
-  * and SetNeighborhoodEndRadius.
-  *
-  *
-  * \ingroup Functions
-  * \sa DataNodeImageFunction
-  * \sa NDVIDataNodeFeatureFunction
- *
- * \ingroup OTBVectorDataManipulation
-  */
-
-template <
-class TImage,
-class TCoordRep = double,
-class TPrecision = double
->
-class ITK_EXPORT RadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction :
-    public DataNodeImageFunction<TImage, std::vector<TPrecision>, TCoordRep, TPrecision>
-{
-public:
-  /** Standard class typedefs. */
-  typedef RadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction                Self;
-  typedef DataNodeImageFunction<TImage, std::vector<TPrecision>, TCoordRep, TPrecision>
-                                                              Superclass;
-  typedef itk::SmartPointer<Self>                             Pointer;
-  typedef itk::SmartPointer<const Self>                       ConstPointer;
-
-  /** Method for creation through the object factory. */
-  itkNewMacro(Self);
-
-  /** Run-time type information (and related methods). */
-  itkTypeMacro(RadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction, DataNodeImageFunction);
-
-  /** Some typedefs. */
-  typedef typename Superclass::DataNodeType           DataNodeType;
-  typedef typename DataNodeType::LineType             LineType;
-  typedef typename LineType::Pointer                  LinePointer;
-  typedef typename LineType::ContinuousIndexType      ContinuousIndexType;
-  typedef typename LineType::VertexListConstIteratorType VertexListConstIteratorType;
-
-  typedef TImage                                      InputImageType;
-  typedef typename InputImageType::ConstPointer       InputImageConstPointer;
-  typedef typename InputImageType::PixelType          PixelType;
-  typedef typename InputImageType::InternalPixelType  ScalarRealType;
-  typedef typename InputImageType::IndexType          IndexType;
-  typedef typename InputImageType::IndexValueType     IndexValueType;
-
-  typedef TCoordRep                                   CoordRepType;
-
-  typedef TPrecision                                  PrecisionType;
-
-  typedef itk::VariableLengthVector<PrecisionType>    ReferencePixelType;
-
-  typedef PolyLineImageConstIterator<InputImageType, LineType> ImageLineIteratorType;
-  typedef itk::LineConstIterator<InputImageType>      LineIteratorType;
-
-  typedef Functor::BinarySpectralAngleFunctor<PixelType, ReferencePixelType, PrecisionType>
-                                                      SpectralAngleFunctorType;
-
-  typedef std::pair<IndexType, IndexType>             IndexPairType;
-  typedef std::vector<PrecisionType>                  OutputType;
-
-  /* Compute the descriptor value along this DataNode */
- OutputType Evaluate( const DataNodeType& node ) const override;
-
-  /* Get the radius used to define the area around a line segment.
-   * A radius of 0 means that the area is reduced to a line joining
-   * the two segments extremities. */
-  itkGetConstMacro(CenterRadius, unsigned int);
-
-  /* Set the radius used to define the area around a line segment.
-   * A radius of 0 means that the area is reduced to a line joining
-   * the two segments extremities. */
-  itkSetMacro(CenterRadius, unsigned int);
-
-  /* Get the radius used to define the start of the neighboring area.
-   * Typically this value must be greater than CenterRadius */
-  itkGetConstMacro(NeighborhoodBeginRadius, unsigned int);
-
-  /* Set the radius used to define the start of the neighboring area.
-   * Typically this value must be greater than CenterRadius */
-  itkSetMacro(NeighborhoodBeginRadius, unsigned int);
-
-  /* Get the radius used to define the end of the neighboring area.
-   * Typically this value must be greater than NeighborhoodBeginRadius */
-  itkGetConstMacro(NeighborhoodEndRadius, unsigned int);
-
-  /* Set the radius used to define the end of the neighboring area.
-   * Typically this value must be greater than NeighborhoodBeginRadius */
-  itkSetMacro(NeighborhoodEndRadius, unsigned int);
-
-protected:
-  RadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction();
-  ~RadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction() override {}
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-
-private:
-  RadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction(const Self&) = delete;
-  void operator=(const Self&) = delete;
-
-  /** Center radius */
-  unsigned int m_CenterRadius;
-
-  /** Neighborhood start radius */
-  unsigned int m_NeighborhoodBeginRadius;
-
-  /** Neighborhood end radius */
-  unsigned int m_NeighborhoodEndRadius;
-
-};
-
-}
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction.hxx"
-#endif
-
-#endif
diff --git a/Modules/Filtering/VectorDataManipulation/include/otbRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction.hxx b/Modules/Filtering/VectorDataManipulation/include/otbRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction.hxx
deleted file mode 100644
index eadf8f167ae171fba94d11b0f94a362cdea0435e..0000000000000000000000000000000000000000
--- a/Modules/Filtering/VectorDataManipulation/include/otbRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction.hxx
+++ /dev/null
@@ -1,228 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction_hxx
-#define otbRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction_hxx
-
-#include "otbRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction.h"
-
-namespace otb
-{
-
-/**
- * Constructor
- */
-template<class TImage, class TCoordRep, class TPrecision>
-RadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction<TImage, TCoordRep, TPrecision>::RadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction() :
-  m_CenterRadius(1), m_NeighborhoodBeginRadius(2), m_NeighborhoodEndRadius(3)
-{
-}
-
-/**
- * Standard "PrintSelf" method
- */
-template<class TImage, class TCoordRep, class TPrecision>
-void RadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction<TImage, TCoordRep, TPrecision>::PrintSelf(std::ostream& os,
-                                                                                    itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-}
-
-template<class TImage, class TCoordRep, class TPrecision>
-typename RadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction<TImage, TCoordRep, TPrecision>::OutputType RadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction<
-    TImage, TCoordRep, TPrecision>::Evaluate(const DataNodeType& node) const
-{
-
-  // TODO faire avce un ikk
-  const typename ImageLineIteratorType::PathType* path;
-
-  switch (node.GetNodeType())
-    {
-    case FEATURE_POINT:
-      {
-      itkExceptionMacro(<< "This DataNode type is not handled yet");
-      break;
-      }
-    case FEATURE_LINE:
-      {
-      path = node.GetLine();
-      break;
-      }
-    case FEATURE_POLYGON:
-      {
-      path = node.GetPolygonExteriorRing();
-      break;
-      }
-    default:
-      {
-      itkExceptionMacro(<< "This DataNode type is not handle yet");
-      break;
-      }
-    }
-
-  std::vector<std::pair<IndexType, IndexType> > splitedLineIdNeigh;
-  std::vector<std::pair<IndexType, IndexType> > splitedLineIdCentral;
-
-  // Split line and polygon into segment (ie. line with two vertex
-  VertexListConstIteratorType it1 = path->GetVertexList()->Begin();
-  VertexListConstIteratorType it2 = path->GetVertexList()->Begin();
-  VertexListConstIteratorType itStop = path->GetVertexList()->End();
-
-  ++it2;
-  if (it2 == itStop)
-    {
-    itkExceptionMacro(<< "Invalid DataNode, must at least contain two points");
-    }
-
-  while (it1 != itStop && it2 != itStop)
-    {
-    IndexType id1, id2;
-    id1[0] = static_cast<int> (it1.Value()[0]);
-    id1[1] = static_cast<int> (it1.Value()[1]);
-    id2[0] = static_cast<int> (it2.Value()[0]);
-    id2[1] = static_cast<int> (it2.Value()[1]);
-
-    // Compute the direction of the current line
-    itk::Vector<double, 2> direction;
-    direction[0] = it2.Value()[0] - it1.Value()[0];
-    direction[1] = it2.Value()[1] - it1.Value()[1];
-    direction.Normalize();
-
-    // Compute the orthogonal direction of the current line
-    itk::Vector<double, 2> orthogonalDirection;
-    orthogonalDirection[0] = direction[1];
-    orthogonalDirection[1] = -direction[0];
-
-    splitedLineIdCentral.push_back(IndexPairType(id1, id2));
-    for (unsigned int j = 1; j <= m_CenterRadius; ++j)
-      {
-      IndexType shift11, shift12;
-      shift11[0] = id1[0] - j * orthogonalDirection[0];
-      shift11[1] = id1[1] - j * orthogonalDirection[1];
-      shift12[0] = id1[0] + j * orthogonalDirection[0];
-      shift12[1] = id1[1] + j * orthogonalDirection[1];
-      IndexType shift21, shift22;
-      shift21[0] = id2[0] - j * orthogonalDirection[0];
-      shift21[1] = id2[1] - j * orthogonalDirection[1];
-      shift22[0] = id2[0] + j * orthogonalDirection[0];
-      shift22[1] = id2[1] + j * orthogonalDirection[1];
-
-      splitedLineIdCentral.push_back(IndexPairType(shift11, shift21));
-      splitedLineIdCentral.push_back(IndexPairType(shift12, shift22));
-      }
-
-    for (unsigned int j = m_NeighborhoodBeginRadius; j <= m_NeighborhoodEndRadius; ++j)
-      {
-      IndexType shift11, shift12;
-      shift11[0] = id1[0] - j * orthogonalDirection[0];
-      shift11[1] = id1[1] - j * orthogonalDirection[1];
-      shift12[0] = id1[0] + j * orthogonalDirection[0];
-      shift12[1] = id1[1] + j * orthogonalDirection[1];
-      IndexType shift21, shift22;
-      shift21[0] = id2[0] - j * orthogonalDirection[0];
-      shift21[1] = id2[1] - j * orthogonalDirection[1];
-      shift22[0] = id2[0] + j * orthogonalDirection[0];
-      shift22[1] = id2[1] + j * orthogonalDirection[1];
-
-      splitedLineIdNeigh.push_back(IndexPairType(shift11, shift21));
-      splitedLineIdNeigh.push_back(IndexPairType(shift12, shift22));
-      }
-    ++it1;
-    ++it2;
-    }
-
-  // in FEATURE_POLYGON case, first point appears twice (first vertex and last vertew, thus we create a line of 1 point...)
-  if (node.GetNodeType() == FEATURE_POLYGON)
-    {
-    splitedLineIdCentral.pop_back();
-    splitedLineIdNeigh.pop_back();
-    splitedLineIdNeigh.pop_back();
-    }
-
-  double centralNbVisitedPixel = 0.;
-
-  PixelType centralRadiomAcc(this->GetInputImage()->GetNumberOfComponentsPerPixel());
-  centralRadiomAcc.Fill(0);
-
-  for (unsigned int i = 0; i < splitedLineIdCentral.size(); ++i)
-    {
-    LineIteratorType lineIt(this->GetInputImage(), splitedLineIdCentral[i].first, splitedLineIdCentral[i].second);
-    lineIt.GoToBegin();
-
-    while (!lineIt.IsAtEnd())
-      {
-      if (this->IsInsideBuffer(lineIt.GetIndex()))
-        {
-        centralRadiomAcc += this->GetInputImage()->GetPixel( lineIt.GetIndex() );
-        centralNbVisitedPixel += 1;
-        }
-      ++lineIt;
-      }
-    }
-
-  double neighNbVisitedPixel = 0.;
-
-  PixelType neighborRadiomAcc(this->GetInputImage()->GetNumberOfComponentsPerPixel());
-  neighborRadiomAcc.Fill(0);
-
-  for (unsigned int i = 0; i < splitedLineIdNeigh.size(); ++i)
-    {
-    LineIteratorType lineIt(this->GetInputImage(), splitedLineIdNeigh[i].first, splitedLineIdNeigh[i].second);
-    lineIt.GoToBegin();
-
-    while (!lineIt.IsAtEnd())
-      {
-      if (this->IsInsideBuffer(lineIt.GetIndex()))
-        {
-        neighborRadiomAcc += this->GetInputImage()->GetPixel( lineIt.GetIndex() );
-        neighNbVisitedPixel += 1;
-        }
-      ++lineIt;
-      }
-    }
-
-  OutputType output;
-  if (centralNbVisitedPixel > 0 && neighNbVisitedPixel > 0)
-    {
-    // Compute averaged radiometry in both areas
-    centralRadiomAcc  /= centralNbVisitedPixel;
-    neighborRadiomAcc /= neighNbVisitedPixel;
-
-    // Compute the spectral angle between the center area and the neighbor area
-    SpectralAngleFunctorType spectralAngleFunctor;
-    double angle = spectralAngleFunctor(neighborRadiomAcc, centralRadiomAcc);
-
-    // Make sure we are in [0, 1] interval
-    angle /= otb::CONST_PI;
-
-    output.push_back(static_cast<PrecisionType> (angle));
-    }
-  else
-    {
-    output.push_back(static_cast<PrecisionType> (0.));
-    }
-
-  // TODO: handle streaming, need to output the current state
-  return output;
-}
-
-} // end namespace otb
-
-#endif
diff --git a/Modules/Filtering/VectorDataManipulation/include/otbSpectralAngleDataNodeFeatureFunction.h b/Modules/Filtering/VectorDataManipulation/include/otbSpectralAngleDataNodeFeatureFunction.h
deleted file mode 100644
index 1bc3dce3fea38484b86e8629213bf652ef138aeb..0000000000000000000000000000000000000000
--- a/Modules/Filtering/VectorDataManipulation/include/otbSpectralAngleDataNodeFeatureFunction.h
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbSpectralAngleDataNodeFeatureFunction_h
-#define otbSpectralAngleDataNodeFeatureFunction_h
-
-#include "otbDataNodeImageFunction.h"
-
-#include "otbBinarySpectralAngleFunctor.h"
-#include "otbPolyLineImageConstIterator.h"
-#include "itkLineConstIterator.h"
-#include "itkVariableLengthVector.h"
-
-namespace otb
-{
-/** \class SpectralAngleDataNodeFeatureFunction
-  * \brief Compute a spectral angle based feature alongside a
-  * datanode.
-  *
-  * This function compute a spectral angle alongside a datanode.
-  * The feature is the mean spectral angle regarding a
-  * reference pixel alongside the tested datanode.
-  *
-  * The output has three elements:
-  * - #0: mean spectral angle of a neighborhood around the datanode, weighted to fit in [0, 1] interval
-  * - #1: accumulator of the spectral angle alongside the datanode
-  * - #2: number of visited pixel
-  *
-  * \ingroup Functions
-  * \sa DataNodeImageFunction
-  * \sa NDVIDataNodeFeatureFunction
- *
- * \ingroup OTBVectorDataManipulation
-  */
-
-template <
-class TImage,
-class TCoordRep = double,
-class TPrecision = double
->
-class ITK_EXPORT SpectralAngleDataNodeFeatureFunction :
-    public DataNodeImageFunction<TImage, std::vector<TPrecision>, TCoordRep, TPrecision>
-{
-public:
-  /** Standard class typedefs. */
-  typedef SpectralAngleDataNodeFeatureFunction                Self;
-  typedef DataNodeImageFunction<TImage, std::vector<TPrecision>, TCoordRep, TPrecision>
-                                                              Superclass;
-  typedef itk::SmartPointer<Self>                             Pointer;
-  typedef itk::SmartPointer<const Self>                       ConstPointer;
-
-  /** Method for creation through the object factory. */
-  itkNewMacro(Self);
-
-  /** Run-time type information (and related methods). */
-  itkTypeMacro(SpectralAngleDataNodeFeatureFunction, DataNodeImageFunction);
-
-  /** Some typedefs. */
-  typedef typename Superclass::DataNodeType           DataNodeType;
-  typedef typename DataNodeType::LineType             LineType;
-  typedef typename LineType::Pointer                  LinePointer;
-  typedef typename LineType::ContinuousIndexType      ContinuousIndexType;
-  typedef typename LineType::VertexListConstIteratorType VertexListConstIteratorType;
-
-  typedef TImage                                      InputImageType;
-  typedef typename InputImageType::ConstPointer       InputImageConstPointer;
-  typedef typename InputImageType::PixelType          PixelType;
-  typedef typename InputImageType::InternalPixelType  ScalarRealType;
-  typedef typename InputImageType::IndexType          IndexType;
-  typedef typename InputImageType::IndexValueType     IndexValueType;
-
-  typedef TCoordRep                                   CoordRepType;
-
-  typedef TPrecision                                  PrecisionType;
-
-  typedef itk::VariableLengthVector<PrecisionType>    ReferencePixelType;
-
-  typedef PolyLineImageConstIterator<InputImageType, LineType> ImageLineIteratorType;
-  typedef itk::LineConstIterator<InputImageType>      LineIteratorType;
-
-  typedef Functor::BinarySpectralAngleFunctor<PixelType, ReferencePixelType, PrecisionType>
-                                                      SpectralAngleFunctorType;
-
-  typedef std::pair<IndexType, IndexType>             IndexPairType;
-  typedef std::vector<PrecisionType>                  OutputType;
-
-  OutputType Evaluate( const DataNodeType& node ) const override;
-
-  /** Set/Get methods */
-  itkGetConstMacro(RefPixel, PixelType);
-  itkSetMacro(RefPixel, PixelType);
-
-  itkGetConstMacro(Radius, unsigned int);
-  itkSetMacro(Radius, unsigned int);
-
-protected:
-  SpectralAngleDataNodeFeatureFunction();
-  ~SpectralAngleDataNodeFeatureFunction() override {}
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-
-private:
-  SpectralAngleDataNodeFeatureFunction(const Self&) = delete;
-  void operator=(const Self&) = delete;
-
-  /** SpectralAngle Functor & ReferencePixel*/
-  ReferencePixelType          m_RefPixel;
-  SpectralAngleFunctorType    m_SpectralAngleFunctor;
-
-  /** Neighborhood radius */
-  unsigned int m_Radius;
-};
-
-}
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbSpectralAngleDataNodeFeatureFunction.hxx"
-#endif
-
-#endif
diff --git a/Modules/Filtering/VectorDataManipulation/include/otbSpectralAngleDataNodeFeatureFunction.hxx b/Modules/Filtering/VectorDataManipulation/include/otbSpectralAngleDataNodeFeatureFunction.hxx
deleted file mode 100644
index c2ed9e81e295505f4fbaad58afeeaa772f77770e..0000000000000000000000000000000000000000
--- a/Modules/Filtering/VectorDataManipulation/include/otbSpectralAngleDataNodeFeatureFunction.hxx
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbSpectralAngleDataNodeFeatureFunction_hxx
-#define otbSpectralAngleDataNodeFeatureFunction_hxx
-
-#include "otbSpectralAngleDataNodeFeatureFunction.h"
-
-namespace otb
-{
-
-/**
- * Constructor
- */
-template<class TImage, class TCoordRep, class TPrecision>
-SpectralAngleDataNodeFeatureFunction<TImage, TCoordRep, TPrecision>::SpectralAngleDataNodeFeatureFunction() :
-  m_Radius(2)
-{
-  //Example for QuickBird images (on a specific image)
-  m_RefPixel.SetSize(4);
-  m_RefPixel.SetElement(0, 252.284);
-  m_RefPixel.SetElement(1, 357.3);
-  m_RefPixel.SetElement(2, 232.644);
-  m_RefPixel.SetElement(3, 261.558);
-}
-
-/**
- * Standard "PrintSelf" method
- */
-template<class TImage, class TCoordRep, class TPrecision>
-void SpectralAngleDataNodeFeatureFunction<TImage, TCoordRep, TPrecision>::PrintSelf(std::ostream& os,
-                                                                                    itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-  os << indent << "Reference Pixel: " << m_RefPixel << std::endl;
-}
-
-template<class TImage, class TCoordRep, class TPrecision>
-typename SpectralAngleDataNodeFeatureFunction<TImage, TCoordRep, TPrecision>::OutputType SpectralAngleDataNodeFeatureFunction<
-    TImage, TCoordRep, TPrecision>::Evaluate(const DataNodeType& node) const
-{
-
-  // TODO faire avce un ikk
-  const typename ImageLineIteratorType::PathType* path;
-
-  switch (node.GetNodeType())
-    {
-    case FEATURE_POINT:
-      {
-      itkExceptionMacro(<< "This DataNode type is not handle yet");
-      break;
-      }
-    case FEATURE_LINE:
-      {
-      path = node.GetLine();
-      break;
-      }
-    case FEATURE_POLYGON:
-      {
-      path = node.GetPolygonExteriorRing();
-      break;
-      }
-    default:
-      {
-      itkExceptionMacro(<< "This DataNode type is not handle yet");
-      break;
-      }
-    }
-
-  std::vector<std::pair<IndexType, IndexType> > splitedLineIdNeigh;
-  std::vector<std::pair<IndexType, IndexType> > splitedLineIdCentral;
-
-  // Split line and polygon into segment (ie. line with two vertex
-  VertexListConstIteratorType it1 = path->GetVertexList()->Begin();
-  VertexListConstIteratorType it2 = path->GetVertexList()->Begin();
-  VertexListConstIteratorType itStop = path->GetVertexList()->End();
-
-  ++it2;
-  if (it2 == itStop)
-    {
-    itkExceptionMacro(<< "Invalid DataNode, must at least contain two points");
-    }
-
-  while (it1 != itStop && it2 != itStop)
-    {
-    IndexType id1, id2;
-    id1[0] = static_cast<int> (it1.Value()[0]);
-    id1[1] = static_cast<int> (it1.Value()[1]);
-    id2[0] = static_cast<int> (it2.Value()[0]);
-    id2[1] = static_cast<int> (it2.Value()[1]);
-
-    // Compute the direction of the current line
-    itk::Vector<double, 2> direction;
-    direction[0] = it2.Value()[0] - it1.Value()[0];
-    direction[1] = it2.Value()[1] - it1.Value()[1];
-    direction.Normalize();
-
-    // Compute the orthogonal direction of the current line
-    itk::Vector<double, 2> orthogonalDirection;
-    orthogonalDirection[0] = direction[1];
-    orthogonalDirection[1] = -direction[0];
-
-    splitedLineIdCentral.push_back(IndexPairType(id1, id2));
-
-    for (unsigned int j = 1; j <= m_Radius; ++j)
-      {
-      IndexType shift11, shift12;
-      shift11[0] = id1[0] - j * orthogonalDirection[0];
-      shift11[1] = id1[1] - j * orthogonalDirection[1];
-      shift12[0] = id1[0] + j * orthogonalDirection[0];
-      shift12[1] = id1[1] + j * orthogonalDirection[1];
-      IndexType shift21, shift22;
-      shift21[0] = id2[0] - j * orthogonalDirection[0];
-      shift21[1] = id2[1] - j * orthogonalDirection[1];
-      shift22[0] = id2[0] + j * orthogonalDirection[0];
-      shift22[1] = id2[1] + j * orthogonalDirection[1];
-
-      splitedLineIdCentral.push_back(IndexPairType(shift11, shift21));
-      splitedLineIdCentral.push_back(IndexPairType(shift12, shift22));
-      }
-
-    ++it1;
-    ++it2;
-    }
-
-  // in FEATURE_POLYGON case, first point appears twice (first vertex and last vertew, thus we create a line of 1 point...)
-  if (node.GetNodeType() == FEATURE_POLYGON)
-    {
-    splitedLineIdCentral.pop_back();
-    }
-
-  double centralAccSpectralAngle = 0.;
-  //double centralAccSpectralAngleSecondOrder = 0.;
-  double centralNbVisitedPixel = 0.;
-
-  for (unsigned int i = 0; i < splitedLineIdCentral.size(); ++i)
-    {
-    LineIteratorType lineIt(this->GetInputImage(), splitedLineIdCentral[i].first, splitedLineIdCentral[i].second);
-    lineIt.GoToBegin();
-
-    while (!lineIt.IsAtEnd())
-      {
-      if (this->IsInsideBuffer(lineIt.GetIndex()))
-        {
-        PixelType currPixel = this->GetInputImage()->GetPixel( lineIt.GetIndex() );
-        double angle = m_SpectralAngleFunctor(currPixel, this->GetRefPixel());
-        centralAccSpectralAngle += angle;
-        //centralAccSpectralAngleSecondOrder += angle * angle;
-        centralNbVisitedPixel += 1;
-        }
-      ++lineIt;
-      }
-    }
-
-  OutputType output;
-
-  double meanCentral = 0.;
-  //double stddevCentral = 0.;
-  if (centralNbVisitedPixel != 0.)
-    {
-    meanCentral = static_cast<double> (centralAccSpectralAngle) / centralNbVisitedPixel;
-    //stddevCentral = std::sqrt( centralAccSpectralAngleSecondOrder/centralNbVisitedPixel - meanCentral*meanCentral );
-    }
-
-  if (meanCentral == 0.)
-    {
-    output.push_back(static_cast<PrecisionType> (0.));
-    }
-  else
-    {
-    // Compute the descriptor here
-    // meanCentral is in [0, pi]
-    // We need a descriptor in [0 1]
-
-    double descriptor = meanCentral / otb::CONST_PI;
-    output.push_back(static_cast<PrecisionType>( descriptor ));
-    }
-
-  output.push_back(static_cast<PrecisionType> (centralAccSpectralAngle));
-  output.push_back(static_cast<PrecisionType> (centralNbVisitedPixel));
-
-  return output;
-}
-
-} // end namespace otb
-
-#endif
diff --git a/Modules/Filtering/VectorDataManipulation/test/CMakeLists.txt b/Modules/Filtering/VectorDataManipulation/test/CMakeLists.txt
index 8513e931ac8918b27fe82f9d51d17cacbeb759a9..a4f17c2c5abfea6b32e5f7bc1bdd3270b66e4334 100644
--- a/Modules/Filtering/VectorDataManipulation/test/CMakeLists.txt
+++ b/Modules/Filtering/VectorDataManipulation/test/CMakeLists.txt
@@ -22,12 +22,10 @@ otb_module_test()
 
 set(OTBVectorDataManipulationTests
 otbVectorDataManipulationTestDriver.cxx
-otbDBOverlapDataNodeFeatureFunction.cxx
 otbVectorDataExtractROI.cxx
 otbPolygonCompacityFunctor.cxx
 otbVectorDataToRandomLineGenerator.cxx
 otbConcatenateVectorDataFilter.cxx
-otbRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction.cxx
 )
 
 add_executable(otbVectorDataManipulationTestDriver ${OTBVectorDataManipulationTests})
@@ -36,18 +34,6 @@ otb_module_target_label(otbVectorDataManipulationTestDriver)
 
 # Tests Declaration
 
-otb_add_test(NAME bfTvDBOverlapDataNodeFeatureFunction COMMAND otbVectorDataManipulationTestDriver
-  --compare-ogr ${NOTOL}
-  ${BASELINE_FILES}/bfTvDBOverlapDataNodeFeatureFunctionOutput.shp
-  ${TEMP}/bfTvDBOverlapDataNodeFeatureFunctionOutput.shp
-  otbDBOverlapDataNodeFeatureFunction
-  ${INPUTDATA}/Dempster-Shafer/ROI_QB_TOULOUSE_ROADS.shp
-  ${INPUTDATA}/Dempster-Shafer/ROI_QB_TOULOUSE_BUILDINGS.shp
-  ${TEMP}/bfTvDBOverlapDataNodeFeatureFunctionOutput.shp
-  0
-  )
-
-
 otb_add_test(NAME coTvVectorDataExtractROI COMMAND otbVectorDataManipulationTestDriver
   --compare-ogr ${NOTOL}
   ${BASELINE_FILES}/coVectorDataExtractROIOutput.shp
@@ -84,12 +70,10 @@ otb_add_test(NAME bfTvVectorDataToRandomLineGenerator COMMAND otbVectorDataManip
   ${BASELINE_FILES}/bfTvVectorDataToRandomLineGeneratorOutput.shp
   ${TEMP}/bfTvVectorDataToRandomLineGeneratorOutput.shp
   otbVectorDataToRandomLineGenerator
-  ${INPUTDATA}/ObjectReco/Boats/maur_B010202_01Polygons.shp
+  ${INPUTDATA}/Capitole-Shadows.shp
   ${TEMP}/bfTvVectorDataToRandomLineGeneratorOutput.shp
   )
 
-
-
 otb_add_test(NAME bfTvConcatenateVectorDataFilter COMMAND otbVectorDataManipulationTestDriver
   --compare-ogr ${NOTOL}
   ${BASELINE_FILES}/otbConcatenateVectorDataFilter_Output.shp
@@ -99,24 +83,3 @@ otb_add_test(NAME bfTvConcatenateVectorDataFilter COMMAND otbVectorDataManipulat
   ${INPUTDATA}/waterways.shp
   ${TEMP}/otbConcatenateVectorDataFilter_Output.shp
   )
-
-otb_add_test(NAME bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction_Polygon COMMAND otbVectorDataManipulationTestDriver
-  --compare-ogr ${EPSILON_3}
-  ${BASELINE_FILES}/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Polygon.shp
-  ${TEMP}/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Polygon.shp
-  otbRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction
-  ${INPUTDATA}/Dempster-Shafer/ROI_QB_TOULOUSE_BUILDINGS.shp
-  ${INPUTDATA}/Dempster-Shafer/ROI_QB_TOULOUSE.TIF
-  ${INPUTDATA}/DEM/srtm_directory
-  ${TEMP}/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Polygon.shp
-  0 )
-otb_add_test(NAME bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction_Line COMMAND otbVectorDataManipulationTestDriver
-  --compare-ogr ${EPSILON_9}
-  ${BASELINE_FILES}/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Line.shp
-  ${TEMP}/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Line.shp
-  otbRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction
-  ${INPUTDATA}/Dempster-Shafer/ROI_QB_TOULOUSE_ROADS.shp
-  ${INPUTDATA}/Dempster-Shafer/ROI_QB_TOULOUSE.TIF
-  ${INPUTDATA}/DEM/srtm_directory
-  ${TEMP}/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Line.shp
-  0 )
diff --git a/Modules/Filtering/VectorDataManipulation/test/otbDBOverlapDataNodeFeatureFunction.cxx b/Modules/Filtering/VectorDataManipulation/test/otbDBOverlapDataNodeFeatureFunction.cxx
deleted file mode 100644
index 7bc471de7647fdd08f38f284fcabda330f9a50bb..0000000000000000000000000000000000000000
--- a/Modules/Filtering/VectorDataManipulation/test/otbDBOverlapDataNodeFeatureFunction.cxx
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-
-#include "otbDBOverlapDataNodeFeatureFunction.h"
-
-#include "otbVectorData.h"
-#include "otbVectorDataFileReader.h"
-#include "otbVectorDataFileWriter.h"
-
-
-int otbDBOverlapDataNodeFeatureFunction(int itkNotUsed(argc), char* argv[])
-{
-  const char * inputVD  = argv[1];
-  const char * inputDB  = argv[2];
-  const char * outputVD = argv[3];
-  int DisplayWarnings   = atoi(argv[4]);
-
-  typedef double                                      CoordRepType;
-  typedef double                                      PrecisionType;
-  typedef otb::VectorData<CoordRepType, 2, PrecisionType>
-                                                      VectorDataType;
-  typedef VectorDataType::DataNodeType                DataNodeType;
-  typedef otb::VectorDataFileReader<VectorDataType>   VectorDataReaderType;
-  typedef otb::VectorDataFileWriter<VectorDataType>   VectorDataWriterType;
-  typedef itk::PreOrderTreeIterator<VectorDataType::DataTreeType>
-                                                      TreeIteratorType;
-
-  typedef otb::DBOverlapDataNodeFeatureFunction<CoordRepType, PrecisionType>
-                                                      DataNodeFunctionType;
-  typedef DataNodeFunctionType::OutputType
-                                                      FeatureOutputType;
-
-  VectorDataReaderType::Pointer   vdReader = VectorDataReaderType::New();
-  VectorDataReaderType::Pointer vdDBReader = VectorDataReaderType::New();
-  VectorDataWriterType::Pointer   vdWriter = VectorDataWriterType::New();
-  DataNodeFunctionType::Pointer   function = DataNodeFunctionType::New();
-
-  if (!DisplayWarnings)
-   {
-    vdReader->SetGlobalWarningDisplay(0);
-   }
-
-  vdReader->SetFileName(inputVD);
-  vdReader->Update();
-
-  vdDBReader->SetFileName(inputDB);
-  vdDBReader->Update();
-
-  function->SetInputVectorData(vdDBReader->GetOutput());
-  function->SetDistanceThreshold(0.003);
-
-  // Output
-  VectorDataType::Pointer outVD = VectorDataType::New();
-  // Retrieving root node
-  DataNodeType::Pointer root = outVD->GetDataTree()->GetRoot()->Get();
-  // Create the document node
-  DataNodeType::Pointer document = DataNodeType::New();
-  document->SetNodeType(otb::DOCUMENT);
-  // Adding the layer to the data tree
-  outVD->GetDataTree()->Add(document, root);
-  // Create the folder node
-  DataNodeType::Pointer folder = DataNodeType::New();
-  folder->SetNodeType(otb::FOLDER);
-  // Adding the layer to the data tree
-  outVD->GetDataTree()->Add(folder, document);
-
-  TreeIteratorType itVector(vdReader->GetOutput()->GetDataTree());
-  itVector.GoToBegin();
-  while (!itVector.IsAtEnd())
-    {
-    if (itVector.Get()->IsLineFeature() || itVector.Get()->IsPolygonFeature())
-         {
-          const DataNodeType::Pointer currentGeometry = itVector.Get();
-          FeatureOutputType currentResult;
-          currentResult = function->Evaluate(*(currentGeometry.GetPointer()));
-          currentGeometry->SetFieldAsDouble("DBOVER", (double)(currentResult[0]));
-          outVD->GetDataTree()->Add(currentGeometry, folder);
-         }
-    ++itVector;
-    }
-
-  vdWriter->SetInput(outVD);
-  vdWriter->SetFileName(outputVD);
-  vdWriter->Update();
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/Filtering/VectorDataManipulation/test/otbRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction.cxx b/Modules/Filtering/VectorDataManipulation/test/otbRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction.cxx
deleted file mode 100644
index a5481e05d3f0b64f74f0b2e2153722fa960ff722..0000000000000000000000000000000000000000
--- a/Modules/Filtering/VectorDataManipulation/test/otbRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction.cxx
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "otbRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction.h"
-
-#include "otbVectorImage.h"
-#include "otbImageFileReader.h"
-#include "otbVectorData.h"
-#include "otbVectorDataFileReader.h"
-#include "otbVectorDataIntoImageProjectionFilter.h"
-#include "otbVectorDataFileWriter.h"
-#include "itkPreOrderTreeIterator.h"
-
-
-int otbRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction(int itkNotUsed(argc), char* argv[])
-{
-  const char * inputVD  = argv[1];
-  const char * inputImg = argv[2];
-  const char * DEMDir   = argv[3];
-  const char * outputVD = argv[4];
-  int DisplayWarnings   = atoi(argv[5]);
-
-  typedef double                                      CoordRepType;
-  typedef double                                      PrecisionType;
-  typedef otb::VectorImage<PrecisionType>             ImageType;
-  typedef otb::ImageFileReader<ImageType>             ImageReaderType;
-  typedef otb::VectorData<CoordRepType, 2, PrecisionType>
-                                                      VectorDataType;
-  typedef VectorDataType::DataNodeType                DataNodeType;
-  typedef otb::VectorDataFileReader<VectorDataType>   VectorDataReaderType;
-  typedef otb::VectorDataIntoImageProjectionFilter<VectorDataType, ImageType>
-                                                      VectorDataReProjFilter;
-  typedef otb::VectorDataFileWriter<VectorDataType>   VectorDataWriterType;
-  typedef itk::PreOrderTreeIterator<VectorDataType::DataTreeType>
-                                                      TreeIteratorType;
-
-  typedef otb::RadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction<ImageType, CoordRepType, PrecisionType>
-                                                      FeaturefunctionType;
-  typedef FeaturefunctionType::OutputType
-                                                      FeatureOutputType;
-
-  ImageReaderType::Pointer imgReader = ImageReaderType::New();
-  VectorDataReaderType::Pointer vdReader = VectorDataReaderType::New();
-  VectorDataReProjFilter::Pointer vdReProjFilter = VectorDataReProjFilter::New();
-  VectorDataWriterType::Pointer vdWriter = VectorDataWriterType::New();
-  FeaturefunctionType::Pointer featureFunction = FeaturefunctionType::New();
-
-  if (!DisplayWarnings)
-   {
-    imgReader->SetGlobalWarningDisplay(0);
-   }
-
-  otb::DEMHandler::Instance()->OpenDEMDirectory(DEMDir);
-
-  vdReader->SetFileName(inputVD);
-  vdReader->Update();
-
-  imgReader->SetFileName(inputImg);
-  imgReader->UpdateOutputInformation();
-  imgReader->Update(); //Needed to set m_EndIndex, m_StartIndex in otbDataNodeImageFunction
-
-  vdReProjFilter->SetInputImage(imgReader->GetOutput());
-  vdReProjFilter->SetInputVectorData(vdReader->GetOutput());
-  vdReProjFilter->SetUseOutputSpacingAndOriginFromImage(true);
-  vdReProjFilter->Update();
-
-  std::cout<< "vdReProjFilter->GetOutput()->Size(): "
-        << vdReProjFilter->GetOutput()->Size() << std::endl;
-
-  featureFunction->SetInputImage(imgReader->GetOutput());
-
-  // Output
-  VectorDataType::Pointer outVD = VectorDataType::New();
-  // Retrieving root node
-  DataNodeType::Pointer root = outVD->GetDataTree()->GetRoot()->Get();
-  // Create the document node
-  DataNodeType::Pointer document = DataNodeType::New();
-  document->SetNodeType(otb::DOCUMENT);
-  // Adding the layer to the data tree
-  outVD->GetDataTree()->Add(document, root);
-  // Create the folder node
-  DataNodeType::Pointer folder = DataNodeType::New();
-  folder->SetNodeType(otb::FOLDER);
-  // Adding the layer to the data tree
-  outVD->GetDataTree()->Add(folder, document);
-
-  TreeIteratorType itVector(vdReProjFilter->GetOutput()->GetDataTree());
-  itVector.GoToBegin();
-  while (!itVector.IsAtEnd())
-    {
-    if (itVector.Get()->IsLineFeature() || itVector.Get()->IsPolygonFeature())
-         {
-          const DataNodeType::Pointer currentGeometry = itVector.Get();
-          FeatureOutputType currentResult;
-          currentResult = featureFunction->Evaluate(*(currentGeometry.GetPointer()));
-          currentGeometry->SetFieldAsDouble("RADIOM_HOM", (double)(currentResult[0]));
-          outVD->GetDataTree()->Add(currentGeometry, folder);
-         }
-    ++itVector;
-    }
-
-  vdWriter->SetInput(outVD);
-  vdWriter->SetFileName(outputVD);
-  vdWriter->Update();
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/Filtering/VectorDataManipulation/test/otbVectorDataManipulationTestDriver.cxx b/Modules/Filtering/VectorDataManipulation/test/otbVectorDataManipulationTestDriver.cxx
index c4230b11556a036ec89fa39103beba40d12a5252..d09a9aaed3041af20589dc65f6f1a6903c3e4437 100644
--- a/Modules/Filtering/VectorDataManipulation/test/otbVectorDataManipulationTestDriver.cxx
+++ b/Modules/Filtering/VectorDataManipulation/test/otbVectorDataManipulationTestDriver.cxx
@@ -22,10 +22,8 @@
 
 void RegisterTests()
 {
-  REGISTER_TEST(otbDBOverlapDataNodeFeatureFunction);
   REGISTER_TEST(otbVectorDataExtractROI);
   REGISTER_TEST(otbPolygonCompacityFunctor);
   REGISTER_TEST(otbVectorDataToRandomLineGenerator);
   REGISTER_TEST(otbConcatenateVectorDataFilter);
-  REGISTER_TEST(otbRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction);
 }
diff --git a/Modules/Learning/DempsterShafer/include/otbStandardDSCostFunction.h b/Modules/Learning/DempsterShafer/include/otbStandardDSCostFunction.h
deleted file mode 100644
index 224f16af2c1b9b5f91200dd65209a03e4b231501..0000000000000000000000000000000000000000
--- a/Modules/Learning/DempsterShafer/include/otbStandardDSCostFunction.h
+++ /dev/null
@@ -1,184 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbStandardDSCostFunction_h
-#define otbStandardDSCostFunction_h
-
-#include "itkSingleValuedCostFunction.h"
-
-#include "otbVectorDataToDSValidatedVectorDataFilter.h"
-#include <string>
-
-namespace otb
-{
-/** \class StandardDSCostFunction
-  * \brief Standard Cost Function used to estimate the fuzzy model parameters
-  * in the Dempster-Shafer framework
-  *
-  * This class has been developed to estimate, with the help of the Amoeba
-  * optimizer, the fuzzy model parameters to be used in the class
-  * otb::VectorDataToDSValidatedVectorDataFilter. The cost value compute the
-  * cost according to:
-  * - an enriched ground truth vector data (using VectorDataToRoadDescription)
-  * - an enriched negative sample VectorData or at least random samples
-  * - an hypothesis (the same as the considered DSValidationFilter)
-  *      (by default (NONDVI, ROADSA, NOBUIL))
-  * - a weight between 0 and 1 (0.5 by default) corresponding to the situation
-  *      policy regarding under detection/false detection (1 no under detection
-  *      0 no false detection)
-  * For now the cost function use the NONDVI Feature, ROADSA Feature and and
-  * the NOBUIL Feature.
-  * For each evolution of the VectorDataToDSValidatedVectorDataFilter,
-  * this cost function must be adapted.
-  *
-  * \ingroup CostFunction
-  * \sa VectorDataToDSValidatedVectorDataFilter
-  * \sa AmoebaOptimizer
- *
- * \ingroup OTBDempsterShafer
- */
-
-template <class TDSValidationFilter>
-class ITK_EXPORT StandardDSCostFunction :
-public itk::SingleValuedCostFunction
-{
-public:
-  /** Standard class typedefs. */
-  typedef StandardDSCostFunction                       Self;
-  typedef itk::SingleValuedCostFunction                Superclass;
-  typedef itk::SmartPointer<Self>                      Pointer;
-  typedef itk::SmartPointer<const Self>                ConstPointer;
-
-  /** Method for creation through the object factory. */
-  itkNewMacro(Self);
-
-  /** Run-time type information (and related methods). */
-  itkTypeMacro(StandardDSCostFunction, itk::SingleValuedCostFunction);
-
-  typedef Superclass::MeasureType                      MeasureType;   //double
-  typedef Superclass::DerivativeType                   DerivativeType; //Array<double>
-  typedef Superclass::ParametersType                   ParametersType; //Array<double>
-
-  typedef TDSValidationFilter                          DSValidationFilterType;
-  typedef typename DSValidationFilterType::VectorDataType
-                                                       VectorDataType;
-  typedef typename DSValidationFilterType::TreeIteratorType
-                                                       TreeIteratorType;
-  typedef typename DSValidationFilterType::LabelSetType
-                                                       LabelSetType;
-
-  typedef FuzzyDescriptorsModelManager                 FuzzyDescriptorsModelManagerType;
-
-  typedef FuzzyDescriptorsModelManager::DescriptorListType
-                                                       DescriptorListType;
-  typedef FuzzyDescriptorsModelManager::DescriptorsModelType
-                                                       DescriptorsModelType;
-  typedef FuzzyDescriptorsModelManager::PairType       PairType;
-
-  typedef Parser                                       ParserType;
-
-  /** This method returns the value of the cost function corresponding
-    * to the specified parameters.    */
-  MeasureType GetValue( const ParametersType & parameters ) const override;
-
-  /** This method returns the derivative of the cost function corresponding
-    * to the specified parameters.   */
-  void GetDerivative( const ParametersType & parameters,
-                               DerivativeType & derivative ) const override;
-
-  unsigned int GetNumberOfParameters(void) const override;
-
-  itkSetMacro(Weight, double);
-  itkGetConstMacro(Weight, double);
-
-  itkSetMacro(CriterionFormula, std::string);
-  itkGetConstMacro(CriterionFormula, std::string);
-
-  void SetDescriptorList(DescriptorListType list)
-  {
-    m_DescriptorList = list;
-  }
-
-  DescriptorListType GetDescriptorList()
-  {
-    return m_DescriptorList;
-  }
-
-  itkSetObjectMacro(GTVectorData, VectorDataType);
-  itkGetConstObjectMacro(GTVectorData, VectorDataType);
-
-  itkSetObjectMacro(NSVectorData, VectorDataType);
-  itkGetConstObjectMacro(NSVectorData, VectorDataType);
-
-
-  LabelSetType GetBeliefHypothesis()
-  {
-    return m_BeliefHypothesis;
-  }
-
-  void SetBeliefHypothesis(LabelSetType hypothesis)
-  {
-    m_BeliefHypothesis = hypothesis;
-  }
-
-  LabelSetType GetPlausibilityHypothesis()
-  {
-    return m_PlausibilityHypothesis;
-  }
-
-  void SetPlausibilityHypothesis(LabelSetType hypothesis)
-  {
-    m_PlausibilityHypothesis = hypothesis;
-  }
-
-protected:
-  /** Constructor */
-  StandardDSCostFunction();
-  /** Destructor */
-  ~StandardDSCostFunction() override {}
-  /**PrintSelf method */
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-
-private:
-  StandardDSCostFunction(const Self &) = delete;
-  void operator =(const Self&) = delete;
-
-
-  typename VectorDataType::Pointer            m_GTVectorData; //Ground Truth
-  typename VectorDataType::Pointer            m_NSVectorData; //Negative Samples
-
-  typename ParserType::Pointer       m_Parser;
-  std::string                        m_CriterionFormula;
-
-  double                             m_Weight; //range ]0; 1[
-
-  LabelSetType                       m_BeliefHypothesis;
-  LabelSetType                       m_PlausibilityHypothesis;
-
-  DescriptorListType                 m_DescriptorList;
-};
-
-} // end namespace otb
-
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbStandardDSCostFunction.hxx"
-#endif
-
-#endif
diff --git a/Modules/Learning/DempsterShafer/include/otbStandardDSCostFunction.hxx b/Modules/Learning/DempsterShafer/include/otbStandardDSCostFunction.hxx
deleted file mode 100644
index 236c1e5e9ae83b087987a43347be174f80a4d5ac..0000000000000000000000000000000000000000
--- a/Modules/Learning/DempsterShafer/include/otbStandardDSCostFunction.hxx
+++ /dev/null
@@ -1,172 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbStandardDSCostFunction_hxx
-#define otbStandardDSCostFunction_hxx
-
-#include "otbStandardDSCostFunction.h"
-
-namespace otb
-{
-// Constructor
-template <class TDSValidationFilter>
-StandardDSCostFunction<TDSValidationFilter>
-::StandardDSCostFunction() :
-  m_CriterionFormula("((Belief + Plausibility)/2.)"),
-  m_Weight(0.5)
-{
- m_GTVectorData = VectorDataType::New();
- m_NSVectorData = VectorDataType::New();
- m_Parser =  ParserType::New();
-}
-
-template <class TDSValidationFilter>
-unsigned int
-StandardDSCostFunction<TDSValidationFilter>
-::GetNumberOfParameters() const
- {
-  return m_DescriptorList.size()*4;
- }
-
-template <class TDSValidationFilter>
-typename StandardDSCostFunction<TDSValidationFilter>
-::MeasureType
- StandardDSCostFunction<TDSValidationFilter>
-::GetValue(const ParametersType & parameters) const
- {
-  if (parameters.size() != m_DescriptorList.size()*4)
-    {
-    itkExceptionMacro(<< "Wrong model!" )
-    }
-
-  //Initialize parser
-  m_Parser->SetExpr(m_CriterionFormula);
-
-  DescriptorsModelType descModel;
-  for (unsigned int i = 0; i < m_DescriptorList.size(); ++i)
-    {
-    std::vector<double> tmp;
-    for (unsigned int j = 0; j < 4; ++j)
-      {
-      tmp.push_back(parameters[4*i+j]);
-      }
-    PairType pair( m_DescriptorList[i], tmp);
-    descModel.push_back(pair);
-    }
-
-  typename DSValidationFilterType::Pointer internalFunctionGT = DSValidationFilterType::New();
-  internalFunctionGT->SetCriterionFormula("1");
-  internalFunctionGT->SetInput(m_GTVectorData);
-  internalFunctionGT->SetBeliefHypothesis(m_BeliefHypothesis);
-  internalFunctionGT->SetPlausibilityHypothesis(m_PlausibilityHypothesis);
-  try
-    {
-    internalFunctionGT->SetDescriptorModels(descModel);
-    }
-  catch ( itk::ExceptionObject & )
-    {
-    return 1;
-    }
-  internalFunctionGT->Update();
-
-  typename DSValidationFilterType::Pointer internalFunctionNS = DSValidationFilterType::New();
-  internalFunctionNS->SetCriterionFormula("1");
-  internalFunctionNS->SetInput(m_NSVectorData);
-  internalFunctionNS->SetBeliefHypothesis(m_BeliefHypothesis);
-  internalFunctionNS->SetBeliefHypothesis(m_PlausibilityHypothesis);
-  try
-    {
-    internalFunctionNS->SetDescriptorModels(descModel);
-    }
-  catch (itk::ExceptionObject &)
-    {
-    return 1;
-    }
-  internalFunctionNS->Update();
-
-  double accGT = 0.0;
-  double accNS = 0.0;
-  double nGT = 0.0;
-  double nNS = 0.0;
-
-  TreeIteratorType itVectorGT(internalFunctionGT->GetOutput()->GetDataTree());
-  itVectorGT.GoToBegin();
-  while (!itVectorGT.IsAtEnd())
-    {
-    if (!itVectorGT.Get()->IsRoot() && !itVectorGT.Get()->IsDocument() && !itVectorGT.Get()->IsFolder())
-      {
-      double belief = itVectorGT.Get()->GetFieldAsDouble("Belief");
-      double plausibility = itVectorGT.Get()->GetFieldAsDouble("Plausi");
-
-      m_Parser->DefineVar("Belief", &belief);
-      m_Parser->DefineVar("Plausibility", &plausibility);
-
-      accGT += ((1 - m_Parser->Eval()) * (1 - m_Parser->Eval()));
-      nGT += 1.0;
-
-      m_Parser->ClearVar();
-      }
-    itVectorGT++;
-    }
-
-  TreeIteratorType itVectorNS(internalFunctionNS->GetOutput()->GetDataTree());
-  itVectorNS.GoToBegin();
-  while (!itVectorNS.IsAtEnd())
-    {
-    if (!itVectorNS.Get()->IsRoot() && !itVectorNS.Get()->IsDocument() && !itVectorNS.Get()->IsFolder())
-      {
-      double belief = itVectorNS.Get()->GetFieldAsDouble("Belief");
-      double plausibility = itVectorNS.Get()->GetFieldAsDouble("Plausi");
-
-      m_Parser->DefineVar("Belief", &belief);
-      m_Parser->DefineVar("Plausibility", &plausibility);
-
-      accNS += (m_Parser->Eval() * m_Parser->Eval());
-      nNS += 1.0;
-
-      m_Parser->ClearVar();
-      }
-    itVectorNS++;
-    }
-  return (m_Weight * accGT / nGT + (1 - m_Weight) * accNS / nNS);
-}
-
-template <class TDSValidationFilter>
-void
-StandardDSCostFunction<TDSValidationFilter>
-::GetDerivative(const ParametersType & itkNotUsed(parameters), DerivativeType & itkNotUsed(derivative)) const
- {
-  //Not necessary for Amoeba Optimizer
-  itkExceptionMacro(<< "Not Supposed to be used when using Amoeba Optimizer!")
- }
-
-// PrintSelf Method
-template <class TDSValidationFilter>
-void
-StandardDSCostFunction<TDSValidationFilter>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-}
-
-
-}// end namespace otb
-
-#endif
diff --git a/Modules/Learning/DempsterShafer/include/otbVectorDataToDSValidatedVectorDataFilter.h b/Modules/Learning/DempsterShafer/include/otbVectorDataToDSValidatedVectorDataFilter.h
deleted file mode 100644
index 43a3b9a6f953f658e9217d9a39f6d23a1482acc2..0000000000000000000000000000000000000000
--- a/Modules/Learning/DempsterShafer/include/otbVectorDataToDSValidatedVectorDataFilter.h
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbVectorDataToDSValidatedVectorDataFilter_h
-#define otbVectorDataToDSValidatedVectorDataFilter_h
-
-#include "otbMassOfBelief.h"
-
-#include "otbVectorDataToVectorDataFilter.h"
-
-#include "itkPreOrderTreeIterator.h"
-#include "otbVectorData.h"
-#include "otbFuzzyDescriptorsModelManager.h"
-
-#include "otbFuzzyVariable.h"
-#include "otbJointMassOfBeliefFilter.h"
-#include "otbParser.h"
-#include <string>
-
-namespace otb
-{
-/** \class VectorDataToDSValidatedVectorDataFilter
-  * \brief VectorData filter validating data nodes using
-  * Dempster-Shafer theory.
-  *
-  * This filter takes as input a vector data containing
-  * features score and validate (or not) each data node
-  * according to these features score, a fuzzy model corresponding
-  * to each feature and a criterion according to the Dempster-Shafer
-  * theory. By default the filter is (for now) parametrized to process
-  * VectorDatas providing by the VectorDataToRoadDescriptionFilter.
-  * The hypothesis must be set using the SetHypothesis method.
-  * The convention is for each feature Fe, a mass of Belief is defined
-  * with two variables named Fe and Fe_. Thus, an hypothesis must declared:
-  * VectorDataToVectorDataFilter::LabelSetType hyp;
-  * hyp.insert("Fe(i)");
-  * hyp.insert("Fe(j)_");
-  * hyp.insert("Fe(k)_");
-  *
-  * Fe(i), Fe(j) and Fe(k) being descriptors.
-  *
-  * The criterion can be set through SetCriterionFormula() as a
-  * string referring to "Belief" and "Plausibility" from the
-  * Dempster-Shafer theory. By default the criterion is:
-  * "((Belief + Plausibility)/2) >= 0.5"
-  *
-  * The considered features will be the intersection between
-  * the features embedded in this filter and the features embedded
-  * in the input vector data. For now, the filter uses "NONDVI" and
-  * "ROADSA" features.
-  *
-  *
-  * \ingroup VectorDataFilter
-  * \sa VectorDataToRoadDescriptionFilter
-  * \sa VectorDataToBuildingDescriptionFilter
- *
- * \ingroup OTBDempsterShafer
- */
-
-template <class TVectorData, class TPrecision=float>
-class ITK_EXPORT VectorDataToDSValidatedVectorDataFilter :
-public otb::VectorDataToVectorDataFilter<TVectorData, TVectorData>
-{
-public:
-  /** Standard class typedefs. */
-  typedef VectorDataToDSValidatedVectorDataFilter      Self;
-  typedef VectorDataToVectorDataFilter<TVectorData,
-    TVectorData>                                       Superclass;
-  typedef itk::SmartPointer<Self>                      Pointer;
-  typedef itk::SmartPointer<const Self>                ConstPointer;
-
-  /** Method for creation through the object factory. */
-  itkNewMacro(Self);
-
-  /** Run-time type information (and related methods). */
-  itkTypeMacro(VectorDataToDSValidatedVectorDataFilter, VectorDataToVectorDataFilter);
-
-  /** Some typedefs. */
-  typedef TVectorData                               VectorDataType;
-  typedef typename VectorDataType::Pointer          VectorDataPointer;
-  typedef typename VectorDataType::DataNodeType     DataNodeType;
-  typedef itk::PreOrderTreeIterator<typename VectorDataType::DataTreeType>
-                                                    TreeIteratorType;
-
-  typedef TPrecision                                PrecisionType;
-  typedef MassOfBelief<std::string, PrecisionType>
-                                                    MassOfBeliefFunctionType;
-  typedef typename MassOfBeliefFunctionType::LabelSetType
-                                                    LabelSetType;
-  typedef JointMassOfBeliefFilter<MassOfBeliefFunctionType>
-                                                    JointMassOfBeliefFilterType;
-  typedef Parser                                    ParserType;
-
-  typedef itk::DataObject::Pointer DataObjectPointer;
-  typedef itk::DataObject          DataObject;
-
-
-  typedef FuzzyVariable<std::string, PrecisionType>           FuzzyVarType;
-
-  typedef FuzzyDescriptorsModelManager::PairType              PairType;
-  typedef FuzzyDescriptorsModelManager::DescriptorsModelType  DescriptorModelsType;
-
-  /** Descriptor model accessors. */
-  virtual void AddDescriptor(const std::string& key, std::vector<double> model);
-  virtual void ClearDescriptors();
-
-  void SetDescriptorModels( DescriptorModelsType model );
-  DescriptorModelsType GetDescriptorModels()
-  {
-    return m_DescriptorModels;
-  }
-
-  /** Parameter accessors. */
-  itkGetConstMacro(CriterionFormula, std::string);
-  itkSetMacro(CriterionFormula, std::string);
-
-  itkGetMacro(CriterionThreshold, double);
-  itkSetMacro(CriterionThreshold, double);
-
-  LabelSetType GetBeliefHypothesis()
-  {
-    return m_BeliefHypothesis;
-  }
-
-  void SetBeliefHypothesis(LabelSetType hypothesis)
-  {
-    m_BeliefHypothesis = hypothesis;
-  }
-
-  LabelSetType GetPlausibilityHypothesis()
-  {
-    return m_PlausibilityHypothesis;
-  }
-
-  void SetPlausibilityHypothesis(LabelSetType hypothesis)
-  {
-    m_PlausibilityHypothesis = hypothesis;
-  }
-
-  unsigned int GetNumberOfParameters()
-  {
-    return (m_DescriptorModels.size() * 4);
-  }
-
-
-protected:
-  /** Triggers the Computation */
-  void GenerateData(void) override;
-  /** Constructor */
-  VectorDataToDSValidatedVectorDataFilter();
-  /** Destructor */
-  ~VectorDataToDSValidatedVectorDataFilter() override {}
-  /**PrintSelf method */
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-
-  std::string GetNextID()
-    {
-      std::ostringstream oss;
-      oss << m_CurrentID++;
-      return oss.str();
-    }
-
-private:
-  VectorDataToDSValidatedVectorDataFilter(const Self &) = delete;
-  void operator =(const Self&) = delete;
-
-  // Descriptor bench
-  DescriptorModelsType                            m_DescriptorModels;
-  std::vector< typename FuzzyVarType::Pointer >   m_FuzzyVars;
-  LabelSetType                                    m_Universe,
-                                                  m_BeliefHypothesis,
-                                                  m_PlausibilityHypothesis;
-  double                                          m_Bel, m_Plau;
-  typename ParserType::Pointer                    m_Parser;
-
-  std::string                                     m_CriterionFormula;
-  double                                          m_CriterionThreshold;
-  unsigned int                                    m_CurrentID;
-};
-
-} // end namespace otb
-
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbVectorDataToDSValidatedVectorDataFilter.hxx"
-#endif
-
-#endif
diff --git a/Modules/Learning/DempsterShafer/include/otbVectorDataToDSValidatedVectorDataFilter.hxx b/Modules/Learning/DempsterShafer/include/otbVectorDataToDSValidatedVectorDataFilter.hxx
deleted file mode 100644
index 8e07927bb6fd9106cce86ea182c59e9da92d690c..0000000000000000000000000000000000000000
--- a/Modules/Learning/DempsterShafer/include/otbVectorDataToDSValidatedVectorDataFilter.hxx
+++ /dev/null
@@ -1,228 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbVectorDataToDSValidatedVectorDataFilter_hxx
-#define otbVectorDataToDSValidatedVectorDataFilter_hxx
-
-#include "otbVectorDataToDSValidatedVectorDataFilter.h"
-#include <iostream>
-
-namespace otb
-{
-
-// Constructor
-template <class TVectorData, class TPrecision>
-  VectorDataToDSValidatedVectorDataFilter<TVectorData, TPrecision>
-::VectorDataToDSValidatedVectorDataFilter() :
-  m_Bel(0.0),
-  m_Plau(0.0),
-  m_CriterionFormula("((Belief + Plausibility)/2.)"),
-  m_CriterionThreshold(0.5),
-  m_CurrentID(0)
-{
-  this->SetNumberOfRequiredInputs(1);
-
-  m_Parser =  ParserType::New();
-}
-
-
-template <class TVectorData, class TPrecision>
-void
-VectorDataToDSValidatedVectorDataFilter<TVectorData, TPrecision>
-::AddDescriptor(const std::string& key, std::vector<double>  model)
-{
-  bool alreadyExist = false;
-
-  if (model.size() != 4)
-    {
-     itkExceptionMacro(<< "Wrong model! Size(=" << model.size() << ") > 4" )
-    }
-  else if (model[0]<0 || model[1]<model[0] || model[2]<model[1] || model[2]>1)
-    {
-     itkExceptionMacro(<< "Wrong model! Values have to be 0<=v1<=v2<=v3<=1" )
-    }
-  else if (model[3]<.75 || model[3]>1.0)
-    {
-      itkExceptionMacro(<< "Wrong model! Values have to be 0.75<=v4<=1" )
-    }
-  else
-    {
-    for (unsigned int i=0; i<m_DescriptorModels.size(); ++i)
-      {
-      if (m_DescriptorModels[i].first.compare(key) == 0)
-        {
-        for (unsigned int j=0; j<4; ++j)
-          {
-           m_DescriptorModels[i].second.at(j) = model[j];
-          }
-        alreadyExist = true;
-        }
-      }
-    if (!alreadyExist)
-      {
-      m_DescriptorModels.push_back(std::pair<std::string, std::vector<double> >(key, model));
-      }
-    }
-
-  this->Modified();
-}
-
-
-template <class TVectorData, class TPrecision>
-void
-VectorDataToDSValidatedVectorDataFilter<TVectorData, TPrecision>
-::ClearDescriptors()
-{
-  m_DescriptorModels.clear();
-}
-
-template <class TVectorData, class TPrecision>
-void
-VectorDataToDSValidatedVectorDataFilter<TVectorData, TPrecision>
-::SetDescriptorModels(DescriptorModelsType model)
-{
-  for (unsigned int i=0; i<model.size(); ++i)
-    {
-     this->AddDescriptor(model[i].first, model[i].second);
-    }
-}
-
-
-template <class TVectorData, class TPrecision>
-void
-VectorDataToDSValidatedVectorDataFilter<TVectorData, TPrecision>
-::GenerateData()
-{
-  //Initialize Dempster Shafer tools
-  if( m_DescriptorModels.size() == 0 )
-    {
-    itkExceptionMacro(<< "No defined Descriptor. Please add a descriptor model.");
-    }
-
-  for (unsigned int i=0; i<m_DescriptorModels.size(); ++i)
-    {
-    typename FuzzyVarType::Pointer fuz = FuzzyVarType::New();
-    std::string fuzName, fuzName_;
-    fuzName  = m_DescriptorModels[i].first;
-    fuzName_ = m_DescriptorModels[i].first + "_";
-
-    fuz->SetMembership(fuzName,
-                       0.0,
-                       0.0,
-                       m_DescriptorModels[i].second[0],
-                       m_DescriptorModels[i].second[1],
-                       0.0,
-                       m_DescriptorModels[i].second[3]);
-    fuz->SetMembership(fuzName_,
-                       m_DescriptorModels[i].second[1],
-                       m_DescriptorModels[i].second[2],
-                       1.0,
-                       1.0,
-                       0.0,
-                       m_DescriptorModels[i].second[3]);
-
-    m_FuzzyVars.push_back(fuz);
-
-    m_Universe.insert(fuzName);
-    m_Universe.insert(fuzName_);
-    }
-
-  //Initialize parser
-  m_Parser->SetExpr(m_CriterionFormula);
-  m_Parser->DefineVar("Belief", &m_Bel);
-  m_Parser->DefineVar("Plausibility", &m_Plau);
-
-  // Output
-  this->GetOutput(0)->SetMetaDataDictionary(this->GetInput()->GetMetaDataDictionary());
-  // Retrieving root node
-  typename DataNodeType::Pointer root = this->GetOutput(0)->GetDataTree()->GetRoot()->Get();
-  // Create the document node
-  typename DataNodeType::Pointer document = DataNodeType::New();
-  document->SetNodeType(otb::DOCUMENT);
-  // Adding the layer to the data tree
-  this->GetOutput(0)->GetDataTree()->Add(document, root);
-  // Create the folder node
-  typename DataNodeType::Pointer folder = DataNodeType::New();
-  folder->SetNodeType(otb::FOLDER);
-  // Adding the layer to the data tree
-  this->GetOutput(0)->GetDataTree()->Add(folder, document);
-  this->GetOutput(0)->SetProjectionRef(this->GetInput()->GetProjectionRef());
-
-  TreeIteratorType itVector(this->GetInput()->GetDataTree());
-  itVector.GoToBegin();
-  while (!itVector.IsAtEnd())
-    {
-    if (!itVector.Get()->IsRoot() && !itVector.Get()->IsDocument() && !itVector.Get()->IsFolder())
-      {
-      typename DataNodeType::Pointer currentGeometry = itVector.Get();
-      typename JointMassOfBeliefFilterType::Pointer jointMassFilter = JointMassOfBeliefFilterType::New();
-
-      for (unsigned int i=0; i<m_DescriptorModels.size(); ++i)
-        {
-        if (currentGeometry->HasField(m_DescriptorModels[i].first))
-          {
-          LabelSetType H, H_;
-          std::string fuzName, fuzName_;
-          fuzName  = m_DescriptorModels[i].first;
-          fuzName_ = m_DescriptorModels[i].first + "_";
-
-          typename MassOfBeliefFunctionType::Pointer mass = MassOfBeliefFunctionType::New();
-          mass->InitializePowerSetMasses(m_Universe);
-
-          H.insert(fuzName);
-          H_.insert(fuzName_);
-
-          mass->SetMass(H, m_FuzzyVars[i]->GetMembership(fuzName, currentGeometry->GetFieldAsDouble(fuzName)));
-          mass->SetMass(H_, m_FuzzyVars[i]->GetMembership(fuzName_, currentGeometry->GetFieldAsDouble(fuzName)));
-
-          mass->EstimateUncertainty();
-
-          jointMassFilter->PushBackInput(mass);
-          }
-        }
-      jointMassFilter->Update();
-      m_Bel  = jointMassFilter->GetOutput()->GetBelief(m_BeliefHypothesis);
-      m_Plau = jointMassFilter->GetOutput()->GetPlausibility(m_PlausibilityHypothesis);
-
-     if (m_Parser->Eval() >= m_CriterionThreshold)
-        {
-        currentGeometry->SetNodeId(this->GetNextID());
-        currentGeometry->SetFieldAsDouble("Belief", m_Bel);
-        currentGeometry->SetFieldAsDouble("Plausi", m_Plau);
-        this->GetOutput(0)->GetDataTree()->Add(currentGeometry, folder);
-        }
-      }
-    ++itVector;
-    }
-}
-
-
-// PrintSelf Method
-template <class TVectorData, class TPrecision>
-void
-VectorDataToDSValidatedVectorDataFilter<TVectorData, TPrecision>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-}
-
-} // end namespace otb
-
-#endif
diff --git a/Modules/Learning/DempsterShafer/test/CMakeLists.txt b/Modules/Learning/DempsterShafer/test/CMakeLists.txt
index d999a90fa0638dc4c981451209009bb73d925a46..9ebe35857fe75dfddf2560633365b8cfe8145a65 100644
--- a/Modules/Learning/DempsterShafer/test/CMakeLists.txt
+++ b/Modules/Learning/DempsterShafer/test/CMakeLists.txt
@@ -24,7 +24,6 @@ set(OTBDempsterShaferTests
 otbDempsterShaferTestDriver.cxx
 otbMassOfBeliefDSApplied.cxx
 otbConfusionMatrixToMassOfBeliefTest.cxx
-otbVectorDataToDSValidatedVectorDataFilter.cxx
 otbDempsterShaferFusionTests.cxx
 otbDSFusionOfClassifiersImageFilterTest.cxx
 otbJointMassOfBeliefFilter.cxx
@@ -85,16 +84,6 @@ otb_add_test(NAME fzTvConfusionMatrixToMassOfBeliefTestRecall COMMAND otbDempste
   otbConfusionMatrixToMassOfBeliefTest
   RECALL)
 
-otb_add_test(NAME fzTvVectorDataToDSValidatedVectorDataFilter COMMAND otbDempsterShaferTestDriver
-  --compare-ogr ${EPSILON_9}
-  ${BASELINE_FILES}/fzTvDSValidatedRoadVectorDataOutput.shp
-  ${TEMP}/fzTvDSValidatedRoadVectorDataOutput.shp
-  otbVectorDataToDSValidatedVectorDataFilter
-  ${TEMP}/fzTvVectorDataToRoadDescriptionFilterOutput.shp
-  ${TEMP}/fzTvDSValidatedRoadVectorDataOutput.shp
-  )
-set_property(TEST fzTvVectorDataToDSValidatedVectorDataFilter PROPERTY DEPENDS fzTvVectorDataToRoadDescriptionFilter)
-
 otb_add_test(NAME fzDSFusionTestConfMatFileVCMTestPrecision COMMAND otbDempsterShaferTestDriver
   otbDempsterShaferFusionConfMatFileTest
   ${INPUTDATA}/Classification/QB_1_ortho_C1_V.csv
diff --git a/Modules/Learning/DempsterShafer/test/otbDempsterShaferTestDriver.cxx b/Modules/Learning/DempsterShafer/test/otbDempsterShaferTestDriver.cxx
index c38750c9cbd2443e8282a74b0005689c78455836..d8b30b333994660ead3a090f59519756a05a8330 100644
--- a/Modules/Learning/DempsterShafer/test/otbDempsterShaferTestDriver.cxx
+++ b/Modules/Learning/DempsterShafer/test/otbDempsterShaferTestDriver.cxx
@@ -24,7 +24,6 @@ void RegisterTests()
 {
   REGISTER_TEST(otbMassOfBeliefDSApplied);
   REGISTER_TEST(otbConfusionMatrixToMassOfBeliefTest);
-  REGISTER_TEST(otbVectorDataToDSValidatedVectorDataFilter);
   REGISTER_TEST(otbDempsterShaferFusionOptRecConfMatTest);
   REGISTER_TEST(otbDempsterShaferFusionOptRecTest);
   REGISTER_TEST(otbDempsterShaferFusionOptTest);
diff --git a/Modules/Learning/DempsterShafer/test/otbVectorDataToDSValidatedVectorDataFilter.cxx b/Modules/Learning/DempsterShafer/test/otbVectorDataToDSValidatedVectorDataFilter.cxx
deleted file mode 100644
index d237ea5d2f5de3a453a862dac05964355ea6d0c8..0000000000000000000000000000000000000000
--- a/Modules/Learning/DempsterShafer/test/otbVectorDataToDSValidatedVectorDataFilter.cxx
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-
-#include "otbVectorDataToDSValidatedVectorDataFilter.h"
-
-#include "otbVectorDataFileReader.h"
-#include "otbVectorDataFileWriter.h"
-
-
-int otbVectorDataToDSValidatedVectorDataFilter(int itkNotUsed(argc), char* argv[])
-{
-  const char * inputVD  = argv[1];
-  const char * outputVD = argv[2];
-
-  typedef float                           PrecisionType;
-  typedef otb::VectorData<PrecisionType>  VectorDataType;
-  typedef otb::VectorDataFileReader<VectorDataType>
-                                          VectorDataReaderType;
-  typedef otb::VectorDataFileWriter<VectorDataType>
-                                          VectorDataWriterType;
-
-  typedef otb::VectorDataToDSValidatedVectorDataFilter<VectorDataType, PrecisionType>
-                                          VectorDataValidationFilterType;
-  typedef VectorDataValidationFilterType::LabelSetType
-                                          LabelSetType;
-  typedef otb::FuzzyDescriptorsModelManager
-                                          FuzzyManagerType;
-  VectorDataReaderType::Pointer vdReader = VectorDataReaderType::New();
-  VectorDataWriterType::Pointer vdWriter = VectorDataWriterType::New();
-
-  VectorDataValidationFilterType::Pointer filter =
-    VectorDataValidationFilterType::New();
-
-  vdReader->SetFileName(inputVD);
-  vdReader->Update();
-
-  filter->SetInput(vdReader->GetOutput());
-  //filter->GetDescriptorModels();
-  FuzzyManagerType::Print(filter->GetDescriptorModels());
-  LabelSetType plau, bel;
-  plau.insert("NONDVI");
-  plau.insert("ROADSA");
-  plau.insert("NOBUIL");
-  filter->SetPlausibilityHypothesis(plau);
-  bel.insert("ROADSA");
-  bel.insert("NONDVI");
-  bel.insert("NOBUIL");
-  filter->SetBeliefHypothesis(bel);
-
-  std::vector<double> stdModel;
-  stdModel.push_back(0.25);
-  stdModel.push_back(0.50);
-  stdModel.push_back(0.75);
-  stdModel.push_back(0.90);
-  filter->AddDescriptor("NONDVI", stdModel);
-  filter->AddDescriptor("ROADSA", stdModel);
-  filter->AddDescriptor("NOBUIL", stdModel);
-
-  FuzzyManagerType::Print(filter->GetDescriptorModels());
-
-  vdWriter->SetFileName(outputVD);
-  vdWriter->SetInput(filter->GetOutput());
-  vdWriter->Update();
-
-  std::cout << "Input VectorData Size : "
-            << vdReader->GetOutput()->Size() << std::endl
-            << "CriterionFormula : "
-            << filter->GetCriterionFormula() << std::endl
-            << "Output VecttorData Size : "
-            << filter->GetOutput()->Size()
-            << std::endl;
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/OBIA/RCC8/CMakeLists.txt b/Modules/OBIA/RCC8/CMakeLists.txt
deleted file mode 100644
index 6fca751fa59c10469a9a3699bad9ee2b893dcd8b..0000000000000000000000000000000000000000
--- a/Modules/OBIA/RCC8/CMakeLists.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-#
-# Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
-#
-# This file is part of Orfeo Toolbox
-#
-#     https://www.orfeo-toolbox.org/
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-project(OTBRCC8)
-
-set(OTBRCC8_LIBRARIES OTBRCC8)
-otb_module_impl()
diff --git a/Modules/OBIA/RCC8/include/otbImageListToRCC8GraphFilter.h b/Modules/OBIA/RCC8/include/otbImageListToRCC8GraphFilter.h
deleted file mode 100644
index 9169b4ecd88b7b116268d4e70297078ddd320348..0000000000000000000000000000000000000000
--- a/Modules/OBIA/RCC8/include/otbImageListToRCC8GraphFilter.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbImageListToRCC8GraphFilter_h
-#define otbImageListToRCC8GraphFilter_h
-
-#include "otbRCC8GraphSource.h"
-#include "otbImageList.h"
-
-namespace otb
-{
-/** \class ImageListToRCC8GraphFilter
- * \brief Base class for filters taking an images list as input to
- * produce a RCC8 graph.
- *
- * \ingroup OTBRCC8
- */
-template <class TInputImage, class TOutputGraph>
-class ITK_EXPORT ImageListToRCC8GraphFilter
-  : public RCC8GraphSource<TOutputGraph>
-{
-public:
-  /** Standard typedefs */
-  typedef ImageListToRCC8GraphFilter    Self;
-  typedef RCC8GraphSource<TOutputGraph> Superclass;
-  typedef itk::SmartPointer<Self>       Pointer;
-  typedef itk::SmartPointer<const Self> ConstPointer;
-  /** Type macro */
-  itkNewMacro(Self);
-  /** Creation through object factory macro */
-  itkTypeMacro(ImageListToRCC8GraphFilter, RCC8GraphSource);
-  /** Template input parameters typedefs */
-  typedef          TInputImage                      InputImageType;
-  typedef typename InputImageType::ConstPointer     InputImagePointer;
-  typedef typename InputImageType::RegionType       InputImageRegionType;
-  typedef typename InputImageType::PixelType        InputImagePixelType;
-  typedef typename InputImageType::SizeType         SizeType;
-  typedef typename InputImageType::ValueType        ValueType;
-  typedef ImageList<InputImageType>                 InputImageListType;
-  typedef typename InputImageListType::Pointer      InputImageListPointerType;
-  typedef typename InputImageListType::ConstPointer InputImageListConstPointer;
-  /** Template output parameters typedefs */
-  typedef TOutputGraph                                OutputGraphType;
-  typedef typename Superclass::OutputGraphPointerType OutputGraphPointerType;
-  typedef typename OutputGraphType::VertexType        VertexType;
-  typedef typename VertexType::Pointer                VertexPointerType;
-  typedef typename OutputGraphType::RCC8ValueType     RCC8ValueType;
-  /** InputImage dimension constant */
-  itkStaticConstMacro(InputImageDimension, unsigned int, TInputImage::ImageDimension);
-  /** Overriding the SetInput() and GetInput() methods */
-  using Superclass::SetInput;
-  virtual void SetInput(const InputImageListType * imageList);
-  virtual InputImageListType * GetInput(void);
-
-protected:
-  /** Constructor */
-  ImageListToRCC8GraphFilter();
-  /** Destructor */
-  ~ImageListToRCC8GraphFilter() override {}
-  /**PrintSelf method */
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-
-private:
-  ImageListToRCC8GraphFilter(const Self &) = delete;
-  void operator =(const Self&) = delete;
-};
-} // End namespace otb
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbImageListToRCC8GraphFilter.hxx"
-#endif
-
-#endif
diff --git a/Modules/OBIA/RCC8/include/otbImageListToRCC8GraphFilter.hxx b/Modules/OBIA/RCC8/include/otbImageListToRCC8GraphFilter.hxx
deleted file mode 100644
index cab322360e9c030331788328f1e7069c0dd3c63d..0000000000000000000000000000000000000000
--- a/Modules/OBIA/RCC8/include/otbImageListToRCC8GraphFilter.hxx
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbImageListToRCC8GraphFilter_hxx
-#define otbImageListToRCC8GraphFilter_hxx
-
-#include "otbImageListToRCC8GraphFilter.h"
-
-namespace otb
-{
-/**
- * Constructor
- */
-template <class TInputImage, class TOutputGraph>
-ImageListToRCC8GraphFilter<TInputImage, TOutputGraph>
-::ImageListToRCC8GraphFilter()
-{
-  this->SetNumberOfRequiredInputs(1);
-}
-/**
- * Input Connection
- * \param image The input image.
- */
-template <class TInputImage, class TOutputGraph>
-void
-ImageListToRCC8GraphFilter<TInputImage, TOutputGraph>
-::SetInput(const InputImageListType *imageList)
-{
-  // A single input image
-  this->itk::ProcessObject::SetNthInput(0, const_cast<InputImageListType*>(imageList));
-}
-/**
- * Input image retrieval
- * \return The input image.
- */
-template <class TInputImage, class TOutputGraph>
-typename ImageListToRCC8GraphFilter<TInputImage, TOutputGraph>::InputImageListType *
-ImageListToRCC8GraphFilter<TInputImage, TOutputGraph>
-::GetInput(void)
-{
-  // If there is no input
-  if (this->GetNumberOfInputs() < 1)
-    {
-    // exit
-    return nullptr;
-    }
-  // else return the first input
-  return static_cast<InputImageListType *>
-           (this->itk::ProcessObject::GetInput(0));
-}
-/**
- * PrintSelf Method
- */
-template <class TInputImage, class TOutputGraph>
-void
-ImageListToRCC8GraphFilter<TInputImage, TOutputGraph>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-}
-} // End namespace otb
-#endif
diff --git a/Modules/OBIA/RCC8/include/otbImageMultiSegmentationToRCC8GraphFilter.h b/Modules/OBIA/RCC8/include/otbImageMultiSegmentationToRCC8GraphFilter.h
deleted file mode 100644
index 5c198e6720935e7699397a4132035b1b1a65f40f..0000000000000000000000000000000000000000
--- a/Modules/OBIA/RCC8/include/otbImageMultiSegmentationToRCC8GraphFilter.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbImageMultiSegmentationToRCC8GraphFilter_h
-#define otbImageMultiSegmentationToRCC8GraphFilter_h
-
-#include "otbImageListToRCC8GraphFilter.h"
-
-namespace otb
-{
-/**
- * \class ImageMultiSegmentationToRCC8GraphFilter
- * \brief This class takes a list of labelled segmentation images
- * and build the RCC8 graph of the set of regions it represents.
- *
- * \ingroup OTBRCC8
- */
-template <class TInputImage, class TOutputGraph>
-class ITK_EXPORT ImageMultiSegmentationToRCC8GraphFilter
-  : public ImageListToRCC8GraphFilter<TInputImage, TOutputGraph>
-{
-public:
-  /** Standard class typedefs. */
-  typedef ImageMultiSegmentationToRCC8GraphFilter               Self;
-  typedef ImageListToRCC8GraphFilter<TInputImage, TOutputGraph> Superclass;
-  typedef itk::SmartPointer<Self>                               Pointer;
-  typedef itk::SmartPointer<const Self>                         ConstPointer;
-  /** Method for creation through the object factory. */
-  itkNewMacro(Self);
-  /** Run-time type information (and related methods). */
-  itkTypeMacro(ImageMultiSegmentationToRCC8GraphFilter, ImageListToRCC8GraphFilter);
-  /** Input related typedefs */
-  typedef TInputImage                                InputImageType;
-  typedef typename InputImageType::PixelType         PixelType;
-  typedef typename InputImageType::Pointer           InputImagePointerType;
-  typedef typename Superclass::InputImageListType    InputImageListType;
-  typedef typename InputImageListType::Pointer       InputImageListPointerType;
-  typedef typename InputImageListType::ConstIterator ConstListIteratorType;
-  /** Output related typedefs */
-  typedef TOutputGraph                                   OutputGraphType;
-  typedef typename OutputGraphType::Pointer              OutputGraphPointerType;
-  typedef typename OutputGraphType::VertexType           VertexType;
-  typedef typename VertexType::Pointer                   VertexPointerType;
-  typedef typename VertexType::PathType                  PathType;
-  typedef typename OutputGraphType::VertexDescriptorType VertexDescriptorType;
-  /** Knowledge enum typedef */
-  typedef typename OutputGraphType::RCC8ValueType      RCC8ValueType;
-  typedef enum {NO_INFO, LEVEL_1, LEVEL_3, FULL}       KnowledgeValueType;
-  typedef std::pair<KnowledgeValueType, RCC8ValueType> KnowledgeStateType;
-  /** Toogle optimisation flag */
-  itkBooleanMacro(Optimisation);
-  itkSetMacro(Optimisation, bool);
-
-  /**
-   * Get the number of occurrences of the given value
-   * \return The value.
-   */
-  unsigned int GetRelationsCount(RCC8ValueType val);
-
-  /**
-   * Get number of relations
-   * \return The number of relations.
-   */
-  unsigned int GetNumberOfRelations(void);
-
-protected:
-  /** Constructor */
-  ImageMultiSegmentationToRCC8GraphFilter();
-  /** Destructor */
-  ~ImageMultiSegmentationToRCC8GraphFilter() override;
-  /** Main computation method */
-  void GenerateData() override;
-  /** PrintSelf method */
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-  /**
-   * Get the composition knowledge.
-   * \param r1 First RCC8 relation value,
-   * \param r2 Second RCC8 relation value,
-   * \return The knowledge associated with the composition.
-   */
-  KnowledgeStateType GetKnowledge(RCC8ValueType r1, RCC8ValueType r2);
-
-private:
-  /** Optimisation flag */
-  bool         m_Optimisation;
-  unsigned int m_Accumulator[8];
-
-};
-} // End namespace otb
-
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbImageMultiSegmentationToRCC8GraphFilter.hxx"
-#endif
-
-#endif
diff --git a/Modules/OBIA/RCC8/include/otbImageMultiSegmentationToRCC8GraphFilter.hxx b/Modules/OBIA/RCC8/include/otbImageMultiSegmentationToRCC8GraphFilter.hxx
deleted file mode 100644
index 8b9906bc6b92547e7bf10d9696597b9ea6f8f296..0000000000000000000000000000000000000000
--- a/Modules/OBIA/RCC8/include/otbImageMultiSegmentationToRCC8GraphFilter.hxx
+++ /dev/null
@@ -1,315 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbImageMultiSegmentationToRCC8GraphFilter_hxx
-#define otbImageMultiSegmentationToRCC8GraphFilter_hxx
-
-#include "otbImageMultiSegmentationToRCC8GraphFilter.h"
-#include "itkMinimumMaximumImageCalculator.h"
-#include "otbPolygonToPolygonRCC8Calculator.h"
-#include "otbRCC8VertexIterator.h"
-#include "otbRCC8InEdgeIterator.h"
-#include "otbRCC8OutEdgeIterator.h"
-#include "itkProgressReporter.h"
-#include "otbImageToEdgePathFilter.h"
-#include "otbSimplifyPathListFilter.h"
-
-namespace otb
-{
-/**
- * Constructor.
- */
-template <class TInputImage, class TOutputGraph>
-ImageMultiSegmentationToRCC8GraphFilter<TInputImage, TOutputGraph>
-::ImageMultiSegmentationToRCC8GraphFilter()
-{
-  m_Optimisation = false;
-}
-/**
- * Destructor.
- */
-template <class TInputImage, class TOutputGraph>
-ImageMultiSegmentationToRCC8GraphFilter<TInputImage, TOutputGraph>
-::~ImageMultiSegmentationToRCC8GraphFilter()
-{}
-
-template <class TInputImage, class TOutputGraph>
-unsigned int
-ImageMultiSegmentationToRCC8GraphFilter<TInputImage, TOutputGraph>
-::GetRelationsCount(RCC8ValueType val)
-{
-  return m_Accumulator[val];
-}
-
-template <class TInputImage, class TOutputGraph>
-unsigned int
-ImageMultiSegmentationToRCC8GraphFilter<TInputImage, TOutputGraph>
-::GetNumberOfRelations()
-{
-  unsigned int result = 0;
-  for (unsigned int i = 0; i < 8; ++i)
-    {
-    result += m_Accumulator[i];
-
-    }
-  return result;
-}
-template <class TInputImage, class TOutputGraph>
-typename ImageMultiSegmentationToRCC8GraphFilter<TInputImage, TOutputGraph>
-::KnowledgeStateType
-ImageMultiSegmentationToRCC8GraphFilter<TInputImage, TOutputGraph>
-::GetKnowledge(RCC8ValueType r1, RCC8ValueType r2)
-{
-  m_Accumulator[0] = 0;
-  m_Accumulator[1] = 0;
-  m_Accumulator[2] = 0;
-  m_Accumulator[3] = 0;
-  m_Accumulator[4] = 0;
-  m_Accumulator[5] = 0;
-  m_Accumulator[6] = 0;
-  m_Accumulator[7] = 0;
-
-  // otbMsgDebugMacro(<<"RCC8GraphFilter: entering GetKnowledge method.");
-  // This is the RCC8 composition table
-  const int knowledge[8][8]
-    =
-    {
-    /**         DC  EC  PO TPP TPPi NTPP i  EQ */
-    /** DC */ {-3, -2, -2, -2,  0, -2,  0,  0},
-    /** EC  */ {-1, -3, -2, -3, -1, -3,  0,  1},
-    /** PO  */ {-1, -1, -3, -3, -1, -3, -1,  2},
-    /** TPP */ { 0, -1, -2, -3, -3,  5, -1,  3},
-    /** TPPi*/ {-1, -1, -1, -3, -1, -3,  6,  4},
-    /** NTPP*/ { 0,  0, -2,  5, -2,  5, -3,  5},
-    /** NTPPi*/ {-1, -1, -1, -1,  6, -3,  6,  6},
-    /** EQ  */ { 0,  1,  2,  3,  4,  5,  6,  7}
-    };
-
-  int value = knowledge[r1][r2];
-  // Each negative case correspond to a level of knowledge
-  if (value >= 0)
-    {
-    // otbMsgDebugMacro(<<"RCC8GraphFilter: leaving GetKnowledge method: FULL");
-    return KnowledgeStateType(FULL, static_cast<RCC8ValueType>(value));
-    }
-  else if (value == -1)
-    {
-    // otbMsgDebugMacro(<<"RCC8GraphFilter: leaving GetKnowledge method: LEVEL_1");
-    return KnowledgeStateType(LEVEL_1, OTB_RCC8_DC);
-    }
-  else if (value == -2)
-    {
-    // otbMsgDebugMacro(<<"RCC8GraphFilter: leaving GetKnowledge method.LEVEL_3");
-    return KnowledgeStateType(LEVEL_3, OTB_RCC8_DC);
-    }
-  else
-    {
-    // otbMsgDebugMacro(<<"RCC8GraphFilter: leaving GetKnowledge method.NO_INFO");
-    return KnowledgeStateType(NO_INFO, OTB_RCC8_DC);
-    }
-}
-/**
- * Main computation method.
- */
-template <class TInputImage, class TOutputGraph>
-void
-ImageMultiSegmentationToRCC8GraphFilter<TInputImage, TOutputGraph>
-::GenerateData()
-{
-  // Input image list pointer
-  InputImageListPointerType segList = this->GetInput();
-
-  // Output graph pointer
-  OutputGraphPointerType graph = this->GetOutput();
-
-  // invert value vector
-  RCC8ValueType invert[8] = {OTB_RCC8_DC, OTB_RCC8_EC, OTB_RCC8_PO, OTB_RCC8_TPPI,
-                             OTB_RCC8_TPP, OTB_RCC8_NTPPI, OTB_RCC8_NTPP, OTB_RCC8_EQ};
-
-  // Some typedefs
-  typedef otb::ImageToEdgePathFilter<InputImageType, PathType> EdgeExtractionFilterType;
-  typedef otb::SimplifyPathListFilter<PathType>                SimplifyPathFilterType;
-  typedef typename SimplifyPathFilterType::InputListType       PathListType;
-
-  typedef itk::MinimumMaximumImageCalculator<InputImageType> MinMaxCalculatorType;
-  typedef PolygonToPolygonRCC8Calculator<PathType>           RCC8CalculatorType;
-  typedef RCC8VertexIterator<OutputGraphType>                VertexIteratorType;
-  typedef RCC8InEdgeIterator<OutputGraphType>                InEdgeIteratorType;
-
-
-  // Vector of label
-  std::vector<PixelType> maxLabelVector;
-
-  // Vertex indexes
-  unsigned int vertexIndex = 0;
-  unsigned int segmentationImageIndex = 0;
-  unsigned int nbVertices = 0;
-
-  // For each segmentation image
-  for (ConstListIteratorType it = segList->Begin(); it != segList->End(); ++it)
-    {
-    // Compute the maximum label
-    typename MinMaxCalculatorType::Pointer minMax = MinMaxCalculatorType::New();
-    minMax->SetImage(it.Get());
-    minMax->ComputeMaximum();
-    maxLabelVector.push_back(minMax->GetMaximum());
-    otbMsgDebugMacro(<< "Number of objects in image " << segmentationImageIndex << ": "
-                     << minMax->GetMaximum());
-
-    // then for each region of the images
-    for (PixelType label = 1; label <= maxLabelVector.back(); ++label)
-      {
-      typename PathListType::Pointer             region = PathListType::New();
-      typename EdgeExtractionFilterType::Pointer extraction = EdgeExtractionFilterType::New();
-      extraction->SetInput(it.Get());
-      extraction->SetForegroundValue(label);
-      extraction->Update();
-      region->PushBack(extraction->GetOutput());
-      typename SimplifyPathFilterType::Pointer simplifier = SimplifyPathFilterType::New();
-      simplifier->SetInput(region);
-      simplifier->GetFunctor().SetTolerance(0.1);
-      simplifier->Update();
-
-      // Create a new vertex
-      VertexPointerType vertex = VertexType::New();
-      // Set its properties
-      vertex->SetPath(simplifier->GetOutput()->GetNthElement(0));
-      vertex->SetSegmentationLevel(segmentationImageIndex / 2);
-      vertex->SetSegmentationType(segmentationImageIndex % 2);
-      // Put it in the graph
-      graph->SetVertex(vertexIndex, vertex);
-      ++vertexIndex;
-      ++nbVertices;
-      }
-    ++segmentationImageIndex;
-    }
-
-  itk::ProgressReporter progress(this, 0, nbVertices*nbVertices);
-
-  VertexIteratorType vIt1(graph);
-  VertexIteratorType vIt2(graph);
-
-  // For each couple of vertices
-  for (vIt1.GoToBegin(); !vIt1.IsAtEnd(); ++vIt1)
-    {
-    for (vIt2.GoToBegin(); !vIt2.IsAtEnd(); ++vIt2)
-      {
-      //We do not examine each couple because of the RCC8 symmetry
-      if (vIt1.GetIndex() < vIt2.GetIndex())
-        {
-
-        // Compute the RCC8 relation
-        typename RCC8CalculatorType::Pointer calc = RCC8CalculatorType::New();
-        calc->SetPolygon1(vIt1.Get()->GetPath());
-        calc->SetPolygon2(vIt2.Get()->GetPath());
-        RCC8ValueType value = OTB_RCC8_DC;
-
-        // if the optimisations are activated
-        if (m_Optimisation)
-          {
-          //  otbMsgDebugMacro(<<"RCC8GraphFilter: Entering optimisation loop");
-          InEdgeIteratorType inIt1(vIt1.GetIndex(), graph);
-          InEdgeIteratorType inIt2(vIt2.GetIndex(), graph);
-          // otbMsgDebugMacro(<<"Optimisation loop: iterators initialised");
-          VertexDescriptorType betweenIndex;
-          KnowledgeStateType know(NO_INFO, OTB_RCC8_DC);
-          inIt1.GoToBegin();
-
-          // Iterate through the edges going to the first vertex
-          while (!inIt1.IsAtEnd() && (know.first != FULL))
-            {
-            betweenIndex = inIt1.GetSourceIndex();
-            inIt2.GoToBegin();
-            bool edgeFound = false;
-            while (!inIt2.IsAtEnd() && (know.first != FULL))
-              {
-              // try to find an intermediate vertex between the two ones which
-              // we vant to compute the relationship
-              if (inIt2.GetSourceIndex() == betweenIndex)
-                {
-                // if an intermediate vertex is found
-                edgeFound = true;
-                // otbMsgDebugMacro(<<"Optimisation loop: found an intermediary vertex:" <<betweenIndex);
-                // See if it brings some info on the RCCC8 value
-                know = GetKnowledge(invert[inIt1.GetValue()], inIt2.GetValue());
-                calc->SetLevel1APrioriKnowledge(know.first == LEVEL_1);
-                calc->SetLevel3APrioriKnowledge(know.first == LEVEL_3);
-                //  otbMsgDebugMacro(<<"Optimisation loop: knowledge: "<<know.first<<","<<know.second);
-                }
-              ++inIt2;
-              }
-            // If no intermediate was found
-            if (!edgeFound)
-              {
-              //  otbMsgDebugMacro(<<"Optimisation loop: found an intermediary vertex:" <<betweenIndex);
-              // Try using a DC relationship
-              know = GetKnowledge(invert[inIt1.GetValue()], OTB_RCC8_DC);
-              calc->SetLevel1APrioriKnowledge(know.first == LEVEL_1);
-              calc->SetLevel3APrioriKnowledge(know.first == LEVEL_3);
-              // otbMsgDebugMacro(<<"Optimisation loop: knowledge: "<<know.first<<","<<know.second);
-              }
-            ++inIt1;
-            }
-          // If the search has fully determined the RCC8
-          if (know.first == FULL)
-            {
-            // Get the value
-            value = know.second;
-            }
-          else
-            {
-            // Else trigger the computation
-            // (which will take the optimisation phase info into account)
-            calc->Compute();
-            value = calc->GetValue();
-            }
-          // otbMsgDebugMacro(<<"RCC8GraphFilter: Leaving optimisation loop");
-          }
-        // If the optimisations are not activated
-        else
-          {
-          calc->Compute();
-          value = calc->GetValue();
-          }
-        m_Accumulator[value] += 1;
-        m_Accumulator[invert[value]] += 1;
-        // If the vertices are connected
-        if (value > OTB_RCC8_DC)
-          {
-          // Add the edge to the graph.
-          otbMsgDevMacro(<< "Adding edge: " << vIt1.GetIndex() << " -> " << vIt2.GetIndex() << ": " << value);
-          graph->AddEdge(vIt1.GetIndex(), vIt2.GetIndex(), value);
-          }
-        }
-      progress.CompletedPixel();
-      progress.CompletedPixel();
-      }
-    }
-}
-
-template <class TInputImage, class TOutputGraph>
-void
-ImageMultiSegmentationToRCC8GraphFilter<TInputImage, TOutputGraph>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-}
-} // end namespace otb
-#endif
diff --git a/Modules/OBIA/RCC8/include/otbImageToImageRCC8Calculator.h b/Modules/OBIA/RCC8/include/otbImageToImageRCC8Calculator.h
deleted file mode 100644
index d2a4fb922a0b22534b1ee8e10775c094be823ddf..0000000000000000000000000000000000000000
--- a/Modules/OBIA/RCC8/include/otbImageToImageRCC8Calculator.h
+++ /dev/null
@@ -1,203 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbImageToImageRCC8Calculator_h
-#define otbImageToImageRCC8Calculator_h
-
-#include "itkImageToImageFilter.h"
-#include "itkObjectFactory.h"
-#include "otbRCC8Value.h"
-#include "otbImage.h"
-
-namespace otb
-{
-/**
- * \class ImageToImageRCC8Calculator
- * \brief This class compute the RCC8 relation between the regions from two segmentation images.
- *
- * The RCC8 system comes from qualitative spatial reasoning.
- * It is a set of pairwise disjoint exhaustive relation between two closed region of space.
- * There are 8 possible relations :
- * DC: Disconnected
- * EC: Externaly connected
- * PO: Partial overlap
- * TPP: Tangential proper part
- * NTPP: Non tangential proper part
- * TPPI: Tangential proper part inverse
- * NTPPI: Non tangential proper part inverse
- * EQ: Equivalence
- *
- * The goal of this class is to determine which of these 8 relations link the two inputs regions represented
- * by the segmentation images. Since this class will further be used iteratively on a possibly large set
- * of region, it is optimised : the decision is managed by a decision tree, and the input data size is reduced
- * to the smallest set needed to determine the relation.
- *
- * \ingroup OTBRCC8
- */
-template <class TInputImage>
-class ITK_EXPORT ImageToImageRCC8Calculator : public itk::ImageToImageFilter<TInputImage, TInputImage>
-{
-public:
-  /** Standard class typedefs. */
-  typedef ImageToImageRCC8Calculator                        Self;
-  typedef itk::ImageToImageFilter<TInputImage, TInputImage> Superclass;
-  typedef itk::SmartPointer<Self>                           Pointer;
-  typedef itk::SmartPointer<const Self>                     ConstPointer;
-  /** Method for creation through the object factory. */
-  itkNewMacro(Self);
-  /** Run-time type information (and related methods). */
-  itkTypeMacro(ImageToImageRCC8Calculator, ImageToImageFilter);
-  /** Types definitions for the input image. */
-  typedef TInputImage                      ImageType;
-  typedef typename ImageType::Pointer      ImagePointerType;
-  typedef typename ImageType::ConstPointer ImageConstPointerType;
-  typedef typename ImageType::PixelType    PixelType;
-  typedef typename ImageType::IndexType    IndexType;
-  typedef typename ImageType::RegionType   RegionType;
-  /** Internal bool image type */
-  typedef bool                                                 BoolPixelType;
-  typedef otb::Image<BoolPixelType, ImageType::ImageDimension> BoolImageType;
-  typedef typename BoolImageType::Pointer                      BoolImagePointerType;
-
-  /** RCC8 values type */
-  typedef RCC8Value RCC8ValueType;
-  /**
-   * Get the RCC8 relation.
-   * \return The RCC8 relation value.
-   */
-  RCC8ValueType GetValue(void);
-  /**
-   * Set the first input image.
-   * \param image
-   */
-  void SetInput1(ImageType * image);
-  /**
-   * Set the second input image.
-   * \param image
-   */
-  void SetInput2(ImageType * image);
-  /**
-   * Get the first input image.
-   * \return The first input image.
-   */
-  ImageType * GetInput1(void);
-  /**
-   * Get the second input image.
-   * \return The second input image.
-   */
-  ImageType * GetInput2(void);
-  /** Set/Get the inside value of the region of image 1*/
-  itkSetMacro(InsideValue1, PixelType);
-  itkGetMacro(InsideValue1, PixelType);
-  /** Set/Get the inside value of the region of image 2*/
-  itkSetMacro(InsideValue2, PixelType);
-  itkGetMacro(InsideValue2, PixelType);
-  /** Set external knowledge to help the decision process */
-  itkSetMacro(Level1APrioriKnowledge, bool);
-  itkSetMacro(Level3APrioriKnowledge, bool);
-  itkGetMacro(Level1APrioriKnowledge, bool);
-  itkGetMacro(Level3APrioriKnowledge, bool);
-protected:
-  /** Constructor */
-  ImageToImageRCC8Calculator();
-  /** Destructor */
-  ~ImageToImageRCC8Calculator() override {}
-  /**
-   * Compute the minimal image region required.
-   * \return The minimal region required.
-   */
-  RegionType ComputeMinimalRegion(void);
-  /**
-   * Compute the intersection between regions edges.
-   * \return true if the intersection is not empty.
-   */
-  bool ComputeEdgeEdgeBool(void);
-  /**
-   * Compute the intersection between exterior of region1 and
-   * interior of region2.
-   * \return true if the intersection is not empty.
-   */
-  bool ComputeExterInterBool(void);
-  /**
-   * Compute the intersection between interior of region1 and
-   * exterior of region2.
-   * \return true if the intersection is not empty.
-   */
-  bool ComputeInterExterBool(void);
-  /**
-   * Compute the intersection between regions interiors.
-   * \return true if the intersection is not empty.
-   */
-  bool ComputeInterInterBool(void);
-  /**
-   * Compute the relation value from the input booleans. Please note
-   * that the actual computed value is set to the m_Value parameters, and has
-   * nothing to do with the returned boolean, which indicates if the determination
-   * process was successful.
-   * \param edgeEdgeBool True if edge-edge intersection is not empty.
-   * \param interExterBool True if interior-exterior intersection is not empty.
-   * \param exterInterBool True if exterior-interior intersection is not empty.
-   * \return True if the decision process was successful.
-   */
-  bool ComputeRelation(bool edgeEdgeBool, bool interExterBool, bool exterInterBool);
-  /**
-   * Test if the boolean image is totally black or not. This is a based on the lazy operator
-   * paradigm.
-   * \param image The image to test.
-   * \return True or false.
-   */
-  bool IsBoolImageNotEmpty(BoolImagePointerType image);
-  /**
-   * Compute a bool image of minimal ROI size, surrounded by a false padding, and corresponding
-   * to the input image.
-   * \param image The image to convert.
-   * \param insideValue The inside value.
-   * \return The converted image
-   */
-  BoolImagePointerType ConvertToBoolImage(ImagePointerType image, PixelType insideValue);
-  /** Main computation method */
-  void GenerateData(void) override;
-  /** PrintSelf method */
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-
-private:
-  /** The RCC8 relation value */
-  RCC8ValueType m_Value;
-  /** The minimal ROI needed to compute the relation value */
-  RegionType m_MinimalROI;
-  /**  Decision tree Level 1 A priori knowledge */
-  bool m_Level1APrioriKnowledge;
-  /**  Decision tree Level 3 A priori knowledge */
-  bool m_Level3APrioriKnowledge;
-  /** Inside value 1 */
-  PixelType m_InsideValue1;
-  /** Inside value 2 */
-  PixelType m_InsideValue2;
-  /** Internal bool image representation*/
-  BoolImagePointerType m_BoolImage1;
-  BoolImagePointerType m_BoolImage2;
-};
-} // end namespace otb
-
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbImageToImageRCC8Calculator.hxx"
-#endif
-
-#endif
diff --git a/Modules/OBIA/RCC8/include/otbImageToImageRCC8Calculator.hxx b/Modules/OBIA/RCC8/include/otbImageToImageRCC8Calculator.hxx
deleted file mode 100644
index decd905bf7c446e19bfd0206bea0e59bd43e77ed..0000000000000000000000000000000000000000
--- a/Modules/OBIA/RCC8/include/otbImageToImageRCC8Calculator.hxx
+++ /dev/null
@@ -1,528 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbImageToImageRCC8Calculator_hxx
-#define otbImageToImageRCC8Calculator_hxx
-
-#include "otbImageToImageRCC8Calculator.h"
-#include "itkUnaryFunctorImageFilter.h"
-#include "itkBinaryDilateImageFilter.h"
-#include "itkBinaryBallStructuringElement.h"
-#include "itkInvertIntensityImageFilter.h"
-#include "itkSubtractImageFilter.h"
-#include "itkAndImageFilter.h"
-#include "itkImageRegionIterator.h"
-#include "otbBinaryImageMinimalBoundingRegionCalculator.h"
-#include "otbMacro.h"
-
-//TODELETE  #include "otbImageFileWriter.h"
-//TODELETE  #include "itkCastImageFilter.h"
-
-namespace otb
-{
-/**
- * Constructor
- */
-template<class TInputImage>
-ImageToImageRCC8Calculator<TInputImage>
-::ImageToImageRCC8Calculator()
-{
-  m_Value        = OTB_RCC8_DC;
-  m_InsideValue1  = static_cast<PixelType>(255);
-  m_InsideValue2  = static_cast<PixelType>(255);
-  m_Level1APrioriKnowledge = false;
-  m_Level3APrioriKnowledge = false;
-  this->SetNumberOfRequiredInputs(2);
-}
-/**
- * Set the first input image.
- * \param image
- */
-template<class TInputImage>
-void
-ImageToImageRCC8Calculator<TInputImage>
-::SetInput1(ImageType * image)
-{
-  this->SetNthInput(0, const_cast<ImageType *>(image));
-}
-/**
- * Set the second input image.
- * \param image
- */
-template<class TInputImage>
-void
-ImageToImageRCC8Calculator<TInputImage>
-::SetInput2(ImageType * image)
-{
-  this->SetNthInput(1, const_cast<ImageType *>(image));
-}
-/**
- * Get the first input image.
- * \return The first input image.
- */
-template<class TInputImage>
-typename ImageToImageRCC8Calculator<TInputImage>
-::ImageType*
-ImageToImageRCC8Calculator<TInputImage>
-::GetInput1(void)
-{
-  return dynamic_cast<ImageType*>(this->itk::ProcessObject::GetInput(0));
-}
-/**
- * Get the second input image.
- * \return The second input image.
- */
-template<class TInputImage>
-typename ImageToImageRCC8Calculator<TInputImage>
-::ImageType*
-ImageToImageRCC8Calculator<TInputImage>
-::GetInput2(void)
-{
-  return dynamic_cast<ImageType*>(this->itk::ProcessObject::GetInput(1));
-}
-/**
- * Get the RCC8 relation.
- * \return The RCC8 relation value.
- */
-template <class TInputImage>
-typename ImageToImageRCC8Calculator<TInputImage>
-::RCC8ValueType
-ImageToImageRCC8Calculator<TInputImage>
-::GetValue(void)
-{
-  return m_Value;
-}
-/**
- * Compute the minimal image region required.
- * \return The minimal region required.
- */
-template <class TInputImage>
-typename ImageToImageRCC8Calculator<TInputImage>
-::RegionType
-ImageToImageRCC8Calculator<TInputImage>
-::ComputeMinimalRegion(void)
-{
-  // Input images pointers
-  typename ImageType::Pointer    image1 = this->GetInput1();
-  typename ImageType::Pointer    image2 = this->GetInput2();
-  typename ImageType::RegionType region1, region2, region;
-  typedef otb::BinaryImageMinimalBoundingRegionCalculator<ImageType> RegionCalculator;
-  typename RegionCalculator::Pointer rc = RegionCalculator::New();
-  rc->SetInput(image1);
-  rc->SetPad(2);
-  rc->SetInsideValue(this->GetInsideValue1());
-  rc->Update();
-  region1 = rc->GetRegion();
-  rc = RegionCalculator::New();
-  rc->SetInput(image2);
-  rc->SetPad(2);
-  rc->SetInsideValue(this->GetInsideValue2());
-  rc->Update();
-  region2 = rc->GetRegion();
-  // otbMsgDebugMacro(<<"RCC8Calculator->ComputeMinimalRegion() Region1: index: "<<region1.GetIndex()<<" size: "<<region1.GetSize());
-  // otbMsgDebugMacro(<<"RCC8Calculator->ComputeMinimalRegion() Region2: index: "<<region2.GetIndex()<<" size: "<<region2.GetSize());
-
-  //TODELETE     std::cout<<"RCC8Calculator->ComputeMinimalRegion() Region1: index: "<<region1.GetIndex()<<" size: "<<region1.GetSize()<<std::endl;
-//TODELETE      std::cout<<"RCC8Calculator->ComputeMinimalRegion() Region2: index: "<<region2.GetIndex()<<" size: "<<region2.GetSize()<<std::endl;
-
-  typename ImageType::SizeType  size;
-  typename ImageType::IndexType index;
-
-  for (unsigned int i = 0; i < ImageType::ImageDimension; ++i)
-    {
-    index[i] = std::min(region1.GetIndex()[i], region2.GetIndex()[i]);
-    int potSize = std::max(region1.GetIndex()[i] + region1.GetSize()[i],
-                           region2.GetIndex()[i] + region2.GetSize()[i]);
-    size[i] = (potSize - index[i] < 0 ? 0 : potSize - index[i]);
-    }
-  region.SetIndex(index);
-  region.SetSize(size);
-  region.PadByRadius(2);
-  region.Crop(image1->GetLargestPossibleRegion());
-  region.Crop(image2->GetLargestPossibleRegion());
-  // otbMsgDebugMacro(<<"RCC8Calculator->ComputeMinimalRegion(): index: "<<index<<" size: "<<size);
-  //TODELETE   std::cout<<"RCC8Calculator->ComputeMinimalRegion(): index: "<<index<<" size: "<<size<<std::endl;
-  return region;
-}
-/**
- * Compute a bool image of minimal ROI size, surrounded by a false padding, and corresponding
- * to the input image.
- * \param image The image to convert.
- * \param insideValue The inside value.
- * \return The converted image
- */
-template<class TInputImage>
-typename ImageToImageRCC8Calculator<TInputImage>
-::BoolImagePointerType
-ImageToImageRCC8Calculator<TInputImage>
-::ConvertToBoolImage(ImagePointerType image, PixelType insideValue)
-{
-  typedef itk::ImageRegionConstIterator<ImageType> ConstIterator;
-  typedef itk::ImageRegionIterator<BoolImageType>  Iterator;
-  typename BoolImageType::Pointer  output = BoolImageType::New();
-  typename BoolImageType::SizeType boolImageSize;
-  boolImageSize[0] = m_MinimalROI.GetSize()[0] + 2;
-  boolImageSize[1] = m_MinimalROI.GetSize()[1] + 2;
-  typename BoolImageType::IndexType boolImageIndex;
-  boolImageIndex[0] = m_MinimalROI.GetIndex()[0] - 1;
-  boolImageIndex[1] = m_MinimalROI.GetIndex()[1] - 1;
-  //otbMsgDebugMacro(<<"RCC8Calculator->ConvertToBoolImage() size: "<<boolImageSize<<" index: "<<boolImageIndex);
-
-  typename BoolImageType::RegionType boolRegion;
-  boolRegion.SetSize(boolImageSize);
-  boolRegion.SetIndex(boolImageIndex);
-  output->SetRegions(boolRegion);
-  output->Allocate();
-  output->FillBuffer(false);
-
-  ConstIterator inputIt(image, m_MinimalROI);
-  Iterator outputIt(output, m_MinimalROI);
-  inputIt.GoToBegin();
-  outputIt.GoToBegin();
-  while (!inputIt.IsAtEnd() && !outputIt.IsAtEnd())
-    {
-    outputIt.Set(inputIt.Get() == insideValue);
-    ++inputIt;
-    ++outputIt;
-    }
-
-  return output;
-}
-/**
- * Compute the intersection between regions edges.
- * \return true if the intersection is not empty.
- */
-template<class TInputImage>
-bool
-ImageToImageRCC8Calculator<TInputImage>
-::ComputeEdgeEdgeBool(void)
-{
-
-  /// Definition of the Filters used to compute the boolean
-  typedef itk::SubtractImageFilter<BoolImageType, BoolImageType,
-      BoolImageType>
-  SubtractFilterType;
-  typedef itk::BinaryBallStructuringElement<bool,
-      BoolImageType::ImageDimension>
-  BinaryBallStructuringElementType;
-  typedef itk::BinaryDilateImageFilter<BoolImageType, BoolImageType, BinaryBallStructuringElementType> DilateFilterType;
-  typedef itk::AndImageFilter<BoolImageType, BoolImageType, BoolImageType>                             AndFilterType;
-  /// Declaration and instantiation
-  typename DilateFilterType::Pointer   dilateFilter1 = DilateFilterType::New();
-  typename DilateFilterType::Pointer   dilateFilter2 = DilateFilterType::New();
-  typename SubtractFilterType::Pointer subtractFilter1 = SubtractFilterType::New();
-  typename SubtractFilterType::Pointer subtractFilter2 = SubtractFilterType::New();
-  typename AndFilterType::Pointer      andFilter = AndFilterType::New();
-  /// Configuration of the erosion filter
-  BinaryBallStructuringElementType structElement1, structElement2;
-  structElement1.SetRadius(1);
-  structElement2.SetRadius(1);
-  structElement1.CreateStructuringElement();
-  structElement2.CreateStructuringElement();
-  dilateFilter1->SetKernel(structElement1);
-  dilateFilter2->SetKernel(structElement2);
-  /// The erosion is performed to get the surrounding edge of this
-  /// region by subtraction to the original image
-  dilateFilter1->SetInput(m_BoolImage1);
-  dilateFilter1->Update();
-  subtractFilter1->SetInput2(m_BoolImage1);
-  subtractFilter1->SetInput1(dilateFilter1->GetOutput());
-  subtractFilter1->Update();
-  /// The erosion is performed to get the surrounding edge of this
-  /// region by subtraction to the original image
-  dilateFilter2->SetInput(m_BoolImage2);
-  dilateFilter2->Update();
-  subtractFilter2->SetInput2(m_BoolImage2);
-  subtractFilter2->SetInput1(dilateFilter2->GetOutput());
-  subtractFilter2->Update();
-  /// Now we can compute the intersection between the 2 edges
-  andFilter->SetInput1(subtractFilter1->GetOutput());
-  andFilter->SetInput2(subtractFilter2->GetOutput());
-  andFilter->Update();
-  /// test if the intersection is empty or not
-  return this->IsBoolImageNotEmpty(andFilter->GetOutput());
-}
-/**
- * Compute the intersection between exterior of region1 and
- * interior of region2.
- * \return true if the intersection is not empty.
- */
-template<class TInputImage>
-bool
-ImageToImageRCC8Calculator<TInputImage>
-::ComputeExterInterBool(void)
-{
-  /// Definition of the filters used
-  typedef itk::InvertIntensityImageFilter<BoolImageType, BoolImageType>    InvertFilterType;
-  typedef itk::AndImageFilter<BoolImageType, BoolImageType, BoolImageType> AndFilterType;
-  /// Declaration and instantiation
-  typename InvertFilterType::Pointer invert = InvertFilterType::New();
-  typename AndFilterType::Pointer    andFilter = AndFilterType::New();
-  /// The exterior is the inverted input image
-  invert->SetMaximum(true);
-  invert->SetInput(m_BoolImage1);
-  andFilter->SetInput1(m_BoolImage2);
-  andFilter->SetInput2(invert->GetOutput());
-  andFilter->Update();
-  /// test if the intersection is empty or not
-  return IsBoolImageNotEmpty(andFilter->GetOutput());
-}
-/**
- * Compute the intersection between interior of region1 and
- * exterior of region2.
- * \return true if the intersection is not empty.
- */
-template<class TInputImage>
-bool
-ImageToImageRCC8Calculator<TInputImage>
-::ComputeInterExterBool(void)
-{
-  /// Definition of the filters used
-  typedef itk::InvertIntensityImageFilter<BoolImageType, BoolImageType>    InvertFilterType;
-  typedef itk::AndImageFilter<BoolImageType, BoolImageType, BoolImageType> AndFilterType;
-//TODELETE     typedef otb::Image<unsigned char, 2> TmpImageType;
-//TODELETE     typedef itk::CastImageFilter<BoolImageType, TmpImageType> CastFilterType;
-
-//TODELETE     typedef ImageFileWriter<TmpImageType> WriterType;
-/// Declaration and instantiation
-  typename InvertFilterType::Pointer invert = InvertFilterType::New();
-  typename AndFilterType::Pointer    andFilter = AndFilterType::New();
-  /// The exterior is the inverted input image
-  invert->SetMaximum(true);
-  invert->SetInput(m_BoolImage2);
-
-//TODELETE     typename CastFilterType::Pointer caster = CastFilterType::New();
-//TODELETE    caster->SetInput(invert->GetOutput());
-//TODELETE     typename WriterType::Pointer writer = WriterType::New();
-//TODELETE      writer->SetFileName("invert.tif");
-//TODELETE     writer->SetInput(caster->GetOutput());
-//TODELETE      writer->Update();
-
-  andFilter->SetInput1(m_BoolImage1);
-  andFilter->SetInput2(invert->GetOutput());
-  andFilter->Update();
-
-//TODELETE     caster = CastFilterType::New();
-//TODELETE     caster->SetInput(andFilter->GetOutput());
-//TODELETE     writer = WriterType::New();
-//TODELETE     writer->SetFileName("and.tif");
-//TODELETE     writer->SetInput(caster->GetOutput());
-//TODELETE     writer->Update();
-
-  /// test if the intersection is empty or not
-  return IsBoolImageNotEmpty(andFilter->GetOutput());
-}
-/**
- * Compute the intersection between regions interiors.
- * \return true if the intersection is not empty.
- */
-template<class TInputImage>
-bool
-ImageToImageRCC8Calculator<TInputImage>
-::ComputeInterInterBool(void)
-{
-  /// Definition of the filters used
-  typedef itk::AndImageFilter<BoolImageType, BoolImageType, BoolImageType> AndFilterType;
-
-  /// Declaration and instantiation
-  typename AndFilterType::Pointer andFilter = AndFilterType::New();
-  /// The exterior is the inverted input image
-  andFilter->SetInput1(m_BoolImage1);
-  andFilter->SetInput2(m_BoolImage2);
-  andFilter->Update();
-  /// test if the intersection is empty or not
-  return IsBoolImageNotEmpty(andFilter->GetOutput());
-}
-/**
- * Compute the relation value from the input booleans. Please note
- * that the actual computed value is set to the m_Value parameters, and has
- * nothing to do with the returned boolean, which indicates if the determination
- * process was successful.
- * \param edgeEdgeBool True if edge-edge intersection is not empty.
- * \param interExterBool True if interior-exterior intersection is not empty.
- * \param exterInterBool True if exterior-interior intersection is not empty.
- * \return True if the decision process was successful.
- */
-template<class TInputImage>
-bool
-ImageToImageRCC8Calculator<TInputImage>
-::ComputeRelation(bool edgeEdgeBool, bool interExterBool, bool exterInterBool)
-{
-  // otbMsgDebugMacro(<<"RCC8Calculator->ComputeRelation()");
-  // This decision process is based on a decision tree
-  if ((!interExterBool) && (edgeEdgeBool) && (!exterInterBool))
-    {
-    m_Value = OTB_RCC8_EQ;
-    return true;
-    }
-  else if ((!interExterBool) && (edgeEdgeBool) && (exterInterBool))
-    {
-    m_Value = OTB_RCC8_TPP;
-    return true;
-    }
-  else if ((interExterBool) && (!edgeEdgeBool) && (!exterInterBool))
-    {
-    m_Value = OTB_RCC8_NTPPI;
-    return true;
-    }
-  else if ((interExterBool) && (!edgeEdgeBool) && (exterInterBool))
-    {
-    m_Value = OTB_RCC8_DC;
-    return true;
-    }
-  else if ((interExterBool) && (edgeEdgeBool) && (!exterInterBool))
-    {
-    m_Value = OTB_RCC8_TPPI;
-    return true;
-    }
-  else
-    {
-    return false;
-    }
-}
-/**
- * Test if the boolean image is totally black or not. This is a based on the lazy operator
- * paradigm.
- * \param image The image to test.
- * \return True or false.
- */
-template<class TInputImage>
-bool
-ImageToImageRCC8Calculator<TInputImage>
-::IsBoolImageNotEmpty(BoolImagePointerType image)
-{
-  typedef itk::ImageRegionConstIterator<BoolImageType> IteratorType;
-  // TODO : we'll eventually need to change something.
-  IteratorType it(image, image->GetLargestPossibleRegion());
-  it.GoToBegin();
-  while (!it.IsAtEnd())
-    {
-    if (it.Get())
-      {
-      return true;
-      }
-    ++it;
-    }
-  return false;
-}
-/**
- * Main computation method.
- */
-template <class TInputImage>
-void
-ImageToImageRCC8Calculator<TInputImage>
-::GenerateData(void)
-{
-  // otbMsgDebugMacro(<<"RCC8Calculator->GenerateData()");
-  /// First we compute the minimal region of interest we will use for the relation computation
-  m_MinimalROI = this->ComputeMinimalRegion();
-  /// If they are disjoint, the answer is trivial
-  if ((m_MinimalROI.GetSize()[0] <= 1) || (m_MinimalROI.GetSize()[1] <= 1))
-    {
-    /// The relation is DC
-    m_Value = OTB_RCC8_DC;
-    // otbMsgDebugMacro(<<"RCC8Calculator->GenerateData(): Disjoint regions");
-    }
-  else
-    {
-    /// else each input images is cast to boolean type and reduced to
-    // the minimal region
-    m_BoolImage1 = ConvertToBoolImage(this->GetInput1(), m_InsideValue1);
-    m_BoolImage2 = ConvertToBoolImage(this->GetInput2(), m_InsideValue2);
-    // otbMsgDebugMacro(<<"RCC8Calculator->GenerateData(): Bool images computed: "<<m_BoolImage1->GetLargestPossibleRegion().GetSize());
-    /// Then the boolean which will be used to determine the relation
-    /// are declared
-    bool edgeEdgeBool, interExterBool, exterInterBool, interInterBool;
-    /// The boolean edgeEdge is needed in each case, so it si computed
-    /// now
-    edgeEdgeBool = ComputeEdgeEdgeBool();
-    // otbMsgDebugMacro(<<"RCC8Calculator->GenerateData(): edgeEdge "<<edgeEdgeBool);
-    //TODELETE  std::cout<<"RCC8Calculator->GenerateData(): edgeEdge "<<edgeEdgeBool<<std::endl;
-    /// Here comes the outside knowledge
-    if (this->GetLevel1APrioriKnowledge())
-      {
-      /// If the Level1APrioriKnowledge is set, then the
-      /// interExterBool is set to true
-      // otbMsgDebugMacro(<<"RCC8Calculator->GenerateData(): Level1APrioriKnowledge.");
-      interExterBool = true;
-      }
-    else
-      {
-      /// Else it must be computed
-      interExterBool = ComputeInterExterBool();
-      // otbMsgDebugMacro(<<"RCC8Calculator->GenerateData(): interExter "<<interExterBool);
-      }
-    /// At this stage we can determine if the relation is of type NTPP
-    //TODELETE  std::cout<<"RCC8Calculator->GenerateData(): interExter "<<interExterBool<<std::endl;
-    if ((!interExterBool) && (!edgeEdgeBool))
-      {
-      m_Value = OTB_RCC8_NTPP;
-      }
-    else
-      {
-      /// If not, we must consider the intersection between exterior
-      if (this->GetLevel3APrioriKnowledge())
-        {
-        /// If the Level3APRioriKnowledge flag is set, this boolean
-        /// can be determined from the two others
-        // otbMsgDebugMacro(<<"RCC8Calculator->GenerateData(): Level3APrioriKnowledge.");
-        exterInterBool = true;
-        }
-      else
-        {
-        /// Else it must be computed
-        exterInterBool = ComputeExterInterBool();
-        // otbMsgDebugMacro(<<"RCC8Calculator->GenerateData(): ExterInter "<<exterInterBool);
-        }
-      //TODELETE      std::cout<<"RCC8Calculator->GenerateData(): ExterInter "<<exterInterBool<<std::endl;
-      /// If it is not sufficient to compute the relation
-      if (!ComputeRelation(edgeEdgeBool, interExterBool, exterInterBool))
-        {
-        /// Compute the last boolean
-        interInterBool = ComputeInterInterBool();
-        //TODELETE    std::cout<<"RCC8Calculator->GenerateData(): InterInter "<<interInterBool<<std::endl;
-        // otbMsgDebugMacro(<<"RCC8Calculator->GenerateData(): InterInter "<<interInterBool);
-        /// Which allow the full determination
-        if ((interExterBool) && (edgeEdgeBool) && (exterInterBool) && (!interInterBool))
-          {
-          m_Value = OTB_RCC8_EC;
-          }
-        else
-          {
-          m_Value = OTB_RCC8_PO;
-          }
-        }
-      }
-    }
-}
-/**
-* PrintSelf method
-*/
-template<class TInputImage>
-void
-ImageToImageRCC8Calculator<TInputImage>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-}
-
-} // end namespace itk
-
-#endif
diff --git a/Modules/OBIA/RCC8/include/otbPolygonListToRCC8GraphFilter.h b/Modules/OBIA/RCC8/include/otbPolygonListToRCC8GraphFilter.h
deleted file mode 100644
index 7c2d8175a3cccfa6282af5e58125269886fd980b..0000000000000000000000000000000000000000
--- a/Modules/OBIA/RCC8/include/otbPolygonListToRCC8GraphFilter.h
+++ /dev/null
@@ -1,182 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbPolygonListToRCC8GraphFilter_h
-#define otbPolygonListToRCC8GraphFilter_h
-
-#include "otbRCC8GraphSource.h"
-#include "otbPolygonToPolygonRCC8Calculator.h"
-#include "otbRCC8VertexIterator.h"
-#include "otbRCC8InEdgeIterator.h"
-#include "otbRCC8OutEdgeIterator.h"
-
-namespace otb
-{
-/**
- * \class PolygonListToRCC8GraphFilter
- * \brief This class computes an RCC8 graph from a set of polygons.
- * \sa ImageMultiSegmentationToRCC8GraphFilter
- *
- * \ingroup OTBRCC8
- */
-template <class TPolygonList, class TOutputGraph>
-class ITK_EXPORT PolygonListToRCC8GraphFilter
-  : public RCC8GraphSource<TOutputGraph>
-{
-public:
-  /** Standard class typedefs. */
-  typedef PolygonListToRCC8GraphFilter  Self;
-  typedef RCC8GraphSource<TOutputGraph> Superclass;
-  typedef itk::SmartPointer<Self>       Pointer;
-  typedef itk::SmartPointer<const Self> ConstPointer;
-  /** Method for creation through the object factory. */
-  itkNewMacro(Self);
-  /** Run-time type information (and related methods). */
-  itkTypeMacro(PolygonListToRCC8GraphFilter, RCC8GraphSource);
-
-  /** Input related typedef */
-  typedef TPolygonList                           PolygonListType;
-  typedef typename PolygonListType::ConstPointer PolygonListConstPointerType;
-  typedef typename PolygonListType::ObjectType   PolygonType;
-  typedef typename PolygonType::Pointer          PolygonPointerType;
-
-  /** Output related typedefs */
-  typedef TOutputGraph                                   OutputGraphType;
-  typedef typename OutputGraphType::Pointer              OutputGraphPointerType;
-  typedef typename OutputGraphType::VertexType           VertexType;
-  typedef typename VertexType::Pointer                   VertexPointerType;
-  typedef typename VertexType::PathType                  PathType;
-  typedef typename OutputGraphType::VertexDescriptorType VertexDescriptorType;
-
-  /** Knowledge enum typedef */
-  typedef typename OutputGraphType::RCC8ValueType      RCC8ValueType;
-  typedef enum {NO_INFO, LEVEL_1, LEVEL_3, FULL}       KnowledgeValueType;
-  typedef std::pair<KnowledgeValueType, RCC8ValueType> KnowledgeStateType;
-
-  /** RCC8 calculator typedef */
-  typedef PolygonToPolygonRCC8Calculator<PolygonType> RCC8CalculatorType;
-
-  /** Graph iterators typedefs */
-  typedef RCC8VertexIterator<OutputGraphType>  VertexIteratorType;
-  typedef RCC8InEdgeIterator<OutputGraphType>  InEdgeIteratorType;
-  typedef RCC8OutEdgeIterator<OutputGraphType> OutEdgeIteratorType;
-
-  typedef typename VertexIteratorType::VertexDescriptorType EdgePairElementType;
-  typedef std::pair<EdgePairElementType, EdgePairElementType> EdgePairType;
-  typedef std::map<EdgePairType, RCC8ValueType> EdgeMapType;
-  typedef std::vector<EdgeMapType>              EdgeMapVectorType;
-
-  typedef std::vector<unsigned int> SegmentationRangesType;
-
-  /** Toogle optimisation flag */
-  itkBooleanMacro(Optimisation);
-  itkSetMacro(Optimisation, bool);
-  itkBooleanMacro(UseInverted);
-  itkSetMacro(UseInverted, bool);
-
-  void SetSegmentationRanges(SegmentationRangesType ranges)
-  {
-    m_SegmentationRanges = ranges;
-  }
-
-  const SegmentationRangesType& GetSegmentationRanges() const
-  {
-    return m_SegmentationRanges;
-  }
-
-  /**
-   * Get the number of occurrences of the given value
-   * \return The value.
-   */
-  unsigned int GetRelationsCount(RCC8ValueType val);
-
-  /**
-   * Get number of relations
-   * \return The number of relations.
-   */
-  unsigned int GetNumberOfRelations(void);
-
-  using Superclass::SetInput;
-  /** Set the input of the filter */
-  virtual void SetInput(const PolygonListType *input);
-  /** Get the input of the filter */
-  const PolygonListType * GetInput(void);
-
-protected:
-  /** Constructor */
-  PolygonListToRCC8GraphFilter();
-  /** Destructor */
-  ~PolygonListToRCC8GraphFilter() override;
-  /** Main computation method */
-  void GenerateData() override;
-
-  /** Multi-threading implementation */
-
-  virtual void BeforeThreadedGenerateData();
-
-  virtual void AfterThreadedGenerateData();
-
-  /** startIndex and stopIndex represent the indices of the vertex to
-  examine in thread threadId */
-  virtual void ThreadedGenerateData(unsigned int startIndex, unsigned int stopIndex, itk::ThreadIdType threadId);
-
-  /** Static function used as a "callback" by the MultiThreader.  The threading
-   * library will call this routine for each thread, which will delegate the
-   * control to ThreadedGenerateData(). */
-  static ITK_THREAD_RETURN_TYPE ThreaderCallback(void *arg);
-
-  /** Internal structure used for passing image data into the threading library */
-  struct ThreadStruct
-  {
-    Pointer Filter;
-  };
-
-  /** End Multi-threading implementation */
-
-  /** PrintSelf method */
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-  /**
-   * Get the composition knowledge.
-   * \param r1 First RCC8 relation value,
-   * \param r2 Second RCC8 relation value,
-   * \return The knowledge associated with the composition.
-   */
-  KnowledgeStateType GetKnowledge(RCC8ValueType r1, RCC8ValueType r2);
-
-private:
-  /** Optimisation flag */
-  bool              m_Optimisation;
-  unsigned int      m_Accumulator[8];
-  EdgeMapVectorType m_EdgesPerThread;
-
-  /** This array stores the indices corresponding to each segmentation */
-  SegmentationRangesType m_SegmentationRanges;
-
-  /** If set to true, the filter will also add the invert relationship
-    * between v2 and v1 */
-  bool m_UseInverted;
-};
-} // End namespace otb
-
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbPolygonListToRCC8GraphFilter.hxx"
-#endif
-
-#endif
diff --git a/Modules/OBIA/RCC8/include/otbPolygonListToRCC8GraphFilter.hxx b/Modules/OBIA/RCC8/include/otbPolygonListToRCC8GraphFilter.hxx
deleted file mode 100644
index 10842bf64866a0753828b9cf23f056173dd90ee1..0000000000000000000000000000000000000000
--- a/Modules/OBIA/RCC8/include/otbPolygonListToRCC8GraphFilter.hxx
+++ /dev/null
@@ -1,460 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbPolygonListToRCC8GraphFilter_hxx
-#define otbPolygonListToRCC8GraphFilter_hxx
-
-#include "otbPolygonListToRCC8GraphFilter.h"
-#include "itkProgressReporter.h"
-
-namespace otb
-{
-/**
- * Constructor.
- */
-template <class TPolygonList, class TOutputGraph>
-PolygonListToRCC8GraphFilter<TPolygonList, TOutputGraph>
-::PolygonListToRCC8GraphFilter()
-{
-  this->SetNumberOfRequiredInputs(1);
-  m_Optimisation = false;
-  m_UseInverted = false;
-}
-/**
- * Destructor.
- */
-template <class TPolygonList, class TOutputGraph>
-PolygonListToRCC8GraphFilter<TPolygonList, TOutputGraph>
-::~PolygonListToRCC8GraphFilter()
-{}
-
-template <class TPolygonList, class TOutputGraph>
-void
-PolygonListToRCC8GraphFilter<TPolygonList, TOutputGraph>
-::SetInput(const PolygonListType *input)
-{
-  // Process object is not const-correct so the const_cast is required here
-  this->itk::ProcessObject::SetNthInput(0,
-                                        const_cast<PolygonListType *>(input));
-}
-
-template <class TPolygonList, class TOutputGraph>
-const typename PolygonListToRCC8GraphFilter<TPolygonList, TOutputGraph>::PolygonListType *
-PolygonListToRCC8GraphFilter<TPolygonList, TOutputGraph>
-::GetInput(void)
-{
-  if (this->GetNumberOfInputs() < 1)
-    {
-    return nullptr;
-    }
-
-  return static_cast<const TPolygonList *>
-           (this->itk::ProcessObject::GetInput(0));
-}
-
-template <class TPolygonList, class TOutputGraph>
-unsigned int
-PolygonListToRCC8GraphFilter<TPolygonList, TOutputGraph>
-::GetRelationsCount(RCC8ValueType val)
-{
-  return m_Accumulator[val];
-}
-
-template <class TPolygonList, class TOutputGraph>
-unsigned int
-PolygonListToRCC8GraphFilter<TPolygonList, TOutputGraph>
-::GetNumberOfRelations()
-{
-  unsigned int result = 0;
-  for (unsigned int i = 0; i < 8; ++i)
-    {
-    result += m_Accumulator[i];
-
-    }
-  return result;
-}
-template <class TPolygonList, class TOutputGraph>
-typename PolygonListToRCC8GraphFilter<TPolygonList, TOutputGraph>
-::KnowledgeStateType
-PolygonListToRCC8GraphFilter<TPolygonList, TOutputGraph>
-::GetKnowledge(RCC8ValueType r1, RCC8ValueType r2)
-{
-  m_Accumulator[0] = 0;
-  m_Accumulator[1] = 0;
-  m_Accumulator[2] = 0;
-  m_Accumulator[3] = 0;
-  m_Accumulator[4] = 0;
-  m_Accumulator[5] = 0;
-  m_Accumulator[6] = 0;
-  m_Accumulator[7] = 0;
-
-  // otbMsgDebugMacro(<<"RCC8GraphFilter: entering GetKnowledge method.");
-  // This is the RCC8 composition table
-  const int knowledge[8][8]
-    =
-    {
-    /**         DC  EC  PO TPP TPPi NTPP i  EQ */
-    /** DC */ {-3, -2, -2, -2,  0, -2,  0,  0},
-    /** EC  */ {-1, -3, -2, -3, -1, -3,  0,  1},
-    /** PO  */ {-1, -1, -3, -3, -1, -3, -1,  2},
-    /** TPP */ { 0, -1, -2, -3, -3,  5, -1,  3},
-    /** TPPi*/ {-1, -1, -1, -3, -1, -3,  6,  4},
-    /** NTPP*/ { 0,  0, -2,  5, -2,  5, -3,  5},
-    /** NTPPi*/ {-1, -1, -1, -1,  6, -3,  6,  6},
-    /** EQ  */ { 0,  1,  2,  3,  4,  5,  6,  7}
-    };
-
-  int value = knowledge[r1][r2];
-  // Each negative case correspond to a level of knowledge
-  if (value >= 0)
-    {
-    // otbMsgDebugMacro(<<"RCC8GraphFilter: leaving GetKnowledge method: FULL");
-    return KnowledgeStateType(FULL, static_cast<RCC8ValueType>(value));
-    }
-  else if (value == -1)
-    {
-    // otbMsgDebugMacro(<<"RCC8GraphFilter: leaving GetKnowledge method: LEVEL_1");
-    return KnowledgeStateType(LEVEL_1, OTB_RCC8_DC);
-    }
-  else if (value == -2)
-    {
-    // otbMsgDebugMacro(<<"RCC8GraphFilter: leaving GetKnowledge method.LEVEL_3");
-    return KnowledgeStateType(LEVEL_3, OTB_RCC8_DC);
-    }
-  else
-    {
-    // otbMsgDebugMacro(<<"RCC8GraphFilter: leaving GetKnowledge method.NO_INFO");
-    return KnowledgeStateType(NO_INFO, OTB_RCC8_DC);
-    }
-}
-/**
- * Main computation method.
- */
-template <class TPolygonList, class TOutputGraph>
-void
-PolygonListToRCC8GraphFilter<TPolygonList, TOutputGraph>
-::GenerateData()
-{
-  // Call a method that can be overridden by a subclass to perform
-  // some calculations prior to splitting the main computations into
-  // separate threads
-  this->BeforeThreadedGenerateData();
-
-  // Set up the multithreaded processing
-  ThreadStruct str;
-  str.Filter = this;
-
-  // // Initializing edges vectors per thread
-  EdgeMapType defaultEdgeMap;
-  m_EdgesPerThread = EdgeMapVectorType(this->GetNumberOfThreads(), defaultEdgeMap);
-
-  // Setting up multithreader
-  this->GetMultiThreader()->SetNumberOfThreads(this->GetNumberOfThreads());
-  this->GetMultiThreader()->SetSingleMethod(this->ThreaderCallback, &str);
-
-  // multithread the execution
-  this->GetMultiThreader()->SingleMethodExecute();
-
-  // Call a method that can be overridden by a subclass to perform
-  // some calculations after all the threads have completed
-  this->AfterThreadedGenerateData();
-}
-
-template <class TPolygonList, class TOutputGraph>
-void
-PolygonListToRCC8GraphFilter<TPolygonList, TOutputGraph>
-::BeforeThreadedGenerateData()
-{
-  // Output graph pointer
-  OutputGraphPointerType      graph = this->GetOutput();
-  PolygonListConstPointerType inputPtr = this->GetInput();
-
-// Initializing output graph
-  graph->SetNumberOfVertices(inputPtr->Size());
-  graph->Build();
-
-  // Vertex indexes
-  unsigned int nbVertices = 0;
-
-  typedef typename PolygonListType::ConstIterator PolygonListConstIteratorType;
-
-  // Loads the polygons list to graph nodes
-  for (PolygonListConstIteratorType it = inputPtr->Begin();
-       it != inputPtr->End(); ++it)
-    {
-    // Create a new vertex
-    VertexPointerType vertex = VertexType::New();
-    // Set its properties
-    vertex->SetPath(it.Get());
-
-    // look for the appropriate segmentation index
-
-    unsigned int segIndex = 1;
-
-    while (segIndex < m_SegmentationRanges.size() &&
-           (nbVertices < m_SegmentationRanges[segIndex - 1] || nbVertices >= m_SegmentationRanges[segIndex]))
-      {
-      ++segIndex;
-      }
-
-    vertex->SetSegmentationLevel(segIndex - 1);
-
-    // Put it in the graph
-    graph->SetVertex(nbVertices, vertex);
-    otbMsgDevMacro(<< "Adding vertex: " << nbVertices);
-    ++nbVertices;
-    }
-}
-
-template <class TPolygonList, class TOutputGraph>
-void
-PolygonListToRCC8GraphFilter<TPolygonList, TOutputGraph>
-::ThreadedGenerateData(unsigned int startIndex, unsigned int stopIndex, itk::ThreadIdType threadId)
-{
-  //std::cout<<"Starting thread "<<threadId <<" to work on range ["<<startIndex<<", "<<stopIndex<<"]"<<std::endl;
-
-  // Output graph pointer
-  OutputGraphPointerType      graph = this->GetOutput();
-  PolygonListConstPointerType inputPtr = this->GetInput();
-
-  // invert value vector
-  RCC8ValueType invert[8] = {OTB_RCC8_DC, OTB_RCC8_EC, OTB_RCC8_PO, OTB_RCC8_TPPI,
-                             OTB_RCC8_TPP, OTB_RCC8_NTPPI, OTB_RCC8_NTPP, OTB_RCC8_EQ};
-
-  unsigned int nbVertices = graph->GetNumberOfVertices();
-  itk::ProgressReporter progress(this, threadId, ((int) stopIndex - (int) startIndex)*nbVertices);
-
-  otbMsgDevMacro(<< "Adjacency matrix size: " << nbVertices * nbVertices);
-
-  VertexIteratorType vIt1(graph);
-  VertexIteratorType vIt2(graph);
-
-  unsigned int count = 0;
-
-  // For each couple of vertices
-  for (vIt1.GoToBegin(); !vIt1.IsAtEnd(); ++vIt1)
-    {
-    // TODO: this is not correct and should be replaced by a
-    // vIt1(graph, index1, index2), which does not exist for the moment
-    if ((count >= startIndex) && (count < stopIndex))
-      {
-      for (vIt2.GoToBegin(); !vIt2.IsAtEnd(); ++vIt2)
-        {
-        //We do not examine each couple because of the RCC8 symmetry
-        if (vIt1.GetIndex() < vIt2.GetIndex())
-          {
-
-          // Compute the RCC8 relation
-          typename RCC8CalculatorType::Pointer calc = RCC8CalculatorType::New();
-          calc->SetPolygon1(vIt1.Get()->GetPath());
-          calc->SetPolygon2(vIt2.Get()->GetPath());
-          RCC8ValueType value = OTB_RCC8_DC;
-
-          // if the optimisations are activated
-          if (m_Optimisation)
-            {
-            //  otbMsgDebugMacro(<<"RCC8GraphFilter: Entering optimisation loop");
-            InEdgeIteratorType inIt1(vIt1.GetIndex(), graph);
-            InEdgeIteratorType inIt2(vIt2.GetIndex(), graph);
-            // otbMsgDebugMacro(<<"Optimisation loop: iterators initialised");
-            VertexDescriptorType betweenIndex;
-            KnowledgeStateType know(NO_INFO, OTB_RCC8_DC);
-            inIt1.GoToBegin();
-
-            // Iterate through the edges going to the first vertex
-            while (!inIt1.IsAtEnd() && (know.first != FULL))
-              {
-              betweenIndex = inIt1.GetSourceIndex();
-              inIt2.GoToBegin();
-              bool edgeFound = false;
-              while (!inIt2.IsAtEnd() && (know.first != FULL))
-                {
-                // try to find an intermediate vertex between the two ones which
-                // we vant to compute the relationship
-                if (inIt2.GetSourceIndex() == betweenIndex)
-                  {
-                  // if an intermediate vertex is found
-                  edgeFound = true;
-                  // otbMsgDebugMacro(<<"Optimisation loop: found an intermediary vertex:" <<betweenIndex);
-                  // See if it brings some info on the RCCC8 value
-                  know = GetKnowledge(invert[inIt1.GetValue()], inIt2.GetValue());
-                  calc->SetLevel1APrioriKnowledge(know.first == LEVEL_1);
-                  calc->SetLevel3APrioriKnowledge(know.first == LEVEL_3);
-                  //  otbMsgDebugMacro(<<"Optimisation loop: knowledge: "<<know.first<<","<<know.second);
-                  }
-                ++inIt2;
-                }
-              // If no intermediate was found
-              if (!edgeFound)
-                {
-                //  otbMsgDebugMacro(<<"Optimisation loop: found an intermediary vertex:" <<betweenIndex);
-                // Try using a DC relationship
-                know = GetKnowledge(invert[inIt1.GetValue()], OTB_RCC8_DC);
-                calc->SetLevel1APrioriKnowledge(know.first == LEVEL_1);
-                calc->SetLevel3APrioriKnowledge(know.first == LEVEL_3);
-                // otbMsgDebugMacro(<<"Optimisation loop: knowledge: "<<know.first<<","<<know.second);
-                }
-              ++inIt1;
-              }
-            // If the search has fully determined the RCC8
-            if (know.first == FULL)
-              {
-              // Get the value
-              value = know.second;
-              }
-            else
-              {
-              // Else trigger the computation
-              // (which will take the optimisation phase info into account)
-              calc->Compute();
-              value = calc->GetValue();
-              }
-            // otbMsgDebugMacro(<<"RCC8GraphFilter: Leaving optimisation loop");
-            }
-          // If the optimisations are not activated
-          else
-            {
-            calc->Compute();
-            value = calc->GetValue();
-            }
-          m_Accumulator[value] += 1;
-          m_Accumulator[invert[value]] += 1;
-          // If the vertices are connected
-          if (value > OTB_RCC8_DC)
-            {
-            // Add the edge to the graph.
-            otbMsgDevMacro(<< "Adding edge: " << vIt1.GetIndex() << " -> " << vIt2.GetIndex() << ": " << value);
-            if (value == OTB_RCC8_NTPPI)
-              {
-              m_EdgesPerThread[threadId][EdgePairType(vIt2.GetIndex(), vIt1.GetIndex())] = OTB_RCC8_NTPP;
-              }
-            else if (value == OTB_RCC8_TPPI)
-              {
-              m_EdgesPerThread[threadId][EdgePairType(vIt2.GetIndex(), vIt1.GetIndex())] = OTB_RCC8_TPP;
-              }
-            else
-              {
-              m_EdgesPerThread[threadId][EdgePairType(vIt1.GetIndex(), vIt2.GetIndex())] = value;
-              }
-            if (m_UseInverted)
-              {
-              m_EdgesPerThread[threadId][EdgePairType(vIt2.GetIndex(), vIt1.GetIndex())] = invert[value];
-              }
-            }
-          }
-        progress.CompletedPixel();
-        progress.CompletedPixel();
-        }
-      }
-    ++count;
-    }
-  otbMsgDebugMacro(<< "End thread " << threadId);
-}
-
-template <class TPolygonList, class TOutputGraph>
-void
-PolygonListToRCC8GraphFilter<TPolygonList, TOutputGraph>
-::AfterThreadedGenerateData()
-{
-  // in order to have the same output graph whatever the number of
-  // thread is, we use a map to sort the edges in lexicographical
-  // order
-
-  OutputGraphPointerType graph = this->GetOutput();
-  EdgeMapType            globalEdgeMap;
-
-  // merge all edges
-  for (typename EdgeMapVectorType::iterator vIt = m_EdgesPerThread.begin();
-       vIt != m_EdgesPerThread.end(); ++vIt)
-    {
-    for (typename EdgeMapType::iterator mIt = (*vIt).begin();
-         mIt != (*vIt).end(); ++mIt)
-      {
-      globalEdgeMap[mIt->first] = mIt->second;
-      }
-    }
-
-  // Report edges to the graph
-  for (typename EdgeMapType::iterator mIt = globalEdgeMap.begin();
-       mIt != globalEdgeMap.end(); ++mIt)
-    {
-    graph->AddEdge(mIt->first.first, mIt->first.second, mIt->second);
-    }
-}
-
-// Callback routine used by the threading library. This routine just calls
-// the ThreadedGenerateData method after setting the correct region for this
-// thread.
-
-template <class TPolygonList, class TOutputGraph>
-ITK_THREAD_RETURN_TYPE
-PolygonListToRCC8GraphFilter<TPolygonList, TOutputGraph>
-::ThreaderCallback(void *arg)
-{
-  ThreadStruct *str;
-  int           threadId, threadCount;
-  unsigned int  total, start, stop;
-
-  threadId = ((itk::MultiThreader::ThreadInfoStruct *) (arg))->ThreadID;
-  threadCount = ((itk::MultiThreader::ThreadInfoStruct *) (arg))->NumberOfThreads;
-  str = (ThreadStruct *) (((itk::MultiThreader::ThreadInfoStruct *) (arg))->UserData);
-
-  total = str->Filter->GetOutput()->GetNumberOfVertices();
-
-  if (threadId < static_cast<int>(total))
-    {
-
-    // Split the adjacency matrix in strip of equal dimension
-    start =
-      static_cast<unsigned int>(std::floor(total *
-                                          std::sqrt(static_cast<double>(threadId) /
-                                                   static_cast<double>(threadCount)) + 0.5));
-    stop =
-      static_cast<unsigned int>(std::floor(total *
-                                          std::sqrt(static_cast<double>(threadId +
-                                                                       1) / static_cast<double>(threadCount)) + 0.5));
-    if (stop > total) stop = total;
-
-    // For very small graphs it might occur that start = stop. In this
-    // case the vertex at that index will be processed in the next strip.
-    if (start != stop)
-      {
-      str->Filter->ThreadedGenerateData(start, stop, threadId);
-      }
-    }
-  // else
-  //   {
-  //   otherwise don't use this thread. Sometimes the threads don't
-  //   break up very well and it is just as efficient to leave a
-  //   few threads idle.
-  //   }
-
-  return ITK_THREAD_RETURN_VALUE;
-}
-
-template <class TPolygonList, class TOutputGraph>
-void
-PolygonListToRCC8GraphFilter<TPolygonList, TOutputGraph>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-}
-} // end namespace otb
-#endif
diff --git a/Modules/OBIA/RCC8/include/otbPolygonToPolygonRCC8Calculator.h b/Modules/OBIA/RCC8/include/otbPolygonToPolygonRCC8Calculator.h
deleted file mode 100644
index b19cf4a7a31d6d30959b4fe39d193535021376f8..0000000000000000000000000000000000000000
--- a/Modules/OBIA/RCC8/include/otbPolygonToPolygonRCC8Calculator.h
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbPolygonToPolygonRCC8Calculator_h
-#define otbPolygonToPolygonRCC8Calculator_h
-
-#include "itkObject.h"
-#include "otbRCC8Value.h"
-#include "otbImage.h"
-
-namespace otb
-{
-/**
- * \class PolygonToPolygonRCC8Calculator
- * \brief This class compute the RCC8 relation between the regions from two segmentation images.
- *
- * The RCC8 system comes from qualitative spatial reasoning.
- * It is a set of pairwise disjoint exhaustive relation between two closed region of space.
- * There are 8 possible relations :
- * DC: Disconnected
- * EC: Externaly connected
- * PO: Partial overlap
- * TPP: Tangential proper part
- * NTPP: Non tangential proper part
- * TPPI: Tangential proper part inverse
- * NTPPI: Non tangential proper part inverse
- * EQ: Equivalence
- *
- * The goal of this class is to determine which of these 8 relations link the two inputs regions represented
- * by the closed input path. Since this class will further be used iteratively on a possibly large set
- * of regiosn, it is optimised : the decision is managed by a decision tree.
- *
- * \ingroup OTBRCC8
- */
-template <class TInputPolygon>
-class ITK_EXPORT PolygonToPolygonRCC8Calculator : public itk::Object
-{
-public:
-  /** Standard class typedefs. */
-  typedef PolygonToPolygonRCC8Calculator Self;
-  typedef itk::Object                    Superclass;
-  typedef itk::SmartPointer<Self>        Pointer;
-  typedef itk::SmartPointer<const Self>  ConstPointer;
-  /** Method for creation through the object factory. */
-  itkNewMacro(Self);
-  /** Run-time type information (and related methods). */
-  itkTypeMacro(PolygonToPolygonRCC8Calculator, Object);
-  /** Types definitions for the input image. */
-  typedef TInputPolygon                                     PolygonType;
-  typedef typename PolygonType::Pointer                     PolygonPointerType;
-  typedef typename PolygonType::ConstPointer                PolygonConstPointerType;
-  typedef typename PolygonType::VertexListType              VertexListType;
-  typedef typename PolygonType::ContinuousIndexType         ContinuousIndexType;
-  typedef typename PolygonType::RegionType::ImageRegionType RegionType;
-  typedef typename VertexListType::ConstIterator            VertexListConstIteratorType;
-  typedef std::vector<bool>                                 BoolVectorType;
-
-  /** RCC8 values type */
-  typedef RCC8Value RCC8ValueType;
-
-  /**
-   * Get the RCC8 relation.
-   * \return The RCC8 relation value.
-   */
-  RCC8ValueType GetValue(void);
-
-  /** Set external knowledge to help the decision process */
-  itkSetMacro(Level1APrioriKnowledge, bool);
-  itkSetMacro(Level3APrioriKnowledge, bool);
-  itkGetMacro(Level1APrioriKnowledge, bool);
-  itkGetMacro(Level3APrioriKnowledge, bool);
-
-  itkSetObjectMacro(Polygon1, PolygonType);
-  itkSetObjectMacro(Polygon2, PolygonType);
-  itkGetObjectMacro(Polygon1, PolygonType);
-  itkGetObjectMacro(Polygon2, PolygonType);
-
-  /** Main computation method */
-  void Compute(void);
-
-  virtual bool ComputeRelation(bool edgeEdgeBool, bool interExterBool, bool exterInterBool);
-
-  virtual bool ComputeInterExter(PolygonPointerType path1, PolygonPointerType path2);
-
-  virtual bool ComputeEdgeEdge(PolygonPointerType path1, PolygonPointerType path2);
-
-  virtual bool ComputeInterInter(PolygonPointerType path1, PolygonPointerType path2);
-
-  virtual bool RegionsIntersectionIsNull(const RegionType& region1, const RegionType& region2);
-
-protected:
-  /** Constructor */
-  PolygonToPolygonRCC8Calculator();
-  /** Destructor */
-  ~PolygonToPolygonRCC8Calculator() override {}
-  /** PrintSelf method */
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-
-private:
-  /** The RCC8 relation value */
-  RCC8ValueType m_Value;
-  /**  Decision tree Level 1 A priori knowledge */
-  bool m_Level1APrioriKnowledge;
-  /**  Decision tree Level 3 A priori knowledge */
-  bool m_Level3APrioriKnowledge;
-  /** Polygon of region 1 */
-  PolygonPointerType m_Polygon1;
-  /** Polygon of region 2 */
-  PolygonPointerType m_Polygon2;
-  /** Epsilon */
-  double m_Epsilon;
-
-};
-} // end namespace otb
-
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbPolygonToPolygonRCC8Calculator.hxx"
-#endif
-
-#endif
diff --git a/Modules/OBIA/RCC8/include/otbPolygonToPolygonRCC8Calculator.hxx b/Modules/OBIA/RCC8/include/otbPolygonToPolygonRCC8Calculator.hxx
deleted file mode 100644
index bcb836fa4c5baf6e07c9a9bb782b6d90042455d9..0000000000000000000000000000000000000000
--- a/Modules/OBIA/RCC8/include/otbPolygonToPolygonRCC8Calculator.hxx
+++ /dev/null
@@ -1,348 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbPolygonToPolygonRCC8Calculator_hxx
-#define otbPolygonToPolygonRCC8Calculator_hxx
-
-#include "otbPolygonToPolygonRCC8Calculator.h"
-#include "otbMacro.h"
-
-namespace otb
-{
-/**
- * Constructor
- */
-template<class TInputPolygon>
-PolygonToPolygonRCC8Calculator<TInputPolygon>
-::PolygonToPolygonRCC8Calculator()
-{
-  m_Value        = OTB_RCC8_DC;
-  m_Level1APrioriKnowledge = false;
-  m_Level3APrioriKnowledge = false;
-}
-/**
- * Get the RCC8 relation.
- * \return The RCC8 relation value.
- */
-template <class TInputPolygon>
-typename PolygonToPolygonRCC8Calculator<TInputPolygon>
-::RCC8ValueType
-PolygonToPolygonRCC8Calculator<TInputPolygon>
-::GetValue(void)
-{
-  return m_Value;
-}
-
-template<class TInputPolygon>
-void
-PolygonToPolygonRCC8Calculator<TInputPolygon>
-::Compute(void)
-{
-  // First check if bounding regions are disjoints
-  RegionType region1 = m_Polygon1->GetBoundingRegion().GetImageRegion();
-  RegionType region2 = m_Polygon2->GetBoundingRegion().GetImageRegion();
-
-  // If intersection is not null, we have to do the computation
-  if (!RegionsIntersectionIsNull(region1, region2))
-    {
-
-    bool edgeEdgeBool, interExterBool, exterInterBool, interInterBool;
-    /// The boolean edgeEdge is needed in each case, so it si computed
-    /// now
-    edgeEdgeBool = ComputeEdgeEdge(m_Polygon1, m_Polygon2);
-
-    //std::cout<<"EdgeEdge: "<<edgeEdgeBool<<std::endl;
-
-    if (this->GetLevel1APrioriKnowledge())
-      {
-      interExterBool = true;
-      }
-    else
-      {
-      /// Else it must be computed
-      interExterBool = ComputeInterExter(m_Polygon1, m_Polygon2);
-      }
-
-    //std::cout<<"InterExter: "<<interExterBool<<std::endl;
-
-    /// At this stage we can determine if the relation is of type NTPP
-    if ((!interExterBool) && (!edgeEdgeBool))
-      {
-      m_Value = OTB_RCC8_NTPP;
-      }
-    else
-      {
-      /// If not, we must consider the intersection between exterior
-      if (this->GetLevel3APrioriKnowledge())
-        {
-        /// If the Level3APRioriKnowledge flag is set, this boolean
-        /// can be determined from the two others
-        exterInterBool = true;
-        }
-      else
-        {
-        /// Else it must be computed
-        exterInterBool = ComputeInterExter(m_Polygon2, m_Polygon1);
-        }
-
-      //std::cout<<"ExterInter: "<<exterInterBool<<std::endl;
-
-      /// If it is not sufficient to compute the relation
-      if (!ComputeRelation(edgeEdgeBool, interExterBool, exterInterBool))
-        {
-        /// Compute the last boolean
-        interInterBool = ComputeInterInter(m_Polygon1, m_Polygon2);
-
-        //std::cout<<"InterInter: "<<interInterBool<<std::endl;
-
-        /// Which allow the full determination
-        if ((interExterBool) && (edgeEdgeBool) && (exterInterBool) && (!interInterBool))
-          {
-          m_Value = OTB_RCC8_EC;
-          }
-        else
-          {
-          m_Value = OTB_RCC8_PO;
-          }
-        }
-      }
-    }
-}
-
-template<class TInputPolygon>
-bool
-PolygonToPolygonRCC8Calculator<TInputPolygon>
-::RegionsIntersectionIsNull(const RegionType& region1, const RegionType& region2)
-{
-  for (unsigned int dim = 0; dim < RegionType::ImageDimension; ++dim)
-    {
-    if (region1.GetIndex()[dim] + static_cast<int>(region1.GetSize()[dim]) < region2.GetIndex()[dim])
-      {
-      return true;
-      }
-    else if (region2.GetIndex()[dim] + static_cast<int>(region2.GetSize()[dim]) < region1.GetIndex()[dim])
-      {
-      return true;
-      }
-    }
-  return false;
-}
-
-template<class TInputPolygon>
-bool
-PolygonToPolygonRCC8Calculator<TInputPolygon>
-::ComputeRelation(bool edgeEdgeBool, bool interExterBool, bool exterInterBool)
-{
-  // This decision process is based on a decision tree
-  if ((!interExterBool) && (edgeEdgeBool) && (!exterInterBool))
-    {
-    m_Value = OTB_RCC8_EQ;
-    return true;
-    }
-  else if ((!interExterBool) && (edgeEdgeBool) && (exterInterBool))
-    {
-    m_Value = OTB_RCC8_TPP;
-    return true;
-    }
-  else if ((interExterBool) && (!edgeEdgeBool) && (!exterInterBool))
-    {
-    m_Value = OTB_RCC8_NTPPI;
-    return true;
-    }
-  else if ((interExterBool) && (!edgeEdgeBool) && (exterInterBool))
-    {
-    m_Value = OTB_RCC8_DC;
-    return true;
-    }
-  else if ((interExterBool) && (edgeEdgeBool) && (!exterInterBool))
-    {
-    m_Value = OTB_RCC8_TPPI;
-    return true;
-    }
-  else
-    {
-    return false;
-    }
-}
-
-template<class TInputPolygon>
-bool
-PolygonToPolygonRCC8Calculator<TInputPolygon>
-::ComputeInterExter(PolygonPointerType polygon1, PolygonPointerType polygon2)
-{
-  bool                        resp = false;
-  VertexListConstIteratorType it = polygon1->GetVertexList()->Begin();
-  VertexListConstIteratorType it_end = polygon1->GetVertexList()->End();
-
-  ContinuousIndexType current = it.Value();
-  ContinuousIndexType first = current;
-  bool                isInside = polygon2->IsInside(current);
-  bool                firstIsInside = isInside;
-  bool                isExterior = !isInside && !polygon2->IsOnEdge(current);
-
-  //std::cout<<current<<" is inside: "<<isInside<<std::endl;
-  //std::cout<<current<<" is on edge: "<<polygon2->IsOnEdge(current)<<std::endl;
-
-  unsigned int index = 0;
-  if (isExterior)
-    {
-    resp = true;
-    }
-  ++it;
-  while (!resp && it != it_end)
-    {
-    bool nextIsInside = polygon2->IsInside(it.Value());
-
-    if (isInside && nextIsInside)
-      {
-      //std::cout<<current<<" is inside and "<<it.Value()<<" is inside, nb crossings: "<<polygon2->NbCrossing(current, it.Value())<<std::endl;
-      resp = polygon2->NbCrossing(current, it.Value()) > 0;
-      }
-    current = it.Value();
-    isInside  = nextIsInside;
-    isExterior = !isInside && !polygon2->IsOnEdge(current);
-    //std::cout<<current<<" is inside: "<<isInside<<std::endl;
-    //std::cout<<current<<" is on edge: "<<polygon2->IsOnEdge(current)<<std::endl;
-    if (isExterior)
-      {
-      resp = true;
-      }
-
-    ++index;
-    ++it;
-    }
-
-  if (!resp && isInside && firstIsInside)
-    {
-    resp = polygon2->NbCrossing(current, first) > 0;
-    //std::cout<<current<<" is inside and "<<first<<" is inside, nb crossings: "<<polygon2->NbCrossing(current, first)<<std::endl;
-    }
-
-  return resp;
-}
-
-template<class TInputPolygon>
-bool
-PolygonToPolygonRCC8Calculator<TInputPolygon>
-::ComputeInterInter(PolygonPointerType polygon1, PolygonPointerType polygon2)
-{
-  bool                        resp = false;
-  VertexListConstIteratorType it = polygon1->GetVertexList()->Begin();
-  VertexListConstIteratorType it_end = polygon1->GetVertexList()->End();
-  ContinuousIndexType         current = it.Value();
-  ContinuousIndexType         first = current;
-  bool                        currentIsInside = polygon2->IsInside(current);
-  bool                        firstIsInside = currentIsInside;
-
-  if (currentIsInside)
-    {
-    resp = true;
-    }
-  ++it;
-  while (!resp && it != it_end)
-    {
-    bool nextIsInside = polygon2->IsInside(it.Value());
-
-    if (!currentIsInside && !nextIsInside && !polygon2->IsOnEdge(current) && !polygon2->IsOnEdge(it.Value()))
-      {
-      unsigned int nbCrossings = polygon2->NbCrossing(current, it.Value());
-
-      resp = nbCrossings > 0;
-      }
-    currentIsInside = nextIsInside;
-    current = it.Value();
-
-    if (currentIsInside)
-      {
-      resp = true;
-      }
-    ++it;
-    }
-
-  if (!resp && !currentIsInside && !firstIsInside && !polygon2->IsOnEdge(current) && !polygon2->IsOnEdge(first))
-    {
-    unsigned int nbCrossings = polygon2->NbCrossing(current, first);
-
-    resp = nbCrossings > 0;
-    }
-  return resp;
-}
-template<class TInputPolygon>
-bool
-PolygonToPolygonRCC8Calculator<TInputPolygon>
-::ComputeEdgeEdge(PolygonPointerType polygon1, PolygonPointerType polygon2)
-{
-  bool                        resp = false;
-  VertexListConstIteratorType it = polygon1->GetVertexList()->Begin();
-  VertexListConstIteratorType it_end = polygon1->GetVertexList()->End();
-
-  ContinuousIndexType current = it.Value();
-  resp = polygon2->IsOnEdge(current);
-  //std::cout<<"IsOnEdge: "<<current<<": "<<polygon2->IsOnEdge(current)<<std::endl;
-  ContinuousIndexType first = current;
-  ++it;
-
-  while (!resp && it != it_end)
-    {
-    if (polygon2->NbTouching(current, it.Value()) > 0)
-      {
-      resp = true;
-      //std::cout<<"NbCrossing: "<<current<<" -> "<<it.Value()<<": "<<polygon2->NbCrossing(current, it.Value())<<std::endl;
-      }
-    if (polygon2->NbCrossing(current, it.Value()) > 0)
-      {
-      resp = true;
-      //std::cout<<"NbTouching: "<<current<<" -> "<<it.Value()<<": "<<polygon2->NbTouching(current, it.Value())<<std::endl;
-      }
-    current = it.Value();
-
-    if (polygon2->IsOnEdge(current))
-      {
-      resp = true;
-      //std::cout<<"IsOnEdge: "<<current<<": "<<polygon2->IsOnEdge(current)<<std::endl;
-      }
-    ++it;
-    }
-  if (!resp && polygon2->NbTouching(current, first) > 0)
-    {
-    resp = true;
-    //std::cout<<"NbCrossing: "<<current<<" -> "<<first<<": "<<polygon2->NbCrossing(current, first)<<std::endl;
-    }
-  if (polygon2->NbCrossing(current, first) > 0)
-    {
-    resp = true;
-    //std::cout<<"NbTouching: "<<current<<" -> "<<first<<": "<<polygon2->NbTouching(current, first)<<std::endl;
-    }
-
-  return resp;
-}
-/**
- * PrintSelf method
- */
-template<class TInputPolygon>
-void
-PolygonToPolygonRCC8Calculator<TInputPolygon>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-}
-} // end namespace otb
-
-#endif
diff --git a/Modules/OBIA/RCC8/include/otbRCC8Edge.h b/Modules/OBIA/RCC8/include/otbRCC8Edge.h
deleted file mode 100644
index e85d8d3c755e5bfb363551519bde0aafaab2ffbd..0000000000000000000000000000000000000000
--- a/Modules/OBIA/RCC8/include/otbRCC8Edge.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbRCC8Edge_h
-#define otbRCC8Edge_h
-
-#include "itkDataObject.h"
-#include "itkObjectFactory.h"
-#include "otbRCC8Value.h"
-
-namespace otb
-{
-/** \class RCC8Edge
- *  \brief Base class to represent an edge in a RCC8 Graph.
- *
- * \sa RCC8Graph, RCC8VertexBase
- *
- * \ingroup OTBRCC8
- */
-class ITK_EXPORT RCC8Edge : public itk::DataObject
-{
-public:
-  /** Standard class typedefs */
-  typedef RCC8Edge                      Self;
-  typedef itk::DataObject               Superclass;
-  typedef itk::SmartPointer<Self>       Pointer;
-  typedef itk::SmartPointer<const Self> ConstPointer;
-  /** Method for creation through the object factory. */
-  itkNewMacro(Self);
-  /** Run-time type information (and related methods). */
-  itkTypeMacro(RCC8Edge, DataObject);
-  /** RCC8 values typedef */
-  typedef RCC8Value RCC8ValueType;
-  /** RCC8 relation value accessors */
-  itkGetMacro(Value, RCC8ValueType);
-  itkSetMacro(Value, RCC8ValueType);
-
-protected:
-  /** Constructor */
-  RCC8Edge();
-  /** Desctructor */
-  ~RCC8Edge() override {}
-  /** PrintSelf method */
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-
-private:
-  /** The RCC8 value */
-  RCC8ValueType m_Value;
-};
-} // end namespace otb
-#endif
diff --git a/Modules/OBIA/RCC8/include/otbRCC8EdgeIterator.h b/Modules/OBIA/RCC8/include/otbRCC8EdgeIterator.h
deleted file mode 100644
index c7096be92632966c1df05f1c522c0c68f6baa411..0000000000000000000000000000000000000000
--- a/Modules/OBIA/RCC8/include/otbRCC8EdgeIterator.h
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbRCC8EdgeIterator_h
-#define otbRCC8EdgeIterator_h
-
-#include "otbRCC8Graph.h"
-
-namespace otb
-{
-/**
- * \class RCC8EdgeIterator
- * \brief Iterates on the graph edges.
- *
- * \ingroup OTBRCC8
- */
-template <class TGraph>
-class ITK_EXPORT RCC8EdgeIterator
-{
-public:
-  /** self typedef */
-  typedef RCC8EdgeIterator Self;
-
-  /** Graph typedef */
-  typedef TGraph                                   GraphType;
-  typedef typename GraphType::InternalGraphType    InternalGraphType;
-  typedef typename GraphType::Pointer              GraphPointerType;
-  typedef typename GraphType::EdgePointerType      EdgePointerType;
-  typedef typename GraphType::VertexPointerType    VertexPointerType;
-  typedef typename GraphType::VertexDescriptorType VertexDescriptorType;
-  typedef typename GraphType::RCC8ValueType        RCC8ValueType;
-  /** typedef of the internal iterator */
-  typedef typename boost::graph_traits<InternalGraphType>::edge_iterator InternalIteratorType;
-  /** Typedef of the index map */
-  typedef typename boost::property_map<InternalGraphType, boost::vertex_index_t>::type IndexMapType;
-
-  /** Constructor */
-  RCC8EdgeIterator();
-  /** Copy constructor */
-  RCC8EdgeIterator(const Self &iter);
-  /**  Constructor with input graph */
-  RCC8EdgeIterator(TGraph * graph);
-  /**
-   * Get the current edge value.
-   * \return The value of the current edge pointed by the iterator.
-   */
-  RCC8ValueType GetValue(void);
-  /**
-    * Return the source vertex of the current edge.
-    * \return The source edge.
-    */
-  VertexPointerType GetSourceVertex(void);
-  /**
-   * Return the target vertex of the current edge.
-   * \return The target vertex.
-   */
-  VertexPointerType GetTargetVertex(void);
-  /**
-   * Return the source vertex index of the current edge.
-   * \return The source vertex index.
-   */
-  VertexDescriptorType GetSourceIndex(void);
-  /**
-   * Return the target vertex index of the current edge.
-   * \return The target vertex index.
-   */
-  VertexDescriptorType GetTargetIndex(void);
-
-  /**
-   * Return true if the iterator is at the end.
-   * \return True if the iterator is at the end.
-   */
-  bool IsAtEnd(void);
-  /**
-   * Go to the beginning.
-   */
-  void GoToBegin(void);
-  /**
-   * Increment.
-   */
-  Self& operator ++();
-  /**
-   * Decrement.
-   */
-  Self& operator --();
-  /**
-   * Add
-   */
-  Self& operator +(int i);
-
-  /**
-   * Remove
-   */
-  Self& operator -(int i);
-  /**
-   * Difference comparison operator.
-   */
-  bool operator !=(const Self& it);
-  /**
-   * Equality comparison operator.
-   */
-  bool operator ==(const Self& it);
-  /**
-   * Instantiation operator.
-   */
-  Self& operator =(const Self& it);
-private:
-  // End
-  InternalIteratorType m_End;
-  // Internal iterator.
-  InternalIteratorType m_Iter;
-  // Input graph pointer
-  GraphPointerType m_Graph;
-};
-} // End namespace otb
-
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbRCC8EdgeIterator.hxx"
-#endif
-
-#endif
diff --git a/Modules/OBIA/RCC8/include/otbRCC8EdgeIterator.hxx b/Modules/OBIA/RCC8/include/otbRCC8EdgeIterator.hxx
deleted file mode 100644
index 43989016883e56e95e053e6e547d5b78e0e6ce99..0000000000000000000000000000000000000000
--- a/Modules/OBIA/RCC8/include/otbRCC8EdgeIterator.hxx
+++ /dev/null
@@ -1,221 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbRCC8EdgeIterator_hxx
-#define otbRCC8EdgeIterator_hxx
-
-#include "otbRCC8EdgeIterator.h"
-
-namespace otb
-{
-/** Constructor */
-template <class TGraph>
-RCC8EdgeIterator<TGraph>
-::RCC8EdgeIterator()
-{
-  m_Graph = GraphType::New();
-  boost::tuples::tie(m_Iter, m_End) = edges(*m_Graph->GetGraph());
-}
-/**
- * Copy operator.
- */
-template <class TGraph>
-RCC8EdgeIterator<TGraph>
-::RCC8EdgeIterator(const Self& iter)
-{
-  m_Iter = iter.m_Iter;
-  m_Graph = iter.m_Graph;
-  m_End = iter.m_End;
-}
-/**
- *Constructor with input graph
- */
-template <class TGraph>
-RCC8EdgeIterator<TGraph>
-::RCC8EdgeIterator(TGraph * graph)
-{
-  m_Graph = graph;
-  boost::tuples::tie(m_Iter, m_End) = edges(*m_Graph->GetGraph());
-}
-/**
- * Get the current edge value.
- * \return The value of the current edge pointed by the iterator.
- */
-template <class TGraph>
-typename RCC8EdgeIterator<TGraph>
-::RCC8ValueType
-RCC8EdgeIterator<TGraph>
-::GetValue(void)
-{
-  return (*m_Graph->GetGraph())[*m_Iter]->GetValue();
-}
-/**
- * Return the source vertex of the current edge.
- * \return The source edge.
- */
-template <class TGraph>
-typename RCC8EdgeIterator<TGraph>
-::VertexPointerType
-RCC8EdgeIterator<TGraph>
-::GetSourceVertex(void)
-{
-  return (*m_Graph->GetGraph())[source(*m_Iter, (*m_Graph->GetGraph()))];
-}
-/**
- * Return the target vertex of the current edge.
- * \return The target vertex.
- */
-template <class TGraph>
-typename RCC8EdgeIterator<TGraph>
-::VertexPointerType
-RCC8EdgeIterator<TGraph>
-::GetTargetVertex(void)
-{
-  return (*m_Graph->GetGraph())[target(*m_Iter, (*m_Graph->GetGraph()))];
-}
-/**
- * Return the source vertex index of the current edge.
- * \return The source vertex index.
- */
-template <class TGraph>
-typename RCC8EdgeIterator<TGraph>
-::VertexDescriptorType
-RCC8EdgeIterator<TGraph>
-::GetSourceIndex(void)
-{
-  IndexMapType index = get(boost::vertex_index, (*m_Graph->GetGraph()));
-  return index[source(*m_Iter, (*m_Graph->GetGraph()))];
-}
-/**
- * Return the target vertex index of the current edge.
- * \return The target vertex index.
- */
-template <class TGraph>
-typename RCC8EdgeIterator<TGraph>
-::VertexDescriptorType
-RCC8EdgeIterator<TGraph>
-::GetTargetIndex(void)
-{
-  IndexMapType index = get(boost::vertex_index, (*m_Graph->GetGraph()));
-  return index[target(*m_Iter, (*m_Graph->GetGraph()))];
-}
-/**
- * Return true if the iterator is at the end.
- * \return True if the iterator is at the end.
- */
-template <class TGraph>
-bool
-RCC8EdgeIterator<TGraph>
-::IsAtEnd(void)
-{
-  return (m_Iter == m_End);
-}
-/**
- * Go to the beginning.
- */
-template <class TGraph>
-void
-RCC8EdgeIterator<TGraph>
-::GoToBegin(void)
-{
-  boost::tuples::tie(m_Iter, m_End) = edges(*m_Graph->GetGraph());
-}
-/**
- * Increment.
- */
-template <class TGraph>
-typename RCC8EdgeIterator<TGraph>
-::Self&
-RCC8EdgeIterator<TGraph>
-::operator++ ()
-  {
-  ++m_Iter;
-  return *this;
-  }
-/**
- * Decrement.
- */
-template <class TGraph>
-typename RCC8EdgeIterator<TGraph>
-::Self&
-RCC8EdgeIterator<TGraph>
-::operator-- ()
-  {
-  --m_Iter;
-  return *this;
-  }
-/**
- * Add
- */
-template <class TGraph>
-typename RCC8EdgeIterator<TGraph>
-::Self&
-RCC8EdgeIterator<TGraph>
-::operator + (int i)
-  {
-  m_Iter = m_Iter + i;
-  return *this;
-  }
-/**
- * Remove
- */
-template <class TGraph>
-typename RCC8EdgeIterator<TGraph>
-::Self&
-RCC8EdgeIterator<TGraph>
-::operator - (int i)
-  {
-  m_Iter = m_Iter - i;
-  return *this;
-  }
-/**
- * Difference comparison operator.
- */
-template <class TGraph>
-bool
-RCC8EdgeIterator<TGraph>
-::operator != (const Self &iter)
-  {
-  return (m_Iter != iter.m_Iter);
-  }
-/**
- * Equality comparison operator.
- */
-template <class TGraph>
-bool
-RCC8EdgeIterator<TGraph>
-::operator == (const Self &iter)
-  {
-  return (m_Iter == iter.m_Iter);
-  }
-/**
- * Instantiation operator.
- */
-template <class TGraph>
-typename RCC8EdgeIterator<TGraph>
-::Self&
-RCC8EdgeIterator<TGraph>
-::operator = (const Self &iter)
-  {
-  m_Iter = iter.m_Iter;
-  return *this;
-  }
-} // End namespace otb
-#endif
diff --git a/Modules/OBIA/RCC8/include/otbRCC8Graph.h b/Modules/OBIA/RCC8/include/otbRCC8Graph.h
deleted file mode 100644
index 9caa3ef59626a55d833fda5aaebebd1b09a28f6e..0000000000000000000000000000000000000000
--- a/Modules/OBIA/RCC8/include/otbRCC8Graph.h
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbRCC8Graph_h
-#define otbRCC8Graph_h
-
-#include "otbRCC8Edge.h"
-
-//fix compilation in VS7.1 for boost 1.42
-//similar to the fix in Monteverdi
-#ifndef BOOST_NO_0X_HDR_INITIALIZER_LIST
-#define BOOST_NO_0X_HDR_INITIALIZER_LIST
-#endif
-
-#include "otb_boost_graph_header.h"
-
-#include "otbImage.h"
-#include "otbImageList.h"
-
-namespace otb
-{
-/**
- * \class RCC8Graph
- * \brief This class is a data structure designed to store RCC8 Graph
- * computed from a pyramidal segmentation.
- *
- * A batch of boost operation has been embedded in order to provide
- * basic functionality such as adding a new edge, or retrieving the
- * number of vertices. A method is also provided to retrieve the boost
- * graph object, in case more advanced processing is required. One
- * should remember that if a peculiar operation is needed for some
- * applications, one should provide a patch for this class including
- * the new functionnalities, for consistency reason.
- *
- * \ingroup OTBRCC8
- */
-template <class TVertex>
-class ITK_EXPORT RCC8Graph  :
-  public itk::DataObject
-{
-public:
-  /** Standard class typedefs. */
-  typedef RCC8Graph                     Self;
-  typedef itk::DataObject               Superclass;
-  typedef itk::SmartPointer<Self>       Pointer;
-  typedef itk::SmartPointer<const Self> ConstPointer;
-  /** Method for creation through the object factory. */
-  itkNewMacro(Self);
-  /** Run-time type information (and related methods). */
-  itkTypeMacro(RCC8Graph, itk::DataObject);
-  /** Vertex typedef */
-  typedef TVertex                      VertexType;
-  typedef typename VertexType::Pointer VertexPointerType;
-  /** Edge typedef */
-  typedef RCC8Edge                         EdgeType;
-  typedef typename EdgeType::Pointer       EdgePointerType;
-  typedef typename EdgeType::RCC8ValueType RCC8ValueType;
-  /** Typedef for the boost graph representation */
-  typedef boost::adjacency_list
-  <boost::vecS, boost::vecS, boost::bidirectionalS,
-      VertexPointerType, EdgePointerType> InternalGraphType;
-  /** Edges and vertices descriptors typedefs (boost objects)*/
-  typedef typename InternalGraphType::vertex_descriptor VertexDescriptorType;
-  typedef typename InternalGraphType::edge_descriptor   EdgeDescriptorType;
-
-  /** Getters and Setters for the number of vertices */
-  itkSetMacro(NumberOfVertices, unsigned int);
-  itkGetConstReferenceMacro(NumberOfVertices, unsigned int);
-
-  /**
-   *  Return the internal boost graph object.
-   *  \return The internal boost graph object
-   */
-  InternalGraphType * GetGraph(void)
-  {
-    return &m_Graph;
-  }
-  /**
-   * Since the number of vertices is mandatory to instantiate the
-   * internal boost representation, the build method has to be called
-   * once this parameter is set.
-   */
-  void Build(void);
-  /**
-   * Set a vertex.
-   * \param index The index of the vertex in the graph.
-   * \param vertex The vertex to set.
-   */
-  void SetVertex(unsigned int index, VertexPointerType vertex);
-  /**
-   * Get a vertex.
-   * \param index The index of the vertex in the graph
-   * \return The vertex.
-   */
-  VertexPointerType GetVertex(unsigned int index);
-  /**
-   * Add an edge in the graph.
-   * \param index1 The index of the source vertex.
-   * \param index2 The index of the target vertex.
-   * \param r The RCC8 value.
-   */
-  void AddEdge(unsigned int index1, unsigned int index2, RCC8ValueType r);
-  /**
-   * Get number of edges
-   * /return The number of edges.
-   */
-  unsigned int GetNumberOfEdges(void);
-
-protected:
-  /** Constructor */
-  RCC8Graph();
-  /** Destructor */
-  ~RCC8Graph() override {}
-  /** PrintSelf method */
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-  /**
-   * Initialize a range of vertex.
-   * \param num The index of the last vertices to initialize.
-   */
-  void InitializeGraph(unsigned int num);
-
-private:
-
-  /** Defines the number of vertices (ie total number of segmentation regions)*/
-  unsigned int m_NumberOfVertices;
-  /** Internal representation using the boost graph library */
-  InternalGraphType m_Graph;
-};
-} // end namespace otb
-
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbRCC8Graph.hxx"
-#endif
-
-#endif
diff --git a/Modules/OBIA/RCC8/include/otbRCC8Graph.hxx b/Modules/OBIA/RCC8/include/otbRCC8Graph.hxx
deleted file mode 100644
index f429442c2dd820447bc547283af733bf68f448b4..0000000000000000000000000000000000000000
--- a/Modules/OBIA/RCC8/include/otbRCC8Graph.hxx
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbRCC8Graph_hxx
-#define otbRCC8Graph_hxx
-
-#include "otbRCC8Graph.h"
-
-namespace otb
-{
-/**
- * Constructor
- */
-template <class TVertex>
-RCC8Graph<TVertex>
-::RCC8Graph()
-{
-  m_NumberOfVertices = 0;
-}
-/**
- * since the number of vertices is mandatory to instantiate the
- * internal boost representation, the build method has to be called
- * once this parameter is set.
- */
-template <class TVertex>
-void
-RCC8Graph<TVertex>
-::Build(void)
-{
-  this->InitializeGraph(m_NumberOfVertices - 1);
-}
-/**
- * Initialize a range of vertex.
- * \param num The index of the last vertices to initialize.
- */
-template <class TVertex>
-void
-RCC8Graph<TVertex>
-::InitializeGraph(unsigned int num)
-{
-  for (unsigned int i = boost::num_vertices(m_Graph); i <= num; ++i)
-    {
-    VertexDescriptorType id = boost::add_vertex(m_Graph);
-    VertexPointerType    vertex = VertexType::New();
-    m_Graph[id] = vertex;
-    }
-}
-/**
- * Set a vertex.
- * \param index The index of the vertex in the graph.
- * \param vertex The vertex to set.
- */
-template<class TVertex>
-void
-RCC8Graph<TVertex>
-::SetVertex(unsigned int index, VertexPointerType vertex)
-{
-  if (index >= m_NumberOfVertices)
-    {
-    this->InitializeGraph(index);
-    m_NumberOfVertices = index + 1;
-    }
-  VertexDescriptorType v = *boost::vertices(m_Graph).first;
-  m_Graph[v + index] = vertex;
-}
-/**
- * Get a vertex.
- * \param index The index of the vertex in the graph
- * \return The vertex.
- */
-template <class TVertex>
-typename RCC8Graph<TVertex>
-::VertexPointerType
-RCC8Graph<TVertex>
-::GetVertex(unsigned int index)
-{
-  VertexDescriptorType v = *boost::vertices(m_Graph).first;
-  return m_Graph[v + index];
-}
-/**
- * Add an edge in the graph.
- * \param index1 The index of the source vertex.
- * \param index2 The index of the target vertex.
- * \param r The rcc8 value associated to the edge.
- */
-template <class TVertex>
-void
-RCC8Graph<TVertex>
-::AddEdge(unsigned int index1, unsigned int index2, RCC8ValueType r)
-{
-  EdgeDescriptorType e = boost::add_edge(index1, index2, m_Graph).first;
-  EdgeType::Pointer  edge = EdgeType::New();
-  edge->SetValue(r);
-  m_Graph[e] = edge;
-}
-/**
-  * Get number of edges
-  * /return The number of edges.
-  */
-template <class TVertex>
-unsigned int
-RCC8Graph<TVertex>
-::GetNumberOfEdges(void)
-{
-  return num_edges(m_Graph);
-}
-/**
- * PrintSelf method
- */
-template <class TVertex>
-void
-RCC8Graph<TVertex>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-}
-} // end namespace otb
-#endif
diff --git a/Modules/OBIA/RCC8/include/otbRCC8GraphFileReader.h b/Modules/OBIA/RCC8/include/otbRCC8GraphFileReader.h
deleted file mode 100644
index 0811898a0c6f4f3cbac0d80d93acb28481578bcd..0000000000000000000000000000000000000000
--- a/Modules/OBIA/RCC8/include/otbRCC8GraphFileReader.h
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbRCC8GraphFileReader_h
-#define otbRCC8GraphFileReader_h
-
-#include "otbRCC8GraphSource.h"
-#include "itkMacro.h"
-#include <string>
-
-namespace otb
-{
-/** \class RCC8GraphFileReaderException
- * \brief Base exception class for IO problems during reading.
- *
- * \ingroup OTBRCC8
- */
-class ITK_EXPORT RCC8GraphFileReaderException
-  : public itk::ExceptionObject
-{
-public:
-  /** Run-time information. */
-  itkTypeMacro(RCC8GraphFileReaderException, ExceptionObject);
-
-  /** Constructor. */
-  RCC8GraphFileReaderException(const char *file, unsigned int line,
-                               const char* message = "Error in IO",
-                               const char* loc = "Unknown") :
-    ExceptionObject(file, line, message, loc) {}
-  /** Constructor. */
-  RCC8GraphFileReaderException(const std::string & file, unsigned int line,
-                               const char* message = "Error in IO",
-                               const char* loc = "Unknown") :
-    ExceptionObject(file, line, message, loc) {}
-};
-/**
- * \class RCC8GraphFileReader
- * \brief This class reads a RCC8 graph from a .dot file (graphviz format).
- *
- * The parsing algorithm reads the lines from the file, deciding if the line is
- * a vertex or edge line. It then call the correct parse method between ParseEdge
- * and ParseVertex. The ParseVertex use builds an AttributesMap and pass it to a new
- * vertex.
- *
- * \sa RCC8GraphFileWriter
- * \sa RCC8Graph
- *
- * \ingroup OTBRCC8
- */
-template <class TOutputGraph>
-class ITK_EXPORT RCC8GraphFileReader : public RCC8GraphSource<TOutputGraph>
-{
-public:
-  /** Standards typedef */
-  typedef RCC8GraphFileReader           Self;
-  typedef RCC8GraphSource<TOutputGraph> Superclass;
-  typedef itk::SmartPointer<Self>       Pointer;
-  typedef itk::SmartPointer<const Self> ConstPointer;
-  /** Creation through the object factory */
-  itkNewMacro(Self);
-  /** Runtime type information */
-  itkTypeMacro(RCC8GraphFileReader, RCC8GraphSource);
-  /** Output related typedefs */
-  typedef TOutputGraph                                OutputGraphType;
-  typedef typename Superclass::OutputGraphPointerType OutputGraphPointerType;
-  typedef typename OutputGraphType::VertexType        VertexType;
-  typedef typename VertexType::Pointer                VertexPointerType;
-  typedef typename OutputGraphType::RCC8ValueType     RCC8ValueType;
-
-  /** Set the filename  */
-  itkSetStringMacro(FileName);
-  /** Get the filename */
-  itkGetStringMacro(FileName);
-
-protected:
-  /** Constructor */
-  RCC8GraphFileReader();
-  /** Destructor */
-  ~RCC8GraphFileReader() override;
-  /** Main computation method */
-  void GenerateData() override;
-  /**
-   * Parse edge information from a given line.
-   * \param line The line to parse.
-   */
-  void ParseEdge(const std::string& line);
-  /**
-   * Parse vertex information from a given line.
-   * \param line The line to parse.
-   */
-  void  ParseVertex(const std::string& line);
-
-  /** PrintSelf method */
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-
-private:
-  /** File name */
-  std::string m_FileName;
-};
-}
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbRCC8GraphFileReader.hxx"
-#endif
-
-#endif
diff --git a/Modules/OBIA/RCC8/include/otbRCC8GraphFileReader.hxx b/Modules/OBIA/RCC8/include/otbRCC8GraphFileReader.hxx
deleted file mode 100644
index 2bab0d9fc2e0ef0ce2398a2fcadff43e9426a21d..0000000000000000000000000000000000000000
--- a/Modules/OBIA/RCC8/include/otbRCC8GraphFileReader.hxx
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbRCC8GraphFileReader_hxx
-#define otbRCC8GraphFileReader_hxx
-
-#include "otbRCC8GraphFileReader.h"
-#include "otbRCC8VertexIterator.h"
-#include "otbMacro.h"
-#include <fstream>
-#include <iostream>
-#include <string>
-
-namespace otb
-{
-/**
- * Constructor
- */
-template <class TOutputGraph>
-RCC8GraphFileReader<TOutputGraph>
-::RCC8GraphFileReader()
-{
-  m_FileName = "";
-}
-/**
- * Destructor
- */
-template <class TOutputGraph>
-RCC8GraphFileReader<TOutputGraph>
-::~RCC8GraphFileReader()
-{
-}
-/**
- * Parse edge information from a given line.
- * \param line The line to parse.
- */
-template <class TOutputGraph>
-void
-RCC8GraphFileReader<TOutputGraph>
-::ParseEdge(const std::string& line)
-{
-  typename std::string::size_type pos1 = line.find_first_of(" ", 0);
-  typename std::string::size_type pos2 = line.find_first_of(" ", pos1 + 1);
-  typename std::string::size_type pos3 = line.find_first_of(" ", pos2 + 1);
-  unsigned int                    source = atoi(line.substr(0, pos1).c_str());
-  unsigned int                    target = atoi(line.substr(pos2 + 1, pos3 - pos2 - 1).c_str());
-  typename std::string::size_type pos4 = line.find_first_of("\"", 0);
-  typename std::string::size_type pos5 = line.find_first_of("\" ", pos4 + 1);
-  RCC8ValueType                   value = static_cast<RCC8ValueType>(atoi(line.substr(pos4 + 1, pos5 - pos4 - 1).c_str()));
-  otbMsgDevMacro(<< "RCC8GraphFileReader: Edge line parsed: " << source << " -> "
-                 << target << " " << value);
-  this->GetOutput()->AddEdge(source, target, value);
-}
-/**
- * Parse vertex information from a given line.
- * \param line The line to parse.
- */
-template <class TOutputGraph>
-void
-RCC8GraphFileReader<TOutputGraph>
-::ParseVertex(const std::string& line)
-{
-  typename VertexType::AttributesMapType attr;
-  typename std::string::size_type        pos = line.find_first_of(" ", 0);
-  unsigned int                           index = atoi(line.substr(0, pos).c_str());
-  otbMsgDevMacro(<< "RCC8GraphFileReader: Vertex index: " << index);
-  typename std::string::size_type midPos, nextPos;
-
-  midPos = line.find_first_of("\"", pos + 2);
-  nextPos = line.find_first_of("\"", midPos + 1);
-  std::string key, value;
-  while ((midPos != std::string::npos) && (nextPos != std::string::npos))
-    {
-    key = line.substr(pos + 2, midPos - pos - 3);
-    value = line.substr(midPos + 1, nextPos - midPos - 1);
-    attr[key] = value;
-    otbMsgDevMacro(<< "RCC8GraphFileReader: Vertex attribute: " << key << " " << value);
-    pos = nextPos;
-    midPos = line.find_first_of("\"", pos + 2);
-    nextPos = line.find_first_of("\"", midPos + 1);
-    }
-  typename VertexType::Pointer vertex  = VertexType::New();
-  vertex->SetAttributesMap(attr);
-  this->GetOutput()->SetVertex(index, vertex);
-}
-
-/**
- * Generate data method
- */
-template <class TOutputGraph>
-void
-RCC8GraphFileReader<TOutputGraph>
-::GenerateData()
-{
-  std::ifstream fin;
-  std::string   line;
-
-  // open file input stream
-  fin.open(m_FileName);
-
-  // Test if the file has been opened correctly
-  if (!fin)
-    {
-    RCC8GraphFileReaderException e(__FILE__, __LINE__);
-    std::ostringstream msg;
-    msg << " Could not create IO object for file ";
-    msg << m_FileName << "." << std::endl;
-    e.SetDescription(msg.str());
-    throw e;
-    return;
-    }
-
-  // if so, parse it
-  while (!fin.eof())
-    {
-    std::getline(fin, line);
-    if (line.find("->") != std::string::npos)
-      {
-      // edge line
-      this->ParseEdge(line);
-      }
-    else if (line.find("[") != std::string::npos)
-      {
-      // vertex line
-      this->ParseVertex(line);
-      }
-    }
-  fin.close();
-}
-/**
- * PrintSelf method
- */
-template <class TInputGraph>
-void
-RCC8GraphFileReader<TInputGraph>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-}
-} // end namespace otb
-
-#endif
diff --git a/Modules/OBIA/RCC8/include/otbRCC8GraphFileWriter.h b/Modules/OBIA/RCC8/include/otbRCC8GraphFileWriter.h
deleted file mode 100644
index 4e4284dde3abfd86f2f5dc5a5e996c98d82c924c..0000000000000000000000000000000000000000
--- a/Modules/OBIA/RCC8/include/otbRCC8GraphFileWriter.h
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbRCC8GraphFileWriter_h
-#define otbRCC8GraphFileWriter_h
-
-#include "itkProcessObject.h"
-#include "itkMacro.h"
-#include "otbRCC8Graph.h"
-#include <string>
-
-namespace otb
-{
-/** \class RCC8GraphFileWriterException
- * \brief Base exception class for IO problems during writing.
- *
- * \ingroup OTBRCC8
- */
-class ITK_EXPORT RCC8GraphFileWriterException
-  : public itk::ExceptionObject
-{
-public:
-  /** Run-time information. */
-  itkTypeMacro(RCC8GraphFileWriterException, ExceptionObject);
-
-  /** Constructor. */
-  RCC8GraphFileWriterException(const char *file, unsigned int line,
-                               const char* message = "Error in IO",
-                               const char* loc = "Unknown") :
-    ExceptionObject(file, line, message, loc) {}
-  /** Constructor. */
-  RCC8GraphFileWriterException(const std::string & file, unsigned int line,
-                               const char* message = "Error in IO",
-                               const char* loc = "Unknown") :
-    ExceptionObject(file, line, message, loc) {}
-};
-/**
- * \class RCC8GraphFileWriter
- * \brief This class writes a RCC8 Graph to a dot file (graphviz file format).
- *
- * The writer first loops on the vertices of the graph, getting the property map
- * from each vertex and printing it in a line.
- *
- * It then iterates on the edges of the graphs, printing source index, target index,
- * and RCC8 value in a line for each of them.
- *
- * \sa RCC8GraphFileReader
- * \sa RCC8Graph
- *
- * \ingroup OTBRCC8
- */
-template <class TInputGraph>
-class ITK_EXPORT RCC8GraphFileWriter
-  : public itk::ProcessObject
-{
-public:
-  /** Standards typedefs */
-  typedef RCC8GraphFileWriter           Self;
-  typedef itk::ProcessObject            Superclass;
-  typedef itk::SmartPointer<Self>       Pointer;
-  typedef itk::SmartPointer<const Self> ConstPointer;
-  /** Method for creation through the object factory */
-  itkNewMacro(Self);
-  /** Run-time type information (and related methods). */
-  itkTypeMacro(RCC8GraphFileWriter, ProcessObject);
-  /** Typedefs for the output graph type */
-  typedef TInputGraph                                   InputGraphType;
-  typedef typename InputGraphType::Pointer              InputGraphPointerType;
-  typedef typename InputGraphType::VertexType           VertexType;
-  typedef typename VertexType::Pointer                  VertexPointerType;
-  typedef typename InputGraphType::VertexDescriptorType VertexDescriptorType;
-  typedef typename InputGraphType::RCC8ValueType        RCC8ValueType;
-  typedef typename VertexType::AttributesMapType        AttributesMapType;
-  typedef typename AttributesMapType::iterator          IteratorType;
-
-  /** Set the filename */
-  itkSetStringMacro(FileName);
-  /** Get the filename */
-  itkGetStringMacro(FileName);
-
-  using Superclass::SetInput;
-  /**
-   * Set the input graph.
-   * \param inputGraph The graph to write.
-   */
-  virtual void SetInput(const InputGraphType* inputGraph);
-  /**
-   * Get the input graph.
-   * \return The input graph pointer.
-   */
-  virtual InputGraphPointerType GetInput();
-  /**
-   * Update method.
-   */
-  void Update(void) override;
-
-protected:
-  /** Constructor */
-  RCC8GraphFileWriter();
-  /** Destructor */
-  ~RCC8GraphFileWriter() override;
-  /**
-   * Main computation method.
-   */
-  void GenerateData(void) override;
-  /**
-   * Write Method.
-   * Performs checkings and invoke GenerateData().
-   */
-  virtual void Write(void);
-  /**
-   * Write an edge to file.
-   * \param of The output file stream.
-   * \param source The index of the source vertex.
-   * \param target The index of the target vertex.
-   * \param value  The value of the edge.
-   */
-  void WriteEdge(std::ofstream& of, VertexDescriptorType source,
-                 VertexDescriptorType target, RCC8ValueType value);
-  /**
-   * Write a vertex to file.
-   * \param of The output file stream.
-   * \param index The index of the edge to write.
-   * \param vertex The pointer to the vertex object.
-  */
-  void WriteVertex(std::ofstream& of, VertexDescriptorType index,
-                   VertexPointerType vertex);
-  /**
-   * PrintSelf method
-   */
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-
-private:
-  /** Filename of the graph file to write */
-  std::string m_FileName;
-};
-} // namespace otb
-
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbRCC8GraphFileWriter.hxx"
-#endif
-
-#endif
diff --git a/Modules/OBIA/RCC8/include/otbRCC8GraphFileWriter.hxx b/Modules/OBIA/RCC8/include/otbRCC8GraphFileWriter.hxx
deleted file mode 100644
index c864a7c47b9ee4b17f187ad5d0b7059c43cc575a..0000000000000000000000000000000000000000
--- a/Modules/OBIA/RCC8/include/otbRCC8GraphFileWriter.hxx
+++ /dev/null
@@ -1,236 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbRCC8GraphFileWriter_hxx
-#define otbRCC8GraphFileWriter_hxx
-
-#include "otbRCC8GraphFileWriter.h"
-#include "otbRCC8VertexIterator.h"
-#include "otbRCC8EdgeIterator.h"
-#include "otbMacro.h"
-#include <fstream>
-
-namespace otb
-{
-/**
- * Constructor
- */
-template <class TInputGraph>
-RCC8GraphFileWriter<TInputGraph>
-::RCC8GraphFileWriter()
-{
-  this->SetNumberOfRequiredInputs(1);
-  m_FileName = "";
-}
-/**
- * Destructor
- */
-template <class TInputGraph>
-RCC8GraphFileWriter<TInputGraph>
-::~RCC8GraphFileWriter()
-{
-}
-/**
- * Set the input graph.
- * \param graph The graph to write.
- */
-template <class TInputGraph>
-void
-RCC8GraphFileWriter<TInputGraph>
-::SetInput(const InputGraphType * graph)
-{
-  this->itk::ProcessObject::SetNthInput(0, const_cast<TInputGraph *>(graph));
-}
-/**
- * Get the input graph.
- * \return The input graph pointer.
- */
-template <class TInputGraph>
-typename RCC8GraphFileWriter<TInputGraph>
-::InputGraphPointerType
-RCC8GraphFileWriter<TInputGraph>
-::GetInput(void)
-{
-  return static_cast<TInputGraph*>(this->itk::ProcessObject::GetInput(0));
-}
-/**
- * Update method.
- * (Call the Write() method).
- */
-template <class TInputGraph>
-void
-RCC8GraphFileWriter<TInputGraph>
-::Update(void)
-{
-  this->Write();
-}
-/**
- * Write Method.
- * Performs checkings and invoke GenerateData().
- */
-template <class TInputGraph>
-void
-RCC8GraphFileWriter<TInputGraph>
-::Write(void)
-{
-  InputGraphType * input = this->GetInput();
-
-  itkDebugMacro(<< "Writing a RCC8Graph file");
-
-  // Make sure input is available
-  if (input == nullptr)
-    {
-    itkExceptionMacro(<< "No input to writer!");
-    }
-
-  // Make sure that we can write the file given the name
-  //
-  if (m_FileName == "")
-    {
-    itkExceptionMacro(<< "No filename was specified");
-    }
-
-  // Pipeline updating sequence
-  input->UpdateOutputInformation();
-  input->PropagateRequestedRegion();
-  input->UpdateOutputData();
-  // GenerateData (actually write file)
-  this->GenerateData();
-}
-/**
- * Main computation method.
- */
-template <class TInputGraph>
-void
-RCC8GraphFileWriter<TInputGraph>
-::GenerateData()
-{
-  otbMsgDevMacro(<< "RCC8GraphFileWriter: GenerateData call");
-  // input graph pointer
-  InputGraphPointerType input = this->GetInput();
-
-  // iterators typedefs
-  typedef otb::RCC8VertexIterator<InputGraphType> VertexIteratorType;
-  typedef otb::RCC8EdgeIterator<InputGraphType>   EdgeIteratorType;
-
-  // Output file stream
-  std::ofstream out;
-
-  // open the outputfile
-  out.open(m_FileName, std::ios::out);
-
-  // Test if the file has been opened correctly
-  if (!out)
-    {
-    RCC8GraphFileWriterException e(__FILE__, __LINE__);
-    std::ostringstream msg;
-    msg << " Could not create IO object for file ";
-    msg << m_FileName << "." << std::endl;
-    e.SetDescription(msg.str());
-    throw e;
-    return;
-    }
-
-  // Start writing the graph to file
-  out << "digraph G {" << std::endl;
-
-  // For each vertex in the graph
-  VertexIteratorType vIt(input);
-  for (vIt.GoToBegin(); !vIt.IsAtEnd(); ++vIt)
-    {
-    this->WriteVertex(out, vIt.GetIndex(), vIt.Get());
-    }
-
-  // For each edge in the graph
-  EdgeIteratorType eIt(input);
-  for (eIt.GoToBegin(); !eIt.IsAtEnd(); ++eIt)
-    {
-    this->WriteEdge(out, eIt.GetSourceIndex(),
-                    eIt.GetTargetIndex(),
-                    eIt.GetValue());
-    }
-
-  // Ends the graph writing
-  out << "}" << std::endl;
-
-  // Close the file
-  out.close();
-}
-/**
- * Write an edge to file.
- * \param of The output file stream.
- * \param source The index of the source vertex.
- * \param target The index of the target vertex.
- * \param value  The value of the edge.
- */
-template <class TInputGraph>
-void
-RCC8GraphFileWriter<TInputGraph>
-::WriteEdge(std::ofstream& of, VertexDescriptorType source,
-            VertexDescriptorType target, RCC8ValueType value)
-{
-  otbMsgDevMacro(<< "RCC8GraphFileWriter: WriteEdge call: " << source << " " << target << " " << value);
-  of << source << " -> " << target << " ";
-  of << "[Value=\"" << value << "\"];";
-  of << std::endl;
-}
-/**
- * Write a vertex to file.
- * \param of The output file stream.
- * \param index The index of the edge to write.
- * \param vertex The pointer to the vertex object.
- */
-template <class TInputGraph>
-void
-RCC8GraphFileWriter<TInputGraph>
-::WriteVertex(std::ofstream& of, VertexDescriptorType index,
-              VertexPointerType vertex)
-{
-  AttributesMapType attr = vertex->GetAttributesMap();
-  otbMsgDevMacro(<< "RCC8GraphFileWriter: WriteVertex call: " << index);
-  of << index << " [";
-  IteratorType it = attr.begin();
-  while (it != attr.end())
-    {
-    of << (*it).first << "=\"";
-    of << (*it).second << "\"";
-    ++it;
-    if (it == attr.end())
-      {
-      of << "];" << std::endl;
-      }
-    else
-      {
-      of << ",";
-      }
-    }
-}
-/**
- * PrintSelf method
- */
-template <class TInputGraph>
-void
-RCC8GraphFileWriter<TInputGraph>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-}
-} // namespace otb
-#endif
diff --git a/Modules/OBIA/RCC8/include/otbRCC8GraphSource.h b/Modules/OBIA/RCC8/include/otbRCC8GraphSource.h
deleted file mode 100644
index 2a893e4d6c653c67094e26ef0999723bc278878a..0000000000000000000000000000000000000000
--- a/Modules/OBIA/RCC8/include/otbRCC8GraphSource.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbRCC8GraphSource_h
-#define otbRCC8GraphSource_h
-
-#include "itkProcessObject.h"
-
-namespace otb
-{
-/** \class RCC8GraphSource
- *  \brief Base class for all the filters producing an otbRCC8Graph
- * \ingroup DataSources
- *
- * \ingroup OTBRCC8
- */
-template <class TOutputGraph>
-class ITK_EXPORT RCC8GraphSource
-  : public itk::ProcessObject
-{
-public:
-  /** Standard typedefs */
-  typedef RCC8GraphSource               Self;
-  typedef itk::ProcessObject            Superclass;
-  typedef itk::SmartPointer<Self>       Pointer;
-  typedef itk::SmartPointer<const Self> ConstPointer;
-  /** Type macro */
-  itkNewMacro(Self);
-  /** Creation through object factory macro */
-  itkTypeMacro(RCC8GraphSource, itk::ProcessObject);
-  /** Data object pointer type */
-  typedef itk::DataObject::Pointer DataObjectPointer;
-  /** Template parameter typedef*/
-  typedef TOutputGraph                      OutputGraphType;
-  typedef typename OutputGraphType::Pointer OutputGraphPointerType;
-  /** Overriding of the GetOutput() method */
-  virtual OutputGraphType * GetOutput(void);
-
-protected:
-  /** Constructor */
-  RCC8GraphSource();
-  /** Destructor */
-  ~RCC8GraphSource() override {}
-  /**PrintSelf method */
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-
-private:
-  RCC8GraphSource(const Self &) = delete;
-  void operator =(const Self&) = delete;
-};
-} // End namespace otb
-
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbRCC8GraphSource.hxx"
-#endif
-#endif
diff --git a/Modules/OBIA/RCC8/include/otbRCC8GraphSource.hxx b/Modules/OBIA/RCC8/include/otbRCC8GraphSource.hxx
deleted file mode 100644
index ce8d6b707213701de9078dc906c0d4ecedef81bc..0000000000000000000000000000000000000000
--- a/Modules/OBIA/RCC8/include/otbRCC8GraphSource.hxx
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbRCC8GraphSource_hxx
-#define otbRCC8GraphSource_hxx
-
-#include "otbRCC8GraphSource.h"
-
-namespace otb
-{
-/**
- *   Constructor
- */
-template <class TOutputGraph>
-RCC8GraphSource<TOutputGraph>
-::RCC8GraphSource()
-{
-  this->Superclass::SetNumberOfRequiredOutputs(1);
-  this->Superclass::SetNthOutput(0, TOutputGraph::New().GetPointer());
-}
-/**
- * Get the output Graph
- * \return The output graph produced.
- */
-template <class TOutputGraph>
-typename RCC8GraphSource<TOutputGraph>::OutputGraphType *
-RCC8GraphSource<TOutputGraph>
-::GetOutput(void)
-{
-  if (this->GetNumberOfOutputs() < 1)
-    {
-    return nullptr;
-    }
-  return static_cast<OutputGraphType *> (this->ProcessObject::GetOutput(0));
-}
-/**
- * PrintSelf Method
- */
-template<class TOutputGraph>
-void
-RCC8GraphSource<TOutputGraph>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-}
-} // End namespace otb
-#endif
diff --git a/Modules/OBIA/RCC8/include/otbRCC8InEdgeIterator.h b/Modules/OBIA/RCC8/include/otbRCC8InEdgeIterator.h
deleted file mode 100644
index 8c3242ed14651805c7eee908bb8edb18a5362ca4..0000000000000000000000000000000000000000
--- a/Modules/OBIA/RCC8/include/otbRCC8InEdgeIterator.h
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbRCC8InEdgeIterator_h
-#define otbRCC8InEdgeIterator_h
-
-#include "otbRCC8Graph.h"
-
-namespace otb
-{
-/**
- * \class RCC8InEdgeIterator
- * \brief Iterates on the graph in edges from a vertex.
- *
- * \ingroup OTBRCC8
- */
-template <class TGraph>
-class ITK_EXPORT RCC8InEdgeIterator
-{
-public:
-  /** self typedef */
-  typedef RCC8InEdgeIterator Self;
-
-  /** Graph typedef */
-  typedef TGraph                                   GraphType;
-  typedef typename GraphType::InternalGraphType    InternalGraphType;
-  typedef typename GraphType::Pointer              GraphPointerType;
-  typedef typename GraphType::EdgePointerType      EdgePointerType;
-  typedef typename GraphType::VertexPointerType    VertexPointerType;
-  typedef typename GraphType::VertexDescriptorType VertexDescriptorType;
-  typedef typename GraphType::RCC8ValueType        RCC8ValueType;
-  /** typedef of the internal iterator */
-  typedef typename boost::graph_traits<InternalGraphType>::in_edge_iterator InternalIteratorType;
-  /** Typedef of the index map */
-  typedef typename boost::property_map<InternalGraphType, boost::vertex_index_t>::type IndexMapType;
-
-  /** Constructor */
-  RCC8InEdgeIterator();
-  /** Copy constructor */
-  RCC8InEdgeIterator(const Self &iter);
-  /**  Constructor with input graph */
-  RCC8InEdgeIterator(VertexDescriptorType vertex, GraphType * graph);
-  /**
-   * Get the current edge value.
-   * \return The value of the current edge pointed by the iterator.
-   */
-  RCC8ValueType GetValue(void);
-  /**
-    * Return the source vertex of the current edge.
-    * \return The source edge.
-    */
-  VertexPointerType GetSourceVertex(void);
-  /**
-   * Return the source vertex index of the current edge.
-   * \return The source vertex index.
-   */
-  VertexDescriptorType GetSourceIndex(void);
-  /**
-   * Return true if the iterator is at the end.
-   * \return True if the iterator is at the end.
-   */
-  bool IsAtEnd(void);
-  /**
-   * Go to the beginning.
-   */
-  void GoToBegin(void);
-  /**
-   * Increment.
-   */
-  Self& operator ++();
-  /**
-   * Decrement.
-   */
-  Self& operator --();
-  /**
-   * Add
-   */
-  Self& operator +(int i);
-
-  /**
-   * Remove
-   */
-  Self& operator -(int i);
-  /**
-   * Difference comparison operator.
-   */
-  bool operator !=(const Self& it);
-  /**
-   * Equality comparison operator.
-   */
-  bool operator ==(const Self& it);
-  /**
-   * Instantiation operator.
-   */
-  Self& operator =(const Self& it);
-private:
-  // End
-  InternalIteratorType m_End;
-  // Internal iterator.
-  InternalIteratorType m_Iter;
-  // Input graph pointer
-  GraphPointerType m_Graph;
-  // Target vertex index
-  VertexDescriptorType m_VertexIndex;
-};
-} // End namespace otb
-
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbRCC8InEdgeIterator.hxx"
-#endif
-
-#endif
diff --git a/Modules/OBIA/RCC8/include/otbRCC8InEdgeIterator.hxx b/Modules/OBIA/RCC8/include/otbRCC8InEdgeIterator.hxx
deleted file mode 100644
index 5fb34dce81bd7e9f27a2b24dc2e3c851bcce20da..0000000000000000000000000000000000000000
--- a/Modules/OBIA/RCC8/include/otbRCC8InEdgeIterator.hxx
+++ /dev/null
@@ -1,198 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbRCC8InEdgeIterator_hxx
-#define otbRCC8InEdgeIterator_hxx
-
-#include "otbRCC8InEdgeIterator.h"
-
-namespace otb
-{
-/** Constructor */
-template <class TGraph>
-RCC8InEdgeIterator<TGraph>
-::RCC8InEdgeIterator()
-{
-  m_Graph = GraphType::New();
-  boost::tuples::tie(m_Iter, m_End) = in_edges(0, *m_Graph->GetGraph());
-}
-/**
- * Copy operator.
- */
-template <class TGraph>
-RCC8InEdgeIterator<TGraph>
-::RCC8InEdgeIterator(const Self& iter)
-{
-  m_Iter = iter.m_Iter;
-  m_Graph = iter.m_Graph;
-  m_VertexIndex = iter.m_VertexIndex;
-  m_End = iter.m_End;
-}
-/**
- *Constructor with input graph
- */
-template <class TGraph>
-RCC8InEdgeIterator<TGraph>
-::RCC8InEdgeIterator(VertexDescriptorType vertex, GraphType * graph)
-{
-  m_Graph = graph;
-  m_VertexIndex = vertex;
-  boost::tuples::tie(m_Iter, m_End) = in_edges(vertex, *m_Graph->GetGraph());
-}
-/**
- * Get the current edge value.
- * \return The value of the current edge pointed by the iterator.
- */
-template <class TGraph>
-typename RCC8InEdgeIterator<TGraph>
-::RCC8ValueType
-RCC8InEdgeIterator<TGraph>
-::GetValue(void)
-{
-  return (*m_Graph->GetGraph())[*m_Iter]->GetValue();
-}
-/**
- * Return the source vertex of the current edge.
- * \return The source edge.
- */
-template <class TGraph>
-typename RCC8InEdgeIterator<TGraph>
-::VertexPointerType
-RCC8InEdgeIterator<TGraph>
-::GetSourceVertex(void)
-{
-  return (*m_Graph->GetGraph())[source(*m_Iter, (*m_Graph->GetGraph()))];
-}
-/**
- * Return the source vertex index of the current edge.
- * \return The source vertex index.
- */
-template <class TGraph>
-typename RCC8InEdgeIterator<TGraph>
-::VertexDescriptorType
-RCC8InEdgeIterator<TGraph>
-::GetSourceIndex(void)
-{
-  IndexMapType index = get(boost::vertex_index, (*m_Graph->GetGraph()));
-  return index[source(*m_Iter, (*m_Graph->GetGraph()))];
-}
-/**
- * Return true if the iterator is at the end.
- * \return True if the iterator is at the end.
- */
-template <class TGraph>
-bool
-RCC8InEdgeIterator<TGraph>
-::IsAtEnd(void)
-{
-  return (m_Iter == m_End);
-}
-/**
- * Go to the beginning.
- */
-template <class TGraph>
-void
-RCC8InEdgeIterator<TGraph>
-::GoToBegin(void)
-{
-  boost::tuples::tie(m_Iter, m_End) = in_edges(m_VertexIndex, *m_Graph->GetGraph());
-}
-/**
- * Increment.
- */
-template <class TGraph>
-typename RCC8InEdgeIterator<TGraph>
-::Self&
-RCC8InEdgeIterator<TGraph>
-::operator++ ()
-  {
-  ++m_Iter;
-  return *this;
-  }
-/**
- * Decrement.
- */
-template <class TGraph>
-typename RCC8InEdgeIterator<TGraph>
-::Self&
-RCC8InEdgeIterator<TGraph>
-::operator-- ()
-  {
-  --m_Iter;
-  return *this;
-  }
-/**
- * Add
- */
-template <class TGraph>
-typename RCC8InEdgeIterator<TGraph>
-::Self&
-RCC8InEdgeIterator<TGraph>
-::operator + (int i)
-  {
-  m_Iter = m_Iter + i;
-  return *this;
-  }
-/**
- * Remove
- */
-template <class TGraph>
-typename RCC8InEdgeIterator<TGraph>
-::Self&
-RCC8InEdgeIterator<TGraph>
-::operator - (int i)
-  {
-  m_Iter = m_Iter - i;
-  return *this;
-  }
-/**
- * Difference comparison operator.
- */
-template <class TGraph>
-bool
-RCC8InEdgeIterator<TGraph>
-::operator != (const Self &iter)
-  {
-  return (m_Iter != iter.m_Iter);
-  }
-/**
- * Equality comparison operator.
- */
-template <class TGraph>
-bool
-RCC8InEdgeIterator<TGraph>
-::operator == (const Self &iter)
-  {
-  return (m_Iter == iter.m_Iter);
-  }
-/**
- * Instantiation operator.
- */
-template <class TGraph>
-typename RCC8InEdgeIterator<TGraph>
-::Self&
-RCC8InEdgeIterator<TGraph>
-::operator = (const Self &iter)
-  {
-  m_Iter = iter.m_Iter;
-  return *this;
-  }
-} // End namespace otb
-#endif
diff --git a/Modules/OBIA/RCC8/include/otbRCC8OutEdgeIterator.h b/Modules/OBIA/RCC8/include/otbRCC8OutEdgeIterator.h
deleted file mode 100644
index 3d22bc092c7d8fcc56d71ccb350faca408442961..0000000000000000000000000000000000000000
--- a/Modules/OBIA/RCC8/include/otbRCC8OutEdgeIterator.h
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbRCC8OutEdgeIterator_h
-#define otbRCC8OutEdgeIterator_h
-
-#include "otbRCC8Graph.h"
-
-namespace otb
-{
-/**
- * \class RCC8OutEdgeIterator
- * \brief Iterates on the graph out edges from a vertex.
- *
- * \ingroup OTBRCC8
- */
-template <class TGraph>
-class ITK_EXPORT RCC8OutEdgeIterator
-{
-public:
-  /** self typedef */
-  typedef RCC8OutEdgeIterator Self;
-
-  /** Graph typedef */
-  typedef TGraph                                   GraphType;
-  typedef typename GraphType::InternalGraphType    InternalGraphType;
-  typedef typename GraphType::Pointer              GraphPointerType;
-  typedef typename GraphType::EdgePointerType      EdgePointerType;
-  typedef typename GraphType::VertexPointerType    VertexPointerType;
-  typedef typename GraphType::VertexDescriptorType VertexDescriptorType;
-  typedef typename GraphType::RCC8ValueType        RCC8ValueType;
-  /** typedef of the internal iterator */
-  typedef typename boost::graph_traits<InternalGraphType>::out_edge_iterator InternalIteratorType;
-  /** Typedef of the index map */
-  typedef typename boost::property_map<InternalGraphType, boost::vertex_index_t>::type IndexMapType;
-
-  /** Constructor */
-  RCC8OutEdgeIterator();
-  /** Copy constructor */
-  RCC8OutEdgeIterator(const Self &iter);
-  /**  Constructor with input graph */
-  RCC8OutEdgeIterator(VertexDescriptorType vertex, TGraph * graph);
-  /**
-   * Get the current edge value.
-   * \return The value of the current edge pointed by the iterator.
-   */
-  RCC8ValueType GetValue(void);
-  /**
-   * Return the target vertex of the current edge.
-   * \return The target vertex.
-   */
-  VertexPointerType GetTargetVertex(void);
-  /**
-   * Return the target vertex index of the current edge.
-   * \return The target vertex index.
-   */
-  VertexDescriptorType GetTargetIndex(void);
-
-  /**
-   * Return true if the iterator is at the end.
-   * \return True if the iterator is at the end.
-   */
-  bool IsAtEnd(void);
-  /**
-   * Go to the beginning.
-   */
-  void GoToBegin(void);
-  /**
-   * Increment.
-   */
-  Self& operator ++();
-  /**
-   * Decrement.
-   */
-  Self& operator --();
-  /**
-   * Add
-   */
-  Self& operator +(int i);
-  /**
-   * Remove
-   */
-  Self& operator -(int i);
-  /**
-   * Difference comparison operator.
-   */
-  bool operator !=(const Self& it);
-  /**
-   * Equality comparison operator.
-   */
-  bool operator ==(const Self& it);
-  /**
-   * Instantiation operator.
-   */
-  Self& operator =(const Self& it);
-private:
-  // End
-  InternalIteratorType m_End;
-  // Internal iterator.
-  InternalIteratorType m_Iter;
-  // Input graph pointer
-  GraphPointerType m_Graph;
-  // source vertex descriptor
-  VertexDescriptorType m_VertexIndex;
-};
-} // End namespace otb
-
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbRCC8OutEdgeIterator.hxx"
-#endif
-
-#endif
diff --git a/Modules/OBIA/RCC8/include/otbRCC8OutEdgeIterator.hxx b/Modules/OBIA/RCC8/include/otbRCC8OutEdgeIterator.hxx
deleted file mode 100644
index 811e850eda67dcac88f74c85c8f44369b92c413e..0000000000000000000000000000000000000000
--- a/Modules/OBIA/RCC8/include/otbRCC8OutEdgeIterator.hxx
+++ /dev/null
@@ -1,198 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbRCC8OutEdgeIterator_hxx
-#define otbRCC8OutEdgeIterator_hxx
-
-#include "otbRCC8OutEdgeIterator.h"
-
-namespace otb
-{
-/** Constructor */
-template <class TGraph>
-RCC8OutEdgeIterator<TGraph>
-::RCC8OutEdgeIterator()
-{
-  m_Graph = GraphType::New();
-  tie(m_Iter, m_End) = out_edges(0, *m_Graph->GetGraph());
-}
-/**
- * Copy operator.
- */
-template <class TGraph>
-RCC8OutEdgeIterator<TGraph>
-::RCC8OutEdgeIterator(const Self& iter)
-{
-  m_Iter = iter.m_Iter;
-  m_Graph = iter.m_Graph;
-  m_VertexIndex = iter.m_VertexIndex;
-  m_End = iter.m_End;
-}
-/**
- *Constructor with input graph
- */
-template <class TGraph>
-RCC8OutEdgeIterator<TGraph>
-::RCC8OutEdgeIterator(VertexDescriptorType vertex, TGraph * graph)
-{
-  m_Graph = graph;
-  m_VertexIndex = vertex;
-  tie(m_Iter, m_End) = out_edges(vertex, *m_Graph->GetGraph());
-}
-/**
- * Get the current edge value.
- * \return The value of the current edge pointed by the iterator.
- */
-template <class TGraph>
-typename RCC8OutEdgeIterator<TGraph>
-::RCC8ValueType
-RCC8OutEdgeIterator<TGraph>
-::GetValue(void)
-{
-  return (*m_Graph->GetGraph())[*m_Iter]->GetValue();
-}
-/**
- * Return the target vertex of the current edge.
- * \return The target vertex.
- */
-template <class TGraph>
-typename RCC8OutEdgeIterator<TGraph>
-::VertexPointerType
-RCC8OutEdgeIterator<TGraph>
-::GetTargetVertex(void)
-{
-  return (*m_Graph->GetGraph())[target(*m_Iter, (*m_Graph->GetGraph()))];
-}
-/**
- * Return the target vertex index of the current edge.
- * \return The target vertex index.
- */
-template <class TGraph>
-typename RCC8OutEdgeIterator<TGraph>
-::VertexDescriptorType
-RCC8OutEdgeIterator<TGraph>
-::GetTargetIndex(void)
-{
-  IndexMapType index = get(boost::vertex_index, (*m_Graph->GetGraph()));
-  return index[target(*m_Iter, (*m_Graph->GetGraph()))];
-}
-/**
- * Return true if the iterator is at the end.
- * \return True if the iterator is at the end.
- */
-template <class TGraph>
-bool
-RCC8OutEdgeIterator<TGraph>
-::IsAtEnd(void)
-{
-  return (m_Iter == m_End);
-}
-/**
- * Go to the beginning.
- */
-template <class TGraph>
-void
-RCC8OutEdgeIterator<TGraph>
-::GoToBegin(void)
-{
-  tie(m_Iter, m_End) = out_edges(m_VertexIndex, *m_Graph->GetGraph());
-}
-/**
- * Increment.
- */
-template <class TGraph>
-typename RCC8OutEdgeIterator<TGraph>
-::Self&
-RCC8OutEdgeIterator<TGraph>
-::operator++ ()
-  {
-  ++m_Iter;
-  return *this;
-  }
-/**
- * Decrement.
- */
-template <class TGraph>
-typename RCC8OutEdgeIterator<TGraph>
-::Self&
-RCC8OutEdgeIterator<TGraph>
-::operator-- ()
-  {
-  --m_Iter;
-  return *this;
-  }
-/**
- * Add
- */
-template <class TGraph>
-typename RCC8OutEdgeIterator<TGraph>
-::Self&
-RCC8OutEdgeIterator<TGraph>
-::operator + (int i)
-  {
-  m_Iter = m_Iter + i;
-  return *this;
-  }
-/**
- * Remove
- */
-template <class TGraph>
-typename RCC8OutEdgeIterator<TGraph>
-::Self&
-RCC8OutEdgeIterator<TGraph>
-::operator - (int i)
-  {
-  m_Iter = m_Iter - i;
-  return *this;
-  }
-/**
- * Difference comparison operator.
- */
-template <class TGraph>
-bool
-RCC8OutEdgeIterator<TGraph>
-::operator != (const Self &iter)
-  {
-  return (m_Iter != iter.m_Iter);
-  }
-/**
- * Equality comparison operator.
- */
-template <class TGraph>
-bool
-RCC8OutEdgeIterator<TGraph>
-::operator == (const Self &iter)
-  {
-  return (m_Iter == iter.m_Iter);
-  }
-/**
- * Instantiation operator.
- */
-template <class TGraph>
-typename RCC8OutEdgeIterator<TGraph>
-::Self&
-RCC8OutEdgeIterator<TGraph>
-::operator = (const Self &iter)
-  {
-  m_Iter = iter.m_Iter;
-  return *this;
-  }
-} // End namespace otb
-#endif
diff --git a/Modules/OBIA/RCC8/include/otbRCC8Value.h b/Modules/OBIA/RCC8/include/otbRCC8Value.h
deleted file mode 100644
index 24bc9c96c1039c35daae218c76ebe8fe233ffee6..0000000000000000000000000000000000000000
--- a/Modules/OBIA/RCC8/include/otbRCC8Value.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbRCC8Value_h
-#define otbRCC8Value_h
-
-namespace otb
-{
-// Coding enum system to represent the RCC8 relation values.
-typedef enum
-  {
-  OTB_RCC8_DC,
-  OTB_RCC8_EC,
-  OTB_RCC8_PO,
-  OTB_RCC8_TPP,
-  OTB_RCC8_TPPI,
-  OTB_RCC8_NTPP,
-  OTB_RCC8_NTPPI,
-  OTB_RCC8_EQ
-  }
-RCC8Value;
-} // End namespace otb
-#endif
diff --git a/Modules/OBIA/RCC8/include/otbRCC8VertexBase.h b/Modules/OBIA/RCC8/include/otbRCC8VertexBase.h
deleted file mode 100644
index 3876c423319ecb4768529dbaa454a7d1f1e14bb4..0000000000000000000000000000000000000000
--- a/Modules/OBIA/RCC8/include/otbRCC8VertexBase.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbRCC8VertexBase_h
-#define otbRCC8VertexBase_h
-
-#include "itkDataObject.h"
-#include "itkObjectFactory.h"
-#include <cstdlib>
-
-namespace otb
-{
-/** \class RCC8VertexBase
- *  \brief Base class to represent a vertex in a RCC8 Graph.
- *
- *  This class can be derived to add attributes to the vertices of the
- *  RCC8 graph.
- *
- * \sa RCC8Graph, RCC8Edge
- *
- * \ingroup OTBRCC8
- */
-template <class TPath>
-class ITK_EXPORT RCC8VertexBase
-  : public itk::DataObject
-{
-public:
-  /** Standard class typedefs */
-  typedef RCC8VertexBase                Self;
-  typedef itk::DataObject               Superclass;
-  typedef itk::SmartPointer<Self>       Pointer;
-  typedef itk::SmartPointer<const Self> ConstPointer;
-  /** Method for creation through the object factory. */
-  itkNewMacro(Self);
-  /** Run-time type information (and related methods). */
-  itkTypeMacro(RCC8VertexBase, DataObject);
-  /** Input image associated typedefs*/
-  typedef TPath                                  PathType;
-  typedef typename PathType::Pointer             PathPointerType;
-  typedef typename PathType::ContinuousIndexType ContinuousIndexType;
-
-  /** char* vector attributes */
-  typedef std::map<std::string, std::string> AttributesMapType;
-
-  /** Segmentation image index accessors */
-  itkGetMacro(SegmentationLevel, unsigned int);
-  itkSetMacro(SegmentationLevel, unsigned int);
-  itkGetMacro(SegmentationType, bool);
-  itkSetMacro(SegmentationType, bool);
-  /** Object label in image accessor */
-  itkGetObjectMacro(Path, PathType);
-  itkSetObjectMacro(Path, PathType);
-  /**
-   * Set the VertexBase attributes from the attributes vector.
-   * \param attributes The vector containing the parsed attributes.
-   */
-  virtual void SetAttributesMap(AttributesMapType attributes);
-  /**
-   * Get an attributes vector representing the VertexBase attributes.
-   * \return The attributes vector
-   */
-  virtual AttributesMapType GetAttributesMap(void);
-
-protected:
-  /** Constructor */
-  RCC8VertexBase();
-  /** Desctructor */
-  ~RCC8VertexBase() override {}
-  /** PrintSelf method */
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-
-private:
-  /** The segmentation level */
-  unsigned int m_SegmentationLevel;
-  /** True if bright details, false otherwise */
-  bool m_SegmentationType;
-  /** The path of the edge of the region */
-  PathPointerType m_Path;
-};
-} // end namespace otb
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbRCC8VertexBase.hxx"
-#endif
-
-#endif
diff --git a/Modules/OBIA/RCC8/include/otbRCC8VertexBase.hxx b/Modules/OBIA/RCC8/include/otbRCC8VertexBase.hxx
deleted file mode 100644
index 3464483c73676d4ef2b909bc129cfd34058570cb..0000000000000000000000000000000000000000
--- a/Modules/OBIA/RCC8/include/otbRCC8VertexBase.hxx
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbRCC8VertexBase_hxx
-#define otbRCC8VertexBase_hxx
-
-#include "otbRCC8VertexBase.h"
-
-namespace otb
-{
-/**
- * Constructor
- */
-template <class TPath>
-RCC8VertexBase<TPath>
-::RCC8VertexBase()
-{
-  m_SegmentationLevel = 0;
-  m_SegmentationType = true;
-  m_Path = PathType::New();
-  m_Path->Initialize();
-}
-/**
- * Set the VertexBase attributes from the attributes vector.
- * \param attributes The vector containing the parsed attributes.
- */
-template <class TPath>
-void
-RCC8VertexBase<TPath>
-::SetAttributesMap(AttributesMapType attributes)
-{
-  m_SegmentationLevel = static_cast<unsigned int>(atoi(attributes["SegmentationLevel"].c_str()));
-  m_SegmentationType = static_cast<bool>(atoi(attributes["SegmentationType"].c_str()));
-  unsigned int nbPoints = static_cast<unsigned int>(atoi(attributes["NumberOfPointsInPath"].c_str()));
-
-  std::ostringstream oss;
-
-  m_Path = PathType::New();
-  m_Path->Initialize();
-
-  for (unsigned int i = 0; i < nbPoints; ++i)
-    {
-    ContinuousIndexType newPoint;
-    oss << "P" << i << "x";
-    newPoint[0] = atof(attributes[oss.str()].c_str());
-    oss.str("");
-    oss << "P" << i << "y";
-    newPoint[1] = atof(attributes[oss.str()].c_str());
-    oss.str("");
-    m_Path->AddVertex(newPoint);
-    }
-}
-/**
- * Get an attributes vector representing the VertexBase attributes.
- * \return The attributes vector
- */
-template <class TPath>
-typename RCC8VertexBase<TPath>::AttributesMapType
-RCC8VertexBase<TPath>
-::GetAttributesMap(void)
-{
-  std::ostringstream oss;
-  AttributesMapType  results;
-  oss << m_SegmentationLevel;
-  results["SegmentationLevel"] = oss.str();
-  oss.str("");
-  oss << m_SegmentationType;
-  results["SegmentationType"] = oss.str();
-  oss.str("");
-  oss << m_Path->GetVertexList()->Size();
-  results["NumberOfPointsInPath"] = oss.str();
-  oss.str("");
-
-  typename PathType::VertexListType::ConstIterator it;
-  unsigned int                                     index = 0;
-
-  for (it = m_Path->GetVertexList()->Begin(); it != m_Path->GetVertexList()->End(); ++it, ++index)
-    {
-    ContinuousIndexType point = it.Value();
-    oss << "P" << index << "x";
-    std::string key = oss.str();
-    oss.str("");
-    oss << point[0];
-    results[key] = oss.str();
-    oss.str("");
-    oss << "P" << index << "y";
-    key = oss.str();
-    oss.str("");
-    oss << point[1];
-    results[key] = oss.str();
-    oss.str("");
-    }
-  return results;
-}
-/**
- * PrintSelf method
- */
-template <class TPath>
-void
-RCC8VertexBase<TPath>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-  os << indent << "SegmentationLevel: " << m_SegmentationLevel << std::endl;
-  os << indent << "SegmentationType: " << m_SegmentationType << std::endl;
-}
-} // end namespace otb
-#endif
diff --git a/Modules/OBIA/RCC8/include/otbRCC8VertexIterator.h b/Modules/OBIA/RCC8/include/otbRCC8VertexIterator.h
deleted file mode 100644
index 51d771e11ae2298f66fdacb4b2ec3c16e7a28cea..0000000000000000000000000000000000000000
--- a/Modules/OBIA/RCC8/include/otbRCC8VertexIterator.h
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbRCC8VertexIterator_h
-#define otbRCC8VertexIterator_h
-
-#include "otbRCC8Graph.h"
-
-namespace otb
-{
-/**
- * \class RCC8VertexIterator
- * \brief Iterates on the graph vertices
- *
- * \ingroup OTBRCC8
- */
-template <class TGraph>
-class ITK_EXPORT RCC8VertexIterator
-{
-public:
-  /** self typedef */
-  typedef RCC8VertexIterator Self;
-
-  /** Graph typedef */
-  typedef TGraph                                   GraphType;
-  typedef typename GraphType::InternalGraphType    InternalGraphType;
-  typedef typename GraphType::Pointer              GraphPointerType;
-  typedef typename GraphType::VertexPointerType    VertexPointerType;
-  typedef typename GraphType::VertexDescriptorType VertexDescriptorType;
-  /** typedef of the internal iterator */
-  typedef typename boost::graph_traits<InternalGraphType>::vertex_iterator InternalIteratorType;
-  /** Typedef of the index map */
-  typedef typename boost::property_map<InternalGraphType, boost::vertex_index_t>::type IndexMapType;
-  /** Constructor */
-  RCC8VertexIterator();
-  /** Copy constructor */
-  RCC8VertexIterator(const Self &iter);
-  /**  Constructor with input graph */
-  RCC8VertexIterator(TGraph * graph);
-  /**
-   * Get the current vertex.
-   * \return The current vertex pointed by the iterator.
-   */
-  VertexPointerType Get(void);
-  /**
-   * Set the current vertex.
-   * \param vertex The vertex to set.
-   */
-  void Set(VertexPointerType vertex);
-  /**
-   * Get the current vertex index.
-   * \return The current vertex index.
-   */
-  VertexDescriptorType GetIndex(void);
-  /**
-   * Return true if the iterator is at the end.
-   * \return True if the iterator is at the end.
-   */
-  bool IsAtEnd(void);
-  /**
-   * Go to the beginning.
-   */
-  void GoToBegin(void);
-  /**
-   * Increment.
-   */
-  Self& operator ++();
-  /**
-   * Decrement.
-   */
-  Self& operator --();
-  /**
-   * Add
-   */
-  Self& operator +(int i);
-
-  /**
-   * Remove
-   */
-  Self& operator -(int i);
-  /**
-   * Difference comparison operator.
-   */
-  bool operator !=(const Self& it);
-  /**
-   * Equality comparison operator.
-   */
-  bool operator ==(const Self& it);
-  /**
-   * Instantiation operator.
-   */
-  Self& operator =(const Self& it);
-private:
-  // End
-  InternalIteratorType m_End;
-  // Internal iterator.
-  InternalIteratorType m_Iter;
-  // Input graph pointer
-  GraphPointerType m_Graph;
-};
-} // End namespace otb
-
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbRCC8VertexIterator.hxx"
-#endif
-
-#endif
diff --git a/Modules/OBIA/RCC8/include/otbRCC8VertexIterator.hxx b/Modules/OBIA/RCC8/include/otbRCC8VertexIterator.hxx
deleted file mode 100644
index 29d13da47d71fa201169c86f2c03f14a6fddbc21..0000000000000000000000000000000000000000
--- a/Modules/OBIA/RCC8/include/otbRCC8VertexIterator.hxx
+++ /dev/null
@@ -1,197 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbRCC8VertexIterator_hxx
-#define otbRCC8VertexIterator_hxx
-
-#include "otbRCC8VertexIterator.h"
-
-namespace otb
-{
-/**
- * Constructor
- */
-template <class TGraph>
-RCC8VertexIterator<TGraph>
-::RCC8VertexIterator()
-{
-  m_Graph = GraphType::New();
-  boost::tie(m_Iter, m_End) = boost::vertices(*(m_Graph->GetGraph()));
-}
-/**
- * Copy operator.
- */
-template <class TGraph>
-RCC8VertexIterator<TGraph>
-::RCC8VertexIterator(const Self& iter)
-{
-  m_Iter = iter.m_Iter;
-  m_Graph = iter.m_Graph;
-  m_End = iter.m_End;
-}
-/**
- *Constructor with input graph
- */
-template <class TGraph>
-RCC8VertexIterator<TGraph>
-::RCC8VertexIterator(TGraph * graph)
-{
-  m_Graph = graph;
-  boost::tie(m_Iter, m_End) = boost::vertices(*(m_Graph->GetGraph()));
-}
-/**
- * Get the current object.
- * \return The current object pointed by the iterator.
- */
-template <class TGraph>
-typename RCC8VertexIterator<TGraph>
-::VertexPointerType
-RCC8VertexIterator<TGraph>
-::Get(void)
-{
-  return (*(m_Graph->GetGraph()))[*m_Iter];
-}
-/**
- * Set the current vertex.
- * \param vertex The vertex to set.
- */
-template <class TGraph>
-void
-RCC8VertexIterator<TGraph>
-::Set(VertexPointerType vertex)
-{
-  (*(m_Graph->GetGraph()))[*m_Iter] = vertex;
-}
-/**
- * Get the current vertex index.
- * \return The current vertex index.
- */
-template <class TGraph>
-typename RCC8VertexIterator<TGraph>
-::VertexDescriptorType
-RCC8VertexIterator<TGraph>
-::GetIndex(void)
-{
-  IndexMapType index = get(boost::vertex_index, (*m_Graph->GetGraph()));
-  return index[*m_Iter];
-}
-/**
-  * Return true if the iterator is at the end.
-  * \return True if the iterator is at the end.
-  */
-template <class TGraph>
-bool
-RCC8VertexIterator<TGraph>
-::IsAtEnd(void)
-{
-  return (m_Iter == m_End);
-}
-/**
- * Go to the beginning.
- */
-template <class TGraph>
-void
-RCC8VertexIterator<TGraph>
-::GoToBegin(void)
-{
-  boost::tie(m_Iter, m_End) = boost::vertices(*(m_Graph->GetGraph()));
-}
-/**
- * Increment.
- */
-template <class TGraph>
-typename RCC8VertexIterator<TGraph>
-::Self&
-RCC8VertexIterator<TGraph>
-::operator++ ()
-  {
-  ++m_Iter;
-  return *this;
-  }
-/**
- * Decrement.
- */
-template <class TGraph>
-typename RCC8VertexIterator<TGraph>
-::Self&
-RCC8VertexIterator<TGraph>
-::operator-- ()
-  {
-  --m_Iter;
-  return *this;
-  }
-/**
- * Add
- */
-template <class TGraph>
-typename RCC8VertexIterator<TGraph>
-::Self&
-RCC8VertexIterator<TGraph>
-::operator + (int i)
-  {
-  m_Iter = m_Iter + i;
-  return *this;
-  }
-/**
- * Remove
- */
-template <class TGraph>
-typename RCC8VertexIterator<TGraph>
-::Self&
-RCC8VertexIterator<TGraph>
-::operator - (int i)
-  {
-  m_Iter = m_Iter - i;
-  return *this;
-  }
-/**
- * Difference comparison operator.
- */
-template <class TGraph>
-bool
-RCC8VertexIterator<TGraph>
-::operator != (const Self &iter)
-  {
-  return (m_Iter != iter.m_Iter);
-  }
-/**
- * Equality comparison operator.
- */
-template <class TGraph>
-bool
-RCC8VertexIterator<TGraph>
-::operator == (const Self &iter)
-  {
-  return (m_Iter == iter.m_Iter);
-  }
-/**
- * Instantiation operator.
- */
-template <class TGraph>
-typename RCC8VertexIterator<TGraph>
-::Self&
-RCC8VertexIterator<TGraph>
-::operator = (const Self &iter)
-  {
-  m_Iter = iter.m_Iter;
-  return *this;
-  }
-} // End namespace otb
-#endif
diff --git a/Modules/OBIA/RCC8/include/otbRCC8VertexWithCompacity.h b/Modules/OBIA/RCC8/include/otbRCC8VertexWithCompacity.h
deleted file mode 100644
index 8b87a877ad3b3c54111a4f66b9d4dd120cd36a62..0000000000000000000000000000000000000000
--- a/Modules/OBIA/RCC8/include/otbRCC8VertexWithCompacity.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbRCC8VertexWithCompacity_h
-#define otbRCC8VertexWithCompacity_h
-
-#include "otbRCC8VertexBase.h"
-
-namespace otb
-{
-/** \class RCC8VertexWithCompacity
- *  \brief Class to represent a vertex in a RCC8 Graph with the compacity value of
- *  the represented region.
- *
- * \sa RCC8Graph, RCC8Edge, RCC8VertexBase
- *
- * \ingroup OTBRCC8
- */
-template <class TPath, class TPrecision = float>
-class ITK_EXPORT RCC8VertexWithCompacity
-  : public RCC8VertexBase<TPath>
-{
-public:
-  /** Standard class typedefs */
-  typedef RCC8VertexWithCompacity       Self;
-  typedef otb::RCC8VertexBase<TPath>    Superclass;
-  typedef itk::SmartPointer<Self>       Pointer;
-  typedef itk::SmartPointer<const Self> ConstPointer;
-  /** Method for creation through the object factory. */
-  itkNewMacro(Self);
-  /** Run-time type information (and related methods). */
-  itkTypeMacro(RCC8VertexWithCompacity, RCC8VertexBase);
-  /** Input image associated typedefs*/
-  typedef TPath PathType;
-  /** Precision  typedef */
-  typedef TPrecision PrecisionType;
-  /** char* vector attributes */
-  typedef  typename Superclass::AttributesMapType AttributesMapType;
-
-  /** Segmentation image index accessors */
-  itkGetMacro(Compacity, PrecisionType);
-  itkSetMacro(Compacity, PrecisionType);
-  /**
-   * Set the VertexWithCompacity attributes from the attributes vector.
-   * \param attributes The vector containing the parsed attributes.
-   */
-  void SetAttributesMap(AttributesMapType attributes) override;
-  /**
-   * Get an attributes vector representing the VertexWithCompacity attributes.
-   * \return The attributes vector
-   */
-  AttributesMapType GetAttributesMap(void) override;
-
-protected:
-  /** Constructor */
-  RCC8VertexWithCompacity();
-  /** Desctructor */
-  ~RCC8VertexWithCompacity() override {}
-  /** PrintSelf method */
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-
-private:
-  /** The compacity */
-  PrecisionType m_Compacity;
-};
-} // end namespace otb
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbRCC8VertexWithCompacity.hxx"
-#endif
-
-#endif
diff --git a/Modules/OBIA/RCC8/include/otbRCC8VertexWithCompacity.hxx b/Modules/OBIA/RCC8/include/otbRCC8VertexWithCompacity.hxx
deleted file mode 100644
index 9ad40b3424598407c9686e51f24835f57ff3c6e8..0000000000000000000000000000000000000000
--- a/Modules/OBIA/RCC8/include/otbRCC8VertexWithCompacity.hxx
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbRCC8VertexWithCompacity_hxx
-#define otbRCC8VertexWithCompacity_hxx
-
-#include "otbRCC8VertexWithCompacity.h"
-
-namespace otb
-{
-/**
- * Constructor
- */
-template <class TPath, class TPrecision>
-RCC8VertexWithCompacity<TPath, TPrecision>
-::RCC8VertexWithCompacity()
-{
-  m_Compacity = 0.0;
-}
-/**
- * Set the VertexWithCompacity attributes from the attributes vector.
- * \param attributes The vector containing the parsed attributes.
- */
-template <class TPath, class TPrecision>
-void
-RCC8VertexWithCompacity<TPath, TPrecision>
-::SetAttributesMap(AttributesMapType attributes)
-{
-  this->Superclass::SetAttributesMap(attributes);
-  m_Compacity = static_cast<TPrecision>(atof(attributes["Compacity"].c_str()));
-}
-/**
- * Get an attributes vector representing the VertexBase attributes.
- * \return The attributes vector
- */
-template <class TPath, class TPrecision>
-typename RCC8VertexWithCompacity<TPath, TPrecision>::AttributesMapType
-RCC8VertexWithCompacity<TPath, TPrecision>
-::GetAttributesMap(void)
-{
-  std::stringstream oss;
-  AttributesMapType results;
-  results = this->Superclass::GetAttributesMap();
-  oss << m_Compacity;
-  results["Compacity"] = oss.str();
-  oss.str("");
-  return results;
-}
-/**
- * PrintSelf method
- */
-template <class TPath, class TPrecision>
-void
-RCC8VertexWithCompacity<TPath, TPrecision>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-  os << indent << "Compacity: " << m_Compacity << std::endl;
-}
-} // end namespace otb
-#endif
diff --git a/Modules/OBIA/RCC8/include/otbRCC8VertexWithRegionCenter.h b/Modules/OBIA/RCC8/include/otbRCC8VertexWithRegionCenter.h
deleted file mode 100644
index 6916c936f5fb7c376123c59e0801fb9623cd8105..0000000000000000000000000000000000000000
--- a/Modules/OBIA/RCC8/include/otbRCC8VertexWithRegionCenter.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbRCC8VertexWithRegionCenter_h
-#define otbRCC8VertexWithRegionCenter_h
-
-#include "otbRCC8VertexBase.h"
-
-namespace otb
-{
-/** \class RCC8VertexWithRegionCenter
- *  \brief Class to represent a vertex in a RCC8 Graph with the compacity value of
- *  the represented region.
- *
- * \sa RCC8Graph, RCC8Edge, RCC8VertexBase
- *
- * \ingroup OTBRCC8
- */
-template <class TLabel, class TPrecision = float>
-class ITK_EXPORT RCC8VertexWithRegionCenter
-  : public RCC8VertexBase<TLabel>
-{
-public:
-  /** Standard class typedefs */
-  typedef RCC8VertexWithRegionCenter    Self;
-  typedef otb::RCC8VertexBase<TLabel>   Superclass;
-  typedef itk::SmartPointer<Self>       Pointer;
-  typedef itk::SmartPointer<const Self> ConstPointer;
-  /** Method for creation through the object factory. */
-  itkNewMacro(Self);
-  /** Run-time type information (and related methods). */
-  itkTypeMacro(RCC8VertexWithRegionCenter, RCC8VertexBase);
-  /** Input image associated typedefs*/
-  typedef TLabel LabelType;
-  /** Precision  typedef */
-  typedef TPrecision PrecisionType;
-  /** char* vector attributes */
-  typedef  typename Superclass::AttributesMapType AttributesMapType;
-
-  itkGetMacro(RegionCenterXCoordinate, PrecisionType);
-  itkSetMacro(RegionCenterXCoordinate, PrecisionType);
-  itkGetMacro(RegionCenterYCoordinate, PrecisionType);
-  itkSetMacro(RegionCenterYCoordinate, PrecisionType);
-  /**
-   * Set the VertexWithRegionCenter attributes from the attributes vector.
-   * \param attributes The vector containing the parsed attributes.
-   */
-  void SetAttributesMap(AttributesMapType attributes);
-  /**
-   * Get an attributes vector representing the VertexWithRegionCenter attributes.
-   * \return The attributes vector
-   */
-  AttributesMapType GetAttributesMap(void);
-
-protected:
-  /** Constructor */
-  RCC8VertexWithRegionCenter();
-  /** Desctructor */
-  ~RCC8VertexWithRegionCenter() {}
-  /** PrintSelf method */
-  void PrintSelf(std::ostream& os, itk::Indent indent) const;
-
-private:
-  /** The compacity */
-  PrecisionType m_RegionCenterXCoordinate;
-  PrecisionType m_RegionCenterYCoordinate;
-};
-} // end namespace otb
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbRCC8VertexWithRegionCenter.hxx"
-#endif
-
-#endif
diff --git a/Modules/OBIA/RCC8/include/otbRCC8VertexWithRegionCenter.hxx b/Modules/OBIA/RCC8/include/otbRCC8VertexWithRegionCenter.hxx
deleted file mode 100644
index 42f9c3adc5872e069ebefc923dec5faf5578069b..0000000000000000000000000000000000000000
--- a/Modules/OBIA/RCC8/include/otbRCC8VertexWithRegionCenter.hxx
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbRCC8VertexWithRegionCenter_hxx
-#define otbRCC8VertexWithRegionCenter_hxx
-
-#include "otbRCC8VertexWithRegionCenter.h"
-
-namespace otb
-{
-/**
- * Constructor
- */
-template <class TLabel, class TPrecision>
-RCC8VertexWithRegionCenter<TLabel, TPrecision>
-::RCC8VertexWithRegionCenter()
-{
-  m_RegionCenterXCoordinate = 0.0;
-  m_RegionCenterYCoordinate = 0.0;
-}
-/**
- * Set the VertexWithRegionCenter attributes from the attributes vector.
- * \param attributes The vector containing the parsed attributes.
- */
-template <class TLabel, class TPrecision>
-void
-RCC8VertexWithRegionCenter<TLabel, TPrecision>
-::SetAttributesMap(AttributesMapType attributes)
-{
-  this->Superclass::SetAttributesMap(attributes);
-  m_RegionCenterXCoordinate = static_cast<TPrecision>(atof(attributes["RegionCenterXCoordinate"].c_str()));
-  m_RegionCenterYCoordinate = static_cast<TPrecision>(atof(attributes["RegionCenterYCoordinate"].c_str()));
-}
-/**
- * Get an attributes vector representing the VertexBase attributes.
- * \return The attributes vector
- */
-template <class TLabel, class TPrecision>
-typename RCC8VertexWithRegionCenter<TLabel, TPrecision>::AttributesMapType
-RCC8VertexWithRegionCenter<TLabel, TPrecision>
-::GetAttributesMap(void)
-{
-  std::stringstream oss;
-  AttributesMapType results;
-  results = this->Superclass::GetAttributesMap();
-  oss << m_RegionCenterXCoordinate;
-  results["RegionCenterXCoordinate"] = oss.str();
-  oss.str("");
-  oss << m_RegionCenterYCoordinate;
-  results["RegionCenterYCoordinate"] = oss.str();
-  oss.str("");
-  return results;
-}
-/**
- * PrintSelf method
- */
-template <class TLabel, class TPrecision>
-void
-RCC8VertexWithRegionCenter<TLabel, TPrecision>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-  os << indent << "RegionCenterXCoordinate: " << m_RegionCenterXCoordinate << std::endl;
-  os << indent << "RegionCenterXCoordinate: " << m_RegionCenterYCoordinate << std::endl;
-}
-} // end namespace otb
-#endif
diff --git a/Modules/OBIA/RCC8/otb-module.cmake b/Modules/OBIA/RCC8/otb-module.cmake
deleted file mode 100644
index 5e9a368a74170e6094b54479d9477820fd6e7511..0000000000000000000000000000000000000000
--- a/Modules/OBIA/RCC8/otb-module.cmake
+++ /dev/null
@@ -1,45 +0,0 @@
-#
-# Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
-#
-# This file is part of Orfeo Toolbox
-#
-#     https://www.orfeo-toolbox.org/
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-set(DOCUMENTATION "The region connection calculus (RCC) is used for qualitative
-spatial representation and . RCC abstractly describes regions by their possible
-relations to each other (8 basic relations are possible between two regions). The
-RCC8 constraint language has been popularly adopted by the GIS communities. This
-module provides classes related to this purpose.")
-
-otb_module(OTBRCC8
-  DEPENDS
-    OTBITK
-    OTBImageBase
-    OTBRoadExtraction
-    OTBImageManipulation
-    OTBPath
-    OTBCommon
-    OTBBoostAdapters
-    OTBObjectList
-
-  TEST_DEPENDS
-    OTBVectorDataBase
-    OTBTestKernel
-    OTBImageIO
-
-  DESCRIPTION
-    "${DOCUMENTATION}"
-)
diff --git a/Modules/OBIA/RCC8/src/CMakeLists.txt b/Modules/OBIA/RCC8/src/CMakeLists.txt
deleted file mode 100644
index 1b18d1544cc6d894fe150c1c4efa644f2b875ae1..0000000000000000000000000000000000000000
--- a/Modules/OBIA/RCC8/src/CMakeLists.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-#
-# Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
-#
-# This file is part of Orfeo Toolbox
-#
-#     https://www.orfeo-toolbox.org/
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-set(OTBRCC8_SRC
-  otbRCC8Edge.cxx
-  )
-
-add_library(OTBRCC8 ${OTBRCC8_SRC})
-target_link_libraries(OTBRCC8 
-  ${OTBImageManipulation_LIBRARIES}
-  ${OTBImageBase_LIBRARIES}
-  ${OTBCommon_LIBRARIES}
-  ${OTBBoost_LIBRARIES}
-
-  )
-
-otb_module_target(OTBRCC8)
diff --git a/Modules/OBIA/RCC8/src/otbRCC8Edge.cxx b/Modules/OBIA/RCC8/src/otbRCC8Edge.cxx
deleted file mode 100644
index 361123310263e7d8c2b4165490e2cc799fd21f0a..0000000000000000000000000000000000000000
--- a/Modules/OBIA/RCC8/src/otbRCC8Edge.cxx
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#include "otbRCC8Edge.h"
-
-namespace otb
-{
-/**
- * Constructor
- */
-RCC8Edge::RCC8Edge()
-{
-  m_Value = OTB_RCC8_DC;
-}
-/**
- * PrintSelf method
- */
-void
-RCC8Edge::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-  os << indent << "RCC8 Value: " << m_Value << std::endl;
-}
-} // end namespace otb
diff --git a/Modules/OBIA/RCC8/test/CMakeLists.txt b/Modules/OBIA/RCC8/test/CMakeLists.txt
deleted file mode 100644
index 72b127feda0de107037af29017097f9bbde8b9c1..0000000000000000000000000000000000000000
--- a/Modules/OBIA/RCC8/test/CMakeLists.txt
+++ /dev/null
@@ -1,170 +0,0 @@
-#
-# Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
-#
-# This file is part of Orfeo Toolbox
-#
-#     https://www.orfeo-toolbox.org/
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-otb_module_test()
-
-set(OTBRCC8Tests
-otbRCC8TestDriver.cxx
-otbRCC8GraphFileReader.cxx
-otbRCC8GraphIOEndToEnd.cxx
-otbPolygonListToRCC8GraphFilter.cxx
-otbRCC8VertexBase.cxx
-otbPolygonToPolygonRCC8Calculator.cxx
-otbImageToImageRCC8Calculator.cxx
-otbRCC8Edge.cxx
-otbRCC8VertexWithCompacity.cxx
-otbRCC8Graph.cxx
-otbRCC8GraphFileWriter.cxx
-otbImageMultiSegmentationToRCC8GraphFilter.cxx
-)
-
-add_executable(otbRCC8TestDriver ${OTBRCC8Tests})
-target_link_libraries(otbRCC8TestDriver ${OTBRCC8-Test_LIBRARIES})
-otb_module_target_label(otbRCC8TestDriver)
-
-# Tests Declaration
-
-otb_add_test(NAME srTvRCC8GraphFileReader COMMAND otbRCC8TestDriver
-  otbRCC8GraphFileReader
-  ${TEMP}/srRCC8GraphWriterOutput1.dot
-  )
-set_property(TEST srTvRCC8GraphFileReader PROPERTY DEPENDS srTvRCC8GraphFileWriter)
-
-otb_add_test(NAME srTvRCC8GraphIOEndToEnd COMMAND otbRCC8TestDriver
-  --compare-ascii        ${NOTOL}
-  ${BASELINE_FILES}/srRCC8GraphWriterOutput1.dot
-  ${TEMP}/srRCC8GraphIOEndToEndOut.dot
-  otbRCC8GraphIOEndToEnd
-  ${BASELINE_FILES}/srRCC8GraphWriterOutput1.dot
-  ${TEMP}/srRCC8GraphIOEndToEndOut.dot
-  )
-
-otb_add_test(NAME srTvPolygonListToRCC8GraphFilter COMMAND otbRCC8TestDriver
-  --compare-ascii ${NOTOL}
-  ${BASELINE_FILES}/srTvPolygonListToRCC8GraphFilterOutput.dot
-  ${TEMP}/srTvPolygonListToRCC8GraphFilterOutput.dot
-  otbPolygonListToRCC8GraphFilter
-  ${TEMP}/srTvPolygonListToRCC8GraphFilterOutput.dot)
-
-otb_add_test(NAME srTvRCC8VertexBase COMMAND otbRCC8TestDriver
-  otbRCC8VertexBase
-  5
-  5
-  )
-
-otb_add_test(NAME srTvPolygonRCC8Calculator COMMAND otbRCC8TestDriver
-  --compare-ascii ${NOTOL}
-  ${BASELINE_FILES}/srRCC8PolygonToPolygonCalculatorOutput.txt
-  ${TEMP}/srRCC8PolygonToPolygonCalculatorOutput.txt
-  otbPolygonToPolygonRCC8Calculator
-  4
-  ${TEMP}/srRCC8PolygonToPolygonCalculatorOutput.txt
-  ${INPUTDATA}/rcc8_mire1.png
-  ${INPUTDATA}/rcc8_mire2.png
-  ${INPUTDATA}/rcc8_mire3.png
-  ${INPUTDATA}/rcc8_mire4.png
-  )
-
-otb_add_test(NAME srTvRCC8Calculator COMMAND otbRCC8TestDriver
-  --compare-ascii ${NOTOL}
-  ${BASELINE_FILES}/srRCC8CalculatorOutput.txt
-  ${TEMP}/srRCC8CalculatorOutput.txt
-  otbImageToImageRCC8Calculator
-  4
-  ${TEMP}/srRCC8CalculatorOutput.txt
-  ${INPUTDATA}/rcc8_mire1.png
-  ${INPUTDATA}/rcc8_mire2.png
-  ${INPUTDATA}/rcc8_mire3.png
-  ${INPUTDATA}/rcc8_mire4.png
-  )
-
-otb_add_test(NAME srTvRCC8Edge COMMAND otbRCC8TestDriver
-  otbRCC8Edge
-  )
-
-otb_add_test(NAME srTvRCC8VertexWithCompacity COMMAND otbRCC8TestDriver
-  otbRCC8VertexWithCompacity
-  5
-  5
-  0.125354
-  )
-
-otb_add_test(NAME srTvRCC8Graph COMMAND otbRCC8TestDriver
-  otbRCC8Graph
-  )
-
-otb_add_test(NAME srTvRCC8GraphFileWriter COMMAND otbRCC8TestDriver
-  --compare-ascii        ${NOTOL}
-  ${BASELINE_FILES}/srRCC8GraphWriterOutput1.dot
-  ${TEMP}/srRCC8GraphWriterOutput1.dot
-  otbRCC8GraphFileWriter
-  ${TEMP}/srRCC8GraphWriterOutput1.dot
-  )
-
-otb_add_test(NAME srTvMultiSegToRCC8GraphFilter1 COMMAND otbRCC8TestDriver
-  --compare-ascii        ${NOTOL}
-  ${BASELINE_FILES}/srRCC8GraphFilterOutput.dot
-  ${TEMP}/srRCC8GraphFilterOutput.dot
-  otbImageMultiSegmentationToRCC8GraphFilter
-  ${TEMP}/srRCC8GraphFilterOutput.dot
-  0
-  2
-  ${INPUTDATA}/Seg1InputForRCC8Graph.tif
-  ${INPUTDATA}/Seg2InputForRCC8Graph.tif
-  )
-
-otb_add_test(NAME srTvMultiSegToRCC8GraphFilter2 COMMAND otbRCC8TestDriver
-  --compare-ascii ${NOTOL}
-  ${BASELINE_FILES}/srRCC8GraphFilterOutput2.dot
-  ${TEMP}/srRCC8GraphFilterOutput2.dot
-  otbImageMultiSegmentationToRCC8GraphFilter
-  ${TEMP}/srRCC8GraphFilterOutput2.dot
-  0
-  3
-  ${INPUTDATA}/Seg3InputForRCC8Graph.tif
-  ${INPUTDATA}/Seg4InputForRCC8Graph.tif
-  ${INPUTDATA}/Seg5InputForRCC8Graph.tif
-  )
-
-otb_add_test(NAME srTvMultiSegToRCC8GraphFilter2WithOpti COMMAND otbRCC8TestDriver
-  --compare-ascii ${NOTOL}
-  ${BASELINE_FILES}/srRCC8GraphFilterOutput2.dot
-  ${TEMP}/srRCC8GraphFilterOutput2WithOpti.dot
-  otbImageMultiSegmentationToRCC8GraphFilter
-  ${TEMP}/srRCC8GraphFilterOutput2WithOpti.dot
-  1
-  3
-  ${INPUTDATA}/Seg3InputForRCC8Graph.tif
-  ${INPUTDATA}/Seg4InputForRCC8Graph.tif
-  ${INPUTDATA}/Seg5InputForRCC8Graph.tif
-  )
-
-otb_add_test(NAME srTvMultiSegToRCC8GraphFilter1WithOpti COMMAND otbRCC8TestDriver
-  --compare-ascii        ${NOTOL}
-  ${BASELINE_FILES}/srRCC8GraphFilterOutput.dot
-  ${TEMP}/srRCC8GraphFilterOutputWithOpti.dot
-  otbImageMultiSegmentationToRCC8GraphFilter
-  ${TEMP}/srRCC8GraphFilterOutputWithOpti.dot
-  1
-  2
-  ${INPUTDATA}/Seg1InputForRCC8Graph.tif
-  ${INPUTDATA}/Seg2InputForRCC8Graph.tif
-  )
-
diff --git a/Modules/OBIA/RCC8/test/otbImageMultiSegmentationToRCC8GraphFilter.cxx b/Modules/OBIA/RCC8/test/otbImageMultiSegmentationToRCC8GraphFilter.cxx
deleted file mode 100644
index b212a1a3ff8e28f4d3d77959fb6765fdac815625..0000000000000000000000000000000000000000
--- a/Modules/OBIA/RCC8/test/otbImageMultiSegmentationToRCC8GraphFilter.cxx
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "otbImageList.h"
-#include "otbPolygon.h"
-#include "otbRCC8VertexBase.h"
-#include "otbImageMultiSegmentationToRCC8GraphFilter.h"
-#include "otbImageFileReader.h"
-#include "otbRCC8GraphFileWriter.h"
-
-int otbImageMultiSegmentationToRCC8GraphFilter(int itkNotUsed(argc), char* argv[])
-{
-  const unsigned int Dimension = 2;
-  char *             outputFilename = argv[1];
-  int                useOptimisation = atoi(argv[2]);
-  unsigned int       nbImages = atoi(argv[3]);
-
-  // typedefs
-  typedef unsigned short                        LabelPixelType;
-  typedef otb::Image<LabelPixelType, Dimension> LabelImageType;
-  typedef otb::Polygon<>                        PolygonType;
-  typedef otb::RCC8VertexBase<PolygonType>      VertexType;
-  typedef otb::RCC8Graph<VertexType>            RCC8GraphType;
-  typedef otb::ImageMultiSegmentationToRCC8GraphFilter<LabelImageType, RCC8GraphType>
-  RCC8GraphFilterType;
-  typedef otb::ImageList<LabelImageType>          ImageListType;
-  typedef otb::ImageFileReader<LabelImageType>    ReaderType;
-  typedef otb::RCC8GraphFileWriter<RCC8GraphType> GraphWriterType;
-
-  ImageListType::Pointer inputList = ImageListType::New();
-
-  // Reading input images
-  for (unsigned int i = 0; i < nbImages; ++i)
-    {
-    ReaderType::Pointer reader = ReaderType::New();
-    reader->SetFileName(argv[4 + i]);
-    reader->Update();
-    inputList->PushBack(reader->GetOutput());
-    }
-  std::cout << "Input image loaded into images list." << std::endl;
-  // Instantiation
-  RCC8GraphFilterType::Pointer filter = RCC8GraphFilterType::New();
-  filter->SetInput(inputList);
-  filter->SetOptimisation(useOptimisation > 0);
-
-  // Writing output graph
-  GraphWriterType::Pointer writer = GraphWriterType::New();
-  writer->SetFileName(outputFilename);
-  writer->SetInput(filter->GetOutput());
-  writer->Update();
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/OBIA/RCC8/test/otbImageToImageRCC8Calculator.cxx b/Modules/OBIA/RCC8/test/otbImageToImageRCC8Calculator.cxx
deleted file mode 100644
index 0a5d2e1f1c86ac6317c7c83a35d9711b73904d6c..0000000000000000000000000000000000000000
--- a/Modules/OBIA/RCC8/test/otbImageToImageRCC8Calculator.cxx
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "itkMacro.h"
-#include "otbImageToImageRCC8Calculator.h"
-#include "otbImageList.h"
-#include "otbImageFileReader.h"
-
-int otbImageToImageRCC8Calculator(int itkNotUsed(argc), char* argv[])
-{
-  const unsigned int Dimension = 2;
-
-  int    nbImages  = atoi(argv[1]);
-  char * outfile   = argv[2];
-
-  typedef unsigned char                              PixelType;
-  typedef otb::Image<PixelType, Dimension>           ImageType;
-  typedef otb::ImageFileReader<ImageType>            ReaderType;
-  typedef otb::ImageToImageRCC8Calculator<ImageType> CalculatorType;
-  typedef otb::ImageList<ImageType>                  ImageListType;
-  typedef ImageListType::Iterator                    IteratorType;
-  // reference image list
-  ImageListType::Pointer images = ImageListType::New();
-
-  // Reading input images
-  std::ofstream out;
-  out.open(outfile, std::ios::out);
-  out << "Test results from otbImageToImageRCC8calculator test." << std::endl;
-  for (int k = 1; k <= nbImages; ++k)
-    {
-    ReaderType::Pointer reader = ReaderType::New();
-    reader->SetFileName(argv[2 + k]);
-    reader->Update();
-    images->PushBack(reader->GetOutput());
-    }
-  // Declaration
-  CalculatorType::Pointer calc, calc1, calc2;
-  // Computing relations for each images couple
-  int i = 1;
-  int j = 1;
-  for (IteratorType it1 = images->Begin(); it1 != images->End(); ++it1)
-    {
-    for (IteratorType it2 = images->Begin(); it2 != images->End(); ++it2)
-      {
-      std::cout << "Test: computing relation " << i << "," << j << std::endl;
-      calc = CalculatorType::New();
-      calc->SetInput1(it1.Get());
-      calc->SetInput2(it2.Get());
-      calc->Update();
-      out << calc->GetValue() << "\t";
-
-      if (calc->GetValue() < 3
-          || calc->GetValue() == 4
-          || calc->GetValue() == 6)
-        {
-        calc1 = CalculatorType::New();
-        calc1->SetInput1(it1.Get());
-        calc1->SetInput2(it2.Get());
-        calc1->SetLevel1APrioriKnowledge(true);
-        calc1->Update();
-        if (calc1->GetValue() != calc->GetValue())
-          {
-          std::cout << "Test failed: Result with level1AprioriKnowledge ";
-          std::cout << "different from result without a priori knowledge" << std::endl;
-          std::cout << calc->GetValue() << "!=" << calc1->GetValue() << std::endl;
-          return EXIT_FAILURE;
-          }
-        }
-      if (calc->GetValue() < 4)
-        {
-        calc2 = CalculatorType::New();
-        calc2->SetInput1(it1.Get());
-        calc2->SetInput2(it2.Get());
-        calc2->SetLevel3APrioriKnowledge(true);
-        calc2->Update();
-        if (calc2->GetValue() != calc->GetValue())
-          {
-          std::cout << "Test failed: Result with level3AprioriKnowledge ";
-          std::cout << "different from result without a priori knowledge" << std::endl;
-          std::cout << calc->GetValue() << "!=" << calc2->GetValue() << std::endl;
-          return EXIT_FAILURE;
-          }
-        }
-      ++j;
-      }
-    j = 1;
-    ++i;
-    out << std::endl;
-    }
-  out.close();
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/OBIA/RCC8/test/otbPolygonListToRCC8GraphFilter.cxx b/Modules/OBIA/RCC8/test/otbPolygonListToRCC8GraphFilter.cxx
deleted file mode 100644
index fd136fba08b08afb0be9a7e6ed23acf0ca4d9d6c..0000000000000000000000000000000000000000
--- a/Modules/OBIA/RCC8/test/otbPolygonListToRCC8GraphFilter.cxx
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "otbPolygon.h"
-#include "otbObjectList.h"
-#include "otbRCC8VertexBase.h"
-#include "otbPolygonListToRCC8GraphFilter.h"
-#include "otbRCC8GraphFileWriter.h"
-
-// typedefs
-typedef otb::Polygon<>                                                    PolygonType;
-typedef otb::ObjectList<PolygonType>                                      PolygonListType;
-typedef otb::RCC8VertexBase<PolygonType>                                  VertexType;
-typedef otb::RCC8Graph<VertexType>                                        RCC8GraphType;
-typedef otb::PolygonListToRCC8GraphFilter<PolygonListType, RCC8GraphType> RCC8GraphFilterType;
-typedef otb::RCC8GraphFileWriter<RCC8GraphType>                           GraphWriterType;
-
-
-PolygonType::VertexType Vertex(double i,double j)
-{
-  PolygonType::VertexType vertex;
-  vertex[0] = i;
-  vertex[1] = j;
-
-  return vertex;
-}
-
-
-int otbPolygonListToRCC8GraphFilter(int itkNotUsed(argc), char* argv[])
-{
-  char * outfile = argv[1];
-
-  PolygonListType::Pointer regions = PolygonListType::New();
-
-  RCC8GraphFilterType::SegmentationRangesType ranges;
-
-  ranges.push_back(0);
-
-  PolygonType::Pointer polygon = PolygonType::New();
-  polygon->AddVertex(Vertex(0,0));
-  polygon->AddVertex(Vertex(2,0));
-  polygon->AddVertex(Vertex(2,6));
-  polygon->AddVertex(Vertex(0,6));
-  regions->PushBack(polygon);
-
-  polygon = PolygonType::New();
-  polygon->AddVertex(Vertex(1,1));
-  polygon->AddVertex(Vertex(4,1));
-  polygon->AddVertex(Vertex(4,5));
-  polygon->AddVertex(Vertex(1,5));
-  regions->PushBack(polygon);
-
-  ranges.push_back(2);
-
-  polygon = PolygonType::New();
-  polygon->AddVertex(Vertex(3,1));
-  polygon->AddVertex(Vertex(4,1));
-  polygon->AddVertex(Vertex(4,2));
-  polygon->AddVertex(Vertex(3,2));
-  regions->PushBack(polygon);
-
-  polygon = PolygonType::New();
-  polygon->AddVertex(Vertex(5,1));
-  polygon->AddVertex(Vertex(8,1));
-  polygon->AddVertex(Vertex(8,5));
-  polygon->AddVertex(Vertex(5,5));
-  regions->PushBack(polygon);
-
-  ranges.push_back(4);
-
-  polygon = PolygonType::New();
-  polygon->AddVertex(Vertex(6,2));
-  polygon->AddVertex(Vertex(7,2));
-  polygon->AddVertex(Vertex(7,3));
-  polygon->AddVertex(Vertex(6,3));
-  regions->PushBack(polygon);
-
-  polygon = PolygonType::New();
-  polygon->AddVertex(Vertex(8,1));
-  polygon->AddVertex(Vertex(9,1));
-  polygon->AddVertex(Vertex(9,5));
-  polygon->AddVertex(Vertex(8,5));
-  regions->PushBack(polygon);
-
-  // Filter instantiation
-  RCC8GraphFilterType::Pointer filter = RCC8GraphFilterType::New();
-
-  filter->SetInput(regions);
-  filter->SetSegmentationRanges(ranges);
-
-  GraphWriterType::Pointer writer = GraphWriterType::New();
-  writer->SetInput(filter->GetOutput());
-  writer->SetFileName(outfile);
-  writer->Update();
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/OBIA/RCC8/test/otbPolygonToPolygonRCC8Calculator.cxx b/Modules/OBIA/RCC8/test/otbPolygonToPolygonRCC8Calculator.cxx
deleted file mode 100644
index 3f3aa4a6c1f9c203a7e0ae98d4b710a68786c9db..0000000000000000000000000000000000000000
--- a/Modules/OBIA/RCC8/test/otbPolygonToPolygonRCC8Calculator.cxx
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "itkMacro.h"
-#include "otbPolygonToPolygonRCC8Calculator.h"
-#include "otbImageFileReader.h"
-#include "otbPolygon.h"
-#include "otbImageToEdgePathFilter.h"
-#include "otbSimplifyPathListFilter.h"
-
-int otbPolygonToPolygonRCC8Calculator(int itkNotUsed(argc), char* argv[])
-{
-  const unsigned int Dimension = 2;
-
-  int    nbImages  = atoi(argv[1]);
-  char * outfile   = argv[2];
-
-  typedef unsigned char                                      PixelType;
-  typedef otb::Polygon<>                                     PolygonType;
-  typedef otb::Image<PixelType, Dimension>                   ImageType;
-  typedef otb::ImageToEdgePathFilter<ImageType, PolygonType> EdgeExtractionFilterType;
-  typedef otb::SimplifyPathListFilter<PolygonType>           SimplifyPathFilterType;
-  typedef SimplifyPathFilterType::InputListType              PathListType;
-  typedef otb::ImageFileReader<ImageType>                    ReaderType;
-  typedef otb::PolygonToPolygonRCC8Calculator<PolygonType>   CalculatorType;
-
-  PolygonType::Pointer path = PolygonType::New();
-
-  PolygonType::ContinuousIndexType a1, a2, a3, a4, a5, a6, a7;
-
-  a1[0] = 0;
-  a1[1] = 0;
-  a2[0] = 10;
-  a2[1] = 0;
-  a3[0] = 10;
-  a3[1] = 10;
-  a4[0] = 10;
-  a4[1] = 0;
-
-  a5[0] = 5;
-  a5[1] = 5;
-
-  a6[0] = 5;
-  a6[1] = 0;
-
-  a7[0] = 100;
-  a7[1] = 100;
-
-  path->AddVertex(a1);
-  path->AddVertex(a2);
-  path->AddVertex(a3);
-  path->AddVertex(a4);
-
-  CalculatorType::Pointer calc = CalculatorType::New();
-
-  typedef PathListType::Iterator IteratorType;
-
-  // reference image list
-  PathListType::Pointer regions = PathListType::New();
-
-  // Reading input images
-  std::ofstream out;
-  out.open(outfile, std::ios::out);
-  out << "Test results from otbPolygonToPolygonRCC8calculator test." << std::endl;
-  for (int cpt = 1; cpt <= nbImages; ++cpt)
-    {
-    ReaderType::Pointer reader = ReaderType::New();
-    reader->SetFileName(argv[2 + cpt]);
-    EdgeExtractionFilterType::Pointer extraction = EdgeExtractionFilterType::New();
-    extraction->SetInput(reader->GetOutput());
-    extraction->SetForegroundValue(255);
-    extraction->Update();
-    regions->PushBack(extraction->GetOutput());
-    }
-
-  SimplifyPathFilterType::Pointer simplifier = SimplifyPathFilterType::New();
-  simplifier->SetInput(regions);
-  simplifier->GetFunctor().SetTolerance(0.1);
-  simplifier->Update();
-
-  // Declaration
-  CalculatorType::Pointer calc1, calc2, calc3;
-  // Computing relations for each images couple
-  unsigned int i = 1;
-  unsigned int j = 1;
-  for (IteratorType it1 = simplifier->GetOutput()->Begin(); it1 != simplifier->GetOutput()->End(); ++it1)
-    {
-    for (IteratorType it2 = simplifier->GetOutput()->Begin(); it2 != simplifier->GetOutput()->End(); ++it2)
-      {
-      std::cout << "Test: computing relation " << i << "," << j << std::endl;
-      calc1 = CalculatorType::New();
-      calc1->SetPolygon1(it1.Get());
-      calc1->SetPolygon2(it2.Get());
-      calc1->Compute();
-      out << calc1->GetValue() << "\t";
-      std::cout << "Result without a priori knowledge " << calc1->GetValue() << std::endl;
-
-      if (calc1->GetValue() < 3
-          || calc1->GetValue() == 4
-          || calc1->GetValue() == 6)
-        {
-        calc2 = CalculatorType::New();
-        calc2->SetPolygon1(it1.Get());
-        calc2->SetPolygon2(it2.Get());
-        calc2->SetLevel1APrioriKnowledge(true);
-        calc2->Compute();
-        std::cout << "Result with level1 a priori knowledge " << calc2->GetValue() << std::endl;
-        if (calc2->GetValue() != calc1->GetValue())
-          {
-          std::cout << "Test failed: Result with level1AprioriKnowledge ";
-          std::cout << "different from result without a priori knowledge" << std::endl;
-          std::cout << calc1->GetValue() << "!=" << calc2->GetValue() << std::endl;
-          return EXIT_FAILURE;
-          }
-        }
-      if (calc1->GetValue() < 4)
-        {
-        calc3 = CalculatorType::New();
-        calc3->SetPolygon1(it1.Get());
-        calc3->SetPolygon2(it2.Get());
-        calc3->SetLevel3APrioriKnowledge(true);
-        calc3->Compute();
-        std::cout << "Result with level3 a priori knowledge " << calc3->GetValue() << std::endl;
-        if (calc3->GetValue() != calc1->GetValue())
-          {
-          std::cout << "Test failed: Result with level3AprioriKnowledge ";
-          std::cout << "different from result without a priori knowledge" << std::endl;
-          std::cout << calc1->GetValue() << "!=" << calc3->GetValue() << std::endl;
-          return EXIT_FAILURE;
-          }
-        }
-      ++j;
-      }
-    j = 1;
-    ++i;
-    out << std::endl;
-    }
-  out.close();
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/OBIA/RCC8/test/otbRCC8Edge.cxx b/Modules/OBIA/RCC8/test/otbRCC8Edge.cxx
deleted file mode 100644
index 31087db07704262c17156a98e79155651fbbc707..0000000000000000000000000000000000000000
--- a/Modules/OBIA/RCC8/test/otbRCC8Edge.cxx
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "itkMacro.h"
-#include "otbRCC8Edge.h"
-#include <cstdlib>
-
-int otbRCC8Edge(int itkNotUsed(argc), char * itkNotUsed(argv) [])
-{
-  typedef otb::RCC8Edge               RCC8EdgeType;
-  typedef RCC8EdgeType::RCC8ValueType RCC8ValueType;
-  RCC8ValueType value = otb::OTB_RCC8_DC;
-
-  // Instantiation
-  RCC8EdgeType::Pointer edge = RCC8EdgeType::New();
-  edge->SetValue(value);
-
-  if (edge->GetValue() != value)
-    {
-    std::cout << "Test failed: edge->GetValue()!=value" << std::endl;
-    return EXIT_FAILURE;
-    }
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/OBIA/RCC8/test/otbRCC8Graph.cxx b/Modules/OBIA/RCC8/test/otbRCC8Graph.cxx
deleted file mode 100644
index 47e5bb08efc4b453abf16a9ab4d0c495b80ed239..0000000000000000000000000000000000000000
--- a/Modules/OBIA/RCC8/test/otbRCC8Graph.cxx
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "otbRCC8VertexBase.h"
-#include "otbRCC8VertexIterator.h"
-#include "otbRCC8EdgeIterator.h"
-#include "otbRCC8InEdgeIterator.h"
-#include "otbRCC8OutEdgeIterator.h"
-#include "otbMacro.h"
-#include "otbPolygon.h"
-
-int otbRCC8Graph(int itkNotUsed(argc), char * itkNotUsed(argv) [])
-{
-  const unsigned int nbVertices = 2;
-  typedef otb::Polygon<>                          PathType;
-  typedef PathType::VertexType                    PointType;
-  typedef otb::RCC8VertexBase<PathType>           VertexType;
-  typedef otb::RCC8Graph<VertexType>              RCC8GraphType;
-  typedef otb::RCC8VertexIterator<RCC8GraphType>  VertexIteratorType;
-  typedef otb::RCC8EdgeIterator<RCC8GraphType>    EdgeIteratorType;
-
-  // Instantiation
-  RCC8GraphType::Pointer rcc8Graph = RCC8GraphType::New();
-  // Setting the number of vertices
-  rcc8Graph->SetNumberOfVertices(nbVertices - 1);
-  // Call to the build method
-  rcc8Graph->Build();
-
-  PointType p1, p2, p3, p4, p5, p6;
-
-  p1[0] = 0;
-  p1[1] = 0;
-  p2[0] = 10;
-  p2[1] = 10;
-  p3[0] = 10;
-  p3[1] = 0;
-  p4[0] = 20;
-  p4[1] = 20;
-  p5[0] = 20;
-  p5[1] = 10;
-  p6[0] = 10;
-  p6[1] = 20;
-
-  unsigned int vertex1SegLevel = 0;
-  unsigned int vertex2SegLevel = 10;
-  bool         vertex1SegType = true;
-  bool         vertex2SegType = false;
-
-  PathType::Pointer path1 = PathType::New();
-  path1->AddVertex(p1);
-  path1->AddVertex(p2);
-  path1->AddVertex(p3);
-
-  VertexType::Pointer vertex1 = VertexType::New();
-  vertex1->SetSegmentationLevel(vertex1SegLevel);
-  vertex1->SetSegmentationType(vertex1SegType);
-  vertex1->SetPath(path1);
-
-  PathType::Pointer path2 = PathType::New();
-  path2->AddVertex(p4);
-  path2->AddVertex(p5);
-  path2->AddVertex(p6);
-
-  VertexType::Pointer vertex2 = VertexType::New();
-  vertex2->SetSegmentationLevel(vertex2SegLevel);
-  vertex2->SetSegmentationType(vertex2SegType);
-  vertex2->SetPath(path2);
-
-  rcc8Graph->SetVertex(0, vertex1);
-  rcc8Graph->SetVertex(1, vertex2);
-
-  otbControlConditionTestMacro(rcc8Graph->GetNumberOfVertices() != nbVertices,
-                               "rcc8Graph->GetNumberOfVertices()!=nbVertices");
-  otbControlConditionTestMacro(rcc8Graph->GetVertex(0)->GetSegmentationLevel() != vertex1SegLevel,
-                               "rcc8Graph->GetVertex(0)->GetSegmentationLevel()!=vertex1SegLevel");
-  otbControlConditionTestMacro(rcc8Graph->GetVertex(0)->GetSegmentationType() != vertex1SegType,
-                               "rcc8Graph->GetVertex(0)->GetSegmentationType()!=vertex1SegType");
-  otbControlConditionTestMacro(rcc8Graph->GetVertex(0)->GetPath()->GetVertexList()->GetElement(0) != p1,
-                               "rcc8Graph->GetVertex(0)->GetPath()->GetVertexList()->GetElement(0)!=p1");
-  otbControlConditionTestMacro(rcc8Graph->GetVertex(0)->GetPath()->GetVertexList()->GetElement(1) != p2,
-                               "rcc8Graph->GetVertex(0)->GetPath()->GetVertexList()->GetElement(1)!=p2");
-  otbControlConditionTestMacro(rcc8Graph->GetVertex(0)->GetPath()->GetVertexList()->GetElement(2) != p3,
-                               "rcc8Graph->GetVertex(0)->GetPath()->GetVertexList()->GetElement(2)!=p3");
-  otbControlConditionTestMacro(rcc8Graph->GetVertex(1)->GetSegmentationLevel() != vertex2SegLevel,
-                               "rcc8Graph->GetVertex(1)->GetSegmentationLevel()!=vertex2SegLevel");
-  otbControlConditionTestMacro(rcc8Graph->GetVertex(1)->GetSegmentationType() != vertex2SegType,
-                               "rcc8Graph->GetVertex(1)->GetObjectLabelInImgage()!=vertex2SegType");
-  otbControlConditionTestMacro(rcc8Graph->GetVertex(1)->GetPath()->GetVertexList()->GetElement(0) != p4,
-                               "rcc8Graph->GetVertex(1)->GetPath()->GetVertexList()->GetElement(0)!=p4");
-  otbControlConditionTestMacro(rcc8Graph->GetVertex(1)->GetPath()->GetVertexList()->GetElement(1) != p5,
-                               "rcc8Graph->GetVertex(1)->GetPath()->GetVertexList()->GetElement(1)!=p5");
-  otbControlConditionTestMacro(rcc8Graph->GetVertex(1)->GetPath()->GetVertexList()->GetElement(2) != p6,
-                               "rcc8Graph->GetVertex(1)->GetPath()->GetVertexList()->GetElement(2)!=p6");
-
-  VertexIteratorType v(rcc8Graph);
-  v.GoToBegin();
-  otbControlConditionTestMacro(v.Get()->GetSegmentationLevel() != vertex1SegLevel,
-                               "v.Get()->GetSegmentationLevel()!=vertex1SegLevel");
-  otbControlConditionTestMacro(v.Get()->GetSegmentationType() != vertex1SegType,
-                               "v.Get()->GetSegmentationType()!=vertex1SegType");
-  otbControlConditionTestMacro(v.Get()->GetPath()->GetVertexList()->GetElement(0) != p1,
-                               "v.Get()->GetPath()->GetVertexList()->GetElement(0)!=p1");
-  otbControlConditionTestMacro(v.Get()->GetPath()->GetVertexList()->GetElement(1) != p2,
-                               "v.Get()->GetPath()->GetVertexList()->GetElement(1)!=p2");
-  otbControlConditionTestMacro(v.Get()->GetPath()->GetVertexList()->GetElement(2) != p3,
-                               "v.Get()->GetPath()->GetVertexList()->GetElement(2)!=p3");
-  ++v;
-  otbControlConditionTestMacro(v.Get()->GetSegmentationLevel() != vertex2SegLevel,
-                               "v.Get()->GetSegmentationLevel()!=vertex2SegLevel");
-  otbControlConditionTestMacro(v.Get()->GetSegmentationType() != vertex2SegType,
-                               "v.Get()->GetObjectLabelInImgage()!=vertex2SegType");
-  otbControlConditionTestMacro(v.Get()->GetPath()->GetVertexList()->GetElement(0) != p4,
-                               "rcc8Graph->GetVertex(0)->GetPath()->GetVertexList()->GetElement(0)!=p4");
-  otbControlConditionTestMacro(v.Get()->GetPath()->GetVertexList()->GetElement(1) != p5,
-                               "rcc8Graph->GetVertex(0)->GetPath()->GetVertexList()->GetElement(1)!=p5");
-  otbControlConditionTestMacro(v.Get()->GetPath()->GetVertexList()->GetElement(2) != p6,
-                               "rcc8Graph->GetVertex(0)->GetPath()->GetVertexList()->GetElement(2)!=p6");
-
-  // Testing the edge iterator
-  rcc8Graph->AddEdge(0, 1, otb::OTB_RCC8_NTPPI);
-
-  otbControlConditionTestMacro(rcc8Graph->GetNumberOfEdges() != 1,
-                               "rcc8Graph->GetNumberOfEdges()!=1");
-
-  EdgeIteratorType e(rcc8Graph);
-  e.GoToBegin();
-  otbControlConditionTestMacro(e.GetValue() != otb::OTB_RCC8_NTPPI,
-                               "e.GetValue()!=otb::OTB_RCC8_NTPPI");
-  otbControlConditionTestMacro(e.GetSourceIndex() != 0,
-                               "e.GetSourceIndex()!=0");
-  otbControlConditionTestMacro(e.GetTargetIndex() != 1,
-                               "e.GetTargetIndex()!=1");
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/OBIA/RCC8/test/otbRCC8GraphFileReader.cxx b/Modules/OBIA/RCC8/test/otbRCC8GraphFileReader.cxx
deleted file mode 100644
index 6c6807946062948b332eab371e1f49f47f1eb599..0000000000000000000000000000000000000000
--- a/Modules/OBIA/RCC8/test/otbRCC8GraphFileReader.cxx
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "otbRCC8VertexIterator.h"
-#include "otbRCC8EdgeIterator.h"
-#include "otbRCC8VertexBase.h"
-#include "otbRCC8GraphFileReader.h"
-#include "otbMacro.h"
-#include "otbPolygon.h"
-
-int otbRCC8GraphFileReader(int itkNotUsed(argc), char* argv[])
-{
-  char * inputFilename = argv[1];
-  typedef otb::Polygon<>                          PathType;
-  typedef otb::RCC8VertexBase<PathType>           VertexType;
-  typedef otb::RCC8Graph<VertexType>              RCC8GraphType;
-  typedef otb::RCC8GraphFileReader<RCC8GraphType> RCC8GraphFileReaderType;
-  typedef otb::RCC8VertexIterator<RCC8GraphType>  VertexIteratorType;
-  typedef otb::RCC8EdgeIterator<RCC8GraphType>    EdgeIteratorType;
-
-  // Instantiation
-  RCC8GraphFileReaderType::Pointer rcc8GraphReader = RCC8GraphFileReaderType::New();
-  rcc8GraphReader->SetFileName(inputFilename);
-
-  rcc8GraphReader->Update();
-
-  // Getting the output graph
-  RCC8GraphType::Pointer graph = rcc8GraphReader->GetOutput();
-
-  // Checking vertices
-  VertexIteratorType vIt(graph);
-  unsigned int       count = 0;
-
-  otbControlConditionTestMacro(graph->GetNumberOfVertices() != 4,
-                               "graph->GetNumberOfVertices()!=4");
-  otbControlConditionTestMacro(graph->GetNumberOfEdges() != 6,
-                               "graph->GetNumberOfEdges()!=6");
-
-  // Checking edges
-  EdgeIteratorType eIt(graph);
-  count = 0;
-  for (eIt.GoToBegin(); !eIt.IsAtEnd(); ++eIt, ++count)
-    {
-    switch (count)
-      {
-      case 0:
-        otbControlConditionTestMacro(eIt.GetValue() != otb::OTB_RCC8_EC,
-                                     "eIt.GetValue()!=otb::OTB_RCC8_EC");
-        otbControlConditionTestMacro(eIt.GetSourceIndex() != 0,
-                                     "eIt.GetSourceIndex()!=0");
-        otbControlConditionTestMacro(eIt.GetTargetIndex() != 1,
-                                     "eIt.GetTargetIndex()!=1");
-        break;
-      case 1:
-        otbControlConditionTestMacro(eIt.GetValue() != otb::OTB_RCC8_PO,
-                                     "eIt.GetValue()!=otb::OTB_RCC8_PO");
-        otbControlConditionTestMacro(eIt.GetSourceIndex() != 1,
-                                     "eIt.GetSourceIndex()!=1");
-        otbControlConditionTestMacro(eIt.GetTargetIndex() != 2,
-                                     "eIt.GetTargetIndex()!=2");
-        break;
-      case 2:
-        otbControlConditionTestMacro(eIt.GetValue() != otb::OTB_RCC8_TPP,
-                                     "eIt.GetValue()!=otb::OTB_RCC8_TPP");
-        otbControlConditionTestMacro(eIt.GetSourceIndex() != 2,
-                                     "eIt.GetSourceIndex()!=2");
-        otbControlConditionTestMacro(eIt.GetTargetIndex() != 3,
-                                     "eIt.GetTargetIndex()!=3");
-        break;
-      case 3:
-        otbControlConditionTestMacro(eIt.GetValue() != otb::OTB_RCC8_TPPI,
-                                     "eIt.GetValue()!=otb::OTB_RCC8_TPPI");
-        otbControlConditionTestMacro(eIt.GetSourceIndex() != 0,
-                                     "eIt.GetSourceIndex()!=0");
-        otbControlConditionTestMacro(eIt.GetTargetIndex() != 2,
-                                     "eIt.GetTargetIndex()!=2");
-        break;
-      case 4:
-        otbControlConditionTestMacro(eIt.GetValue() != otb::OTB_RCC8_NTPP,
-                                     "eIt.GetValue()!=otb::OTB_RCC8_NTPP");
-        otbControlConditionTestMacro(eIt.GetSourceIndex() != 1,
-                                     "eIt.GetSourceIndex()!=1");
-        otbControlConditionTestMacro(eIt.GetTargetIndex() != 3,
-                                     "eIt.GetTargetIndex()!=3");
-        break;
-      case 5:
-        otbControlConditionTestMacro(eIt.GetValue() != otb::OTB_RCC8_NTPPI,
-                                     "eIt.GetValue()!=otb::OTB_RCC8_NTPPI");
-        otbControlConditionTestMacro(eIt.GetSourceIndex() != 0,
-                                     "eIt.GetSourceIndex()!=0");
-        otbControlConditionTestMacro(eIt.GetTargetIndex() != 3,
-                                     "eIt.GetTargetIndex()!=3");
-        break;
-      default:
-        otbControlConditionTestMacro(true, "Error in graph reading.");
-        break;
-      }
-    }
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/OBIA/RCC8/test/otbRCC8GraphFileWriter.cxx b/Modules/OBIA/RCC8/test/otbRCC8GraphFileWriter.cxx
deleted file mode 100644
index 943183126a0653768d444a6c7ba0221443947b3c..0000000000000000000000000000000000000000
--- a/Modules/OBIA/RCC8/test/otbRCC8GraphFileWriter.cxx
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "otbRCC8VertexBase.h"
-#include "otbRCC8GraphFileWriter.h"
-#include "otbPolygon.h"
-
-int otbRCC8GraphFileWriter(int itkNotUsed(argc), char* argv[])
-{
-  const char * outputFile = argv[1];
-
-  typedef otb::Polygon<>                          PathType;
-  typedef otb::RCC8VertexBase<PathType>           VertexType;
-  typedef otb::RCC8Graph<VertexType>              RCC8GraphType;
-  typedef otb::RCC8GraphFileWriter<RCC8GraphType> RCC8GraphFileWriterType;
-
-  // Graph instantiation
-  RCC8GraphType::Pointer rcc8Graph = RCC8GraphType::New();
-  rcc8Graph->SetNumberOfVertices(4);
-  rcc8Graph->Build();
-
-  // Vertex filling
-  PathType::Pointer path = PathType::New();
-  path->Initialize();
-
-  PathType::ContinuousIndexType p1, p2, p3;
-
-  p1[0] = 0;
-  p1[1] = 0;
-
-  p2[0] = 10;
-  p2[1] = 10;
-
-  p3[0] = -5;
-  p3[1] = 2;
-
-  path->AddVertex(p1);
-  path->AddVertex(p2);
-  path->AddVertex(p3);
-
-  VertexType::Pointer vertex1, vertex2, vertex3, vertex4;
-  vertex1 = VertexType::New();
-  vertex1->SetSegmentationLevel(0);
-  vertex1->SetSegmentationType(0);
-  vertex1->SetPath(path);
-  rcc8Graph->SetVertex(0, vertex1);
-
-  vertex2 = VertexType::New();
-  vertex2->SetSegmentationLevel(1);
-  vertex2->SetSegmentationType(1);
-  vertex2->SetPath(path);
-  rcc8Graph->SetVertex(1, vertex2);
-
-  vertex3 = VertexType::New();
-  vertex3->SetSegmentationLevel(2);
-  vertex3->SetSegmentationType(0);
-  vertex3->SetPath(path);
-  rcc8Graph->SetVertex(2, vertex3);
-
-  vertex4 = VertexType::New();
-  vertex4->SetSegmentationLevel(3);
-  vertex4->SetSegmentationType(0);
-  vertex4->SetPath(path);
-  rcc8Graph->SetVertex(3, vertex4);
-
-  // Edge filling
-  rcc8Graph->AddEdge(0, 1, otb::OTB_RCC8_EC);
-  rcc8Graph->AddEdge(1, 2, otb::OTB_RCC8_PO);
-  rcc8Graph->AddEdge(2, 3, otb::OTB_RCC8_TPP);
-  rcc8Graph->AddEdge(0, 2, otb::OTB_RCC8_TPPI);
-  rcc8Graph->AddEdge(1, 3, otb::OTB_RCC8_NTPP);
-  rcc8Graph->AddEdge(0, 3, otb::OTB_RCC8_NTPPI);
-
-  // Instantiation
-  RCC8GraphFileWriterType::Pointer rcc8GraphWriter
-    = RCC8GraphFileWriterType::New();
-  rcc8GraphWriter->SetFileName(outputFile);
-  rcc8GraphWriter->SetInput(rcc8Graph);
-  rcc8GraphWriter->Update();
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/OBIA/RCC8/test/otbRCC8GraphIOEndToEnd.cxx b/Modules/OBIA/RCC8/test/otbRCC8GraphIOEndToEnd.cxx
deleted file mode 100644
index 2e274dac4c304505e2b28b82a530fce9d4a45bc9..0000000000000000000000000000000000000000
--- a/Modules/OBIA/RCC8/test/otbRCC8GraphIOEndToEnd.cxx
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "otbRCC8VertexBase.h"
-#include "otbRCC8GraphFileReader.h"
-#include "otbRCC8GraphFileWriter.h"
-#include "otbPolygon.h"
-
-int otbRCC8GraphIOEndToEnd(int itkNotUsed(argc), char* argv[])
-{
-  char * inputFilename = argv[1];
-  char * outputFilename = argv[2];
-  typedef otb::Polygon<>                          PathType;
-  typedef otb::RCC8VertexBase<PathType>           VertexType;
-  typedef otb::RCC8Graph<VertexType>              RCC8GraphType;
-  typedef otb::RCC8GraphFileReader<RCC8GraphType> RCC8GraphFileReaderType;
-  typedef otb::RCC8GraphFileWriter<RCC8GraphType> RCC8GraphFileWriterType;
-
-  // End to end test
-  RCC8GraphFileReaderType::Pointer rcc8GraphReader = RCC8GraphFileReaderType::New();
-  rcc8GraphReader->SetFileName(inputFilename);
-  RCC8GraphFileWriterType::Pointer rcc8GraphWriter = RCC8GraphFileWriterType::New();
-  rcc8GraphWriter->SetInput(rcc8GraphReader->GetOutput());
-  rcc8GraphWriter->SetFileName(outputFilename);
-  rcc8GraphWriter->Update();
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/OBIA/RCC8/test/otbRCC8TestDriver.cxx b/Modules/OBIA/RCC8/test/otbRCC8TestDriver.cxx
deleted file mode 100644
index 8a060d25bf7c343f4a8daa8d4e93f7415bae2507..0000000000000000000000000000000000000000
--- a/Modules/OBIA/RCC8/test/otbRCC8TestDriver.cxx
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "otbTestMain.h"
-
-void RegisterTests()
-{
-  REGISTER_TEST(otbRCC8GraphFileReader);
-  REGISTER_TEST(otbRCC8GraphIOEndToEnd);
-  REGISTER_TEST(otbPolygonListToRCC8GraphFilter);
-  REGISTER_TEST(otbRCC8VertexBase);
-  REGISTER_TEST(otbPolygonToPolygonRCC8Calculator);
-  REGISTER_TEST(otbImageToImageRCC8Calculator);
-  REGISTER_TEST(otbRCC8Edge);
-  REGISTER_TEST(otbRCC8VertexWithCompacity);
-  REGISTER_TEST(otbRCC8Graph);
-  REGISTER_TEST(otbRCC8GraphFileWriter);
-  REGISTER_TEST(otbImageMultiSegmentationToRCC8GraphFilter);
-}
diff --git a/Modules/OBIA/RCC8/test/otbRCC8VertexBase.cxx b/Modules/OBIA/RCC8/test/otbRCC8VertexBase.cxx
deleted file mode 100644
index 6578e4f6ae038cad1485118ed773f18f7c757222..0000000000000000000000000000000000000000
--- a/Modules/OBIA/RCC8/test/otbRCC8VertexBase.cxx
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "otbRCC8VertexBase.h"
-#include "otbPolygon.h"
-#include "otbMacro.h"
-
-int otbRCC8VertexBase(int itkNotUsed(argc), char* argv[])
-{
-  typedef otb::Polygon<> PathType;
-  unsigned int imageLevel = atoi(argv[1]);
-  bool         imageType = atoi(argv[2]);
-  typedef otb::RCC8VertexBase<PathType>     RCC8VertexType;
-  typedef RCC8VertexType::AttributesMapType AttributesMapType;
-  // Instantiation
-  RCC8VertexType::Pointer vertex1 = RCC8VertexType::New();
-
-  PathType::Pointer path = PathType::New();
-  path->Initialize();
-
-  PathType::ContinuousIndexType p1, p2, p3;
-
-  p1[0] = 0;
-  p1[1] = 0;
-
-  p2[0] = 10;
-  p2[1] = 10;
-
-  p3[0] = -5;
-  p3[1] = 2;
-
-  path->AddVertex(p1);
-  path->AddVertex(p2);
-  path->AddVertex(p3);
-
-  // Getters / setters tests
-  vertex1->SetSegmentationLevel(imageLevel);
-  vertex1->SetSegmentationType(imageType);
-  vertex1->SetPath(path);
-
-  otbControlConditionTestMacro(vertex1->GetSegmentationLevel() != imageLevel,
-                               "Test failed: vertex1->GetSegmentationLevel()!=imageLevel");
-  otbControlConditionTestMacro(vertex1->GetSegmentationType() != imageType,
-                               "Test failed: vertex1->GetSegmentationType()!=imageType");
-
-  otbControlConditionTestMacro(vertex1->GetPath()->GetVertexList()->GetElement(0) != p1,
-                               "Test failed:vertex1->GetPath()->GetVertexList()->GetElement(0)!=p1");
-  otbControlConditionTestMacro(vertex1->GetPath()->GetVertexList()->GetElement(1) != p2,
-                               "Test failed:vertex1->GetPath()->GetVertexList()->GetElement(1)!=p2");
-  otbControlConditionTestMacro(vertex1->GetPath()->GetVertexList()->GetElement(2) != p3,
-                               "Test failed:vertex1->GetPath()->GetVertexList()->GetElement(2)!=p3");
-
-  // attributes vector set test
-  AttributesMapType attr1 = vertex1->GetAttributesMap();
-  otbControlConditionTestMacro(attr1["SegmentationLevel"].compare(std::string(argv[1])) != 0,
-                               "Test failed: vertex1->GetAttributesMap()[\"SegmentationLevel\"]!=std::string(argv[1])");
-  otbControlConditionTestMacro(atoi(attr1["SegmentationType"].c_str()) != static_cast<int>(imageType),
-                               "Test failed:atoi(attr1[\"SegmentationType\"].c_str())!=imageType ");
-
-  otbControlConditionTestMacro(atof(attr1["P0x"].c_str()) != p1[0],
-                               "Test failed: atof(attr1[\"P0x\"].c_str())!=p1[0]");
-  otbControlConditionTestMacro(atof(attr1["P0y"].c_str()) != p1[1],
-                               "Test failed: atof(attr1[\"P0y\"].c_str())!=p1[1]");
-  otbControlConditionTestMacro(atof(attr1["P1x"].c_str()) != p2[0],
-                               "Test failed: atof(attr1[\"P1x\"].c_str())!=p2[0]");
-  otbControlConditionTestMacro(atof(attr1["P1y"].c_str()) != p2[1],
-                               "Test failed: atof(attr1[\"P1y\"].c_str())!=p2[1]");
-  otbControlConditionTestMacro(atof(attr1["P2x"].c_str()) != p3[0],
-                               "Test failed: atof(attr1[\"P2x\"].c_str())!=p3[0]");
-  otbControlConditionTestMacro(atof(attr1["P2y"].c_str()) != p3[1],
-                               "Test failed: atof( attr1[\"P2y\"].c_str())!=p3[1]");
-
-  // attributes vector get test
-  RCC8VertexType::Pointer vertex2 = RCC8VertexType::New();
-  vertex2->SetAttributesMap(attr1);
-  otbControlConditionTestMacro(vertex1->GetSegmentationLevel() != vertex2->GetSegmentationLevel(),
-                               "Test failed: vertex1->GetSegmentationLevel()!=vertex2->GetSegmentationLevel()");
-  otbControlConditionTestMacro(vertex1->GetSegmentationType() != vertex2->GetSegmentationType(),
-                               "Test failed: vertex1->GetSegmentationType()!=vertex2->GetSegmentationType()");
-
-  otbControlConditionTestMacro(vertex2->GetPath()->GetVertexList()->GetElement(0) != p1,
-                               "Test failed:vertex2->GetPath()->GetVertexList()->GetElement(0)!=p1");
-  otbControlConditionTestMacro(vertex2->GetPath()->GetVertexList()->GetElement(1) != p2,
-                               "Test failed:vertex2->GetPath()->GetVertexList()->GetElement(1)!=p2");
-  otbControlConditionTestMacro(vertex2->GetPath()->GetVertexList()->GetElement(2) != p3,
-                               "Test failed:vertex2->GetPath()->GetVertexList()->GetElement(2)!=p3");
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/OBIA/RCC8/test/otbRCC8VertexWithCompacity.cxx b/Modules/OBIA/RCC8/test/otbRCC8VertexWithCompacity.cxx
deleted file mode 100644
index 697aeda75e5b83da812d4ff32e112d5d88f34e70..0000000000000000000000000000000000000000
--- a/Modules/OBIA/RCC8/test/otbRCC8VertexWithCompacity.cxx
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "otbRCC8VertexWithCompacity.h"
-#include "otbMacro.h"
-#include "otbPolygon.h"
-
-int otbRCC8VertexWithCompacity(int itkNotUsed(argc), char* argv[])
-{
-  typedef otb::Polygon<> PathType;
-  typedef double         PrecisionType;
-
-  unsigned int  imageLevel = atoi(argv[1]);
-  bool          imageType = atoi(argv[2]);
-  PrecisionType compacity = atof(argv[3]);
-
-  typedef otb::RCC8VertexWithCompacity<PathType, PrecisionType> RCC8VertexType;
-  typedef RCC8VertexType::AttributesMapType                     AttributesMapType;
-  // Instantiation
-  RCC8VertexType::Pointer vertex1 = RCC8VertexType::New();
-
-  PathType::Pointer path = PathType::New();
-  path->Initialize();
-
-  PathType::ContinuousIndexType p1, p2, p3;
-
-  p1[0] = 0;
-  p1[1] = 0;
-
-  p2[0] = 10;
-  p2[1] = 10;
-
-  p3[0] = -5;
-  p3[1] = 2;
-
-  path->AddVertex(p1);
-  path->AddVertex(p2);
-  path->AddVertex(p3);
-
-  // Getters / setters tests
-  vertex1->SetSegmentationLevel(imageLevel);
-  vertex1->SetSegmentationType(imageType);
-  vertex1->SetPath(path);
-  vertex1->SetCompacity(compacity);
-
-  otbControlConditionTestMacro(vertex1->GetSegmentationLevel() != imageLevel,
-                               "Test failed: vertex1->GetSegmentationLevel()!=imageLevel");
-  otbControlConditionTestMacro(vertex1->GetSegmentationType() != imageType,
-                               "Test failed: vertex1->GetSegmentationType()!=imageType");
-
-  otbControlConditionTestMacro(vertex1->GetPath()->GetVertexList()->GetElement(0) != p1,
-                               "Test failed:vertex1->GetPath()->GetVertexList()->GetElement(0)!=p1");
-  otbControlConditionTestMacro(vertex1->GetPath()->GetVertexList()->GetElement(1) != p2,
-                               "Test failed:vertex1->GetPath()->GetVertexList()->GetElement(1)!=p2");
-  otbControlConditionTestMacro(vertex1->GetPath()->GetVertexList()->GetElement(2) != p3,
-                               "Test failed:vertex1->GetPath()->GetVertexList()->GetElement(2)!=p3");
-  otbControlConditionTestMacro(vertex1->GetCompacity() != compacity,
-                               "Test failed: vertex1->GetSegmentationImageIndex()!=imageIndex");
-  // attributes vector set test
-  AttributesMapType attr1 = vertex1->GetAttributesMap();
-
-  std::ostringstream oss;
-  oss << p1[0];
-  otbControlConditionTestMacro(attr1["P0x"].compare(oss.str()) != 0,
-                               "Test failed:attr1[\"P0x\"].compare(std::string(p1[0]))!=0");
-  oss.str("");
-  oss << p1[1];
-  otbControlConditionTestMacro(attr1["P0y"].compare(oss.str()) != 0,
-                               "Test failed:attr1[\"P0y\"].compare(std::string(p1[1]))!=0");
-  oss.str("");
-  oss << p2[0];
-  otbControlConditionTestMacro(attr1["P1x"].compare(oss.str()) != 0,
-                               "Test failed:attr1[\"P1x\"].compare(std::string(p2[0]))!=0");
-  oss.str("");
-  oss << p2[1];
-  otbControlConditionTestMacro(attr1["P1y"].compare(oss.str()) != 0,
-                               "Test failed:attr1[\"P1y\"].compare(std::string(p2[1]))!=0");
-  oss.str("");
-  oss << p3[0];
-  otbControlConditionTestMacro(attr1["P2x"].compare(oss.str()) != 0,
-                               "Test failed:attr1[\"P2x\"].compare(std::string(p3[0]))!=0");
-  oss.str("");
-  oss << p3[1];
-  otbControlConditionTestMacro(attr1["P2y"].compare(oss.str()) != 0,
-                               "Test failed:attr1[\"P2y\"].compare(std::string(p3[1]))!=0");
-
-  otbControlConditionTestMacro(attr1["Compacity"].compare(std::string(argv[3])) != 0,
-                               "Test failed: vertex1->GetAttributesMap()[\"Compacity\"]!=std::string(argv[2])");
-  // attributes vector get test
-  RCC8VertexType::Pointer vertex2 = RCC8VertexType::New();
-  vertex2->SetAttributesMap(attr1);
-  otbControlConditionTestMacro(vertex1->GetSegmentationLevel() != vertex2->GetSegmentationLevel(),
-                               "Test failed: vertex1->GetSegmentationLevel()!=vertex2->GetSegmentationLevel()");
-  otbControlConditionTestMacro(vertex1->GetSegmentationType() != vertex2->GetSegmentationType(),
-                               "Test failed: vertex1->GetSegmentationType()!=vertex2->GetSegmentationType()");
-
-  otbControlConditionTestMacro(vertex2->GetPath()->GetVertexList()->GetElement(0) != p1,
-                               "Test failed:vertex2->GetPath()->GetVertexList()->GetElement(0)!=p1");
-  otbControlConditionTestMacro(vertex2->GetPath()->GetVertexList()->GetElement(1) != p2,
-                               "Test failed:vertex2->GetPath()->GetVertexList()->GetElement(1)!=p2");
-  otbControlConditionTestMacro(vertex2->GetPath()->GetVertexList()->GetElement(2) != p3,
-                               "Test failed:vertex2->GetPath()->GetVertexList()->GetElement(2)!=p3");
-  otbControlConditionTestMacro(vertex1->GetCompacity() != vertex2->GetCompacity(),
-                               "Test failed: vertex1->GetCompacity()!=vertex2->GetCompacity()");
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/Radiometry/Indices/include/otbNDVIDataNodeFeatureFunction.h b/Modules/Radiometry/Indices/include/otbNDVIDataNodeFeatureFunction.h
deleted file mode 100644
index 9d17e0198a0af4e365c7af5747f8edd91e1bb1ad..0000000000000000000000000000000000000000
--- a/Modules/Radiometry/Indices/include/otbNDVIDataNodeFeatureFunction.h
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbNDVIDataNodeFeatureFunction_h
-#define otbNDVIDataNodeFeatureFunction_h
-
-#include "otbDataNodeImageFunction.h"
-
-#include "otbVegetationIndicesFunctor.h"
-#include "otbPolyLineImageConstIterator.h"
-
-namespace otb
-{
-/** \class NDVIDataNodeFeatureFunction
-  * \brief Compute a NDVI based feature alongside a
-  * datanode.
-  *
-  * This function compute a feature alongside a datanode.
-  * The feature is (NDVI >= threshold) per cent along the
-  * tested datanode.
-  *
-  * \ingroup Functions
-  * \sa DataNodeImageFunction
-  * \sa SpectralAngleDataNodeFeatureFunction
- *
- * \ingroup OTBIndices
-  */
-
-template <
-class TImage,
-class TCoordRep = double,
-class TPrecision = double
->
-class ITK_EXPORT NDVIDataNodeFeatureFunction :
-    public DataNodeImageFunction<TImage, std::vector<TPrecision>, TCoordRep, TPrecision>
-{
-public:
-  /** Standard class typedefs. */
-  typedef NDVIDataNodeFeatureFunction                         Self;
-  typedef DataNodeImageFunction<TImage, std::vector<TPrecision>, TCoordRep, TPrecision>
-                                                              Superclass;
-  typedef itk::SmartPointer<Self>                             Pointer;
-  typedef itk::SmartPointer<const Self>                       ConstPointer;
-
-  /** Method for creation through the object factory. */
-  itkNewMacro(Self);
-
-  /** Run-time type information (and related methods). */
-  itkTypeMacro(NDVIDataNodeFeatureFunction, DataNodeImageFunction);
-
-  /** Some typedefs. */
-  typedef typename Superclass::DataNodeType           DataNodeType;
-  typedef typename DataNodeType::LineType             LineType;
-
-  typedef TImage                                      InputImageType;
-  typedef typename InputImageType::ConstPointer       InputImageConstPointer;
-  typedef typename InputImageType::PixelType          PixelType;
-  typedef typename InputImageType::InternalPixelType  ScalarRealType;
-  typedef typename InputImageType::IndexType          IndexType;
-  typedef typename InputImageType::IndexValueType     IndexValueType;
-
-  typedef TCoordRep                                   CoordRepType;
-
-  typedef TPrecision                                  PrecisionType;
-
-  typedef PolyLineImageConstIterator<InputImageType, LineType>
-                                                      ImageLineIteratorType;
-
-  typedef Functor::NDVI<ScalarRealType, ScalarRealType> NDVIFunctorType;
-
-  typedef std::vector<PrecisionType>                  OutputType;
-
-  OutputType Evaluate( const DataNodeType& node ) const override;
-
-  /** Set/Get methods */
-  itkGetConstMacro(NDVIThreshold, PrecisionType);
-  itkSetMacro(NDVIThreshold, PrecisionType);
-
-  //TODO replace by metadata parsing
-  unsigned int GetREDChannelIndex() const
-  {
-    return m_NDVIFunctor.GetBandIndex(CommonBandNames::RED);
-  }
-
-  void SetREDChannelIndex(unsigned int id)
-  {
-    m_NDVIFunctor.SetBandIndex(CommonBandNames::RED, id);
-  }
-
-  unsigned int GetNIRChannelIndex() const
-  {
-    return m_NDVIFunctor.GetBandIndex(CommonBandNames::NIR);
-  }
-
-  void SetNIRChannelIndex(unsigned int id)
-  {
-    m_NDVIFunctor.SetBandIndex(CommonBandNames::NIR, id);
-  }
-
-protected:
-  NDVIDataNodeFeatureFunction();
-  ~NDVIDataNodeFeatureFunction() override {}
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-
-private:
-  NDVIDataNodeFeatureFunction(const Self&) = delete;
-  void operator=(const Self&) = delete;
-
-  /** NDVI Threshold & Functor */
-  PrecisionType               m_NDVIThreshold;
-  NDVIFunctorType             m_NDVIFunctor;
-};
-
-}
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbNDVIDataNodeFeatureFunction.hxx"
-#endif
-
-#endif
diff --git a/Modules/Radiometry/Indices/include/otbNDVIDataNodeFeatureFunction.hxx b/Modules/Radiometry/Indices/include/otbNDVIDataNodeFeatureFunction.hxx
deleted file mode 100644
index f6f33564d5c29ed8cec88bf73b4a6445df28c076..0000000000000000000000000000000000000000
--- a/Modules/Radiometry/Indices/include/otbNDVIDataNodeFeatureFunction.hxx
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbNDVIDataNodeFeatureFunction_hxx
-#define otbNDVIDataNodeFeatureFunction_hxx
-
-#include "otbNDVIDataNodeFeatureFunction.h"
-
-namespace otb
-{
-
-/**
- * Constructor
- */
-template <class TImage, class TCoordRep, class TPrecision>
-NDVIDataNodeFeatureFunction<TImage, TCoordRep, TPrecision>
-::NDVIDataNodeFeatureFunction()
-{
-  m_NDVIThreshold = 0.3;    //Advised for QuickBird images
-  this->SetREDChannelIndex(3); //for QuickBird images
-  this->SetNIRChannelIndex(4); //for QuickBird images
-}
-
-/**
- * Standard "PrintSelf" method
- */
-template <class TImage, class TCoordRep, class TPrecision>
-void
-NDVIDataNodeFeatureFunction<TImage, TCoordRep, TPrecision>
-::PrintSelf(
-  std::ostream& os,
-  itk::Indent indent) const
-{
-  Superclass::PrintSelf( os, indent );
-  os << indent << "NDVI Threshold: "    << m_NDVIThreshold << std::endl;
-  os << indent << "RED Channel Index: " << this->GetREDChannelIndex() << std::endl;
-  os << indent << "NIR Channel Index: " << this->GetNIRChannelIndex() << std::endl;
-}
-
-
-template <class TImage, class TCoordRep, class TPrecision>
-typename NDVIDataNodeFeatureFunction<TImage, TCoordRep, TPrecision>
-::OutputType
- NDVIDataNodeFeatureFunction<TImage, TCoordRep, TPrecision>
-::Evaluate( const DataNodeType& node ) const
-{
-  if(!((this->GetREDChannelIndex() <= this->GetInputImage()->GetNumberOfComponentsPerPixel())
-      && (this->GetNIRChannelIndex() <= this->GetInputImage()->GetNumberOfComponentsPerPixel())
-      && (this->GetREDChannelIndex() > 0)
-      && (this->GetNIRChannelIndex() > 0)))
-    {
-    itkExceptionMacro(<< "Invalid RED or NIR Channel Index");
-    }
-
-  const typename ImageLineIteratorType::PathType* path;
-
-  switch (node.GetNodeType())
-        {
-        case FEATURE_POINT:
-          {
-          itkExceptionMacro(<< "This DataNode type is not handle yet");
-          break;
-          }
-        case FEATURE_LINE:
-          {
-          path = node.GetLine();
-          break;
-          }
-        case FEATURE_POLYGON:
-          {
-          path = node.GetPolygonExteriorRing();
-          break;
-          }
-        default:
-          {
-          itkExceptionMacro(<< "This DataNode type is not handle yet");
-          break;
-          }
-        }
-
-  ImageLineIteratorType lineIt(this->GetInputImage(), path);
-  lineIt.GoToBegin();
-
-  double nbValidPixel=0.;
-  double nbVisitedPixel=0.;
-
-  while(!lineIt.IsAtEnd())
-    {
-    if(this->IsInsideBuffer(lineIt.GetIndex()))
-      {
-      PixelType pixel = this->GetInputImage()->GetPixel(lineIt.GetIndex());
-      if(m_NDVIFunctor(pixel) >= this->GetNDVIThreshold())
-        {
-        nbValidPixel += 1;
-        }
-      nbVisitedPixel += 1;
-      }
-    ++lineIt;
-    }
-
-  OutputType output;
-
-  if(nbVisitedPixel == 0)
-    {
-    //std::cout << "nbValidPixel: " << nbValidPixel << "nbVisitedPixel" << nbVisitedPixel << std::endl;
-    //itkExceptionMacro(<< "The DataNode and the Support Image are disjointed");
-    output.push_back(static_cast<PrecisionType>(0.));
-    }
-  else
-    {
-    output.push_back(static_cast<PrecisionType>(nbValidPixel/nbVisitedPixel));
-    }
-
-  output.push_back(static_cast<PrecisionType>(nbValidPixel));
-  output.push_back(static_cast<PrecisionType>(nbVisitedPixel));
-
-  return output;
-}
-
-
-} // end namespace otb
-
-#endif
diff --git a/Modules/Radiometry/Indices/test/CMakeLists.txt b/Modules/Radiometry/Indices/test/CMakeLists.txt
index 79e4a828212956c5a5a7aa28977d4767115aa396..1424624291fd33d8f96baac6b64d02de0418e5e8 100644
--- a/Modules/Radiometry/Indices/test/CMakeLists.txt
+++ b/Modules/Radiometry/Indices/test/CMakeLists.txt
@@ -23,7 +23,6 @@ otb_module_test()
 set(OTBIndicesTests
 otbIndicesTestDriver.cxx
 otbRadiometricIndicesTest.cxx
-otbNDVIDataNodeFeatureFunction.cxx
 otbLandsatTMIndexNDSITest.cxx
 otbLandsatTMIndexBIOTest.cxx
 otbLandsatTMIndexMIR2Test.cxx
@@ -52,31 +51,6 @@ otb_module_target_label(otbIndicesTestDriver)
 
 # Tests Declaration
 
-otb_add_test(NAME bfTvNDVIDataNodeFeatureFunction_Polygon COMMAND otbIndicesTestDriver
-  --compare-ogr ${EPSILON_3}
-  ${BASELINE_FILES}/bfTvNDVIDataNodeFeatureFunctionOutput_Polygon.shp
-  ${TEMP}/bfTvNDVIDataNodeFeatureFunctionOutput_Polygon.shp
-  otbNDVIDataNodeFeatureFunction
-  ${INPUTDATA}/Dempster-Shafer/ROI_QB_TOULOUSE_BUILDINGS.shp
-  ${INPUTDATA}/Dempster-Shafer/ROI_QB_TOULOUSE.TIF
-  ${INPUTDATA}/DEM/srtm_directory
-  ${TEMP}/bfTvNDVIDataNodeFeatureFunctionOutput_Polygon.shp
-  0
-  )
-
-otb_add_test(NAME bfTvNDVIDataNodeFeatureFunction_Line COMMAND otbIndicesTestDriver
-  --compare-ogr ${EPSILON_9}
-  ${BASELINE_FILES}/bfTvNDVIDataNodeFeatureFunctionOutput_Line.shp
-  ${TEMP}/bfTvNDVIDataNodeFeatureFunctionOutput_Line.shp
-  otbNDVIDataNodeFeatureFunction
-  ${INPUTDATA}/Dempster-Shafer/ROI_QB_TOULOUSE_ROADS.shp
-  ${INPUTDATA}/Dempster-Shafer/ROI_QB_TOULOUSE.TIF
-  ${INPUTDATA}/DEM/srtm_directory
-  ${TEMP}/bfTvNDVIDataNodeFeatureFunctionOutput_Line.shp
-  0
-  )
-
-
 otb_add_test(NAME raTvLandsatTMIndexNDSITest COMMAND otbIndicesTestDriver
   otbLandsatTMIndexNDSI
   3   #TM1
diff --git a/Modules/Radiometry/Indices/test/otbIndicesTestDriver.cxx b/Modules/Radiometry/Indices/test/otbIndicesTestDriver.cxx
index 884ebeabb10bac520f40d10336bd96aec25b5b93..111d5c05d0978f86930a277975e37ebd58393533 100644
--- a/Modules/Radiometry/Indices/test/otbIndicesTestDriver.cxx
+++ b/Modules/Radiometry/Indices/test/otbIndicesTestDriver.cxx
@@ -22,7 +22,6 @@
 
 void RegisterTests()
 {
-  REGISTER_TEST(otbNDVIDataNodeFeatureFunction);
   REGISTER_TEST(otbLandsatTMIndexNDSI);
   REGISTER_TEST(otbLandsatTMIndexBIO);
   REGISTER_TEST(otbLandsatTMIndexMIR2);
diff --git a/Modules/Radiometry/Indices/test/otbNDVIDataNodeFeatureFunction.cxx b/Modules/Radiometry/Indices/test/otbNDVIDataNodeFeatureFunction.cxx
deleted file mode 100644
index 18289e76d7a4468aa04fa1057adca4764c42013c..0000000000000000000000000000000000000000
--- a/Modules/Radiometry/Indices/test/otbNDVIDataNodeFeatureFunction.cxx
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-
-#include "otbNDVIDataNodeFeatureFunction.h"
-
-#include "otbVectorImage.h"
-#include "otbImageFileReader.h"
-#include "otbVectorData.h"
-#include "otbVectorDataFileReader.h"
-#include "otbVectorDataIntoImageProjectionFilter.h"
-#include "otbVectorDataFileWriter.h"
-#include "itkPreOrderTreeIterator.h"
-
-
-int otbNDVIDataNodeFeatureFunction(int itkNotUsed(argc), char* argv[])
-{
-  const char * inputVD  = argv[1];
-  const char * inputImg = argv[2];
-  const char * DEMDir   = argv[3];
-  const char * outputVD = argv[4];
-  int DisplayWarnings   = atoi(argv[5]);
-
-  typedef double                                      CoordRepType;
-  typedef double                                      PrecisionType;
-  typedef otb::VectorImage<PrecisionType>             ImageType;
-  typedef otb::ImageFileReader<ImageType>             ImageReaderType;
-  typedef otb::VectorData<CoordRepType, 2, PrecisionType>
-                                                      VectorDataType;
-  typedef VectorDataType::DataNodeType                DataNodeType;
-  typedef otb::VectorDataFileReader<VectorDataType>   VectorDataReaderType;
-  typedef otb::VectorDataIntoImageProjectionFilter<VectorDataType, ImageType>
-                                                      VectorDataReProjFilter;
-  typedef otb::VectorDataFileWriter<VectorDataType>   VectorDataWriterType;
-  typedef itk::PreOrderTreeIterator<VectorDataType::DataTreeType>
-                                                      TreeIteratorType;
-
-  typedef otb::NDVIDataNodeFeatureFunction<ImageType, CoordRepType, PrecisionType>
-                                         NDVIDataNodeFeaturefunctionType;
-  typedef NDVIDataNodeFeaturefunctionType::OutputType
-                                                      NDVIFeatureOutputType;
-
-  ImageReaderType::Pointer imgReader = ImageReaderType::New();
-  VectorDataReaderType::Pointer vdReader = VectorDataReaderType::New();
-  VectorDataReProjFilter::Pointer vdReProjFilter = VectorDataReProjFilter::New();
-  VectorDataWriterType::Pointer vdWriter = VectorDataWriterType::New();
-  NDVIDataNodeFeaturefunctionType::Pointer NDVIFeatureFunction = NDVIDataNodeFeaturefunctionType::New();
-
-  if (!DisplayWarnings)
-   {
-    imgReader->SetGlobalWarningDisplay(0);
-   }
-
-  otb::DEMHandler::Instance()->OpenDEMDirectory(DEMDir);
-
-  vdReader->SetFileName(inputVD);
-  vdReader->Update();
-
-  imgReader->SetFileName(inputImg);
-  imgReader->UpdateOutputInformation();
-  imgReader->Update(); //Needed to set m_EndIndex, m_StartIndex in otbDataNodeImageFunction
-
-  vdReProjFilter->SetInputImage(imgReader->GetOutput());
-  vdReProjFilter->SetInputVectorData(vdReader->GetOutput());
-  vdReProjFilter->SetUseOutputSpacingAndOriginFromImage(true);
-  vdReProjFilter->Update();
-/*
-  std::cout<< "vdReProjFilter->GetOutput()->Size(): "
-        << vdReProjFilter->GetOutput()->Size() << std::endl;
-*/
-  NDVIFeatureFunction->SetREDChannelIndex(3);
-  NDVIFeatureFunction->SetNIRChannelIndex(4);
-  NDVIFeatureFunction->SetNDVIThreshold(0.047);
-  NDVIFeatureFunction->SetInputImage(imgReader->GetOutput());
-
-  // Output
-  VectorDataType::Pointer outVD = VectorDataType::New();
-  // Retrieving root node
-  DataNodeType::Pointer root = outVD->GetDataTree()->GetRoot()->Get();
-  // Create the document node
-  DataNodeType::Pointer document = DataNodeType::New();
-  document->SetNodeType(otb::DOCUMENT);
-  // Adding the layer to the data tree
-  outVD->GetDataTree()->Add(document, root);
-  // Create the folder node
-  DataNodeType::Pointer folder = DataNodeType::New();
-  folder->SetNodeType(otb::FOLDER);
-  // Adding the layer to the data tree
-  outVD->GetDataTree()->Add(folder, document);
-
-  TreeIteratorType itVector(vdReProjFilter->GetOutput()->GetDataTree());
-  itVector.GoToBegin();
-  while (!itVector.IsAtEnd())
-    {
-    if (itVector.Get()->IsLineFeature() || itVector.Get()->IsPolygonFeature())
-         {
-          const DataNodeType::Pointer currentGeometry = itVector.Get();
-          NDVIFeatureOutputType currentResult;
-          currentResult = NDVIFeatureFunction->Evaluate(*(currentGeometry.GetPointer()));
-          currentGeometry->SetFieldAsDouble("NDVI", (double)(currentResult[0]));
-          outVD->GetDataTree()->Add(currentGeometry, folder);
-         }
-    ++itVector;
-    }
-
-  vdWriter->SetInput(outVD);
-  vdWriter->SetFileName(outputVD);
-  vdWriter->Update();
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/Registration/DisplacementField/CMakeLists.txt b/Modules/Registration/DisplacementField/CMakeLists.txt
deleted file mode 100644
index a8ad1a8e38bf22af2290f918ff38056abee5ba93..0000000000000000000000000000000000000000
--- a/Modules/Registration/DisplacementField/CMakeLists.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
-#
-# This file is part of Orfeo Toolbox
-#
-#     https://www.orfeo-toolbox.org/
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-project(OTBDisplacementField)
-otb_module_impl()
diff --git a/Modules/Registration/DisplacementField/include/otbBSplinesInterpolateDisplacementFieldGenerator.h b/Modules/Registration/DisplacementField/include/otbBSplinesInterpolateDisplacementFieldGenerator.h
deleted file mode 100644
index 1e219346e5c7c37c4a32ea87b7dd0937d75325f1..0000000000000000000000000000000000000000
--- a/Modules/Registration/DisplacementField/include/otbBSplinesInterpolateDisplacementFieldGenerator.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbBSplinesInterpolateDisplacementFieldGenerator_h
-#define otbBSplinesInterpolateDisplacementFieldGenerator_h
-
-#include "otbPointSetToDisplacementFieldGenerator.h"
-
-namespace otb
-{
-/** \class BSplinesInterpolateDisplacementFieldGenerator
- *  \brief This filters encapsulate the itk::DisplacementFieldSource to produce a BSpline interpolation of the point in point set whose metric values are
- * sufficient.
- * \sa itk::DisplacementFieldSource
- * \ingroup DisparityMap
- *
- * \ingroup OTBDisplacementField
- */
-template <class TPointSet, class TDisplacementField>
-class ITK_EXPORT BSplinesInterpolateDisplacementFieldGenerator
-  : public PointSetToDisplacementFieldGenerator<TPointSet, TDisplacementField>
-{
-public:
-  /** Standard typedefs */
-  typedef BSplinesInterpolateDisplacementFieldGenerator                      Self;
-  typedef PointSetToDisplacementFieldGenerator<TPointSet, TDisplacementField> Superclass;
-  typedef itk::SmartPointer<Self>                                           Pointer;
-  typedef itk::SmartPointer<const Self>                                     ConstPointer;
-
-  /** Type macro */
-  itkNewMacro(Self);
-
-  /** Creation through object factory macro */
-  itkTypeMacro(BSplinesInterpolateDisplacementFieldGenerator, PointSetToDisplacementFieldGenerator);
-
-  /** Template parameters typedefs */
-  typedef typename Superclass::PointSetType                PointSetType;
-  typedef typename Superclass::PointSetPointerType         PointSetPointerType;
-  typedef typename Superclass::DisplacementFieldType        DisplacementFieldType;
-  typedef typename Superclass::DisplacementFieldPointerType DisplacementFieldPointerType;
-  typedef typename Superclass::IndexType                   IndexType;
-  typedef typename DisplacementFieldType::PixelType         PixelType;
-  typedef typename Superclass::ValueType                   ValueType;
-  typedef typename Superclass::PointType                   PointType;
-  typedef typename Superclass::IndexVectorType             IndexVectorType;
-  typedef typename Superclass::DistanceVectorType          DistanceVectorType;
-
-protected:
-  /** Constructor */
-  BSplinesInterpolateDisplacementFieldGenerator() {};
-  /** Destructor */
-  ~BSplinesInterpolateDisplacementFieldGenerator() override {}
-  /**PrintSelf method */
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-  /** Main computation method */
-  void GenerateData() override;
-
-private:
-  BSplinesInterpolateDisplacementFieldGenerator(const Self &) = delete;
-  void operator =(const Self&) = delete;
-};
-} // End namespace otb
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbBSplinesInterpolateDisplacementFieldGenerator.hxx"
-#endif
-
-#endif
diff --git a/Modules/Registration/DisplacementField/include/otbBSplinesInterpolateDisplacementFieldGenerator.hxx b/Modules/Registration/DisplacementField/include/otbBSplinesInterpolateDisplacementFieldGenerator.hxx
deleted file mode 100644
index 7b12fa7a1881970099fb35781b039856a397d18c..0000000000000000000000000000000000000000
--- a/Modules/Registration/DisplacementField/include/otbBSplinesInterpolateDisplacementFieldGenerator.hxx
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbBSplinesInterpolateDisplacementFieldGenerator_hxx
-#define otbBSplinesInterpolateDisplacementFieldGenerator_hxx
-
-#include "otbBSplinesInterpolateDisplacementFieldGenerator.h"
-// Disabling deprecation warning if on visual
-#ifdef _MSC_VER
-#pragma warning(push)
-#pragma warning(disable:4996)
-#endif
-#include "itkLandmarkDisplacementFieldSource.h"
-// Enabling remaining deprecation warning
-#ifdef _MSC_VER
-#pragma warning(pop)
-#endif
-#include "otbMacro.h"
-#include "otbImage.h"
-#include "itkImageRegionIterator.h"
-
-namespace otb
-{
-/** Main computation method */
-template <class TPointSet, class TDisplacementField>
-void
-BSplinesInterpolateDisplacementFieldGenerator<TPointSet, TDisplacementField>
-::GenerateData(void)
-{
-  DisplacementFieldPointerType outputPtr = this->GetOutput();
-  typedef itk::Vector<ValueType, 2>                                      VectorType;
-  typedef otb::Image<VectorType, DisplacementFieldType::ImageDimension>  ImageType;
-  typedef itk::LandmarkDisplacementFieldSource<ImageType>                DisplacementFieldSourceType;
-  typedef typename DisplacementFieldSourceType::LandmarkContainer        LandmarkContainerType;
-  typedef typename DisplacementFieldSourceType::LandmarkPointType        LandmarkPointType;
-  typedef typename PointSetType::PointsContainer                         PointsContainer;
-  typedef typename PointsContainer::ConstIterator                        PointsIterator;
-  typedef typename PointSetType::PointDataContainer                      PointDataContainer;
-  typedef typename PointDataContainer::ConstIterator                     PointDataIterator;
-
-  typename LandmarkContainerType::Pointer sourceLandmarks = LandmarkContainerType::New();
-  typename LandmarkContainerType::Pointer targetLandmarks = LandmarkContainerType::New();
-  LandmarkPointType                       sourcePoint;
-  LandmarkPointType                       targetPoint;
-
-  PointsIterator pointIterator = this->GetPointSet()->GetPoints()->Begin();
-  PointsIterator end = this->GetPointSet()->GetPoints()->End();
-  unsigned int   pointId = 0;
-
-  PointDataIterator pointDataIterator = this->GetPointSet()->GetPointData()->Begin();
-
-  while (pointIterator != end)
-    {
-    typename PointDataContainer::Element valueAndDisplacements = pointDataIterator.Value();
-
-    if (std::abs(valueAndDisplacements[0]) >= this->GetMetricThreshold())
-      {
-      typename PointSetType::PointType p = pointIterator.Value();   // access the point
-      sourcePoint[0] = p[0];
-      sourcePoint[1] = p[1];
-      targetPoint[0] = p[0] - valueAndDisplacements[1];
-      targetPoint[1] = p[1] - valueAndDisplacements[2];
-      otbMsgDebugMacro(
-        << "Adding landmark " << pointId << ", source point: " << sourcePoint << ", targetpoint: " << targetPoint);
-      sourceLandmarks->InsertElement(pointId, sourcePoint);
-      targetLandmarks->InsertElement(pointId, targetPoint);
-      ++pointId;
-      }
-    ++pointIterator;
-    ++pointDataIterator;
-    }
-
-  typename DisplacementFieldSourceType::Pointer deformer = DisplacementFieldSourceType::New();
-  deformer->SetOutputSpacing(this->GetOutputSpacing());
-  deformer->SetOutputOrigin(this->GetOutputOrigin());
-  deformer->SetOutputRegion(outputPtr->GetRequestedRegion());
-  deformer->SetSourceLandmarks(sourceLandmarks.GetPointer());
-  deformer->SetTargetLandmarks(targetLandmarks.GetPointer());
-
-  deformer->Update();
-  outputPtr->Allocate();
-  PixelType defaultPixel;
-  defaultPixel.SetSize(2);
-  defaultPixel.Fill(this->GetDefaultValue());
-  outputPtr->FillBuffer(defaultPixel);
-  typedef itk::ImageRegionIterator<ImageType>            ImageIteratorType;
-  typedef itk::ImageRegionIterator<DisplacementFieldType> OutputIteratorType;
-
-  ImageIteratorType inIt(deformer->GetOutput(), outputPtr->GetRequestedRegion());
-  OutputIteratorType outIt(outputPtr, outputPtr->GetRequestedRegion());
-  int i = 0;
-  // Casting otb::Image<itt::Vector<ValueType, 2>, 2> to otb::VectorImage<ValueType, 2>
-  for (inIt.GoToBegin(), outIt.GoToBegin(); (!inIt.IsAtEnd()) && (!outIt.IsAtEnd()); ++inIt, ++outIt, ++i)
-    {
-    typename ImageType::PixelType inPixel;
-    inPixel = inIt.Get();
-    PixelType outPixel;
-    outPixel.SetSize(2);
-    outPixel[0] = -inPixel[0];
-    outPixel[1] = -inPixel[1];
-    outIt.Set(outPixel);
-    }
-}
-/**
- * PrintSelf Method
- */
-template <class TPointSet, class TDisplacementField>
-void
-BSplinesInterpolateDisplacementFieldGenerator<TPointSet, TDisplacementField>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-}
-} // End namespace otb
-#endif
diff --git a/Modules/Registration/DisplacementField/include/otbBSplinesInterpolateTransformDisplacementFieldGenerator.h b/Modules/Registration/DisplacementField/include/otbBSplinesInterpolateTransformDisplacementFieldGenerator.h
deleted file mode 100644
index 6528f55931f87ffab35c48cd7c806495ed13caba..0000000000000000000000000000000000000000
--- a/Modules/Registration/DisplacementField/include/otbBSplinesInterpolateTransformDisplacementFieldGenerator.h
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbBSplinesInterpolateTransformDisplacementFieldGenerator_h
-#define otbBSplinesInterpolateTransformDisplacementFieldGenerator_h
-
-#include "otbPointSetWithTransformToDisplacementFieldGenerator.h"
-#include "itkUnaryFunctorImageFilter.h"
-#include "itkBSplineScatteredDataPointSetToImageFilter.h"
-#include "itkBSplineControlPointImageFunction.h"
-#include "otbImage.h"
-#include "otbMath.h"
-#include <complex>
-
-namespace otb
-{
-/** \class BSplinesInterpolateTransformDisplacementFieldGenerator
- *  \brief This class generate the displacement field by using spline interpolation on the parameters of the transform.
- *
- *  Spline interpolation of non regularly scattered data is provided
- *  by the itk::BSplineScatteredDataPointSetToImageFilter. It allows interpolation using any spline order and implements a multi-level approach.
- *
- *  This filter is used for each parameter. One can also specify the indices of the angular parameters. Angular parameters are first
- *  converted to complex exponential, the interpolated and converted back to the angular space. This is done to avoid interpolating angular discontinuities,
- *  which is a non-sense.
- *
- *  \sa itk::BSplineScatteredDataPointSetToImageFilter
- *
- * \ingroup OTBDisplacementField
- */
-template <class TPointSet, class TDisplacementField>
-class ITK_EXPORT BSplinesInterpolateTransformDisplacementFieldGenerator
-  : public PointSetWithTransformToDisplacementFieldGenerator<TPointSet, TDisplacementField>
-{
-public:
-  /** Standard typedefs */
-  typedef BSplinesInterpolateTransformDisplacementFieldGenerator                          Self;
-  typedef PointSetWithTransformToDisplacementFieldGenerator<TPointSet, TDisplacementField> Superclass;
-  typedef itk::SmartPointer<Self>                                                        Pointer;
-  typedef itk::SmartPointer<const Self>                                                  ConstPointer;
-
-  /** Type macro */
-  itkNewMacro(Self);
-
-  /** Creation through object factory macro */
-  itkTypeMacro(BSplinesInterpolateTransformDisplacementFieldGenerator, PointSetWithTransformsToDisplacementFieldGenerator);
-
-  /** Template parameters typedefs */
-  typedef typename Superclass::PointSetType                PointSetType;
-  typedef typename Superclass::PointSetPointerType         PointSetPointerType;
-  typedef typename Superclass::DisplacementFieldType        DisplacementFieldType;
-  typedef typename Superclass::DisplacementFieldPointerType DisplacementFieldPointerType;
-  typedef typename Superclass::IndexType                   IndexType;
-  typedef typename DisplacementFieldType::PixelType         PixelType;
-  typedef typename Superclass::ValueType                   ValueType;
-  typedef typename Superclass::PointType                   PointType;
-  typedef typename Superclass::IndexVectorType             IndexVectorType;
-  typedef typename Superclass::DistanceVectorType          DistanceVectorType;
-  typedef typename Superclass::ParametersType              ParametersType;
-
-  /** Filters definition */
-  typedef itk::Vector<ValueType, 2>                                          PointSetDataType;
-  typedef otb::Image<PointSetDataType, DisplacementFieldType::ImageDimension> InternalImageType;
-  typedef itk::PointSet<PointSetDataType, PointSetType::PointDimension>      InternalPointSetType;
-  typedef itk::BSplineScatteredDataPointSetToImageFilter<InternalPointSetType, InternalImageType>
-  SPlineInterpolateFilterType;
-  typedef typename SPlineInterpolateFilterType::Pointer SPlineInterpolateFilterPointerType;
-  typedef itk::BSplineControlPointImageFunction<InternalImageType>            BSplinerType;
-
-  /**
-   * Add an angular parameter. Angular parameters are transformed by complex exponential during interpolation so as to avoid discontinuity.
-   * \param index The index of the angular parameter.
-   */
-  void AddAngularParameter(unsigned int index);
-  /**
-   * Remove an angular parameter.
-   * \param index The index of the angular parameter.
-   */
-  void RemoveAngularParameter(unsigned int index);
-
-  itkSetMacro(SplineOrder, unsigned int);
-  itkGetMacro(SplineOrder, unsigned int);
-  itkSetMacro(NumberOfControlPoints, unsigned int);
-  itkGetMacro(NumberOfControlPoints, unsigned int);
-  itkSetMacro(NumberOfLevels, unsigned int);
-  itkGetMacro(NumberOfLevels, unsigned int);
-
-protected:
-  /** Constructor */
-  BSplinesInterpolateTransformDisplacementFieldGenerator();
-  /** Destructor */
-  ~BSplinesInterpolateTransformDisplacementFieldGenerator() override {}
-  /**PrintSelf method */
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-  /** Main computation method */
-  void GenerateData() override;
-
-  void GenerateOutputInformation() override;
-
-  /**
-   * Test whether a parameter is angular or not.
-   * \param index The index of the parameter to test.
-   */
-  bool IsAngular(unsigned int index);
-
-private:
-  BSplinesInterpolateTransformDisplacementFieldGenerator(const Self &) = delete;
-  void operator =(const Self&) = delete;
-
-  IndexVectorType m_AngularParameters;
-
-  unsigned int m_SplineOrder;
-  unsigned int m_NumberOfControlPoints;
-  unsigned int m_NumberOfLevels;
-};
-} // End namespace otb
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbBSplinesInterpolateTransformDisplacementFieldGenerator.hxx"
-#endif
-
-#endif
diff --git a/Modules/Registration/DisplacementField/include/otbBSplinesInterpolateTransformDisplacementFieldGenerator.hxx b/Modules/Registration/DisplacementField/include/otbBSplinesInterpolateTransformDisplacementFieldGenerator.hxx
deleted file mode 100644
index 6d370825ef6140eead474b2ea98f6cd8f1ae2677..0000000000000000000000000000000000000000
--- a/Modules/Registration/DisplacementField/include/otbBSplinesInterpolateTransformDisplacementFieldGenerator.hxx
+++ /dev/null
@@ -1,207 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbBSplinesInterpolateTransformDisplacementFieldGenerator_hxx
-#define otbBSplinesInterpolateTransformDisplacementFieldGenerator_hxx
-
-#include "otbBSplinesInterpolateTransformDisplacementFieldGenerator.h"
-#include "itkLandmarkDisplacementFieldSource.h"
-#include "otbObjectList.h"
-#include "otbMacro.h"
-
-namespace otb
-{
-template <class TPointSet, class TDisplacementField>
-BSplinesInterpolateTransformDisplacementFieldGenerator<TPointSet, TDisplacementField>
-::BSplinesInterpolateTransformDisplacementFieldGenerator()
-{
-  m_SplineOrder = 3;
-  m_NumberOfControlPoints = 4;
-  m_NumberOfLevels = 6;
-}
-
-template <class TPointSet, class TDisplacementField>
-void
-BSplinesInterpolateTransformDisplacementFieldGenerator<TPointSet, TDisplacementField>
-::GenerateOutputInformation()
-{
-  Superclass::GenerateOutputInformation();
-  this->GetOutput()->SetNumberOfComponentsPerPixel(2);
-}
-
-/** Main computation method */
-template <class TPointSet, class TDisplacementField>
-void
-BSplinesInterpolateTransformDisplacementFieldGenerator<TPointSet, TDisplacementField>
-::GenerateData(void)
-{
-  DisplacementFieldPointerType outputPtr = this->GetOutput();
-
-  // Default displacement field
-  PixelType defaultValue(2);
-  defaultValue.Fill(this->GetDefaultValue());
-  outputPtr->Allocate();
-  outputPtr->FillBuffer(defaultValue);
-
-  typedef otb::ObjectList<BSplinerType>                         SPlineInterpolatorListType;
-  typedef typename PointSetType::PointsContainer::ConstIterator PointSetIteratorType;
-
-  // Initialization of the splines interpolator
-  typename SPlineInterpolatorListType::Pointer splineIntList = SPlineInterpolatorListType::New();
-
-  for (unsigned int paramIndex = 0; paramIndex < this->GetTransform()->GetNumberOfParameters(); ++paramIndex)
-    {
-    // Create a new interpolator
-    splineIntList->PushBack(BSplinerType::New());
-    // Create a new point set
-    typename InternalPointSetType::Pointer tmpPointSet = InternalPointSetType::New();
-    tmpPointSet->Initialize();
-    unsigned int pointDataCounter = 0;
-    for (PointSetIteratorType it = this->GetPointSet()->GetPoints()->Begin();
-         it != this->GetPointSet()->GetPoints()->End();
-         ++it)
-      {
-      if (std::abs(this->GetPointSet()->GetPointData()->GetElement(pointDataCounter)[0]) >= this->GetMetricThreshold())
-        {
-        typename InternalPointSetType::PixelType V(0.0);
-
-        if (!IsAngular(paramIndex))
-          {
-          V[0] = this->GetPointSet()->GetPointData()->GetElement(pointDataCounter)[paramIndex + 3];
-          V[1] = this->GetPointSet()->GetPointData()->GetElement(pointDataCounter)[paramIndex + 3];
-          }
-        else
-          {
-          V[0] =
-            static_cast<ValueType>(std::cos(this->GetPointSet()->GetPointData()->GetElement(pointDataCounter)[paramIndex
-                                                                                                             + 3]));
-          V[1] =
-            static_cast<ValueType>(std::sin(this->GetPointSet()->GetPointData()->GetElement(pointDataCounter)[paramIndex
-                                                                                                             + 3]));
-          }
-        unsigned long nbPoints = tmpPointSet->GetNumberOfPoints();
-        tmpPointSet->SetPoint(nbPoints, it.Value());
-        tmpPointSet->SetPointData(nbPoints, V);
-        }
-      ++pointDataCounter;
-      }
-
-    SPlineInterpolateFilterPointerType splineFilter = SPlineInterpolateFilterType::New();
-
-    // Set the interpolator parameters
-    splineFilter->SetInput(tmpPointSet);
-    splineFilter->SetSplineOrder(m_SplineOrder);
-    typename SPlineInterpolateFilterType::ArrayType ncps;
-    ncps.Fill(m_NumberOfControlPoints);
-    splineFilter->SetNumberOfControlPoints(ncps);
-    splineFilter->SetNumberOfLevels(m_NumberOfLevels);
-    // splineFilter->SetGenerateOutputImage(false);
-
-    // Define the parametric domain.
-    splineFilter->SetOrigin(this->GetOutput()->GetOrigin());
-    splineFilter->SetSpacing(this->GetOutput()->GetSpacing());
-    splineFilter->SetSize(this->GetOutput()->GetLargestPossibleRegion().GetSize());
-    splineFilter->Update();
-
-    // Image function
-    splineIntList->Back()->SetSplineOrder( splineFilter->GetSplineOrder() );
-    splineIntList->Back()->SetSize( splineFilter->GetSize() );
-    splineIntList->Back()->SetSpacing( splineFilter->GetSpacing() );
-    splineIntList->Back()->SetOrigin( splineFilter->GetOrigin() );
-    splineIntList->Back()->SetInputImage( static_cast<const InternalImageType*>(splineFilter->GetPhiLattice().GetPointer()) );
-    }
-
-  // Interpolation
-  typedef itk::ImageRegionIteratorWithIndex<DisplacementFieldType> IteratorType;
-  IteratorType outIt(outputPtr, outputPtr->GetRequestedRegion());
-
-  // main loop
-  for (outIt.GoToBegin(); !outIt.IsAtEnd(); ++outIt)
-    {
-    // Index of the pixel
-    IndexType index = outIt.GetIndex();
-    // parameters vector
-    ParametersType params(this->GetTransform()->GetNumberOfParameters());
-    // we iterate over the number of parameters of the transform
-    for (unsigned int paramIndex = 0; paramIndex < this->GetTransform()->GetNumberOfParameters(); ++paramIndex)
-      {
-      typename InternalPointSetType::PointType p;
-      this->GetOutput()->TransformIndexToPhysicalPoint(index, p);
-      typename InternalPointSetType::PixelType V(0.0);
-      // For each parameter we use the associated spline interpolator
-      if (!IsAngular(paramIndex))
-        {
-        V = splineIntList->GetNthElement(paramIndex)->EvaluateAtParametricPoint(p);
-        params[paramIndex] = V[0];
-        }
-      else
-        {
-        V = splineIntList->GetNthElement(paramIndex)->EvaluateAtParametricPoint(p);
-        params[paramIndex] = std::atan2(V[1], V[0]);
-        }
-      // We then compute the target point using the transform
-      this->GetTransform()->SetParameters(params);
-      PointType sourcePoint, targetPoint;
-      outputPtr->TransformIndexToPhysicalPoint(index, sourcePoint);
-      targetPoint = this->GetTransform()->TransformPoint(sourcePoint);
-
-      // And the displacement
-      PixelType pixel;
-      pixel.SetSize(2);
-      pixel[0] = static_cast<ValueType>(targetPoint[0] - sourcePoint[0]);
-      pixel[1] = static_cast<ValueType>(targetPoint[1] - sourcePoint[1]);
-      outIt.Set(pixel);
-      }
-    }
-}
-template <class TPointSet, class TDisplacementField>
-void
-BSplinesInterpolateTransformDisplacementFieldGenerator<TPointSet, TDisplacementField>
-::AddAngularParameter(unsigned int index)
-{
-  m_AngularParameters.push_back(index);
-}
-template <class TPointSet, class TDisplacementField>
-void
-BSplinesInterpolateTransformDisplacementFieldGenerator<TPointSet, TDisplacementField>
-::RemoveAngularParameter(unsigned int index)
-{
-  m_AngularParameters.erase(index);
-}
-template <class TPointSet, class TDisplacementField>
-bool
-BSplinesInterpolateTransformDisplacementFieldGenerator<TPointSet, TDisplacementField>
-::IsAngular(unsigned int index)
-{
-  bool resp = std::binary_search(m_AngularParameters.begin(), m_AngularParameters.end(), index);
-  return resp;
-}
-/**
- * PrintSelf Method
- */
-template <class TPointSet, class TDisplacementField>
-void
-BSplinesInterpolateTransformDisplacementFieldGenerator<TPointSet, TDisplacementField>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-}
-} // End namespace otb
-#endif
diff --git a/Modules/Registration/DisplacementField/include/otbNNearestPointsLinearInterpolateDisplacementFieldGenerator.h b/Modules/Registration/DisplacementField/include/otbNNearestPointsLinearInterpolateDisplacementFieldGenerator.h
deleted file mode 100644
index ab4f9d62f4f0a5f0d59b208bf584d7a7050619e9..0000000000000000000000000000000000000000
--- a/Modules/Registration/DisplacementField/include/otbNNearestPointsLinearInterpolateDisplacementFieldGenerator.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbNNearestPointsLinearInterpolateDisplacementFieldGenerator_h
-#define otbNNearestPointsLinearInterpolateDisplacementFieldGenerator_h
-
-#include "otbPointSetToDisplacementFieldGenerator.h"
-
-namespace otb
-{
-/** \class NNearestPointsLinearInterpolateDisplacementFieldGenerator
- *  \brief This class generate the displacement field by performing a linear interpolation of the displacement induced by the n nearest point.
- * \ingroup DisparityMap
- *
- * \ingroup OTBDisplacementField
- */
-template <class TPointSet, class TDisplacementField>
-class ITK_EXPORT NNearestPointsLinearInterpolateDisplacementFieldGenerator
-  : public PointSetToDisplacementFieldGenerator<TPointSet, TDisplacementField>
-{
-public:
-  /** Standard typedefs */
-  typedef NNearestPointsLinearInterpolateDisplacementFieldGenerator          Self;
-  typedef PointSetToDisplacementFieldGenerator<TPointSet, TDisplacementField> Superclass;
-  typedef itk::SmartPointer<Self>                                           Pointer;
-  typedef itk::SmartPointer<const Self>                                     ConstPointer;
-
-  /** Type macro */
-  itkNewMacro(Self);
-
-  /** Creation through object factory macro */
-  itkTypeMacro(NNearestPointsLinearInterpolateDisplacementFieldGenerator, PointSetToDisplacementFieldGenerator);
-
-  /** Template parameters typedefs */
-  typedef typename Superclass::PointSetType                PointSetType;
-  typedef typename Superclass::PointSetPointerType         PointSetPointerType;
-  typedef typename Superclass::DisplacementFieldType        DisplacementFieldType;
-  typedef typename Superclass::DisplacementFieldPointerType DisplacementFieldPointerType;
-  typedef typename Superclass::IndexType                   IndexType;
-  typedef typename DisplacementFieldType::PixelType         PixelType;
-  typedef typename Superclass::ValueType                   ValueType;
-  typedef typename Superclass::PointType                   PointType;
-  typedef typename Superclass::IndexVectorType             IndexVectorType;
-  typedef typename Superclass::DistanceVectorType          DistanceVectorType;
-
-  itkSetMacro(NumberOfPoints, unsigned int);
-  itkGetMacro(NumberOfPoints, unsigned int);
-
-protected:
-  /** Constructor */
-  NNearestPointsLinearInterpolateDisplacementFieldGenerator() {};
-  /** Destructor */
-  ~NNearestPointsLinearInterpolateDisplacementFieldGenerator() override {}
-  /**PrintSelf method */
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-  /** Main computation method */
-  void GenerateData() override;
-
-private:
-  NNearestPointsLinearInterpolateDisplacementFieldGenerator(const Self &) = delete;
-  void operator =(const Self&) = delete;
-
-  unsigned int m_NumberOfPoints;
-};
-} // End namespace otb
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbNNearestPointsLinearInterpolateDisplacementFieldGenerator.hxx"
-#endif
-
-#endif
diff --git a/Modules/Registration/DisplacementField/include/otbNNearestPointsLinearInterpolateDisplacementFieldGenerator.hxx b/Modules/Registration/DisplacementField/include/otbNNearestPointsLinearInterpolateDisplacementFieldGenerator.hxx
deleted file mode 100644
index 873bca0b2efbf8f4588c634043bba2b004c5b534..0000000000000000000000000000000000000000
--- a/Modules/Registration/DisplacementField/include/otbNNearestPointsLinearInterpolateDisplacementFieldGenerator.hxx
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbNNearestPointsLinearInterpolateDisplacementFieldGenerator_hxx
-#define otbNNearestPointsLinearInterpolateDisplacementFieldGenerator_hxx
-
-#define EPSILON 1e-15
-
-#include "otbNNearestPointsLinearInterpolateDisplacementFieldGenerator.h"
-#include "itkImageRegionIteratorWithIndex.h"
-#include "otbMacro.h"
-
-namespace otb
-{
-/** Main computation method */
-template <class TPointSet, class TDisplacementField>
-void
-NNearestPointsLinearInterpolateDisplacementFieldGenerator<TPointSet, TDisplacementField>
-::GenerateData(void)
-{
-  DisplacementFieldPointerType outputPtr = this->GetOutput();
-  PixelType defaultValue(2);
-  defaultValue.Fill(this->GetDefaultValue());
-  outputPtr->Allocate();
-  outputPtr->FillBuffer(defaultValue);
-
-  typedef itk::ImageRegionIteratorWithIndex<DisplacementFieldType> IteratorType;
-  IteratorType it(outputPtr, outputPtr->GetRequestedRegion());
-
-  for (it.GoToBegin(); !it.IsAtEnd(); ++it)
-    {
-    IndexType       index = it.GetIndex();
-    IndexVectorType indexVector = this->GenerateNearestValidPointsPointSet(it.GetIndex(), m_NumberOfPoints);
-    PixelType pixel(2);
-    double xdisplacement, ydisplacement, normalization;
-    xdisplacement = 0;
-    ydisplacement = 0;
-    normalization = 0;
-
-    for (typename IndexVectorType::iterator indexIt = indexVector.begin(); indexIt != indexVector.end(); ++indexIt)
-      {
-      PointType point;
-      point[0] = static_cast<double>(this->GetPointSet()->GetPoints()->GetElement(*indexIt)[0]);
-      point[1] = static_cast<double>(this->GetPointSet()->GetPoints()->GetElement(*indexIt)[1]);
-      double distance = this->EuclideanDistanceMetric(index, point);
-      if (distance < EPSILON)
-        {
-        distance = EPSILON;
-        }
-      xdisplacement +=  this->GetPointSet()->GetPointData()->GetElement((*indexIt))[1] / distance;
-      ydisplacement +=  this->GetPointSet()->GetPointData()->GetElement((*indexIt))[2] / distance;
-      normalization += 1 / distance;
-      }
-
-    if (normalization > 0)
-      {
-      pixel[0] = static_cast<ValueType>(xdisplacement / normalization);
-      pixel[1] = static_cast<ValueType>(ydisplacement / normalization);
-      }
-    else
-      {
-      pixel = defaultValue;
-      }
-    it.Set(pixel);
-    }
-}
-/**
- * PrintSelf Method
- */
-template <class TPointSet, class TDisplacementField>
-void
-NNearestPointsLinearInterpolateDisplacementFieldGenerator<TPointSet, TDisplacementField>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-}
-} // End namespace otb
-#endif
diff --git a/Modules/Registration/DisplacementField/include/otbNNearestTransformsLinearInterpolateDisplacementFieldGenerator.h b/Modules/Registration/DisplacementField/include/otbNNearestTransformsLinearInterpolateDisplacementFieldGenerator.h
deleted file mode 100644
index 7ab027e0135ab84a80c67be3c8c76117d9283aa4..0000000000000000000000000000000000000000
--- a/Modules/Registration/DisplacementField/include/otbNNearestTransformsLinearInterpolateDisplacementFieldGenerator.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbNNearestTransformsLinearInterpolateDisplacementFieldGenerator_h
-#define otbNNearestTransformsLinearInterpolateDisplacementFieldGenerator_h
-
-#include "otbPointSetWithTransformToDisplacementFieldGenerator.h"
-
-namespace otb
-{
-/** \class NNearestTransformsLinearInterpolateDisplacementFieldGenerator
- *  \brief generate the displacement field by performing a linear interpolation
- *
- * This class generate the displacement field by performing a linear interpolation of
- * the displacements from the transforms induced by the n nearest points.
- *
- * \ingroup DisparityMap
- *
- * \ingroup OTBDisplacementField
- */
-template <class TPointSet, class TDisplacementField>
-class ITK_EXPORT NNearestTransformsLinearInterpolateDisplacementFieldGenerator
-  : public PointSetWithTransformToDisplacementFieldGenerator<TPointSet, TDisplacementField>
-{
-public:
-  /** Standard typedefs */
-  typedef NNearestTransformsLinearInterpolateDisplacementFieldGenerator                   Self;
-  typedef PointSetWithTransformToDisplacementFieldGenerator<TPointSet, TDisplacementField> Superclass;
-  typedef itk::SmartPointer<Self>                                                        Pointer;
-  typedef itk::SmartPointer<const Self>                                                  ConstPointer;
-
-  /** Type macro */
-  itkNewMacro(Self);
-
-  /** Creation through object factory macro */
-  itkTypeMacro(NNearestTransformsLinearInterpolateDisplacementFieldGenerator,
-               PointSetWithTransformsToDisplacementFieldGenerator);
-
-  /** Template parameters typedefs */
-  typedef typename Superclass::PointSetType                PointSetType;
-  typedef typename Superclass::PointSetPointerType         PointSetPointerType;
-  typedef typename Superclass::DisplacementFieldType        DisplacementFieldType;
-  typedef typename Superclass::DisplacementFieldPointerType DisplacementFieldPointerType;
-  typedef typename Superclass::IndexType                   IndexType;
-  typedef typename DisplacementFieldType::PixelType         PixelType;
-  typedef typename Superclass::ValueType                   ValueType;
-  typedef typename Superclass::PointType                   PointType;
-  typedef typename Superclass::IndexVectorType             IndexVectorType;
-  typedef typename Superclass::DistanceVectorType          DistanceVectorType;
-  typedef typename Superclass::TransformType               TransformType;
-  typedef typename TransformType::ParametersType           ParametersType;
-
-  itkSetMacro(NumberOfPoints, unsigned int);
-  itkGetMacro(NumberOfPoints, unsigned int);
-
-protected:
-  /** Constructor */
-  NNearestTransformsLinearInterpolateDisplacementFieldGenerator() {};
-  /** Destructor */
-  ~NNearestTransformsLinearInterpolateDisplacementFieldGenerator() override {}
-  /**PrintSelf method */
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-  /** Main computation method */
-  void GenerateData() override;
-
-private:
-  NNearestTransformsLinearInterpolateDisplacementFieldGenerator(const Self &) = delete;
-  void operator =(const Self&) = delete;
-
-  unsigned int m_NumberOfPoints;
-};
-} // End namespace otb
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbNNearestTransformsLinearInterpolateDisplacementFieldGenerator.hxx"
-#endif
-
-#endif
diff --git a/Modules/Registration/DisplacementField/include/otbNNearestTransformsLinearInterpolateDisplacementFieldGenerator.hxx b/Modules/Registration/DisplacementField/include/otbNNearestTransformsLinearInterpolateDisplacementFieldGenerator.hxx
deleted file mode 100644
index dabb7ab6ded475512374a0794b65724fffb3b42b..0000000000000000000000000000000000000000
--- a/Modules/Registration/DisplacementField/include/otbNNearestTransformsLinearInterpolateDisplacementFieldGenerator.hxx
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbNNearestTransformsLinearInterpolateDisplacementFieldGenerator_hxx
-#define otbNNearestTransformsLinearInterpolateDisplacementFieldGenerator_hxx
-
-#define EPSILON 1e-15
-
-#include "otbNNearestTransformsLinearInterpolateDisplacementFieldGenerator.h"
-#include "itkImageRegionIteratorWithIndex.h"
-#include "otbMacro.h"
-
-namespace otb
-{
-/** Main computation method */
-template <class TPointSet, class TDisplacementField>
-void
-NNearestTransformsLinearInterpolateDisplacementFieldGenerator<TPointSet, TDisplacementField>
-::GenerateData(void)
-{
-  DisplacementFieldPointerType outputPtr = this->GetOutput();
-  PixelType defaultValue(2);
-  defaultValue.Fill(this->GetDefaultValue());
-  outputPtr->Allocate();
-  outputPtr->FillBuffer(defaultValue);
-
-  typedef itk::ImageRegionIteratorWithIndex<DisplacementFieldType> IteratorType;
-  IteratorType it(outputPtr, outputPtr->GetRequestedRegion());
-
-  for (it.GoToBegin(); !it.IsAtEnd(); ++it)
-    {
-    IndexType       index = it.GetIndex();
-    IndexVectorType indexVector = this->GenerateNearestValidPointsPointSet(it.GetIndex(), m_NumberOfPoints);
-    PixelType pixel(2);
-    double xdisplacement, ydisplacement, normalization;
-    xdisplacement = 0;
-    ydisplacement = 0;
-    normalization = 0;
-
-    for (typename IndexVectorType::iterator indexIt = indexVector.begin(); indexIt != indexVector.end(); ++indexIt)
-      {
-      PointType point;
-      point[0] = static_cast<double>(this->GetPointSet()->GetPoints()->GetElement(*indexIt)[0]);
-      point[1] = static_cast<double>(this->GetPointSet()->GetPoints()->GetElement(*indexIt)[1]);
-      double distance = this->EuclideanDistanceMetric(index, point);
-      if (distance < EPSILON)
-        {
-        distance = EPSILON;
-        }
-
-      ParametersType params(this->GetTransform()->GetNumberOfParameters());
-      for (unsigned int i = 0; i < this->GetTransform()->GetNumberOfParameters(); ++i)
-        {
-        params[i] = this->GetPointSet()->GetPointData()->GetElement((*indexIt))[i + 3];
-        }
-      this->GetTransform()->SetParameters(params);
-      PointType sourcePoint, targetPoint;
-
-      outputPtr->TransformIndexToPhysicalPoint(it.GetIndex(), sourcePoint);
-      targetPoint = this->GetTransform()->TransformPoint(sourcePoint);
-      xdisplacement += (targetPoint[0] - sourcePoint[0]) / distance;
-      ydisplacement += (targetPoint[1] - sourcePoint[1]) / distance;
-      normalization += 1 / distance;
-      }
-
-    if (normalization > 0)
-      {
-      pixel[0] = static_cast<ValueType>(xdisplacement / normalization);
-      pixel[1] = static_cast<ValueType>(ydisplacement / normalization);
-      }
-    else
-      {
-      pixel = defaultValue;
-      }
-    it.Set(pixel);
-    }
-}
-/**
- * PrintSelf Method
- */
-template <class TPointSet, class TDisplacementField>
-void
-NNearestTransformsLinearInterpolateDisplacementFieldGenerator<TPointSet, TDisplacementField>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-}
-} // End namespace otb
-#endif
diff --git a/Modules/Registration/DisplacementField/include/otbNearestPointDisplacementFieldGenerator.h b/Modules/Registration/DisplacementField/include/otbNearestPointDisplacementFieldGenerator.h
deleted file mode 100644
index 158e21b2c13b79a65d8a1217ae3f75134c8da972..0000000000000000000000000000000000000000
--- a/Modules/Registration/DisplacementField/include/otbNearestPointDisplacementFieldGenerator.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbNearestPointDisplacementFieldGenerator_h
-#define otbNearestPointDisplacementFieldGenerator_h
-
-#include "otbPointSetToDisplacementFieldGenerator.h"
-
-namespace otb
-{
-/** \class NearestPointDisplacementFieldGenerator
- *  \brief This class implements the simplest way to displacement field generation using a point set.
- *  In each pixel location, the displacement is considered to be the displacement of the nearest seed point in the point set.
- *
- * \ingroup DisparityMap
- *
- * \ingroup OTBDisplacementField
- */
-template <class TPointSet, class TDisplacementField>
-class ITK_EXPORT NearestPointDisplacementFieldGenerator
-  : public PointSetToDisplacementFieldGenerator<TPointSet, TDisplacementField>
-{
-public:
-  /** Standard typedefs */
-  typedef NearestPointDisplacementFieldGenerator                             Self;
-  typedef PointSetToDisplacementFieldGenerator<TPointSet, TDisplacementField> Superclass;
-  typedef itk::SmartPointer<Self>                                           Pointer;
-  typedef itk::SmartPointer<const Self>                                     ConstPointer;
-
-  /** Type macro */
-  itkNewMacro(Self);
-
-  /** Creation through object factory macro */
-  itkTypeMacro(NearestPointDisplacementFieldGenerator, PointSetToDisplacementFieldGenerator);
-
-  /** Template parameters typedefs */
-  typedef typename Superclass::PointSetType                PointSetType;
-  typedef typename Superclass::PointSetPointerType         PointSetPointerType;
-  typedef typename Superclass::DisplacementFieldType        DisplacementFieldType;
-  typedef typename Superclass::DisplacementFieldPointerType DisplacementFieldPointerType;
-  typedef typename Superclass::IndexType                   IndexType;
-  typedef typename DisplacementFieldType::PixelType         PixelType;
-  typedef typename Superclass::ValueType                   ValueType;
-  typedef typename Superclass::IndexVectorType             IndexVectorType;
-
-protected:
-  /** Constructor */
-  NearestPointDisplacementFieldGenerator() {};
-  /** Destructor */
-  ~NearestPointDisplacementFieldGenerator() override {}
-  /**PrintSelf method */
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-  /** Main computation method */
-  void GenerateData() override;
-
-private:
-  NearestPointDisplacementFieldGenerator(const Self &) = delete;
-  void operator =(const Self&) = delete;
-};
-} // End namespace otb
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbNearestPointDisplacementFieldGenerator.hxx"
-#endif
-
-#endif
diff --git a/Modules/Registration/DisplacementField/include/otbNearestPointDisplacementFieldGenerator.hxx b/Modules/Registration/DisplacementField/include/otbNearestPointDisplacementFieldGenerator.hxx
deleted file mode 100644
index f7194ec39aa8364311fcd003859497361bece1f7..0000000000000000000000000000000000000000
--- a/Modules/Registration/DisplacementField/include/otbNearestPointDisplacementFieldGenerator.hxx
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbNearestPointDisplacementFieldGenerator_hxx
-#define otbNearestPointDisplacementFieldGenerator_hxx
-
-#include "otbNearestPointDisplacementFieldGenerator.h"
-#include "itkImageRegionIteratorWithIndex.h"
-#include "otbMacro.h"
-
-namespace otb
-{
-/** Main computation method */
-template <class TPointSet, class TDisplacementField>
-void
-NearestPointDisplacementFieldGenerator<TPointSet, TDisplacementField>
-::GenerateData(void)
-{
-  DisplacementFieldPointerType outputPtr = this->GetOutput();
-  PixelType defaultValue(2);
-  defaultValue.Fill(this->GetDefaultValue());
-  outputPtr->Allocate();
-  outputPtr->FillBuffer(defaultValue);
-
-  typedef itk::ImageRegionIteratorWithIndex<DisplacementFieldType> IteratorType;
-  IteratorType it(outputPtr, outputPtr->GetRequestedRegion());
-
-  for (it.GoToBegin(); !it.IsAtEnd(); ++it)
-    {
-    IndexVectorType indexVector = this->GenerateNearestValidPointsPointSet(it.GetIndex(), 1);
-    PixelType p(2);
-    if (indexVector.size() >= 1)
-      {
-      p[0] = static_cast<ValueType>(this->GetPointSet()->GetPointData()->GetElement(indexVector[0])[1]);
-      p[1] = static_cast<ValueType>(this->GetPointSet()->GetPointData()->GetElement(indexVector[0])[2]);
-      }
-    else
-      {
-      p = defaultValue;
-      }
-    it.Set(p);
-    }
-}
-/**
- * PrintSelf Method
- */
-template <class TPointSet, class TDisplacementField>
-void
-NearestPointDisplacementFieldGenerator<TPointSet, TDisplacementField>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-}
-} // End namespace otb
-#endif
diff --git a/Modules/Registration/DisplacementField/include/otbNearestTransformDisplacementFieldGenerator.h b/Modules/Registration/DisplacementField/include/otbNearestTransformDisplacementFieldGenerator.h
deleted file mode 100644
index 6f4f907802a1b67017396b41c3674e74b95043a0..0000000000000000000000000000000000000000
--- a/Modules/Registration/DisplacementField/include/otbNearestTransformDisplacementFieldGenerator.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbNearestTransformDisplacementFieldGenerator_h
-#define otbNearestTransformDisplacementFieldGenerator_h
-
-#include "otbPointSetWithTransformToDisplacementFieldGenerator.h"
-
-namespace otb
-{
-/** \class NearestTransformDisplacementFieldGenerator
- *  \brief This class implements displacement field generation by taking into account the local transform of the
- *  nearest point in pointset.
- *
- * \ingroup DisparityMap
- *
- * \ingroup OTBDisplacementField
- */
-template <class TPointSet, class TDisplacementField>
-class ITK_EXPORT NearestTransformDisplacementFieldGenerator
-  : public PointSetWithTransformToDisplacementFieldGenerator<TPointSet, TDisplacementField>
-{
-public:
-  /** Standard typedefs */
-  typedef NearestTransformDisplacementFieldGenerator                                      Self;
-  typedef PointSetWithTransformToDisplacementFieldGenerator<TPointSet, TDisplacementField> Superclass;
-  typedef itk::SmartPointer<Self>                                                        Pointer;
-  typedef itk::SmartPointer<const Self>                                                  ConstPointer;
-
-  /** Type macro */
-  itkNewMacro(Self);
-
-  /** Creation through object factory macro */
-  itkTypeMacro(NearestTransformDisplacementFieldGenerator, PointSetWithTransformToDisplacementFieldGenerator);
-
-  /** Template parameters typedefs */
-  typedef typename Superclass::PointSetType                PointSetType;
-  typedef typename Superclass::PointSetPointerType         PointSetPointerType;
-  typedef typename Superclass::DisplacementFieldType        DisplacementFieldType;
-  typedef typename Superclass::DisplacementFieldPointerType DisplacementFieldPointerType;
-  typedef typename Superclass::IndexType                   IndexType;
-  typedef typename Superclass::PointType                   PointType;
-  typedef typename DisplacementFieldType::PixelType         PixelType;
-  typedef typename Superclass::ValueType                   ValueType;
-  typedef typename Superclass::IndexVectorType             IndexVectorType;
-  typedef typename Superclass::TransformType               TransformType;
-  typedef typename TransformType::ParametersType           ParametersType;
-
-protected:
-  /** Constructor */
-  NearestTransformDisplacementFieldGenerator() {};
-  /** Destructor */
-  ~NearestTransformDisplacementFieldGenerator() override {}
-  /**PrintSelf method */
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-  /** Main computation method */
-  void GenerateData() override;
-
-private:
-  NearestTransformDisplacementFieldGenerator(const Self &) = delete;
-  void operator =(const Self&) = delete;
-};
-} // End namespace otb
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbNearestTransformDisplacementFieldGenerator.hxx"
-#endif
-
-#endif
diff --git a/Modules/Registration/DisplacementField/include/otbNearestTransformDisplacementFieldGenerator.hxx b/Modules/Registration/DisplacementField/include/otbNearestTransformDisplacementFieldGenerator.hxx
deleted file mode 100644
index e43b4fe7da8daf535e3650bb663fa69b4893f56b..0000000000000000000000000000000000000000
--- a/Modules/Registration/DisplacementField/include/otbNearestTransformDisplacementFieldGenerator.hxx
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbNearestTransformDisplacementFieldGenerator_hxx
-#define otbNearestTransformDisplacementFieldGenerator_hxx
-
-#include "otbNearestTransformDisplacementFieldGenerator.h"
-#include "itkImageRegionIteratorWithIndex.h"
-#include "otbMacro.h"
-
-namespace otb
-{
-/** Main computation method */
-template <class TPointSet, class TDisplacementField>
-void
-NearestTransformDisplacementFieldGenerator<TPointSet, TDisplacementField>
-::GenerateData(void)
-{
-  DisplacementFieldPointerType outputPtr = this->GetOutput();
-  PixelType defaultValue(2);
-  defaultValue.Fill(this->GetDefaultValue());
-  outputPtr->Allocate();
-  outputPtr->FillBuffer(defaultValue);
-
-  typedef itk::ImageRegionIteratorWithIndex<DisplacementFieldType> IteratorType;
-  IteratorType it(outputPtr, outputPtr->GetRequestedRegion());
-
-  for (it.GoToBegin(); !it.IsAtEnd(); ++it)
-    {
-    IndexVectorType indexVector = this->GenerateNearestValidPointsPointSet(it.GetIndex(), 1);
-    PixelType pixel(2);
-    if (indexVector.size() >= 1)
-      {
-      ParametersType params(this->GetTransform()->GetNumberOfParameters());
-      for (unsigned int i = 0; i < this->GetTransform()->GetNumberOfParameters(); ++i)
-        {
-        params[i] = this->GetPointSet()->GetPointData()->GetElement(indexVector[0])[i + 3];
-        }
-      this->GetTransform()->SetParameters(params);
-      PointType sourcePoint, targetPoint;
-
-      outputPtr->TransformIndexToPhysicalPoint(it.GetIndex(), sourcePoint);
-      targetPoint = this->GetTransform()->TransformPoint(sourcePoint);
-      pixel[0] = static_cast<ValueType>(targetPoint[0] - sourcePoint[0]);
-      pixel[1] = static_cast<ValueType>(targetPoint[1] - sourcePoint[1]);
-      }
-    else
-      {
-      pixel = defaultValue;
-      }
-    it.Set(pixel);
-    }
-}
-/**
- * PrintSelf Method
- */
-template <class TPointSet, class TDisplacementField>
-void
-NearestTransformDisplacementFieldGenerator<TPointSet, TDisplacementField>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-}
-} // End namespace otb
-#endif
diff --git a/Modules/Registration/DisplacementField/include/otbPointSetToDisplacementFieldGenerator.h b/Modules/Registration/DisplacementField/include/otbPointSetToDisplacementFieldGenerator.h
deleted file mode 100644
index 9624d8ebe16f1af7108870cfe13f54f3da8c2cd3..0000000000000000000000000000000000000000
--- a/Modules/Registration/DisplacementField/include/otbPointSetToDisplacementFieldGenerator.h
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbPointSetToDisplacementFieldGenerator_h
-#define otbPointSetToDisplacementFieldGenerator_h
-
-#include "itkImageSource.h"
-
-namespace otb
-{
-namespace Functor
-{
-/** \class DistanceComparisonFunctor
- *  \brief This functor is used in nearest neighborhood sorting.
- *  \ingroup DisparityMap
- *
- * \ingroup OTBDisplacementField
- */
-class DistanceComparisonFunctor
-{
-public:
-  DistanceComparisonFunctor() {}
-  virtual ~DistanceComparisonFunctor() {}
-  typedef std::vector<double> DistanceVectorType;
-
-  void SetDistanceVector(DistanceVectorType& vec)
-  {
-    m_DistanceVector = vec;
-  }
-  DistanceVectorType GetDistanceVector(void)
-  {
-    return m_DistanceVector;
-  }
-  inline bool operator ()(const unsigned int a1, const unsigned int a2)
-  {
-    return m_DistanceVector[a1] < m_DistanceVector[a2];
-  }
-
-private:
-  DistanceVectorType m_DistanceVector;
-};
-}
-/** \class PointSetToDisplacementFieldGenerator
- *  \brief Base class for filters generating a displacement field from a point set enriched with displacement and local transform information.
- *  The output of the filters deriving from this base class can be passed to the itk::WarpImageFilter for image resampling.
- *  \sa DisparityMapEstimationMethod
- *   \sa itk::WarpImageFilter
-   *  \ingroup DisparityMap
- *
- * \ingroup OTBDisplacementField
- */
-template <class TPointSet, class TDisplacementField>
-class ITK_EXPORT PointSetToDisplacementFieldGenerator
-  : public itk::ImageSource<TDisplacementField>
-{
-public:
-  /** Standard typedefs */
-  typedef PointSetToDisplacementFieldGenerator Self;
-  typedef itk::ImageSource<TDisplacementField> Superclass;
-  typedef itk::SmartPointer<Self>             Pointer;
-  typedef itk::SmartPointer<const Self>       ConstPointer;
-
-  /** Type macro */
-  itkNewMacro(Self);
-
-  /** Creation through object factory macro */
-  itkTypeMacro(PointSetToDisplacementFieldGenerator, ImageSource);
-
-  /** Template parameters typedefs */
-  typedef TPointSet                      PointSetType;
-  typedef typename PointSetType::Pointer PointSetPointerType;
-
-  typedef TDisplacementField                                DisplacementFieldType;
-  typedef typename DisplacementFieldType::Pointer           DisplacementFieldPointerType;
-  typedef typename DisplacementFieldType::IndexType         IndexType;
-  typedef typename DisplacementFieldType::SizeType          SizeType;
-  typedef typename DisplacementFieldType::SpacingType       SpacingType;
-  typedef typename DisplacementFieldType::PointType         PointType;
-  typedef typename DisplacementFieldType::InternalPixelType ValueType;
-
-  /** More typedefs */
-  typedef std::vector<double>       DistanceVectorType;
-  typedef std::vector<unsigned int> IndexVectorType;
-
-  /**
-   * Set the pointset containing the disparity.
-   * \param pointset The pointset containing the disparity.
-   */
-  void SetPointSet(const TPointSet * pointset);
-  /**
-   * Get the pointset containing the disparity.
-   * \return The pointset containing the disparity.
-   */
-  const TPointSet * GetPointSet(void);
-
-  itkSetMacro(MetricThreshold, double);
-  itkGetMacro(MetricThreshold, double);
-  itkSetMacro(DefaultValue, ValueType);
-  itkGetMacro(DefaultValue, ValueType);
-  itkSetMacro(OutputSize, SizeType);
-  itkGetConstReferenceMacro(OutputSize, SizeType);
-  itkSetMacro(OutputSpacing, SpacingType);
-  itkGetConstReferenceMacro(OutputSpacing, SpacingType);
-  itkSetMacro(OutputOrigin, PointType);
-  itkGetConstReferenceMacro(OutputOrigin, PointType);
-
-protected:
-  /** Constructor */
-  PointSetToDisplacementFieldGenerator();
-  /** Destructor */
-  ~PointSetToDisplacementFieldGenerator() override {}
-  /**PrintSelf method */
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-  /** Generate output information */
-  void GenerateOutputInformation(void) override;
-  /**
-   * Generate the n nearest valid point in point set, where a valid point has a sufficient metric value.
-   *  \param index The index of the pixel to compute.
-   *  \param n The number of nearest point to seek.
-   *  \return A vector containing the index of the nearest point from nearest to most far.
-   */
-  IndexVectorType GenerateNearestValidPointsPointSet(IndexType index, unsigned int n = 1);
-
-  /** Euclidean distance of point to index */
-  double EuclideanDistanceMetric(IndexType index, PointType p);
-
-private:
-  PointSetToDisplacementFieldGenerator(const Self &) = delete;
-  void operator =(const Self&) = delete;
-
-  /**
-   * The threshold of metric value.
-   */
-  double m_MetricThreshold;
-  /** The output size */
-  SizeType m_OutputSize;
-  /** The output spacing. */
-  SpacingType m_OutputSpacing;
-  /** The output origin */
-  PointType m_OutputOrigin;
-  /** Default value */
-  ValueType m_DefaultValue;
-};
-} // End namespace otb
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbPointSetToDisplacementFieldGenerator.hxx"
-#endif
-
-#endif
diff --git a/Modules/Registration/DisplacementField/include/otbPointSetToDisplacementFieldGenerator.hxx b/Modules/Registration/DisplacementField/include/otbPointSetToDisplacementFieldGenerator.hxx
deleted file mode 100644
index f0b69603156bf68220c8bb698ea2bcfabcd894c3..0000000000000000000000000000000000000000
--- a/Modules/Registration/DisplacementField/include/otbPointSetToDisplacementFieldGenerator.hxx
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbPointSetToDisplacementFieldGenerator_hxx
-#define otbPointSetToDisplacementFieldGenerator_hxx
-
-#include "otbPointSetToDisplacementFieldGenerator.h"
-#include "otbMacro.h"
-
-namespace otb
-{
-/**
- * Constructor
- */
-template <class TPointSet, class TDisplacementField>
-PointSetToDisplacementFieldGenerator<TPointSet, TDisplacementField>
-::PointSetToDisplacementFieldGenerator()
-{
-  this->SetNumberOfRequiredInputs(1);
-  m_MetricThreshold = 0.;
-  m_OutputSize.Fill(100);
-  m_OutputSpacing.Fill(1.);
-  m_OutputOrigin.Fill(0.);
-  m_DefaultValue = 0;
-//  m_NearestPoints = PointSetType::New();
-}
-/**
- * Set the pointset containing the disparity.
- * \param pointset The pointset containing the disparity.
- */
-template <class TPointSet, class TDisplacementField>
-void
-PointSetToDisplacementFieldGenerator<TPointSet, TDisplacementField>
-::SetPointSet(const TPointSet * pointset)
-{
-  this->itk::ProcessObject::SetNthInput(0, const_cast<PointSetType *>(pointset));
-}
-/**
- * Get the pointset containing the disparity.
- * \return The pointset containing the disparity.
- */
-template <class TPointSet, class TDisplacementField>
-const TPointSet *
-PointSetToDisplacementFieldGenerator<TPointSet, TDisplacementField>
-::GetPointSet(void)
-{
-  return static_cast<const PointSetType *>(this->itk::ProcessObject::GetInput(0));
-}
-/** Generate output information */
-template <class TPointSet, class TDisplacementField>
-void
-PointSetToDisplacementFieldGenerator<TPointSet, TDisplacementField>
-::GenerateOutputInformation(void)
-{
-  DisplacementFieldPointerType               outputPtr = this->GetOutput();
-  typename DisplacementFieldType::RegionType largest;
-  largest.SetSize(m_OutputSize);
-  IndexType index;
-  index.Fill(0);
-  largest.SetIndex(index);
-  outputPtr->SetRegions(largest);
-  outputPtr->SetSignedSpacing(m_OutputSpacing);
-  outputPtr->SetOrigin(m_OutputOrigin);
-  // Force the displacement field to have vector pixel of size 2.
-  outputPtr->SetNumberOfComponentsPerPixel(2);
-}
-/**
- * Generate the n nearest point in point set
- *  \param index The index of the pixel to compute.
- *  \param n The number of nearest point to seek.
- *  \return A vector containing the index of the nearest point from nearest to most far.
- */
-template <class TPointSet, class TDisplacementField>
-typename PointSetToDisplacementFieldGenerator<TPointSet, TDisplacementField>
-::IndexVectorType
-PointSetToDisplacementFieldGenerator<TPointSet, TDisplacementField>
-::GenerateNearestValidPointsPointSet(IndexType index, unsigned int n)
-{
-  typedef Functor::DistanceComparisonFunctor ComparisonFunctorType;
-  DistanceVectorType distanceVector;
-  IndexVectorType    indexVector;
-  IndexVectorType    sortVector;
-  unsigned int       i =  0;
-  unsigned int       j = 0;
-
-  typedef typename PointSetType::PointsContainer::ConstIterator PointSetIteratorType;
-
-  PointSetIteratorType it = this->GetPointSet()->GetPoints()->Begin();
-  for (; it != this->GetPointSet()->GetPoints()->End(); ++it)
-    {
-    PointType p;
-    p[0] = it.Value()[0];
-    p[1] = it.Value()[1];
-    if (std::abs(this->GetPointSet()->GetPointData()->GetElement(j)[0]) >= m_MetricThreshold)
-      {
-
-      distanceVector.push_back(EuclideanDistanceMetric(index, p));
-      sortVector.push_back(i);
-      indexVector.push_back(j);
-      ++i;
-      }
-    ++j;
-    }
-
-  ComparisonFunctorType comp;
-  comp.SetDistanceVector(distanceVector);
-  sort(sortVector.begin(), sortVector.end(), comp);
-
-  // building output vector
-  unsigned int    nbElements = (n < indexVector.size() ? n : indexVector.size());
-  IndexVectorType output;
-  for (i = 0; i < nbElements; ++i)
-    {
-    output.push_back(indexVector[sortVector[i]]);
-    }
-  return output;
-}
-
-template <class TPointSet, class TDisplacementField>
-double
-PointSetToDisplacementFieldGenerator<TPointSet, TDisplacementField>
-::EuclideanDistanceMetric(IndexType index, PointType p)
-{
-  PointType pprime;
-  // our point are expressed in index and not in physical coordinates
-  //this->GetOutput()->TransformIndexToPhysicalPoint(index, pprime);
-  return std::sqrt(std::pow(index[0] - p[0], 2) + std::pow(index[1] - p[1], 2));
-}
-/**
- * PrintSelf Method
- */
-template <class TPointSet, class TDisplacementField>
-void
-PointSetToDisplacementFieldGenerator<TPointSet, TDisplacementField>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-}
-} // End namespace otb
-#endif
diff --git a/Modules/Registration/DisplacementField/include/otbPointSetWithTransformToDisplacementFieldGenerator.h b/Modules/Registration/DisplacementField/include/otbPointSetWithTransformToDisplacementFieldGenerator.h
deleted file mode 100644
index a947bb82cd939c29420ed9d917118a23558af2e6..0000000000000000000000000000000000000000
--- a/Modules/Registration/DisplacementField/include/otbPointSetWithTransformToDisplacementFieldGenerator.h
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbPointSetWithTransformToDisplacementFieldGenerator_h
-#define otbPointSetWithTransformToDisplacementFieldGenerator_h
-
-#include "otbPointSetToDisplacementFieldGenerator.h"
-#include "itkTransform.h"
-
-namespace otb
-{
-/** \class PointSetWithTransformToDisplacementFieldGenerator
- *  \brief Base class for filters generating a displacement field from a point set enriched with local transform information.
- *
- *  The output of the filters deriving from this base class can be passed to the itk::WarpImageFilter for image resampling.
- *
- *  \sa DisparityMapEstimationMethod
- *  \sa itk::WarpImageFilter
- *
- *  \ingroup DisparityMap
- *
- * \ingroup OTBDisplacementField
- */
-template <class TPointSet, class TDisplacementField>
-class ITK_EXPORT PointSetWithTransformToDisplacementFieldGenerator
-  : public PointSetToDisplacementFieldGenerator<TPointSet, TDisplacementField>
-{
-public:
-  /** Standard typedefs */
-  typedef PointSetWithTransformToDisplacementFieldGenerator                  Self;
-  typedef PointSetToDisplacementFieldGenerator<TPointSet, TDisplacementField> Superclass;
-  typedef itk::SmartPointer<Self>                                           Pointer;
-  typedef itk::SmartPointer<const Self>                                     ConstPointer;
-
-  /** Type macro */
-  itkNewMacro(Self);
-
-  /** Creation through object factory macro */
-  itkTypeMacro(PointSetWithTransformToDisplacementFieldGenerator, PointSetToDisplacementFieldGenerator);
-
-  /** Template parameters typedefs */
-  typedef TPointSet                      PointSetType;
-  typedef typename PointSetType::Pointer PointSetPointerType;
-
-  typedef TDisplacementField                                DisplacementFieldType;
-  typedef typename DisplacementFieldType::Pointer           DisplacementFieldPointerType;
-  typedef typename DisplacementFieldType::IndexType         IndexType;
-  typedef typename DisplacementFieldType::SizeType          SizeType;
-  typedef typename DisplacementFieldType::SpacingType       SpacingType;
-  typedef typename DisplacementFieldType::PointType         PointType;
-  typedef typename DisplacementFieldType::InternalPixelType ValueType;
-
-  /** More typedefs */
-  typedef typename Superclass::DistanceVectorType DistanceVectorType;
-  typedef typename Superclass::IndexVectorType    IndexVectorType;
-
-  /** Transform typedefs */
-  typedef itk::Transform<double, 2, 2>           TransformType;
-  typedef typename TransformType::Pointer        TransformPointerType;
-  typedef typename TransformType::ParametersType ParametersType;
-
-  /** Set/Get the Transform. */
-  itkSetObjectMacro(Transform, TransformType);
-  itkGetObjectMacro(Transform, TransformType);
-
-protected:
-  /** Constructor */
-  PointSetWithTransformToDisplacementFieldGenerator();
-  /** Destructor */
-  ~PointSetWithTransformToDisplacementFieldGenerator() override {}
-  /**PrintSelf method */
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-
-private:
-  PointSetWithTransformToDisplacementFieldGenerator(const Self &) = delete;
-  void operator =(const Self&) = delete;
-
-  /**
-   * The transform used for local registration.
-   */
-  TransformPointerType m_Transform;
-
-};
-} // End namespace otb
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbPointSetWithTransformToDisplacementFieldGenerator.hxx"
-#endif
-
-#endif
diff --git a/Modules/Registration/DisplacementField/include/otbPointSetWithTransformToDisplacementFieldGenerator.hxx b/Modules/Registration/DisplacementField/include/otbPointSetWithTransformToDisplacementFieldGenerator.hxx
deleted file mode 100644
index 8cd221644a2d657e8127facbe434b852e4df869a..0000000000000000000000000000000000000000
--- a/Modules/Registration/DisplacementField/include/otbPointSetWithTransformToDisplacementFieldGenerator.hxx
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbPointSetWithTransformToDisplacementFieldGenerator_hxx
-#define otbPointSetWithTransformToDisplacementFieldGenerator_hxx
-
-#include "otbPointSetWithTransformToDisplacementFieldGenerator.h"
-
-#include "otbMacro.h"
-
-namespace otb
-{
-/**
- * Constructor
- */
-template <class TPointSet, class TDisplacementField>
-PointSetWithTransformToDisplacementFieldGenerator<TPointSet, TDisplacementField>
-::PointSetWithTransformToDisplacementFieldGenerator()
-{
-  m_Transform = nullptr;    // has to be provided by the user
-}
-/**
- * PrintSelf Method
- */
-template <class TPointSet, class TDisplacementField>
-void
-PointSetWithTransformToDisplacementFieldGenerator<TPointSet, TDisplacementField>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-}
-} // End namespace otb
-#endif
diff --git a/Modules/Registration/DisplacementField/otb-module.cmake b/Modules/Registration/DisplacementField/otb-module.cmake
deleted file mode 100644
index b8efc64ea38e78fa5dbe0f82615e2abb88f26e59..0000000000000000000000000000000000000000
--- a/Modules/Registration/DisplacementField/otb-module.cmake
+++ /dev/null
@@ -1,41 +0,0 @@
-#
-# Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
-#
-# This file is part of Orfeo Toolbox
-#
-#     https://www.orfeo-toolbox.org/
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-set(DOCUMENTATION "This module contains filters that generate a deformation
-field by using some interpolation criterion on the deformation values from the point
-set. Several interpolation methods are available (Nearest neighbours, linear,
-BSpline). The class otb::StereorectificationDisplacementFieldSource is specialized
-in generating a deformation field between two images in epipolar geometry
-(horizontal shifts).")
-
-otb_module(OTBDisplacementField
-  DEPENDS
-    OTBCommon
-    OTBITK
-    OTBImageBase
-    OTBObjectList
-
-  TEST_DEPENDS
-    OTBImageIO
-    OTBTestKernel
-
-  DESCRIPTION
-    "${DOCUMENTATION}"
-)
diff --git a/Modules/Registration/DisplacementField/test/CMakeLists.txt b/Modules/Registration/DisplacementField/test/CMakeLists.txt
deleted file mode 100644
index 440c6b130cf207b956ef74153868428e58bf8bbe..0000000000000000000000000000000000000000
--- a/Modules/Registration/DisplacementField/test/CMakeLists.txt
+++ /dev/null
@@ -1,88 +0,0 @@
-#
-# Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
-#
-# This file is part of Orfeo Toolbox
-#
-#     https://www.orfeo-toolbox.org/
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-otb_module_test()
-
-set(OTBDisplacementFieldTests
-otbDisplacementFieldTestDriver.cxx
-otbNNearestTransformsLinearInterpolateDisplacementFieldGenerator.cxx
-otbNNearestPointsLinearInterpolateDisplacementFieldGenerator.cxx
-otbNearestTransformDisplacementFieldGenerator.cxx
-otbNearestPointDisplacementFieldGenerator.cxx
-otbBSplinesInterpolateTransformDisplacementFieldGenerator.cxx
-otbBSplinesInterpolateDisplacementFieldGenerator.cxx
-)
-
-add_executable(otbDisplacementFieldTestDriver ${OTBDisplacementFieldTests})
-target_link_libraries(otbDisplacementFieldTestDriver ${OTBDisplacementField-Test_LIBRARIES})
-otb_module_target_label(otbDisplacementFieldTestDriver)
-
-# Tests Declaration
-
-otb_add_test(NAME dmTvNNearestTransformsLinearInterpolateDisplacementFieldGenerator COMMAND otbDisplacementFieldTestDriver
-  --compare-image ${EPSILON_10}
-  ${BASELINE}/dmTvNNearestTransformsLinearInterpolateDeformationField.tif
-  ${TEMP}/dmTvNNearestTransformsLinearInterpolateDisplacementField.tif
-  otbNNearestTransformsLinearInterpolateDisplacementFieldGenerator
-  ${TEMP}/dmTvNNearestTransformsLinearInterpolateDisplacementField.tif
-  )
-
-otb_add_test(NAME dmTvNNearestPointsLinearInterpolateDisplacementFieldGenerator COMMAND otbDisplacementFieldTestDriver
-  --compare-image ${EPSILON_10}
-  ${BASELINE}/dmTvNNearestPointsLinearInterpolateDeformationField.tif
-  ${TEMP}/dmTvNNearestPointsLinearInterpolateDisplacementField.tif
-  otbNNearestPointsLinearInterpolateDisplacementFieldGenerator
-  ${TEMP}/dmTvNNearestPointsLinearInterpolateDisplacementField.tif
-  )
-
-
-
-otb_add_test(NAME dmTvNearestTransformDisplacementFieldGenerator COMMAND otbDisplacementFieldTestDriver
-  --compare-image ${EPSILON_10}
-  ${BASELINE}/dmTvNearestTransformDeformationField.tif
-  ${TEMP}/dmTvNearestTransformDisplacementField.tif
-  otbNearestTransformDisplacementFieldGenerator
-  ${TEMP}/dmTvNearestTransformDisplacementField.tif
-  )
-
-otb_add_test(NAME dmTvNearestPointDisplacementFieldGenerator COMMAND otbDisplacementFieldTestDriver
-  --compare-image ${EPSILON_10}
-  ${BASELINE}/dmTvNearestPointDeformationField.tif
-  ${TEMP}/dmTvNearestPointDisplacementField.tif
-  otbNearestPointDisplacementFieldGenerator
-  ${TEMP}/dmTvNearestPointDisplacementField.tif
-  )
-
-#otb_add_test(NAME dmTvBSplinesInterpolateTransformDisplacementFieldGenerator COMMAND otbDisplacementFieldTestDriver
-  #--compare-image ${EPSILON_4}
-  #${BASELINE}/dmTvBSplinesInterpolateTransformDeformationFieldGenerator.tif
-  #${TEMP}/dmTvBSplinesInterpolateTransformDisplacementFieldGenerator.tif
-  #otbBSplinesInterpolateTransformDisplacementFieldGenerator
-  #${TEMP}/dmTvBSplinesInterpolateTransformDisplacementFieldGenerator.tif
-  #)
-
-otb_add_test(NAME dmTvBSplinesInterpolateDisplacementFieldGenerator COMMAND otbDisplacementFieldTestDriver
-  --compare-image ${EPSILON_10}
-  ${BASELINE}/dmTvBSplinesInterpolateDeformationField.tif
-  ${TEMP}/dmTvBSplinesInterpolateDisplacementField.tif
-  otbBSplinesInterpolateDisplacementFieldGenerator
-  ${TEMP}/dmTvBSplinesInterpolateDisplacementField.tif
-  )
-
diff --git a/Modules/Registration/DisplacementField/test/otbBSplinesInterpolateDisplacementFieldGenerator.cxx b/Modules/Registration/DisplacementField/test/otbBSplinesInterpolateDisplacementFieldGenerator.cxx
deleted file mode 100644
index 9135073f0ccdadbf018d1f7b2761f1fd91b5d66b..0000000000000000000000000000000000000000
--- a/Modules/Registration/DisplacementField/test/otbBSplinesInterpolateDisplacementFieldGenerator.cxx
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "itkMacro.h"
-#include "itkPointSet.h"
-#include "otbVectorImage.h"
-#include "otbBSplinesInterpolateDisplacementFieldGenerator.h"
-#include "otbImageFileWriter.h"
-
-int otbBSplinesInterpolateDisplacementFieldGenerator(int itkNotUsed(argc), char * argv[])
-{
-  const unsigned int Dimension = 2;
-  const char *       outfname = argv[1];
-  typedef double                                                                     PixelType;
-  typedef otb::VectorImage<PixelType, Dimension>                                     ImageType;
-  typedef itk::Array<double>                                                         ParamType;
-  typedef itk::PointSet<ParamType, Dimension>                                        PointSetType;
-  typedef PointSetType::PointType                                                    PointType;
-  typedef otb::BSplinesInterpolateDisplacementFieldGenerator<PointSetType, ImageType> FilterType;
-  typedef otb::ImageFileWriter<ImageType>                                            WriterType;
-
-  ImageType::SizeType size;
-  size.Fill(100);
-  double thresh = 0.9;
-
-  // Preparing point set
-  PointSetType::Pointer ps = PointSetType::New();
-  PointType             p1, p2, p3, p4, p5;
-  ParamType             pd1(3), pd2(3), pd3(3), pd4(3), pd5(3);
-
-  p1[0] = 10;
-  p1[1] = 10;
-  p2[0] = 75;
-  p2[1] = 10;
-  p3[0] = 50;
-  p3[1] = 50;
-  p4[0] = 10;
-  p4[1] = 60;
-  p5[0] = 85;
-  p5[1] = 70;
-
-  pd1[0] = 0.95;
-  pd1[1] = 10;
-  pd1[2] = -5;
-  pd2[0] = 0.98;
-  pd2[1] = 2;
-  pd2[2] = 5;
-  pd3[0] = 0.5;
-  pd3[1] = 20;
-  pd3[2] = -20;
-  pd4[0] = 0.91;
-  pd4[1] = 15;
-  pd4[2] = -5;
-  pd5[0] = 0.91;
-  pd5[1] = 5;
-  pd5[2] = 5;
-
-  ps->SetPoint(0, p1);
-  ps->SetPointData(0, pd1);
-  ps->SetPoint(1, p2);
-  ps->SetPointData(1, pd2);
-  ps->SetPoint(2, p3);
-  ps->SetPointData(2, pd3);
-  ps->SetPoint(3, p4);
-  ps->SetPointData(3, pd4);
-  ps->SetPoint(4, p5);
-  ps->SetPointData(4, pd5);
-
-  // Instantiating object
-  FilterType::Pointer filter = FilterType::New();
-  filter->SetOutputSize(size);
-  filter->SetMetricThreshold(thresh);
-  filter->SetPointSet(ps);
-
-  WriterType::Pointer writer = WriterType::New();
-  writer->SetInput(filter->GetOutput());
-  writer->SetFileName(outfname);
-  writer->Update();
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/Registration/DisplacementField/test/otbBSplinesInterpolateTransformDisplacementFieldGenerator.cxx b/Modules/Registration/DisplacementField/test/otbBSplinesInterpolateTransformDisplacementFieldGenerator.cxx
deleted file mode 100644
index df178d762b61e25893f176f9aa175645280ed5a3..0000000000000000000000000000000000000000
--- a/Modules/Registration/DisplacementField/test/otbBSplinesInterpolateTransformDisplacementFieldGenerator.cxx
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "itkMacro.h"
-#include "itkPointSet.h"
-#include "otbVectorImage.h"
-#include "otbBSplinesInterpolateTransformDisplacementFieldGenerator.h"
-#include "otbImageFileWriter.h"
-#include "itkEuler2DTransform.h"
-
-int otbBSplinesInterpolateTransformDisplacementFieldGenerator(int itkNotUsed(argc), char * argv[])
-{
-  const unsigned int Dimension = 2;
-  const char *       outfname = argv[1];
-  typedef double                                                                              PixelType;
-  typedef otb::VectorImage<PixelType, Dimension>                                              ImageType;
-  typedef itk::Array<double>                                                                  ParamType;
-  typedef itk::PointSet<ParamType, Dimension>                                                 PointSetType;
-  typedef PointSetType::PointType                                                             PointType;
-  typedef otb::BSplinesInterpolateTransformDisplacementFieldGenerator<PointSetType, ImageType> FilterType;
-  typedef otb::ImageFileWriter<ImageType>                                                     WriterType;
-  typedef itk::Euler2DTransform<double>                                                       TransformType;
-
-  ImageType::SizeType size;
-  size.Fill(100);
-  double thresh = 0.9;
-
-  // Preparing point set
-  PointSetType::Pointer ps = PointSetType::New();
-  PointType             p1, p2, p3, p4, p5;
-  ParamType             pd1(6), pd2(6), pd3(6), pd4(6), pd5(6);
-  itk::Point<double, 2> center;
-
-  p1[0] = 10;
-  p1[1] = 10;
-  p2[0] = 75;
-  p2[1] = 10;
-  p3[0] = 50;
-  p3[1] = 50;
-  p4[0] = 10;
-  p4[1] = 60;
-  p5[0] = 85;
-  p5[1] = 70;
-  center.Fill(50);
-
-  pd1[0] = 0.95;
-  pd1[1] = 0;
-  pd1[2] = 0;
-  pd1[3] = 0.03925;
-  pd1[4] = 5;
-  pd1[5] = 5;
-  pd2[0] = 0.98;
-  pd2[1] = 0;
-  pd2[2] = 0;
-  pd2[3] = -0.03925;
-  pd2[4] = 5;
-  pd2[5] = -5;
-  pd3[0] = 0.5;
-  pd3[1] = 0;
-  pd3[2] = 0;
-  pd3[3] = 0;
-  pd3[4] = 0;
-  pd3[5] = 0;
-  pd4[0] = 0.91;
-  pd4[1] = 0;
-  pd4[2] = 0;
-  pd4[3] = 0.03925;
-  pd4[4] = -5;
-  pd4[5] = 5;
-  pd5[0] = 0.91;
-  pd5[1] = 0;
-  pd5[2] = 0;
-  pd5[3] = -0.03925;
-  pd5[4] = -5;
-  pd5[5] = -5;
-
-  ps->SetPoint(0, p1);
-  ps->SetPointData(0, pd1);
-  ps->SetPoint(1, p2);
-  ps->SetPointData(1, pd2);
-  ps->SetPoint(2, p3);
-  ps->SetPointData(2, pd3);
-  ps->SetPoint(3, p4);
-  ps->SetPointData(3, pd4);
-  ps->SetPoint(4, p5);
-  ps->SetPointData(4, pd5);
-
-  TransformType::Pointer transform = TransformType::New();
-  transform->SetCenter(center);
-
-  // Instantiating object
-  FilterType::Pointer filter = FilterType::New();
-  filter->SetOutputSize(size);
-  filter->SetMetricThreshold(thresh);
-  filter->SetPointSet(ps);
-  filter->SetTransform(transform);
-  filter->AddAngularParameter(0);
-
-  WriterType::Pointer writer = WriterType::New();
-  writer->SetInput(filter->GetOutput());
-  writer->SetFileName(outfname);
-  writer->Update();
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/Registration/DisplacementField/test/otbDisplacementFieldTestDriver.cxx b/Modules/Registration/DisplacementField/test/otbDisplacementFieldTestDriver.cxx
deleted file mode 100644
index 86d6641fce1b1b594048f20c2648a2e95eabdb88..0000000000000000000000000000000000000000
--- a/Modules/Registration/DisplacementField/test/otbDisplacementFieldTestDriver.cxx
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "otbTestMain.h"
-
-void RegisterTests()
-{
-  REGISTER_TEST(otbNNearestTransformsLinearInterpolateDisplacementFieldGenerator);
-  REGISTER_TEST(otbNNearestPointsLinearInterpolateDisplacementFieldGenerator);
-  REGISTER_TEST(otbNearestTransformDisplacementFieldGenerator);
-  REGISTER_TEST(otbNearestPointDisplacementFieldGenerator);
-  REGISTER_TEST(otbBSplinesInterpolateTransformDisplacementFieldGenerator);
-  REGISTER_TEST(otbBSplinesInterpolateDisplacementFieldGenerator);
-}
diff --git a/Modules/Registration/DisplacementField/test/otbNNearestPointsLinearInterpolateDisplacementFieldGenerator.cxx b/Modules/Registration/DisplacementField/test/otbNNearestPointsLinearInterpolateDisplacementFieldGenerator.cxx
deleted file mode 100644
index b487435899319e9d6562802fe539a35a6240d0b4..0000000000000000000000000000000000000000
--- a/Modules/Registration/DisplacementField/test/otbNNearestPointsLinearInterpolateDisplacementFieldGenerator.cxx
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "itkMacro.h"
-#include "itkPointSet.h"
-#include "otbVectorImage.h"
-#include "otbNNearestPointsLinearInterpolateDisplacementFieldGenerator.h"
-#include "otbImageFileWriter.h"
-
-int otbNNearestPointsLinearInterpolateDisplacementFieldGenerator(int itkNotUsed(argc), char * argv[])
-{
-  const unsigned int Dimension = 2;
-  const char *       outfname = argv[1];
-  typedef double                                                                                 PixelType;
-  typedef otb::VectorImage<PixelType, Dimension>                                                 ImageType;
-  typedef itk::Array<double>                                                                     ParamType;
-  typedef itk::PointSet<ParamType, Dimension>                                                    PointSetType;
-  typedef PointSetType::PointType                                                                PointType;
-  typedef otb::NNearestPointsLinearInterpolateDisplacementFieldGenerator<PointSetType, ImageType> FilterType;
-  typedef otb::ImageFileWriter<ImageType>                                                        WriterType;
-
-  ImageType::SizeType size;
-  size.Fill(100);
-  double thresh = 0.9;
-
-  // Preparing point set
-  PointSetType::Pointer ps = PointSetType::New();
-  PointType             p1, p2, p3, p4, p5;
-  ParamType             pd1(3), pd2(3), pd3(3), pd4(3), pd5(3);
-
-  p1[0] = 10;
-  p1[1] = 10;
-  p2[0] = 75;
-  p2[1] = 10;
-  p3[0] = 50;
-  p3[1] = 50;
-  p4[0] = 10;
-  p4[1] = 60;
-  p5[0] = 85;
-  p5[1] = 70;
-
-  pd1[0] = 0.95;
-  pd1[1] = 10;
-  pd1[2] = -5;
-  pd2[0] = 0.98;
-  pd2[1] = 2;
-  pd2[2] = 5;
-  pd3[0] = 0.5;
-  pd3[1] = 20;
-  pd3[2] = -20;
-  pd4[0] = 0.91;
-  pd4[1] = 15;
-  pd4[2] = -5;
-  pd5[0] = 0.91;
-  pd5[1] = 5;
-  pd5[2] = 5;
-
-  ps->SetPoint(0, p1);
-  ps->SetPointData(0, pd1);
-  ps->SetPoint(1, p2);
-  ps->SetPointData(1, pd2);
-  ps->SetPoint(2, p3);
-  ps->SetPointData(2, pd3);
-  ps->SetPoint(3, p4);
-  ps->SetPointData(3, pd4);
-  ps->SetPoint(4, p5);
-  ps->SetPointData(4, pd5);
-
-  // Instantiating object
-  FilterType::Pointer filter = FilterType::New();
-  filter->SetOutputSize(size);
-  filter->SetMetricThreshold(thresh);
-  filter->SetNumberOfPoints(5);
-  filter->SetPointSet(ps);
-
-  WriterType::Pointer writer = WriterType::New();
-  writer->SetInput(filter->GetOutput());
-  writer->SetFileName(outfname);
-  writer->Update();
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/Registration/DisplacementField/test/otbNNearestTransformsLinearInterpolateDisplacementFieldGenerator.cxx b/Modules/Registration/DisplacementField/test/otbNNearestTransformsLinearInterpolateDisplacementFieldGenerator.cxx
deleted file mode 100644
index fb3b638d83fb61f46aef76faa7204e906c5404f0..0000000000000000000000000000000000000000
--- a/Modules/Registration/DisplacementField/test/otbNNearestTransformsLinearInterpolateDisplacementFieldGenerator.cxx
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "itkMacro.h"
-#include "itkPointSet.h"
-#include "otbVectorImage.h"
-#include "otbNNearestTransformsLinearInterpolateDisplacementFieldGenerator.h"
-#include "otbImageFileWriter.h"
-#include "itkEuler2DTransform.h"
-
-int otbNNearestTransformsLinearInterpolateDisplacementFieldGenerator(int itkNotUsed(argc), char * argv[])
-{
-  const unsigned int Dimension = 2;
-  const char *       outfname = argv[1];
-  typedef double                                                                                     PixelType;
-  typedef otb::VectorImage<PixelType, Dimension>                                                     ImageType;
-  typedef itk::Array<double>                                                                         ParamType;
-  typedef itk::PointSet<ParamType, Dimension>                                                        PointSetType;
-  typedef PointSetType::PointType                                                                    PointType;
-  typedef otb::NNearestTransformsLinearInterpolateDisplacementFieldGenerator<PointSetType, ImageType> FilterType;
-  typedef otb::ImageFileWriter<ImageType>                                                            WriterType;
-  typedef itk::Euler2DTransform<double>                                                              TransformType;
-
-  ImageType::SizeType size;
-  size.Fill(100);
-  double thresh = 0.9;
-
-  // Preparing point set
-  PointSetType::Pointer ps = PointSetType::New();
-  PointType             p1, p2, p3, p4, p5;
-  ParamType             pd1(6), pd2(6), pd3(6), pd4(6), pd5(6);
-  itk::Point<double, 2> center;
-
-  p1[0] = 10;
-  p1[1] = 10;
-  p2[0] = 75;
-  p2[1] = 10;
-  p3[0] = 50;
-  p3[1] = 50;
-  p4[0] = 10;
-  p4[1] = 60;
-  p5[0] = 85;
-  p5[1] = 70;
-  center.Fill(50);
-
-  pd1[0] = 0.95;
-  pd1[1] = 0;
-  pd1[2] = 0;
-  pd1[3] = 5;
-  pd1[4] = 5;
-  pd1[5] = 0.001769;
-  pd2[0] = 0.98;
-  pd2[1] = 0;
-  pd2[2] = 0;
-  pd2[3] = -5;
-  pd2[4] = 5;
-  pd2[5] = -0.001769;
-  pd3[0] = 0.5;
-  pd3[1] = 0;
-  pd3[2] = 0;
-  pd3[3] = 0;
-  pd3[4] = 0;
-  pd3[5] = 0;
-  pd4[0] = 0.91;
-  pd4[1] = 0;
-  pd4[2] = 0;
-  pd4[3] = 5;
-  pd4[4] = -5;
-  pd4[5] = 0.001769;
-  pd5[0] = 0.91;
-  pd5[1] = 0;
-  pd5[2] = 0;
-  pd5[3] = -5;
-  pd5[4] = -5;
-  pd5[5] = -0.001769;
-
-  ps->SetPoint(0, p1);
-  ps->SetPointData(0, pd1);
-  ps->SetPoint(1, p2);
-  ps->SetPointData(1, pd2);
-  ps->SetPoint(2, p3);
-  ps->SetPointData(2, pd3);
-  ps->SetPoint(3, p4);
-  ps->SetPointData(3, pd4);
-  ps->SetPoint(4, p5);
-  ps->SetPointData(4, pd5);
-
-  TransformType::Pointer transform = TransformType::New();
-  transform->SetCenter(center);
-
-  // Instantiating object
-  FilterType::Pointer filter = FilterType::New();
-  filter->SetOutputSize(size);
-  filter->SetMetricThreshold(thresh);
-  filter->SetNumberOfPoints(5);
-  filter->SetPointSet(ps);
-  filter->SetTransform(transform);
-
-  WriterType::Pointer writer = WriterType::New();
-  writer->SetInput(filter->GetOutput());
-  writer->SetFileName(outfname);
-  writer->Update();
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/Registration/DisplacementField/test/otbNearestPointDisplacementFieldGenerator.cxx b/Modules/Registration/DisplacementField/test/otbNearestPointDisplacementFieldGenerator.cxx
deleted file mode 100644
index b6de1e79ab945896a66ffd7b1ccf2685351a0d6e..0000000000000000000000000000000000000000
--- a/Modules/Registration/DisplacementField/test/otbNearestPointDisplacementFieldGenerator.cxx
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "itkMacro.h"
-#include "itkPointSet.h"
-#include "otbVectorImage.h"
-#include "otbNearestPointDisplacementFieldGenerator.h"
-#include "otbImageFileWriter.h"
-
-int otbNearestPointDisplacementFieldGenerator(int itkNotUsed(argc), char * argv[])
-{
-  const unsigned int Dimension = 2;
-  const char *       outfname = argv[1];
-  typedef double                                                              PixelType;
-  typedef otb::VectorImage<PixelType, Dimension>                              ImageType;
-  typedef itk::Array<double>                                                  ParamType;
-  typedef itk::PointSet<ParamType, Dimension>                                 PointSetType;
-  typedef PointSetType::PointType                                             PointType;
-  typedef otb::NearestPointDisplacementFieldGenerator<PointSetType, ImageType> FilterType;
-  typedef otb::ImageFileWriter<ImageType>                                     WriterType;
-
-  ImageType::SizeType size;
-  size.Fill(100);
-  double thresh = 0.9;
-
-  // Preparing point set
-  PointSetType::Pointer ps = PointSetType::New();
-  PointType             p1, p2, p3, p4, p5;
-  ParamType             pd1(3), pd2(3), pd3(3), pd4(3), pd5(3);
-
-  p1[0] = 10;
-  p1[1] = 10;
-  p2[0] = 75;
-  p2[1] = 10;
-  p3[0] = 50;
-  p3[1] = 50;
-  p4[0] = 10;
-  p4[1] = 60;
-  p5[0] = 85;
-  p5[1] = 70;
-
-  pd1[0] = 0.95;
-  pd1[1] = 10;
-  pd1[2] = -5;
-  pd2[0] = 0.98;
-  pd2[1] = 2;
-  pd2[2] = 5;
-  pd3[0] = 0.5;
-  pd3[1] = 20;
-  pd3[2] = -20;
-  pd4[0] = 0.91;
-  pd4[1] = 15;
-  pd4[2] = -5;
-  pd5[0] = 0.91;
-  pd5[1] = 5;
-  pd5[2] = 5;
-
-  ps->SetPoint(0, p1);
-  ps->SetPointData(0, pd1);
-  ps->SetPoint(1, p2);
-  ps->SetPointData(1, pd2);
-  ps->SetPoint(2, p3);
-  ps->SetPointData(2, pd3);
-  ps->SetPoint(3, p4);
-  ps->SetPointData(3, pd4);
-  ps->SetPoint(4, p5);
-  ps->SetPointData(4, pd5);
-
-  // Instantiating object
-  FilterType::Pointer filter = FilterType::New();
-  filter->SetOutputSize(size);
-  filter->SetMetricThreshold(thresh);
-  filter->SetPointSet(ps);
-
-  WriterType::Pointer writer = WriterType::New();
-  writer->SetInput(filter->GetOutput());
-  writer->SetFileName(outfname);
-  writer->Update();
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/Registration/DisplacementField/test/otbNearestTransformDisplacementFieldGenerator.cxx b/Modules/Registration/DisplacementField/test/otbNearestTransformDisplacementFieldGenerator.cxx
deleted file mode 100644
index abf2463501a6ac807d68850cdf9b8c0e6748a21f..0000000000000000000000000000000000000000
--- a/Modules/Registration/DisplacementField/test/otbNearestTransformDisplacementFieldGenerator.cxx
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "itkMacro.h"
-#include "itkPointSet.h"
-#include "otbVectorImage.h"
-#include "otbNearestTransformDisplacementFieldGenerator.h"
-#include "otbImageFileWriter.h"
-#include "itkEuler2DTransform.h"
-
-int otbNearestTransformDisplacementFieldGenerator(int itkNotUsed(argc), char * argv[])
-{
-  const unsigned int Dimension = 2;
-  const char *       outfname = argv[1];
-  typedef double                                                                  PixelType;
-  typedef otb::VectorImage<PixelType, Dimension>                                  ImageType;
-  typedef itk::Array<double>                                                      ParamType;
-  typedef itk::PointSet<ParamType, Dimension>                                     PointSetType;
-  typedef PointSetType::PointType                                                 PointType;
-  typedef otb::NearestTransformDisplacementFieldGenerator<PointSetType, ImageType> FilterType;
-  typedef otb::ImageFileWriter<ImageType>                                         WriterType;
-  typedef itk::Euler2DTransform<double>                                           TransformType;
-
-  ImageType::SizeType size;
-  size.Fill(100);
-  double thresh = 0.9;
-
-  // Preparing point set
-  PointSetType::Pointer ps = PointSetType::New();
-  PointType             p1, p2, p3, p4, p5;
-  ParamType             pd1(6), pd2(6), pd3(6), pd4(6), pd5(6);
-  itk::Point<double, 2> center;
-
-  p1[0] = 10;
-  p1[1] = 10;
-  p2[0] = 75;
-  p2[1] = 10;
-  p3[0] = 50;
-  p3[1] = 50;
-  p4[0] = 10;
-  p4[1] = 60;
-  p5[0] = 85;
-  p5[1] = 70;
-  center.Fill(50);
-
-  pd1[0] = 0.95;
-  pd1[1] = 0;
-  pd1[2] = 0;
-  pd1[3] = 5;
-  pd1[4] = 5;
-  pd1[5] = 0.001769;
-  pd2[0] = 0.98;
-  pd2[1] = 0;
-  pd2[2] = 0;
-  pd2[3] = -5;
-  pd2[4] = 5;
-  pd2[5] = -0.001769;
-  pd3[0] = 0.5;
-  pd3[1] = 0;
-  pd3[2] = 0;
-  pd3[3] = 0;
-  pd3[4] = 0;
-  pd3[5] = 0;
-  pd4[0] = 0.91;
-  pd4[1] = 0;
-  pd4[2] = 0;
-  pd4[3] = 5;
-  pd4[4] = -5;
-  pd4[5] = 0.001769;
-  pd5[0] = 0.91;
-  pd5[1] = 0;
-  pd5[2] = 0;
-  pd5[3] = -5;
-  pd5[4] = -5;
-  pd5[5] = -0.001769;
-
-  ps->SetPoint(0, p1);
-  ps->SetPointData(0, pd1);
-  ps->SetPoint(1, p2);
-  ps->SetPointData(1, pd2);
-  ps->SetPoint(2, p3);
-  ps->SetPointData(2, pd3);
-  ps->SetPoint(3, p4);
-  ps->SetPointData(3, pd4);
-  ps->SetPoint(4, p5);
-  ps->SetPointData(4, pd5);
-
-  TransformType::Pointer transform = TransformType::New();
-  transform->SetCenter(center);
-
-  // Instantiating object
-  FilterType::Pointer filter = FilterType::New();
-  filter->SetOutputSize(size);
-  filter->SetMetricThreshold(thresh);
-  filter->SetPointSet(ps);
-  filter->SetTransform(transform);
-
-  WriterType::Pointer writer = WriterType::New();
-  writer->SetInput(filter->GetOutput());
-  writer->SetFileName(outfname);
-  writer->Update();
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/Registration/Stereo/test/otbMulti3DMapToDEMFilter.cxx b/Modules/Registration/Stereo/test/otbMulti3DMapToDEMFilter.cxx
index 7e8df6ab358066e14723bad5b162ad9778b56751..2263ed97cee6e57e9401b288077f538329408093 100644
--- a/Modules/Registration/Stereo/test/otbMulti3DMapToDEMFilter.cxx
+++ b/Modules/Registration/Stereo/test/otbMulti3DMapToDEMFilter.cxx
@@ -98,12 +98,10 @@ int otbMulti3DMapToDEMFilterEPSG(int argc, char* argv[])
   for(unsigned int i=0; i<mapSize; i++)
    {
     multiFilter->Set3DMapInput(i,mapReaderList->GetNthElement(i)->GetOutput());
-   // multiFilter->SetMapKeywordList(i,mapReaderList->GetNthElement(i)->GetOutput()->GetImageKeywordlist());
     multiFilter->SetMaskInput(i,maskReaderList->GetNthElement(i)->GetOutput());
    }
 
   //set output parameters
- // multiFilter->SetOutputParametersFrom3DMap();
  VectorImageType::IndexType start;
   start[0] =  atoi(argv[argc-9]);
   start[1] =  atoi(argv[argc-8]);
@@ -132,7 +130,6 @@ int otbMulti3DMapToDEMFilterEPSG(int argc, char* argv[])
   WriterType::Pointer writer = WriterType::New();
 
   multiFilter->SetNumberOfThreads(atoi(argv[argc-11]));
-  //multiFilter->Update();
 
   writer->SetInput(multiFilter->GetOutput());
 
@@ -141,153 +138,6 @@ int otbMulti3DMapToDEMFilterEPSG(int argc, char* argv[])
   writer->Update();
 
   return EXIT_SUCCESS;
-
-  /*
-  if (argc != 12)
-    {
-    std::cout << argv[0] <<
-    " <input filename> <output filename> <origin easting> <origin northing> <x size> <y size> <x spacing> <y spacing> <UTM zone> <UTM hemisphere>"
-              << std::endl;
-
-    return EXIT_FAILURE;
-    }
-
-  typedef otb::VectorImage<double, 2>                                               VectorImageType;
-  typedef otb::ImageFileReader<VectorImageType>                                     ReaderType;
-  typedef otb::ImageFileWriter<VectorImageType>                            WriterType;
-  typedef otb::UtmInverseProjection                                                 UtmMapProjectionType;
-  typedef otb::OrthoRectificationFilter<VectorImageType, VectorImageType, UtmMapProjectionType> OrthoRectifFilterType;
-
-  //Allocate pointer
-  ReaderType::Pointer reader = ReaderType::New();
-  WriterType::Pointer writer = WriterType::New();
-
-  OrthoRectifFilterType::Pointer orthoRectifFilter = OrthoRectifFilterType::New();
-  UtmMapProjectionType::Pointer  utmMapProjection = UtmMapProjectionType::New();
-
-  // Set parameters ...
-  reader->SetFileName(argv[1]);
-  writer->SetFileName(argv[2]);
-
-  reader->GenerateOutputInformation();
-  std::cout << reader->GetOutput() << std::endl;
-
-  orthoRectifFilter->SetInput(reader->GetOutput());
-
-  VectorImageType::IndexType start;
-  start[0] = 0;
-  start[1] = 0;
-  orthoRectifFilter->SetOutputStartIndex(start);
-
-  VectorImageType::SizeType size;
-  size[0] = atoi(argv[5]);      // X size
-  size[1] = atoi(argv[6]);            //Y size
-  orthoRectifFilter->SetOutputSize(size);
-
-  VectorImageType::SpacingType spacing;
-  spacing[0] = atof(argv[7]);
-  spacing[1] = atof(argv[8]);
-  orthoRectifFilter->SetOutputSpacing(spacing);
-
-  VectorImageType::PointType origin;
-  origin[0] = strtod(argv[3], NULL);         //Origin easting
-  origin[1] = strtod(argv[4], NULL);         //Origin northing
-  orthoRectifFilter->SetOutputOrigin(origin);
-
-  utmMapProjection->SetZone(atoi(argv[9]));
-  utmMapProjection->SetHemisphere(argv[10][0]);
-  orthoRectifFilter->SetMapProjection(utmMapProjection);
-
-  // Deformation Field spacing
-  VectorImageType::SpacingType  gridSpacing;
-  gridSpacing[0] = atof(argv[11]);
-  gridSpacing[1] = -atof(argv[11]);
-  orthoRectifFilter->SetDeformationFieldSpacing(gridSpacing);
-
-  VectorImageType::PixelType no_data(reader->GetOutput()->GetNumberOfComponentsPerPixel());
-  no_data.Fill(0);
-  orthoRectifFilter->SetEdgePaddingValue(no_data);
-
-  writer->SetInput(orthoRectifFilter->GetOutput());
-  writer->SetNumberOfDivisionsTiledStreaming(4);
-  writer->Update();
-
-  return EXIT_SUCCESS; */
-
-
-
-
-  /*
-  if (argc != 12)
-    {
-    std::cout << argv[0] <<
-    " <input filename> <output filename> <origin easting> <origin northing> <x size> <y size> <x spacing> <y spacing> <UTM zone> <UTM hemisphere>"
-              << std::endl;
-
-    return EXIT_FAILURE;
-    }
-
-  typedef otb::VectorImage<double, 2>                                               VectorImageType;
-  typedef otb::ImageFileReader<VectorImageType>                                     ReaderType;
-  typedef otb::ImageFileWriter<VectorImageType>                            WriterType;
-  typedef otb::UtmInverseProjection                                                 UtmMapProjectionType;
-  typedef otb::OrthoRectificationFilter<VectorImageType, VectorImageType, UtmMapProjectionType> OrthoRectifFilterType;
-
-  //Allocate pointer
-  ReaderType::Pointer reader = ReaderType::New();
-  WriterType::Pointer writer = WriterType::New();
-
-  OrthoRectifFilterType::Pointer orthoRectifFilter = OrthoRectifFilterType::New();
-  UtmMapProjectionType::Pointer  utmMapProjection = UtmMapProjectionType::New();
-
-  // Set parameters ...
-  reader->SetFileName(argv[1]);
-  writer->SetFileName(argv[2]);
-
-  reader->GenerateOutputInformation();
-  std::cout << reader->GetOutput() << std::endl;
-
-  orthoRectifFilter->SetInput(reader->GetOutput());
-
-  VectorImageType::IndexType start;
-  start[0] = 0;
-  start[1] = 0;
-  orthoRectifFilter->SetOutputStartIndex(start);
-
-  VectorImageType::SizeType size;
-  size[0] = atoi(argv[5]);      // X size
-  size[1] = atoi(argv[6]);            //Y size
-  orthoRectifFilter->SetOutputSize(size);
-
-  VectorImageType::SpacingType spacing;
-  spacing[0] = atof(argv[7]);
-  spacing[1] = atof(argv[8]);
-  orthoRectifFilter->SetOutputSpacing(spacing);
-
-  VectorImageType::PointType origin;
-  origin[0] = strtod(argv[3], NULL);         //Origin easting
-  origin[1] = strtod(argv[4], NULL);         //Origin northing
-  orthoRectifFilter->SetOutputOrigin(origin);
-
-  utmMapProjection->SetZone(atoi(argv[9]));
-  utmMapProjection->SetHemisphere(argv[10][0]);
-  orthoRectifFilter->SetMapProjection(utmMapProjection);
-
-  // Deformation Field spacing
-  VectorImageType::SpacingType  gridSpacing;
-  gridSpacing[0] = atof(argv[11]);
-  gridSpacing[1] = -atof(argv[11]);
-  orthoRectifFilter->SetDeformationFieldSpacing(gridSpacing);
-
-  VectorImageType::PixelType no_data(reader->GetOutput()->GetNumberOfComponentsPerPixel());
-  no_data.Fill(0);
-  orthoRectifFilter->SetEdgePaddingValue(no_data);
-
-  writer->SetInput(orthoRectifFilter->GetOutput());
-  writer->SetNumberOfDivisionsTiledStreaming(4);
-  writer->Update();
-
-  return EXIT_SUCCESS; */
 }
 
 int otbMulti3DMapToDEMFilterManual(int argc, char* argv[])
@@ -354,12 +204,10 @@ multiFilter->SetCellFusionMode(fusionMode);
 for(unsigned int i=0; i<mapSize; i++)
  {
   multiFilter->Set3DMapInput(i,mapReaderList->GetNthElement(i)->GetOutput());
- // multiFilter->SetMapKeywordList(i,mapReaderList->GetNthElement(i)->GetOutput()->GetImageKeywordlist());
   multiFilter->SetMaskInput(i,maskReaderList->GetNthElement(i)->GetOutput());
  }
 
 //set output parameters
-//multiFilter->SetOutputParametersFrom3DMap();
 VectorImageType::IndexType start;
 start[0] =  atoi(argv[argc-7]);
 start[1] =  atoi(argv[argc-8]);
@@ -385,7 +233,6 @@ multiFilter->SetOutputOrigin(origin);
 WriterType::Pointer writer = WriterType::New();
 
 multiFilter->SetNumberOfThreads(atoi(argv[argc-10]));
-//multiFilter->Update();
 
 writer->SetInput(multiFilter->GetOutput());
 
@@ -395,79 +242,6 @@ writer->Update();
 
 
 return EXIT_SUCCESS;
-
-/*
-if (argc != 12)
-  {
-  std::cout << argv[0] <<
-  " <input filename> <output filename> <origin easting> <origin northing> <x size> <y size> <x spacing> <y spacing> <UTM zone> <UTM hemisphere>"
-            << std::endl;
-
-  return EXIT_FAILURE;
-  }
-
-typedef otb::VectorImage<double, 2>                                               VectorImageType;
-typedef otb::ImageFileReader<VectorImageType>                                     ReaderType;
-typedef otb::ImageFileWriter<VectorImageType>                            WriterType;
-typedef otb::UtmInverseProjection                                                 UtmMapProjectionType;
-typedef otb::OrthoRectificationFilter<VectorImageType, VectorImageType, UtmMapProjectionType> OrthoRectifFilterType;
-
-//Allocate pointer
-ReaderType::Pointer reader = ReaderType::New();
-WriterType::Pointer writer = WriterType::New();
-
-OrthoRectifFilterType::Pointer orthoRectifFilter = OrthoRectifFilterType::New();
-UtmMapProjectionType::Pointer  utmMapProjection = UtmMapProjectionType::New();
-
-// Set parameters ...
-reader->SetFileName(argv[1]);
-writer->SetFileName(argv[2]);
-
-reader->GenerateOutputInformation();
-std::cout << reader->GetOutput() << std::endl;
-
-orthoRectifFilter->SetInput(reader->GetOutput());
-
-VectorImageType::IndexType start;
-start[0] = 0;
-start[1] = 0;
-orthoRectifFilter->SetOutputStartIndex(start);
-
-VectorImageType::SizeType size;
-size[0] = atoi(argv[5]);      // X size
-size[1] = atoi(argv[6]);            //Y size
-orthoRectifFilter->SetOutputSize(size);
-
-VectorImageType::SpacingType spacing;
-spacing[0] = atof(argv[7]);
-spacing[1] = atof(argv[8]);
-orthoRectifFilter->SetOutputSpacing(spacing);
-
-VectorImageType::PointType origin;
-origin[0] = strtod(argv[3], NULL);         //Origin easting
-origin[1] = strtod(argv[4], NULL);         //Origin northing
-orthoRectifFilter->SetOutputOrigin(origin);
-
-utmMapProjection->SetZone(atoi(argv[9]));
-utmMapProjection->SetHemisphere(argv[10][0]);
-orthoRectifFilter->SetMapProjection(utmMapProjection);
-
-// Deformation Field spacing
-VectorImageType::SpacingType  gridSpacing;
-gridSpacing[0] = atof(argv[11]);
-gridSpacing[1] = -atof(argv[11]);
-orthoRectifFilter->SetDeformationFieldSpacing(gridSpacing);
-
-VectorImageType::PixelType no_data(reader->GetOutput()->GetNumberOfComponentsPerPixel());
-no_data.Fill(0);
-orthoRectifFilter->SetEdgePaddingValue(no_data);
-
-writer->SetInput(orthoRectifFilter->GetOutput());
-writer->SetNumberOfDivisionsTiledStreaming(4);
-writer->Update();
-
-return EXIT_SUCCESS; */
-
 }
 
 
@@ -529,7 +303,7 @@ int otbMulti3DMapToDEMFilter(int argc, char* argv[])
   for(unsigned int i=0; i<mapSize; i++)
    {
     multiFilter->Set3DMapInput(i,mapReaderList->GetNthElement(i)->GetOutput());
-   // multiFilter->SetMapKeywordList(i,mapReaderList->GetNthElement(i)->GetOutput()->GetImageKeywordlist());
+
     multiFilter->SetMaskInput(i,maskReaderList->GetNthElement(i)->GetOutput());
    }
   multiFilter->SetOutputParametersFrom3DMap();
@@ -537,7 +311,6 @@ int otbMulti3DMapToDEMFilter(int argc, char* argv[])
   WriterType::Pointer writer = WriterType::New();
 
   multiFilter->SetNumberOfThreads(atoi(argv[argc-2]));
-  //multiFilter->Update();
 
   writer->SetInput(multiFilter->GetOutput());
 
diff --git a/Modules/Segmentation/Conversion/test/CMakeLists.txt b/Modules/Segmentation/Conversion/test/CMakeLists.txt
index 363687e5c3cd789d24cdeaa9b26b594e2f56513d..b704bd6275d83837200861e7448c820f89dda0ac 100644
--- a/Modules/Segmentation/Conversion/test/CMakeLists.txt
+++ b/Modules/Segmentation/Conversion/test/CMakeLists.txt
@@ -195,19 +195,11 @@ otb_add_test(NAME bfTvVectorDataRasterizeFilterSHP COMMAND otbConversionTestDriv
   #4 25 0.1 100
   #)
 
-otb_add_test(NAME obTvLabelMapToVectorDataFilter2 COMMAND otbConversionTestDriver
-  --compare-ogr ${NOTOL}
-  ${BASELINE_FILES}/obTvLabelMapToVectorDataFilter.shp
-  ${TEMP}/obTvLabelMapToVectorDataFilter2.shp
-  otbLabelMapToVectorDataFilter
-  ${INPUTDATA}/rcc8_mire5.png
-  ${TEMP}/obTvLabelMapToVectorDataFilter2.shp)
-
 otb_add_test(NAME obTvLabelMapToVectorDataFilter COMMAND otbConversionTestDriver
   --compare-ogr ${NOTOL}
   ${BASELINE_FILES}/obTvLabelMapToVectorDataFilter.shp
   ${TEMP}/obTvLabelMapToVectorDataFilter.shp
   otbLabelMapToVectorDataFilter
-  ${INPUTDATA}/rcc8_mire1.png
+  ${INPUTDATA}/labelImage_UnsignedChar.tif
   ${TEMP}/obTvLabelMapToVectorDataFilter.shp)
 
diff --git a/Modules/Segmentation/Metrics/test/CMakeLists.txt b/Modules/Segmentation/Metrics/test/CMakeLists.txt
index 1b286013d0ad582630ea14378ed22f38afca90aa..63f104f6ca630af3b11dd5fb2bc1333a70caad3c 100644
--- a/Modules/Segmentation/Metrics/test/CMakeLists.txt
+++ b/Modules/Segmentation/Metrics/test/CMakeLists.txt
@@ -47,8 +47,8 @@ otb_add_test(NAME obTvHooverMatrixFilter COMMAND otbMetricsTestDriver
   ${BASELINE_FILES}/obTvHooverMatrixFilter.txt
   ${TEMP}/obTvHooverMatrixFilter.txt
   otbHooverMatrixFilter
-  ${INPUTDATA}/Seg1InputForRCC8Graph.tif
-  ${INPUTDATA}/Seg2InputForRCC8Graph.tif
+  ${INPUTDATA}/labelImage_UnsignedChar.tif
+  ${INPUTDATA}/labelImage_UnsignedChar.tif
   ${TEMP}/obTvHooverMatrixFilter.txt
   )
 
diff --git a/Modules/Segmentation/MorphologicalProfiles/include/otbClosingOpeningMorphologicalFilter.h b/Modules/Segmentation/MorphologicalProfiles/include/otbClosingOpeningMorphologicalFilter.h
index 458213a22aa04a63a47064c59030aedf6441e07c..570c6cd0ea1e29a0c77b90fa3019ae9245204711 100644
--- a/Modules/Segmentation/MorphologicalProfiles/include/otbClosingOpeningMorphologicalFilter.h
+++ b/Modules/Segmentation/MorphologicalProfiles/include/otbClosingOpeningMorphologicalFilter.h
@@ -39,8 +39,7 @@ namespace otb
  * of composition of the two basic morphological operation, the filtered details are dark
  * on a brighter background.
  *
- * \sa ClosingOpeningMorphologicalFilter,
- * MorphologicalPyramidAnalysisFilter
+ * \sa ClosingOpeningMorphologicalFilter
  *
  * \ingroup OTBMorphologicalProfiles
  */
diff --git a/Modules/Segmentation/MorphologicalProfiles/include/otbOpeningClosingMorphologicalFilter.h b/Modules/Segmentation/MorphologicalProfiles/include/otbOpeningClosingMorphologicalFilter.h
index df47e1bd469765126ecabfb15e4a2a15163bf1a0..3a329241c20a8bfa13ad8771b3edb46c6d9b4d73 100644
--- a/Modules/Segmentation/MorphologicalProfiles/include/otbOpeningClosingMorphologicalFilter.h
+++ b/Modules/Segmentation/MorphologicalProfiles/include/otbOpeningClosingMorphologicalFilter.h
@@ -39,8 +39,7 @@ namespace otb
  * of composition of the two basic morphological operation, the filtered details are dark
  * on a brighter background.
  *
- * \sa ClosingOpeningMorphologicalFilter,
- * MorphologicalPyramidAnalyseFilter
+ * \sa ClosingOpeningMorphologicalFilter
  *
  * \ingroup OTBMorphologicalProfiles
  */