diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,10 @@
+## [0.2.0.1] - 2018-01-01
+
+### Changed
+
+- opencv-extra now only builds on GHC >= 8.2.
+
+
 ## [0.2.0.0] - 2017-11-06
 
 - Support OpenCV-3.3.x
@@ -36,6 +43,7 @@
 - Initial version
 
 
+[0.2.0.1]: https://github.com/LumiGuide/haskell-opencv/compare/opencv-extra-0.2.0.0...opencv-extra-0.2.0.1
 [0.2.0.0]: https://github.com/LumiGuide/haskell-opencv/compare/opencv-extra-0.1.0.0...opencv-extra-0.2.0.0
 [0.1.0.0]: https://github.com/LumiGuide/haskell-opencv/compare/opencv-extra-0.0.0.1...opencv-extra-0.1.0.0
 [0.0.0.1]: https://github.com/LumiGuide/haskell-opencv/compare/opencv-extra-0.0.0.0...opencv-extra-0.0.0.1
diff --git a/data/dummy.png b/data/dummy.png
new file mode 100644
Binary files /dev/null and b/data/dummy.png differ
diff --git a/doc/ExampleExtractor.hs b/doc/ExampleExtractor.hs
--- a/doc/ExampleExtractor.hs
+++ b/doc/ExampleExtractor.hs
@@ -278,9 +278,7 @@
             else VarE render `AppE` fp `AppE` sym
 
 findHaskellPaths :: FilePath -> IO [FilePath]
-findHaskellPaths srcDir = do
-  (paths, _) <- G.globDir [G.compile "**/*.hs", G.compile "**/*.hsc"] srcDir
-  pure $ concat paths
+findHaskellPaths = fmap concat . G.globDir [G.compile "**/*.hs", G.compile "**/*.hsc"]
 
 haddockToHaskell :: T.Text -> T.Text
 haddockToHaskell =
diff --git a/doc/Language/Haskell/Meta/Syntax/Translate.hs b/doc/Language/Haskell/Meta/Syntax/Translate.hs
--- a/doc/Language/Haskell/Meta/Syntax/Translate.hs
+++ b/doc/Language/Haskell/Meta/Syntax/Translate.hs
@@ -18,11 +18,7 @@
 import Data.List (foldl', nub, (\\))
 import Language.Haskell.TH.Syntax
 import qualified Language.Haskell.Exts.SrcLoc as Hs
-#if MIN_VERSION_haskell_src_exts(1,18,0)
 import qualified Language.Haskell.Exts.Syntax as Hs
-#else
-import qualified Language.Haskell.Exts.Annotated.Syntax as Hs
-#endif
 
 -----------------------------------------------------------------------------
 
@@ -40,12 +36,8 @@
 class ToCxt  a where toCxt  :: a -> Cxt
 class ToPred a where toPred :: a -> Pred
 class ToTyVars a where toTyVars :: a -> [TyVarBndr]
-#if MIN_VERSION_haskell_src_exts(1,18,0)
 class ToMaybeKind a where toMaybeKind :: a -> Maybe Kind
-#if MIN_VERSION_template_haskell(2,11,0)
 class ToInjectivityAnn a where toInjectivityAnn :: a -> InjectivityAnn
-#endif
-#endif
 
 -- for error messages
 moduleName = "Language.Haskell.Meta.Syntax.Translate"
@@ -364,8 +356,6 @@
   toType t = todo "toType" t
 
 toStrictType :: Hs.Type l -> StrictType
-#if MIN_VERSION_haskell_src_exts(1,18,0)
-#if MIN_VERSION_template_haskell(2,11,0)
 toStrictType (Hs.TyBang _ s u t) = (Bang (toUnpack u) (toStrict s), toType t)
     where
       toStrict (Hs.LazyTy _) = SourceLazy
@@ -375,64 +365,25 @@
       toUnpack (Hs.NoUnpack _) = SourceNoUnpack
       toUnpack (Hs.NoUnpackPragma _) = NoSourceUnpackedness
 toStrictType x = (Bang NoSourceUnpackedness NoSourceStrictness, toType x)
-#else
--- TyBang l (BangType l) (Unpackedness l) (Type l)
--- data BangType l = BangedTy l	| LazyTy l | NoStrictAnnot l
--- data Unpackedness l = Unpack l | NoUnpack l | NoUnpackPragma l
-toStrictType (Hs.TyBang _ b u t) = (toStrict b u, toType t)
-    where
-      toStrict :: Hs.BangType l -> Hs.Unpackedness l -> Strict
-      toStrict (Hs.BangedTy _) _ = IsStrict
-      toStrict _ (Hs.Unpack _) = Unpacked
-      toStrict _ _ = NotStrict
-toStrictType x = (NotStrict, toType x)
-#endif
-#else
-#if MIN_VERSION_template_haskell(2,11,0)
-toStrictType (Hs.TyBang _ (Hs.UnpackedTy _) t) = toStrictType2 SourceUnpack t
-toStrictType t = toStrictType2 NoSourceUnpackedness t
 
-toStrictType2 u t@(Hs.TyBang _ _ Hs.TyBang{}) =
-  nonsense "toStrictType" "double strictness annotation" t
-toStrictType2 u (Hs.TyBang _ (Hs.BangedTy _) t) = (Bang u SourceStrict, toType t)
-toStrictType2 u (Hs.TyBang _ (Hs.UnpackedTy _) t) =
-  nonsense "toStrictType" "double unpackedness annotation" t
-toStrictType2 u t = (Bang u NoSourceStrictness, toType t)
-#else /* !MIN_VERSION_template_haskell(2,11,0) */
-toStrictType t@(Hs.TyBang _ _ Hs.TyBang{}) =
-  nonsense "toStrictType" "double strictness annotation" t
-toStrictType (Hs.TyBang _ (Hs.BangedTy _) t) = (IsStrict, toType t)
-toStrictType (Hs.TyBang _ (Hs.UnpackedTy _) t) = (Unpacked, toType t)
-toStrictType t = (NotStrict, toType t)
-#endif /* !MIN_VERSION_template_haskell(2,11,0) */
-#endif
 
-
 (.->.) :: Type -> Type -> Type
 a .->. b = AppT (AppT ArrowT a) b
 
 instance ToPred (Hs.Asst l) where
-#if MIN_VERSION_template_haskell(2,10,0)
     toPred (Hs.ClassA _ n ts) = foldl' AppT (ConT (toName n)) (fmap toType ts)
     toPred (Hs.InfixA _ t1 n t2) = foldl' AppT (ConT (toName n)) (fmap toType [t1,t2])
     toPred (Hs.EqualP _ t1 t2) = foldl' AppT EqualityT (fmap toType [t1,t2])
     toPred (Hs.ParenA _ asst) = toPred asst
     toPred a@Hs.AppA{} = todo "toCxt" a
     toPred a@Hs.WildCardA{} = todo "toCxt" a
-#else
-    toPred (Hs.ClassA _ n ts) = ClassP (toName n) (fmap toType ts)
-    toPred (Hs.InfixA _ t1 n t2) = ClassP (toName n) (fmap toType [t1, t2])
-    toPred (Hs.EqualP _ t1 t2) = EqualP (toType t1) (toType t2)
-#endif
     toPred a@Hs.IParam{} = noTH "toCxt" a
     toPred p = todo "toPred" p
 
-#if MIN_VERSION_template_haskell(2,11,0)
 instance ToCxt (Hs.Deriving l) where
   toCxt (Hs.Deriving _ rule) = toCxt rule
 instance ToCxt [Hs.InstRule l] where
   toCxt = concatMap toCxt
-#endif
 
 instance ToCxt a => ToCxt (Maybe a) where
     toCxt Nothing = []
@@ -465,17 +416,9 @@
         Hs.DataType _ -> DataD (toCxt cxt)
                              (toName h)
                              (toTyVars h)
-#if MIN_VERSION_template_haskell(2,11,0)
                              Nothing
-#endif
                              (fmap qualConDeclToCon qcds)
-#if MIN_VERSION_template_haskell(2,11,0)
-                             -- Convert a Deriving into a list of types, one for each derived class
-                             -- Assumes that the types do not have any contexts
-                             (maybe [] (\(Hs.Deriving _ q) -> map toType q) qns)
-#else
-                             (toNames qns)
-#endif
+                             [] -- TODO (BvD): convert the deriving clause.
         Hs.NewType _  -> let qcd = case qcds of
                                      [x] -> x
                                      _   -> nonsense "toDec" ("newtype with " ++
@@ -483,15 +426,9 @@
                         in NewtypeD (toCxt cxt)
                                     (toName h)
                                     (toTyVars h)
-#if MIN_VERSION_template_haskell(2,11,0)
                                     Nothing
-#endif
                                     (qualConDeclToCon qcd)
-#if MIN_VERSION_template_haskell(2,11,0)
-                                    (maybe [] (\(Hs.Deriving _ q) -> map toType q) qns)
-#else
-                                    (toNames qns)
-#endif
+                                    [] -- TODO (BvD): convert the deriving clause.
 
   -- This type-signature conversion is just wrong.
   -- Type variables need to be dealt with. /Jonas
@@ -507,8 +444,6 @@
    where
     inline | b = Inline | otherwise = NoInline
 
-#if MIN_VERSION_template_haskell(2,11,0)
-#if MIN_VERSION_haskell_src_exts(1,18,0)
   toDec (Hs.TypeFamDecl _ h sig inj)
     = OpenTypeFamilyD $ TypeFamilyHead (toName h)
                                        (toTyVars h)
@@ -516,33 +451,7 @@
                                        (fmap toInjectivityAnn inj)
   toDec (Hs.DataFamDecl _ _ h sig)
     = DataFamilyD (toName h) (toTyVars h) (toMaybeKind sig)
-#else
-  toDec (Hs.TypeFamDecl _ h k)
-    = OpenTypeFamilyD $ TypeFamilyHead (toName h)
-                                       (toTyVars h)
-                                       (maybe NoSig (KindSig . toKind) k)
-                                       Nothing
-  -- TODO: do something with context?
-  toDec (Hs.DataFamDecl _ _ h k)
-    = DataFamilyD (toName h) (toTyVars h) (fmap toKind k)
-#endif
 
-#else
-#if MIN_VERSION_haskell_src_exts(1,18,0)
-  toDec (Hs.TypeFamDecl _ h sig inj)
-    = FamilyD TypeFam (toName h) (toTyVars h) (toMaybeKind sig)
-  toDec (Hs.DataFamDecl _ _ h sig)
-    = FamilyD DataFam (toName h) (toTyVars h) (toMaybeKind sig)
-#else
-  toDec (Hs.TypeFamDecl _ h k)
-    = FamilyD TypeFam (toName h) (toTyVars h) (fmap toKind k)
-
-  -- TODO: do something with context?
-  toDec (Hs.DataFamDecl _ _ h k)
-    = FamilyD DataFam (toName h) (toTyVars h) (fmap toKind k)
-#endif
-#endif /* MIN_VERSION_template_haskell(2,11,0) */
-
   toDec a@(Hs.FunBind _ mtchs)                           = hsMatchesToFunD mtchs
   toDec (Hs.PatBind _ p rhs bnds)                      = ValD (toPat p)
                                                               (hsRhsToBody rhs)
@@ -554,18 +463,11 @@
   -- the 'vars' bit seems to be for: instance forall a. C (T a) where ...
   -- TH's own parser seems to flat-out ignore them, and honestly I can't see
   -- that it's obviously wrong to do so.
-#if MIN_VERSION_template_haskell(2,11,0)
   toDec (Hs.InstDecl _ Nothing irule ids) = InstanceD
     Nothing
     (toCxt irule)
     (toType irule)
     (toDecs ids)
-#else
-  toDec (Hs.InstDecl _ Nothing irule ids) = InstanceD
-    (toCxt irule)
-    (toType irule)
-    (toDecs ids)
-#endif
 
   toDec (Hs.ClassDecl _ cxt h fds decls) = ClassD
     (toCxt cxt)
@@ -578,7 +480,6 @@
 
   toDec x = todo "toDec" x
 
-#if MIN_VERSION_haskell_src_exts(1,18,0)
 instance ToMaybeKind (Hs.ResultSig l) where
     toMaybeKind (Hs.KindSig _ k) = Just $ toKind k
     toMaybeKind (Hs.TyVarSig _ _) = Nothing
@@ -587,11 +488,8 @@
     toMaybeKind Nothing = Nothing
     toMaybeKind (Just a) = toMaybeKind a
 
-#if MIN_VERSION_template_haskell(2,11,0)
 instance ToInjectivityAnn (Hs.InjectivityInfo l) where
   toInjectivityAnn (Hs.InjectivityInfo _ n ns) = InjectivityAnn (toName n) (fmap toName ns)
-#endif
-#endif
 
 transAct :: Maybe (Hs.Activation l) -> Phases
 transAct Nothing = AllPhases
diff --git a/doc/generated/FontHersheyComplex.png b/doc/generated/FontHersheyComplex.png
deleted file mode 100644
Binary files a/doc/generated/FontHersheyComplex.png and /dev/null differ
diff --git a/doc/generated/FontHersheyComplexSmall.png b/doc/generated/FontHersheyComplexSmall.png
deleted file mode 100644
Binary files a/doc/generated/FontHersheyComplexSmall.png and /dev/null differ
diff --git a/doc/generated/FontHersheyComplexSmall_slanted.png b/doc/generated/FontHersheyComplexSmall_slanted.png
deleted file mode 100644
Binary files a/doc/generated/FontHersheyComplexSmall_slanted.png and /dev/null differ
diff --git a/doc/generated/FontHersheyComplex_slanted.png b/doc/generated/FontHersheyComplex_slanted.png
deleted file mode 100644
Binary files a/doc/generated/FontHersheyComplex_slanted.png and /dev/null differ
diff --git a/doc/generated/FontHersheyDuplex.png b/doc/generated/FontHersheyDuplex.png
deleted file mode 100644
Binary files a/doc/generated/FontHersheyDuplex.png and /dev/null differ
diff --git a/doc/generated/FontHersheyDuplex_slanted.png b/doc/generated/FontHersheyDuplex_slanted.png
deleted file mode 100644
Binary files a/doc/generated/FontHersheyDuplex_slanted.png and /dev/null differ
diff --git a/doc/generated/FontHersheyPlain.png b/doc/generated/FontHersheyPlain.png
deleted file mode 100644
Binary files a/doc/generated/FontHersheyPlain.png and /dev/null differ
diff --git a/doc/generated/FontHersheyPlain_slanted.png b/doc/generated/FontHersheyPlain_slanted.png
deleted file mode 100644
Binary files a/doc/generated/FontHersheyPlain_slanted.png and /dev/null differ
diff --git a/doc/generated/FontHersheyScriptComplex.png b/doc/generated/FontHersheyScriptComplex.png
deleted file mode 100644
Binary files a/doc/generated/FontHersheyScriptComplex.png and /dev/null differ
diff --git a/doc/generated/FontHersheyScriptComplex_slanted.png b/doc/generated/FontHersheyScriptComplex_slanted.png
deleted file mode 100644
Binary files a/doc/generated/FontHersheyScriptComplex_slanted.png and /dev/null differ
diff --git a/doc/generated/FontHersheyScriptSimplex.png b/doc/generated/FontHersheyScriptSimplex.png
deleted file mode 100644
Binary files a/doc/generated/FontHersheyScriptSimplex.png and /dev/null differ
diff --git a/doc/generated/FontHersheyScriptSimplex_slanted.png b/doc/generated/FontHersheyScriptSimplex_slanted.png
deleted file mode 100644
Binary files a/doc/generated/FontHersheyScriptSimplex_slanted.png and /dev/null differ
diff --git a/doc/generated/FontHersheySimplex.png b/doc/generated/FontHersheySimplex.png
deleted file mode 100644
Binary files a/doc/generated/FontHersheySimplex.png and /dev/null differ
diff --git a/doc/generated/FontHersheySimplex_slanted.png b/doc/generated/FontHersheySimplex_slanted.png
deleted file mode 100644
Binary files a/doc/generated/FontHersheySimplex_slanted.png and /dev/null differ
diff --git a/doc/generated/FontHersheyTriplex.png b/doc/generated/FontHersheyTriplex.png
deleted file mode 100644
Binary files a/doc/generated/FontHersheyTriplex.png and /dev/null differ
diff --git a/doc/generated/FontHersheyTriplex_slanted.png b/doc/generated/FontHersheyTriplex_slanted.png
deleted file mode 100644
Binary files a/doc/generated/FontHersheyTriplex_slanted.png and /dev/null differ
diff --git a/doc/generated/LineType_4.png b/doc/generated/LineType_4.png
deleted file mode 100644
Binary files a/doc/generated/LineType_4.png and /dev/null differ
diff --git a/doc/generated/LineType_8.png b/doc/generated/LineType_8.png
deleted file mode 100644
Binary files a/doc/generated/LineType_8.png and /dev/null differ
diff --git a/doc/generated/LineType_AA.png b/doc/generated/LineType_AA.png
deleted file mode 100644
Binary files a/doc/generated/LineType_AA.png and /dev/null differ
diff --git a/doc/generated/bikes_512x341.png b/doc/generated/bikes_512x341.png
deleted file mode 100644
Binary files a/doc/generated/bikes_512x341.png and /dev/null differ
diff --git a/doc/generated/birds_512x341.png b/doc/generated/birds_512x341.png
deleted file mode 100644
Binary files a/doc/generated/birds_512x341.png and /dev/null differ
diff --git a/doc/generated/dummy.png b/doc/generated/dummy.png
new file mode 100644
Binary files /dev/null and b/doc/generated/dummy.png differ
diff --git a/doc/generated/examples/arrowedLineImg.png b/doc/generated/examples/arrowedLineImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/arrowedLineImg.png and /dev/null differ
diff --git a/doc/generated/examples/bfMatcherImg.png b/doc/generated/examples/bfMatcherImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/bfMatcherImg.png and /dev/null differ
diff --git a/doc/generated/examples/bilateralFilterImg.png b/doc/generated/examples/bilateralFilterImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/bilateralFilterImg.png and /dev/null differ
diff --git a/doc/generated/examples/bitwiseAndImg.png b/doc/generated/examples/bitwiseAndImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/bitwiseAndImg.png and /dev/null differ
diff --git a/doc/generated/examples/bitwiseNotImg.png b/doc/generated/examples/bitwiseNotImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/bitwiseNotImg.png and /dev/null differ
diff --git a/doc/generated/examples/bitwiseOrImg.png b/doc/generated/examples/bitwiseOrImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/bitwiseOrImg.png and /dev/null differ
diff --git a/doc/generated/examples/bitwiseXorImg.png b/doc/generated/examples/bitwiseXorImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/bitwiseXorImg.png and /dev/null differ
diff --git a/doc/generated/examples/boxBlurImg.png b/doc/generated/examples/boxBlurImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/boxBlurImg.png and /dev/null differ
diff --git a/doc/generated/examples/cannyImg.png b/doc/generated/examples/cannyImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/cannyImg.png and /dev/null differ
diff --git a/doc/generated/examples/cascadeClassifierArnold.png b/doc/generated/examples/cascadeClassifierArnold.png
deleted file mode 100644
Binary files a/doc/generated/examples/cascadeClassifierArnold.png and /dev/null differ
diff --git a/doc/generated/examples/circleImg.png b/doc/generated/examples/circleImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/circleImg.png and /dev/null differ
diff --git a/doc/generated/examples/colorMapAutumImg.png b/doc/generated/examples/colorMapAutumImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/colorMapAutumImg.png and /dev/null differ
diff --git a/doc/generated/examples/colorMapBoneImg.png b/doc/generated/examples/colorMapBoneImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/colorMapBoneImg.png and /dev/null differ
diff --git a/doc/generated/examples/colorMapCoolImg.png b/doc/generated/examples/colorMapCoolImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/colorMapCoolImg.png and /dev/null differ
diff --git a/doc/generated/examples/colorMapHotImg.png b/doc/generated/examples/colorMapHotImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/colorMapHotImg.png and /dev/null differ
diff --git a/doc/generated/examples/colorMapHsvImg.png b/doc/generated/examples/colorMapHsvImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/colorMapHsvImg.png and /dev/null differ
diff --git a/doc/generated/examples/colorMapJetImg.png b/doc/generated/examples/colorMapJetImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/colorMapJetImg.png and /dev/null differ
diff --git a/doc/generated/examples/colorMapOceanImg.png b/doc/generated/examples/colorMapOceanImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/colorMapOceanImg.png and /dev/null differ
diff --git a/doc/generated/examples/colorMapParulaImg.png b/doc/generated/examples/colorMapParulaImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/colorMapParulaImg.png and /dev/null differ
diff --git a/doc/generated/examples/colorMapPinkImg.png b/doc/generated/examples/colorMapPinkImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/colorMapPinkImg.png and /dev/null differ
diff --git a/doc/generated/examples/colorMapRainbowImg.png b/doc/generated/examples/colorMapRainbowImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/colorMapRainbowImg.png and /dev/null differ
diff --git a/doc/generated/examples/colorMapSpringImg.png b/doc/generated/examples/colorMapSpringImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/colorMapSpringImg.png and /dev/null differ
diff --git a/doc/generated/examples/colorMapSummerImg.png b/doc/generated/examples/colorMapSummerImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/colorMapSummerImg.png and /dev/null differ
diff --git a/doc/generated/examples/colorMapWinterImg.png b/doc/generated/examples/colorMapWinterImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/colorMapWinterImg.png and /dev/null differ
diff --git a/doc/generated/examples/cvtColorImg.png b/doc/generated/examples/cvtColorImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/cvtColorImg.png and /dev/null differ
diff --git a/doc/generated/examples/dctDenoisingImg.png b/doc/generated/examples/dctDenoisingImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/dctDenoisingImg.png and /dev/null differ
diff --git a/doc/generated/examples/decolorImg.png b/doc/generated/examples/decolorImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/decolorImg.png and /dev/null differ
diff --git a/doc/generated/examples/denoise_TVL1Img.png b/doc/generated/examples/denoise_TVL1Img.png
deleted file mode 100644
Binary files a/doc/generated/examples/denoise_TVL1Img.png and /dev/null differ
diff --git a/doc/generated/examples/dilateImg.png b/doc/generated/examples/dilateImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/dilateImg.png and /dev/null differ
diff --git a/doc/generated/examples/drawChArUcoBoardImg.png b/doc/generated/examples/drawChArUcoBoardImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/drawChArUcoBoardImg.png and /dev/null differ
diff --git a/doc/generated/examples/dummy.png b/doc/generated/examples/dummy.png
new file mode 100644
Binary files /dev/null and b/doc/generated/examples/dummy.png differ
diff --git a/doc/generated/examples/ellipseImg.png b/doc/generated/examples/ellipseImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/ellipseImg.png and /dev/null differ
diff --git a/doc/generated/examples/erodeImg.png b/doc/generated/examples/erodeImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/erodeImg.png and /dev/null differ
diff --git a/doc/generated/examples/fastNlMeansDenoisingColoredImg.png b/doc/generated/examples/fastNlMeansDenoisingColoredImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/fastNlMeansDenoisingColoredImg.png and /dev/null differ
diff --git a/doc/generated/examples/fastNlMeansDenoisingColoredMultiImg.png b/doc/generated/examples/fastNlMeansDenoisingColoredMultiImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/fastNlMeansDenoisingColoredMultiImg.png and /dev/null differ
diff --git a/doc/generated/examples/fbMatcherImg.png b/doc/generated/examples/fbMatcherImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/fbMatcherImg.png and /dev/null differ
diff --git a/doc/generated/examples/fillConvexPolyImg.png b/doc/generated/examples/fillConvexPolyImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/fillConvexPolyImg.png and /dev/null differ
diff --git a/doc/generated/examples/fillPolyImg.png b/doc/generated/examples/fillPolyImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/fillPolyImg.png and /dev/null differ
diff --git a/doc/generated/examples/filter2DImg.png b/doc/generated/examples/filter2DImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/filter2DImg.png and /dev/null differ
diff --git a/doc/generated/examples/floodFillImg.png b/doc/generated/examples/floodFillImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/floodFillImg.png and /dev/null differ
diff --git a/doc/generated/examples/flowerContours.png b/doc/generated/examples/flowerContours.png
deleted file mode 100644
Binary files a/doc/generated/examples/flowerContours.png and /dev/null differ
diff --git a/doc/generated/examples/fromImageImg.png b/doc/generated/examples/fromImageImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/fromImageImg.png and /dev/null differ
diff --git a/doc/generated/examples/goodFeaturesToTrackTraces.png b/doc/generated/examples/goodFeaturesToTrackTraces.png
deleted file mode 100644
Binary files a/doc/generated/examples/goodFeaturesToTrackTraces.png and /dev/null differ
diff --git a/doc/generated/examples/grabCutBird.png b/doc/generated/examples/grabCutBird.png
deleted file mode 100644
Binary files a/doc/generated/examples/grabCutBird.png and /dev/null differ
diff --git a/doc/generated/examples/grayscaleImg.png b/doc/generated/examples/grayscaleImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/grayscaleImg.png and /dev/null differ
diff --git a/doc/generated/examples/grayworldWBImg.png b/doc/generated/examples/grayworldWBImg.png
deleted file mode 100644
# file too large to diff: doc/generated/examples/grayworldWBImg.png
diff --git a/doc/generated/examples/hconcatImg.png b/doc/generated/examples/hconcatImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/hconcatImg.png and /dev/null differ
diff --git a/doc/generated/examples/houghCircleTraces.png b/doc/generated/examples/houghCircleTraces.png
deleted file mode 100644
Binary files a/doc/generated/examples/houghCircleTraces.png and /dev/null differ
diff --git a/doc/generated/examples/houghLinesPTraces.png b/doc/generated/examples/houghLinesPTraces.png
deleted file mode 100644
Binary files a/doc/generated/examples/houghLinesPTraces.png and /dev/null differ
diff --git a/doc/generated/examples/inpaintImg.png b/doc/generated/examples/inpaintImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/inpaintImg.png and /dev/null differ
diff --git a/doc/generated/examples/laplacianImg.png b/doc/generated/examples/laplacianImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/laplacianImg.png and /dev/null differ
diff --git a/doc/generated/examples/lineImg.png b/doc/generated/examples/lineImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/lineImg.png and /dev/null differ
diff --git a/doc/generated/examples/markerImg.png b/doc/generated/examples/markerImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/markerImg.png and /dev/null differ
diff --git a/doc/generated/examples/matAbsDiffImg.png b/doc/generated/examples/matAbsDiffImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/matAbsDiffImg.png and /dev/null differ
diff --git a/doc/generated/examples/matAddImg.png b/doc/generated/examples/matAddImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/matAddImg.png and /dev/null differ
diff --git a/doc/generated/examples/matAddWeightedImg.png b/doc/generated/examples/matAddWeightedImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/matAddWeightedImg.png and /dev/null differ
diff --git a/doc/generated/examples/matFlipImg.png b/doc/generated/examples/matFlipImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/matFlipImg.png and /dev/null differ
diff --git a/doc/generated/examples/matFromFuncImg.png b/doc/generated/examples/matFromFuncImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/matFromFuncImg.png and /dev/null differ
diff --git a/doc/generated/examples/matSplitImg.png b/doc/generated/examples/matSplitImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/matSplitImg.png and /dev/null differ
diff --git a/doc/generated/examples/matSubRectImg.png b/doc/generated/examples/matSubRectImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/matSubRectImg.png and /dev/null differ
diff --git a/doc/generated/examples/matSubtractImg.png b/doc/generated/examples/matSubtractImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/matSubtractImg.png and /dev/null differ
diff --git a/doc/generated/examples/matSumImg.png b/doc/generated/examples/matSumImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/matSumImg.png and /dev/null differ
diff --git a/doc/generated/examples/matTransposeImg.png b/doc/generated/examples/matTransposeImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/matTransposeImg.png and /dev/null differ
diff --git a/doc/generated/examples/medianBlurImg.png b/doc/generated/examples/medianBlurImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/medianBlurImg.png and /dev/null differ
diff --git a/doc/generated/examples/morphCrossImg.png b/doc/generated/examples/morphCrossImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/morphCrossImg.png and /dev/null differ
diff --git a/doc/generated/examples/morphEllipseImg.png b/doc/generated/examples/morphEllipseImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/morphEllipseImg.png and /dev/null differ
diff --git a/doc/generated/examples/morphRectImg.png b/doc/generated/examples/morphRectImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/morphRectImg.png and /dev/null differ
diff --git a/doc/generated/examples/orbDetectAndComputeImg.png b/doc/generated/examples/orbDetectAndComputeImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/orbDetectAndComputeImg.png and /dev/null differ
diff --git a/doc/generated/examples/polylinesImg.png b/doc/generated/examples/polylinesImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/polylinesImg.png and /dev/null differ
diff --git a/doc/generated/examples/putTextImg.png b/doc/generated/examples/putTextImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/putTextImg.png and /dev/null differ
diff --git a/doc/generated/examples/rectangleImg.png b/doc/generated/examples/rectangleImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/rectangleImg.png and /dev/null differ
diff --git a/doc/generated/examples/remapImg.png b/doc/generated/examples/remapImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/remapImg.png and /dev/null differ
diff --git a/doc/generated/examples/resizeInterAreaImg.png b/doc/generated/examples/resizeInterAreaImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/resizeInterAreaImg.png and /dev/null differ
diff --git a/doc/generated/examples/surfDetectAndComputeImg.png b/doc/generated/examples/surfDetectAndComputeImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/surfDetectAndComputeImg.png and /dev/null differ
diff --git a/doc/generated/examples/threshBinaryBirds.png b/doc/generated/examples/threshBinaryBirds.png
deleted file mode 100644
Binary files a/doc/generated/examples/threshBinaryBirds.png and /dev/null differ
diff --git a/doc/generated/examples/threshBinaryInvBirds.png b/doc/generated/examples/threshBinaryInvBirds.png
deleted file mode 100644
Binary files a/doc/generated/examples/threshBinaryInvBirds.png and /dev/null differ
diff --git a/doc/generated/examples/threshToZeroBirds.png b/doc/generated/examples/threshToZeroBirds.png
deleted file mode 100644
Binary files a/doc/generated/examples/threshToZeroBirds.png and /dev/null differ
diff --git a/doc/generated/examples/threshToZeroInvBirds.png b/doc/generated/examples/threshToZeroInvBirds.png
deleted file mode 100644
Binary files a/doc/generated/examples/threshToZeroInvBirds.png and /dev/null differ
diff --git a/doc/generated/examples/threshTruncateBirds.png b/doc/generated/examples/threshTruncateBirds.png
deleted file mode 100644
Binary files a/doc/generated/examples/threshTruncateBirds.png and /dev/null differ
diff --git a/doc/generated/examples/toImageImg.png b/doc/generated/examples/toImageImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/toImageImg.png and /dev/null differ
diff --git a/doc/generated/examples/undistortImg.png b/doc/generated/examples/undistortImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/undistortImg.png and /dev/null differ
diff --git a/doc/generated/examples/vconcatImg.png b/doc/generated/examples/vconcatImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/vconcatImg.png and /dev/null differ
diff --git a/doc/generated/examples/vennCircleAImg.png b/doc/generated/examples/vennCircleAImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/vennCircleAImg.png and /dev/null differ
diff --git a/doc/generated/examples/vennCircleBImg.png b/doc/generated/examples/vennCircleBImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/vennCircleBImg.png and /dev/null differ
diff --git a/doc/generated/examples/warpAffineImg.png b/doc/generated/examples/warpAffineImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/warpAffineImg.png and /dev/null differ
diff --git a/doc/generated/examples/warpAffineInvImg.png b/doc/generated/examples/warpAffineInvImg.png
deleted file mode 100644
Binary files a/doc/generated/examples/warpAffineInvImg.png and /dev/null differ
diff --git a/doc/generated/flower_512x341.png b/doc/generated/flower_512x341.png
deleted file mode 100644
Binary files a/doc/generated/flower_512x341.png and /dev/null differ
diff --git a/doc/generated/sailboat_512x341.png b/doc/generated/sailboat_512x341.png
deleted file mode 100644
Binary files a/doc/generated/sailboat_512x341.png and /dev/null differ
diff --git a/opencv-extra.cabal b/opencv-extra.cabal
--- a/opencv-extra.cabal
+++ b/opencv-extra.cabal
@@ -1,5 +1,5 @@
 name:          opencv-extra
-version:       0.2.0.0
+version:       0.2.0.1
 homepage:      https://github.com/LumiGuide/haskell-opencv
 bug-reports:   https://github.com/LumiGuide/haskell-opencv/issues
 license:       BSD3
@@ -56,16 +56,8 @@
         xfeatures/surf.hpp
         aruco-namespace.hpp
 
-    c-sources:
-        src/OpenCV/Extra/ArUco.cpp
-        src/OpenCV/Extra/Bgsegm.cpp
-        src/OpenCV/Extra/Tracking.cpp
-        src/OpenCV/Extra/XPhoto.cpp
-        src/OpenCV/Extra/XPhoto/WhiteBalancer.cpp
-        src/OpenCV/Extra/XFeatures2d.cpp
-
     cc-options: -Wall -std=c++11
-    ghc-options: -Wall -fwarn-incomplete-patterns -funbox-strict-fields -O2
+    ghc-options: -Wall -fwarn-incomplete-patterns -funbox-strict-fields
     if flag(internal-documentation)
         cpp-options: -DENABLE_INTERNAL_DOCUMENTATION
 
@@ -74,8 +66,8 @@
       , bindings-DSL      >= 1.0.23
       , bytestring        >= 0.10.6
       , containers        >= 0.5.6.2
-      , inline-c          >= 0.5.5.5
-      , inline-c-cpp      >= 0.1
+      , inline-c          >= 0.6
+      , inline-c-cpp      >= 0.2
       , linear            >= 1.20.4
       , opencv            >= 0.0.0.0
       , primitive         >= 0.6.1
@@ -121,7 +113,7 @@
         ExampleExtractor
         Language.Haskell.Meta.Syntax.Translate
     default-language: Haskell2010
-    ghc-options: -Wall -fwarn-incomplete-patterns -threaded -funbox-strict-fields -O2 -rtsopts
+    ghc-options: -Wall -fwarn-incomplete-patterns -threaded -funbox-strict-fields -rtsopts
     cpp-options: -DHAVE_OPENCV_EXTRA
     build-depends:
         base              >= 4.8 && < 5
@@ -129,7 +121,7 @@
       , containers        >= 0.5.6.2
       , data-default      >= 0.7.1.1
       , directory         >= 1.2.2
-      , Glob              >= 0.7.5
+      , Glob              >= 0.9
       , haskell-src-exts  >= 1.18.2
       , JuicyPixels       >= 3.2.8.1
       , linear            >= 1.20.4
diff --git a/src/OpenCV/Extra/ArUco.cpp b/src/OpenCV/Extra/ArUco.cpp
deleted file mode 100644
--- a/src/OpenCV/Extra/ArUco.cpp
+++ /dev/null
@@ -1,245 +0,0 @@
-
-#include "opencv2/aruco.hpp"
-
-#include "opencv2/aruco/charuco.hpp"
-
-#include "opencv2/core.hpp"
-
-#include "iostream"
-
-#include "aruco.hpp"
-
-using namespace cv;
-
-using namespace cv::aruco;
-
-using namespace std;
-
-extern "C" {
-bool inline_c_OpenCV_Extra_ArUco_0_bd5552a5292d57848d9aa88652d764e8c9c42af4(VectorVectorPoint2f * carucoCorners_27_inline_c_0, VectorInt * carucoIds_27_inline_c_1, Mat * imagePtr_inline_c_2, Ptr_CharucoBoard * ccharucoBoard_27_inline_c_3, Mat ** charucoIdsPtr_inline_c_4, Mat ** charucoCornersPtr_inline_c_5) {
-
-        auto & corners = *carucoCorners_27_inline_c_0;
-        auto & ids = *carucoIds_27_inline_c_1;
-        auto & frame = *imagePtr_inline_c_2;
-
-        auto charucoCorners = new Mat();
-        auto charucoIds = new Mat();
-
-        interpolateCornersCharuco(corners,
-                                  ids,
-                                  frame,
-                                  *ccharucoBoard_27_inline_c_3,
-                                  *charucoCorners,
-                                  *charucoIds);
-
-        *charucoIdsPtr_inline_c_4 = charucoIds;
-        *charucoCornersPtr_inline_c_5 = charucoCorners;
-
-        return !charucoIds->empty();
-      
-}
-
-}
-
-extern "C" {
-bool inline_c_OpenCV_Extra_ArUco_1_615bf459fee0dd377cb9469a903293b632daa6ef(Mat * ccornersPtr_27_inline_c_0, Mat * cidsPtr_27_inline_c_1, Ptr_CharucoBoard * ccharucoBoard_27_inline_c_2, Matx33d * ccameraMatrix_27_inline_c_3, Matx51d * cdistCoeffs_27_inline_c_4, Vec3d * rvecPtr_inline_c_5, Vec3d * tvecPtr_inline_c_6) {
-
-          return estimatePoseCharucoBoard(*ccornersPtr_27_inline_c_0,
-                                          *cidsPtr_27_inline_c_1,
-                                          *ccharucoBoard_27_inline_c_2,
-                                          *ccameraMatrix_27_inline_c_3,
-                                          *cdistCoeffs_27_inline_c_4,
-                                          *rvecPtr_inline_c_5,
-                                          *tvecPtr_inline_c_6);
-          
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Extra_ArUco_2_97babe245258febd5fd31065cc0da01bf14d0b96(Mat * imagePtr_inline_c_0, Matx33d * ccameraMatrix_27_inline_c_1, Matx51d * cdistCoeffs_27_inline_c_2, Vec3d * rvecPtr_inline_c_3, Vec3d * tvecPtr_inline_c_4) {
-
-        drawAxis(*imagePtr_inline_c_0,
-                 *ccameraMatrix_27_inline_c_1,
-                 *cdistCoeffs_27_inline_c_2,
-                 *rvecPtr_inline_c_3,
-                 *tvecPtr_inline_c_4,
-                 1);
-      
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_Extra_ArUco_3_189a51fbfeacf22e1e41218ae5f7f2c90ddd95ff(long callCorners_27_inline_c_0, VectorVectorPoint2f ** callCorners_27_inline_c_1, long callIds_27_inline_c_2, VectorInt ** callIds_27_inline_c_3, int cwidth_27_inline_c_4, int cheight_27_inline_c_5, Ptr_CharucoBoard * cboard_27_inline_c_6, Matx33d * cameraMatrixPtr_inline_c_7, Matx51d * distCoeffsPtr_inline_c_8, long callCharucoCorners_27_inline_c_9, Mat ** callCharucoCorners_27_inline_c_10, long callCharucoIds_27_inline_c_11, Mat ** callCharucoIds_27_inline_c_12, Matx33d * cameraMatrixPtr_inline_c_13, Matx51d * distCoeffsPtr_inline_c_14) {
-
-  try
-  {   
-          vector< vector<Point2f> > allCorners;
-          for(auto i = 0; i < callCorners_27_inline_c_0; i++) {
-            auto & corners =
-              *callCorners_27_inline_c_1[i];
-
-            allCorners.insert(allCorners.end(), corners.begin(), corners.end());
-          }
-
-          vector<int> allIds;
-          vector<int> counter;
-          for(auto i = 0; i < callIds_27_inline_c_2; i++) {
-            auto & ids = *callIds_27_inline_c_3[i];
-            allIds.insert(allIds.end(), ids.begin(), ids.end());
-            counter.push_back(ids.size());
-          }
-
-          Size frameSize(cwidth_27_inline_c_4, cheight_27_inline_c_5);
-
-          Ptr<CharucoBoard> charucoBoard = *cboard_27_inline_c_6;
-          Ptr<cv::aruco::Board> board = charucoBoard.staticCast<cv::aruco::Board>();
-
-          calibrateCameraAruco(allCorners,
-                              allIds,
-                              counter,
-                              board,
-                              frameSize,
-                              *cameraMatrixPtr_inline_c_7,
-                              *distCoeffsPtr_inline_c_8);
-
-          vector<Mat> allCharucoCorners;
-          for(auto i = 0; i < callCharucoCorners_27_inline_c_9; i++) {
-            auto & corners = *callCharucoCorners_27_inline_c_10[i];
-            allCharucoCorners.push_back(corners);
-          }
-
-          vector<Mat> allCharucoIds;
-          for(auto i = 0; i < callCharucoIds_27_inline_c_11; i++) {
-            auto & ids = *callCharucoIds_27_inline_c_12[i];
-            allCharucoIds.push_back(ids);
-          }
-
-          Mat perViewErrors;
-
-          calibrateCameraCharuco(allCharucoCorners,
-                                allCharucoIds,
-                                charucoBoard,
-                                frameSize,
-                                *cameraMatrixPtr_inline_c_13,
-                                *distCoeffsPtr_inline_c_14,
-                                noArray(),
-                                noArray(),
-                                noArray(),
-                                noArray(),
-                                perViewErrors);
-        
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-bool inline_c_OpenCV_Extra_ArUco_4_e65bd42c3a4ec69183769f1d3abbc8dc9ac21c29(Mat * imagePtr_inline_c_0, Ptr_Dictionary * cdictionary_27_inline_c_1, VectorVectorPoint2f ** cornersOutPtr_inline_c_2, VectorInt ** idsOutPtr_inline_c_3) {
-
-        auto * corners = new vector< vector<Point2f> >();
-        auto * ids = new vector<int>();
-
-        detectMarkers(*imagePtr_inline_c_0,
-                      *cdictionary_27_inline_c_1,
-                      *corners,
-                      *ids);
-
-        *cornersOutPtr_inline_c_2 = corners;
-        *idsOutPtr_inline_c_3 = ids;
-        return ids->size() > 0;
-      
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Extra_ArUco_5_e103b2a6072343f5d389cb9096058d5b33defc59(Mat * imagePtr_inline_c_0, VectorVectorPoint2f * ccornersPtr_27_inline_c_1, VectorInt * cidsPtr_27_inline_c_2) {
-
-    drawDetectedMarkers(*imagePtr_inline_c_0,
-                        *ccornersPtr_27_inline_c_1,
-                        *cidsPtr_27_inline_c_2);
-  
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Extra_ArUco_6_37feba18e64b5c7115da15bd570386759895c7a2(Mat * imagePtr_inline_c_0, Mat * ccornersPtr_27_inline_c_1, Mat * cidsPtr_27_inline_c_2) {
-
-    drawDetectedCornersCharuco(*imagePtr_inline_c_0,
-                               *ccornersPtr_27_inline_c_1,
-                               *cidsPtr_27_inline_c_2);
-  
-}
-
-}
-
-extern "C" {
-Ptr_CharucoBoard * inline_c_OpenCV_Extra_ArUco_7_30fe6411bb487a62b7005f44d34773c8ce51511a(int csquaresX_27_inline_c_0, int csquaresY_27_inline_c_1, double csquareLength_27_inline_c_2, double cmarkerLength_27_inline_c_3, Ptr_Dictionary * cdictionary_27_inline_c_4) {
-
-    return
-      new Ptr<CharucoBoard>(CharucoBoard::create(csquaresX_27_inline_c_0,
-                                                  csquaresY_27_inline_c_1,
-                                                  csquareLength_27_inline_c_2,
-                                                  cmarkerLength_27_inline_c_3,
-                                                  *cdictionary_27_inline_c_4));
-  
-}
-
-}
-
-extern "C" {
-Ptr_Dictionary * inline_c_OpenCV_Extra_ArUco_8_873aa904229da5436ca09c0b615dd0371711b030(int32_t cname_27_inline_c_0) {
-
-    return new Ptr<Dictionary>(getPredefinedDictionary(cname_27_inline_c_0));
-  
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Extra_ArUco_9_1660ae62bf4004a4267ef43424eaa8c162afdea4(Mat * dstPtr_inline_c_0, Ptr_CharucoBoard * cboard_27_inline_c_1, int32_t w_inline_c_2, int32_t h_inline_c_3) {
-
-          Mat & board = * dstPtr_inline_c_0;
-          Ptr<CharucoBoard> & charucoBoard = *cboard_27_inline_c_1;
-          charucoBoard->draw(cv::Size(w_inline_c_2, h_inline_c_3), board);
-        
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Extra_ArUco_10_26c5e19bfe16c79e7bf651cb378e30fd432cd99b(VectorVectorPoint2f * ptr_inline_c_0) {
- delete ptr_inline_c_0; 
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Extra_ArUco_11_86f8b8c429a70629e07c27698801886a0484dfef(VectorInt * ptr_inline_c_0) {
- delete ptr_inline_c_0; 
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Extra_ArUco_12_a3285f65e0699baa139781baf5bb261b6fa6aa9d(Ptr_CharucoBoard * ptr_inline_c_0) {
- delete ptr_inline_c_0; 
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Extra_ArUco_13_35320368ab79414e41da235a390ce49c04ab0a5c(Ptr_Dictionary * ptr_inline_c_0) {
- delete ptr_inline_c_0; 
-}
-
-}
diff --git a/src/OpenCV/Extra/Bgsegm.cpp b/src/OpenCV/Extra/Bgsegm.cpp
deleted file mode 100644
--- a/src/OpenCV/Extra/Bgsegm.cpp
+++ /dev/null
@@ -1,152 +0,0 @@
-
-#include "opencv2/core.hpp"
-
-#include "opencv2/video.hpp"
-
-#include "opencv2/bgsegm.hpp"
-
-#include "bgsegm.hpp"
-
-using namespace cv;
-
-extern "C" {
-Ptr_BackgroundSubtractorGMG * inline_c_OpenCV_Extra_Bgsegm_0_4cad742a94b1e290a850aaa42019ad34d95bdaea(int32_t cinitializationFrames_27_inline_c_0, double cdecisionThreshold_27_inline_c_1) {
-
-      cv::Ptr<cv::bgsegm::BackgroundSubtractorGMG> gmgPtr =
-        cv::bgsegm::createBackgroundSubtractorGMG
-        ( cinitializationFrames_27_inline_c_0
-        , cdecisionThreshold_27_inline_c_1
-        );
-      return new cv::Ptr<cv::bgsegm::BackgroundSubtractorGMG>(gmgPtr);
-    
-}
-
-}
-
-extern "C" {
-Ptr_BackgroundSubtractorMOG * inline_c_OpenCV_Extra_Bgsegm_1_546b1da302dc708e3c4ddc702cd20cd72c8559b7(int32_t chistory_27_inline_c_0, int32_t cnumGausianMix_27_inline_c_1, double cbackgroundRatio_27_inline_c_2, double cnoise_27_inline_c_3) {
-
-      cv::Ptr<cv::bgsegm::BackgroundSubtractorMOG> mog2Ptr =
-        cv::bgsegm::createBackgroundSubtractorMOG
-        ( chistory_27_inline_c_0
-        , cnumGausianMix_27_inline_c_1
-        , cbackgroundRatio_27_inline_c_2
-        , cnoise_27_inline_c_3
-        );
-      return new cv::Ptr<cv::bgsegm::BackgroundSubtractorMOG>(mog2Ptr);
-    
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Extra_Bgsegm_2_48cb6527f13d74249e3e1955e1f02f2011cee17a(Ptr_BackgroundSubtractorMOG * mogPtr_inline_c_0, Mat * imgPtr_inline_c_1, Mat * fgMaskPtr_inline_c_2, double clearningRate_27_inline_c_3) {
-
-              cv::bgsegm::BackgroundSubtractorMOG * mog = *mogPtr_inline_c_0;
-              mog->apply
-              ( *imgPtr_inline_c_1
-              , *fgMaskPtr_inline_c_2
-              , clearningRate_27_inline_c_3
-              );
-            
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Extra_Bgsegm_3_cbba6f9c69ed88c9000d7dd2775444c61982293b(Ptr_BackgroundSubtractorMOG * mogPtr_inline_c_0, Mat * imgPtr_inline_c_1) {
-
-              cv::bgsegm::BackgroundSubtractorMOG * mog = *mogPtr_inline_c_0;
-              mog->getBackgroundImage(*imgPtr_inline_c_1);
-            
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Extra_Bgsegm_4_10eb3318bc5306fecb2320251a25b410f89c160c(Ptr_BackgroundSubtractorGMG * gmgPtr_inline_c_0, Mat * imgPtr_inline_c_1, Mat * fgMaskPtr_inline_c_2, double clearningRate_27_inline_c_3) {
-
-              cv::bgsegm::BackgroundSubtractorGMG * gmg = *gmgPtr_inline_c_0;
-              gmg->apply
-              ( *imgPtr_inline_c_1
-              , *fgMaskPtr_inline_c_2
-              , clearningRate_27_inline_c_3
-              );
-            
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Extra_Bgsegm_5_c960b2287d0171e2659a7072d345ffaee412eede(Ptr_BackgroundSubtractorGMG * gmgPtr_inline_c_0, Mat * imgPtr_inline_c_1) {
-
-              cv::bgsegm::BackgroundSubtractorGMG * gmg = *gmgPtr_inline_c_0;
-              gmg->getBackgroundImage(*imgPtr_inline_c_1);
-            
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Extra_Bgsegm_6_dc2609be8bceffb0014796e658ebe95c73d04536(Ptr_BackgroundSubtractorMOG * mog2Ptr_inline_c_0) {
-
-              cv::bgsegm::BackgroundSubtractorMOG * mog2 = *mog2Ptr_inline_c_0;
-              mog2->clear();
-          
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Extra_Bgsegm_7_c26d79c05f7057ecd9dee235ac9dca2d2d89a9ca(Ptr_BackgroundSubtractorMOG * mog2Ptr_inline_c_0, bool * emptyPtr_inline_c_1) {
-
-              cv::bgsegm::BackgroundSubtractorMOG * mog2 = *mog2Ptr_inline_c_0;
-              *emptyPtr_inline_c_1 = mog2->empty();
-          
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Extra_Bgsegm_8_030580224eb15175e4895cb174cbdf0348b871e6(Ptr_BackgroundSubtractorGMG * knnPtr_inline_c_0) {
-
-              cv::bgsegm::BackgroundSubtractorGMG * knn = *knnPtr_inline_c_0;
-              knn->clear();
-          
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Extra_Bgsegm_9_6f8b16403e735ccf26882c73dc3e6bdcd6dfac7b(Ptr_BackgroundSubtractorGMG * gmgPtr_inline_c_0, bool * emptyPtr_inline_c_1) {
-
-              cv::bgsegm::BackgroundSubtractorGMG * gmg = *gmgPtr_inline_c_0;
-              *emptyPtr_inline_c_1 = gmg->empty();
-          
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Extra_Bgsegm_10_f2dd1537a7c6649e59499980d21e3efce8309c8a(Ptr_BackgroundSubtractorMOG * ptr_inline_c_0) {
-
-                  cv::Ptr<cv::bgsegm::BackgroundSubtractorMOG> * mog2_ptr_ptr =
-                    ptr_inline_c_0;
-                  mog2_ptr_ptr->release();
-                  delete mog2_ptr_ptr;
-                
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Extra_Bgsegm_11_453105bb3402b7542dceb42b6f82b21e8c2340b9(Ptr_BackgroundSubtractorGMG * ptr_inline_c_0) {
-
-                  cv::Ptr<cv::bgsegm::BackgroundSubtractorGMG> * knn_ptr_ptr =
-                    ptr_inline_c_0;
-                  knn_ptr_ptr->release();
-                  delete knn_ptr_ptr;
-                
-}
-
-}
diff --git a/src/OpenCV/Extra/Tracking.cpp b/src/OpenCV/Extra/Tracking.cpp
deleted file mode 100644
--- a/src/OpenCV/Extra/Tracking.cpp
+++ /dev/null
@@ -1,130 +0,0 @@
-
-#include "opencv2/core.hpp"
-
-#include "opencv2/tracking.hpp"
-
-#include "tracking.hpp"
-
-using namespace cv;
-
-extern "C" {
-Ptr_Tracker * inline_c_OpenCV_Extra_Tracking_0_d61a44f7af56478af6e1b7b7276b15457413504a() {
-return new cv::Ptr<cv::Tracker>(cv::TrackerBoosting::create());
-}
-
-}
-
-extern "C" {
-Ptr_Tracker * inline_c_OpenCV_Extra_Tracking_1_ec9a58d1d4c955dfb999ecfaae06090f02522e49() {
-return new cv::Ptr<cv::Tracker>(cv::TrackerMIL::create());
-}
-
-}
-
-extern "C" {
-Ptr_Tracker * inline_c_OpenCV_Extra_Tracking_2_ccc0a1b5d45e48fbad8058f237a1097d03f70b18() {
-return new cv::Ptr<cv::Tracker>(cv::TrackerKCF::create());
-}
-
-}
-
-extern "C" {
-Ptr_Tracker * inline_c_OpenCV_Extra_Tracking_3_6916cced60cb5e014eadd949778d98cf115ad4f2() {
-return new cv::Ptr<cv::Tracker>(cv::TrackerMedianFlow::create());
-}
-
-}
-
-extern "C" {
-Ptr_Tracker * inline_c_OpenCV_Extra_Tracking_4_47bd351f1f201d3a03c476c9dfcefd8693425578() {
-return new cv::Ptr<cv::Tracker>(cv::TrackerTLD::create());
-}
-
-}
-
-extern "C" {
-Ptr_Tracker * inline_c_OpenCV_Extra_Tracking_5_f0b42e78dc5245625e65a8bc9be96dd2ebfc99b3() {
-return new cv::Ptr<cv::Tracker>(cv::TrackerGOTURN::create());
-}
-
-}
-
-extern "C" {
-bool inline_c_OpenCV_Extra_Tracking_6_f5218c121fc0cacbb2549b312cc1a0f25f8d3052(Ptr_Tracker * trkPtr_inline_c_0, Mat * srcPtr_inline_c_1, Rect2d * rectPtr_inline_c_2) {
-
-           return (*trkPtr_inline_c_0)->init
-              ( *srcPtr_inline_c_1
-              , *rectPtr_inline_c_2
-              );
-         
-}
-
-}
-
-extern "C" {
-bool inline_c_OpenCV_Extra_Tracking_7_cfa88d7e1596b908857073456e505f8a57bfd55f(Ptr_Tracker * trkPtr_inline_c_0, Mat * srcPtr_inline_c_1, Rect2d * rectPtr_inline_c_2) {
-
-           return (*trkPtr_inline_c_0)->update
-              ( *srcPtr_inline_c_1
-              , *rectPtr_inline_c_2
-              );
-         
-}
-
-}
-
-extern "C" {
-Ptr_MultiTracker * inline_c_OpenCV_Extra_Tracking_8_4549330adad92cb8c3cefe392252b1afd8277fec() {
-
-      return new cv::Ptr<cv::MultiTracker>(new cv::MultiTracker ());
-    
-}
-
-}
-
-extern "C" {
-Ptr_TrackerFeature * inline_c_OpenCV_Extra_Tracking_9_bb59c0632f05622a4df6cbb440d6ff7b3e503a96(const char * ctrackerFeatureType_27_inline_c_0) {
-
-        cv::Ptr<cv::TrackerFeature> ftracker =
-          cv::TrackerFeature::create ( cv::String(ctrackerFeatureType_27_inline_c_0));
-          return new cv::Ptr<cv::TrackerFeature>(ftracker);
-    
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Extra_Tracking_10_6622f23d9a44ed62d61cf22707e9d8ac3e4f2186(Ptr_MultiTrackerAlt * ptr_inline_c_0) {
-
-                  delete ptr_inline_c_0;
-                
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Extra_Tracking_11_778deb976c698e950da3d4b45362d8b29a2c2547(Ptr_MultiTracker * ptr_inline_c_0) {
-
-                  delete ptr_inline_c_0;
-                
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Extra_Tracking_12_a535e1801086ce360682ac32352766b0a063504e(Ptr_TrackerFeature * ptr_inline_c_0) {
-
-                  delete ptr_inline_c_0;
-                
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Extra_Tracking_13_89f1496eff75dd40a161328bb1f958178e2152e9(Ptr_Tracker * ptr_inline_c_0) {
-
-                  delete ptr_inline_c_0;
-                
-}
-
-}
diff --git a/src/OpenCV/Extra/XFeatures2d.cpp b/src/OpenCV/Extra/XFeatures2d.cpp
deleted file mode 100644
--- a/src/OpenCV/Extra/XFeatures2d.cpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-#include "opencv2/core.hpp"
-
-#include "opencv2/xfeatures2d.hpp"
-
-#include "xfeatures/surf.hpp"
-
-using namespace cv;
-
-extern "C" {
-Ptr_SURF * inline_c_OpenCV_Extra_XFeatures2d_0_bc51f58e60712bc5e3af0c96b0bc52ae5b9b1c1a(double chessianThreshold_27_inline_c_0, int32_t surf_nOctaves_inline_c_1, int32_t surf_nOctaveLayers_inline_c_2, bool cextended_27_inline_c_3, bool cupright_27_inline_c_4) {
-
-      cv::Ptr<cv::xfeatures2d::SURF> surfPtr =
-        cv::xfeatures2d::SURF::create
-        ( chessianThreshold_27_inline_c_0
-        , surf_nOctaves_inline_c_1
-        , surf_nOctaveLayers_inline_c_2
-        , cextended_27_inline_c_3
-        , cupright_27_inline_c_4
-        );
-      return new cv::Ptr<cv::xfeatures2d::SURF>(surfPtr);
-    
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_Extra_XFeatures2d_1_010dc4a635b061c9b20e8bc1a0f09def3d5e993b(Ptr_SURF * surfPtr_inline_c_0, Mat * maskPtr_inline_c_1, Mat * imgPtr_inline_c_2, Mat * descPtr_inline_c_3, int32_t * numPtsPtr_inline_c_4, KeyPoint *** arrayPtrPtr_inline_c_5) {
-
-  try
-  {   
-          cv::xfeatures2d::SURF * surf = *surfPtr_inline_c_0;
-          cv::Mat * maskPtr = maskPtr_inline_c_1;
-
-          std::vector<cv::KeyPoint> keypoints = std::vector<cv::KeyPoint>();
-          surf->
-            detectAndCompute
-            ( *imgPtr_inline_c_2
-            , maskPtr ? cv::_InputArray(*maskPtr) : cv::_InputArray(noArray())
-            , keypoints
-            , *descPtr_inline_c_3
-            , false
-            );
-
-          *numPtsPtr_inline_c_4 = keypoints.size();
-
-          cv::KeyPoint * * * arrayPtrPtr = arrayPtrPtr_inline_c_5;
-          cv::KeyPoint * * arrayPtr = new cv::KeyPoint * [keypoints.size()];
-          *arrayPtrPtr = arrayPtr;
-
-          for (std::vector<cv::KeyPoint>::size_type ix = 0; ix != keypoints.size(); ix++)
-          {
-            cv::KeyPoint & org = keypoints[ix];
-            cv::KeyPoint * newPt =
-              new cv::KeyPoint( org.pt
-                              , org.size
-                              , org.angle
-                              , org.response
-                              , org.octave
-                              , org.class_id
-                              );
-            arrayPtr[ix] = newPt;
-          }
-        
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Extra_XFeatures2d_2_cf7ed8abd0aadc595f02b1ca9ec2ba13285a12cd(KeyPoint *** arrayPtrPtr_inline_c_0) {
-
-            delete [] *arrayPtrPtr_inline_c_0;
-          
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Extra_XFeatures2d_3_0a78fb7b80501d1c0a37452b7758538729bc3810(Ptr_SURF * ptr_inline_c_0) {
-
-                  cv::Ptr<cv::xfeatures2d::SURF> * surf_ptr_ptr = ptr_inline_c_0;
-                  surf_ptr_ptr->release();
-                  delete surf_ptr_ptr;
-                
-}
-
-}
diff --git a/src/OpenCV/Extra/XPhoto.cpp b/src/OpenCV/Extra/XPhoto.cpp
deleted file mode 100644
--- a/src/OpenCV/Extra/XPhoto.cpp
+++ /dev/null
@@ -1,28 +0,0 @@
-
-#include "opencv2/core.hpp"
-
-#include "opencv2/xphoto.hpp"
-
-using namespace cv;
-
-extern "C" {
-Exception * inline_c_OpenCV_Extra_XPhoto_0_06297e612174af62db1078e41dba8535638659d5(Mat * srcPtr_inline_c_0, Mat * dstPtr_inline_c_1, double csigma_27_inline_c_2, int32_t cpSize_27_inline_c_3) {
-
-  try
-  {   
-        cv::xphoto::dctDenoising( *srcPtr_inline_c_0
-                                , *dstPtr_inline_c_1
-                                , csigma_27_inline_c_2
-                                , cpSize_27_inline_c_3
-                                );
-      
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
diff --git a/src/OpenCV/Extra/XPhoto/WhiteBalancer.cpp b/src/OpenCV/Extra/XPhoto/WhiteBalancer.cpp
deleted file mode 100644
--- a/src/OpenCV/Extra/XPhoto/WhiteBalancer.cpp
+++ /dev/null
@@ -1,182 +0,0 @@
-
-#include "opencv2/core.hpp"
-
-#include "opencv2/xphoto.hpp"
-
-#include "white-ballance.hpp"
-
-using namespace cv;
-
-extern "C" {
-Ptr_GrayworldWB * inline_c_OpenCV_Extra_XPhoto_WhiteBalancer_0_4fd73c46202741401678ebad8803d1640b421482(double cvarThreshold_27_inline_c_0) {
-
-      cv::Ptr<cv::xphoto::GrayworldWB> wbAlg = cv::xphoto::createGrayworldWB ();
-      wbAlg->setSaturationThreshold(cvarThreshold_27_inline_c_0);
-      return new cv::Ptr<cv::xphoto::GrayworldWB>(wbAlg);
-    
-}
-
-}
-
-extern "C" {
-Ptr_LearningBasedWB * inline_c_OpenCV_Extra_XPhoto_WhiteBalancer_1_0692032a7bec02f065f9e8e1c88aeec372b3efe9(int cvarHistBinNum_27_inline_c_0, int cvarRangeMaxVal_27_inline_c_1, double cvarSaturationThreshold_27_inline_c_2) {
-
-      cv::Ptr<cv::xphoto::LearningBasedWB> wbAlg = cv::xphoto::createLearningBasedWB ();
-      wbAlg->setHistBinNum(cvarHistBinNum_27_inline_c_0);
-      wbAlg->setRangeMaxVal(cvarRangeMaxVal_27_inline_c_1);
-      wbAlg->setSaturationThreshold(cvarSaturationThreshold_27_inline_c_2);
-      return new cv::Ptr<cv::xphoto::LearningBasedWB>(wbAlg);
-    
-}
-
-}
-
-extern "C" {
-Ptr_SimpleWB * inline_c_OpenCV_Extra_XPhoto_WhiteBalancer_2_4ecea8417cf34021c3e52bee10fb9be4499827ea(double cvarIMin_27_inline_c_0, double cvarIMax_27_inline_c_1, double cvarOMin_27_inline_c_2, double cvarOMax_27_inline_c_3, double cvarP_27_inline_c_4) {
-
-      cv::Ptr<cv::xphoto::SimpleWB> wbAlg = cv::xphoto::createSimpleWB ();
-      wbAlg->setInputMin( cvarIMin_27_inline_c_0);
-      wbAlg->setInputMax( cvarIMax_27_inline_c_1);
-      wbAlg->setOutputMin(cvarOMin_27_inline_c_2);
-      wbAlg->setOutputMax(cvarOMax_27_inline_c_3);
-      wbAlg->setP(cvarP_27_inline_c_4);
-      return new cv::Ptr<cv::xphoto::SimpleWB>(wbAlg);
-    
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Extra_XPhoto_WhiteBalancer_3_2378626bf54d7674c38c44cac881e7801e57d543(Ptr_SimpleWB * wbAlgPtr_inline_c_0, Mat * imgInPtr_inline_c_1, Mat * imgOutPtr_inline_c_2) {
-
-              cv::xphoto::SimpleWB * wb = *wbAlgPtr_inline_c_0;
-              wb->balanceWhite
-              ( *imgInPtr_inline_c_1
-              , *imgOutPtr_inline_c_2
-              );
-            
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Extra_XPhoto_WhiteBalancer_4_9c296a6aea62311d052959acbc63d86a7c62253b(Ptr_LearningBasedWB * wbAlgPtr_inline_c_0, Mat * imgInPtr_inline_c_1, Mat * imgOutPtr_inline_c_2) {
-
-              cv::xphoto::LearningBasedWB * wb = *wbAlgPtr_inline_c_0;
-              wb->balanceWhite
-              ( *imgInPtr_inline_c_1
-              , *imgOutPtr_inline_c_2
-              );
-            
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Extra_XPhoto_WhiteBalancer_5_80e5036bd319618f74258d98ddd7b0d8f641651b(Ptr_GrayworldWB * wbAlgPtr_inline_c_0, Mat * imgInPtr_inline_c_1, Mat * imgOutPtr_inline_c_2) {
-
-              cv::xphoto::GrayworldWB * wb = *wbAlgPtr_inline_c_0;
-              wb->balanceWhite
-              ( *imgInPtr_inline_c_1
-              , *imgOutPtr_inline_c_2
-              );
-            
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Extra_XPhoto_WhiteBalancer_6_3326c72a78f150bf51e4e5874c00ca2e9deed8ec(Ptr_SimpleWB * knnPtr_inline_c_0) {
-
-              cv::xphoto::SimpleWB * knn = *knnPtr_inline_c_0;
-              knn->clear();
-          
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Extra_XPhoto_WhiteBalancer_7_f5f092be98dedc30e21c12bd8c827d45feeeac9f(Ptr_SimpleWB * knnPtr_inline_c_0, bool * emptyPtr_inline_c_1) {
-
-              cv::xphoto::SimpleWB * knn = *knnPtr_inline_c_0;
-              *emptyPtr_inline_c_1 = knn->empty();
-          
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Extra_XPhoto_WhiteBalancer_8_8d9092fd1aec4fa0c8ea6ce464757e5b4a90738f(Ptr_LearningBasedWB * knnPtr_inline_c_0) {
-
-              cv::xphoto::LearningBasedWB * knn = *knnPtr_inline_c_0;
-              knn->clear();
-          
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Extra_XPhoto_WhiteBalancer_9_fb6d5b983e28c8b8df2c941c172abb66b3802cea(Ptr_LearningBasedWB * knnPtr_inline_c_0, bool * emptyPtr_inline_c_1) {
-
-              cv::xphoto::LearningBasedWB * knn = *knnPtr_inline_c_0;
-              *emptyPtr_inline_c_1 = knn->empty();
-          
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Extra_XPhoto_WhiteBalancer_10_c7381c418d45bf665351fc19c11208bbda9dff4f(Ptr_GrayworldWB * knnPtr_inline_c_0) {
-
-              cv::xphoto::GrayworldWB * knn = *knnPtr_inline_c_0;
-              knn->clear();
-          
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Extra_XPhoto_WhiteBalancer_11_d692009848de0a973eeb08ab410c913952046b11(Ptr_GrayworldWB * knnPtr_inline_c_0, bool * emptyPtr_inline_c_1) {
-
-              cv::xphoto::GrayworldWB * knn = *knnPtr_inline_c_0;
-              *emptyPtr_inline_c_1 = knn->empty();
-          
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Extra_XPhoto_WhiteBalancer_12_97c5d79b5414aedba9c9d3333bfc0d26531e5bdb(Ptr_SimpleWB * ptr_inline_c_0) {
-
-                  cv::Ptr<cv::xphoto::SimpleWB> * knn_ptr_ptr =
-                    ptr_inline_c_0;
-                  knn_ptr_ptr->release();
-                  delete knn_ptr_ptr;
-                
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Extra_XPhoto_WhiteBalancer_13_680790a74227e4ede15c2bb1a2657d8b4e6969eb(Ptr_LearningBasedWB * ptr_inline_c_0) {
-
-                  cv::Ptr<cv::xphoto::LearningBasedWB> * knn_ptr_ptr =
-                    ptr_inline_c_0;
-                  knn_ptr_ptr->release();
-                  delete knn_ptr_ptr;
-                
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Extra_XPhoto_WhiteBalancer_14_1ec8441459880af3f8a2cb39d16f08188b544e0e(Ptr_GrayworldWB * ptr_inline_c_0) {
-
-                  cv::Ptr<cv::xphoto::GrayworldWB> * knn_ptr_ptr =
-                    ptr_inline_c_0;
-                  knn_ptr_ptr->release();
-                  delete knn_ptr_ptr;
-                
-}
-
-}
