diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,10 @@
+## [0.0.2.1] - 2018-01-01
+
+### Changed
+
+- opencv now only builds on GHC >= 8.2.
+
+
 ## [0.0.2.0] - 2017-11-06
 
 - Support OpenCV-3.3.x
@@ -42,6 +49,7 @@
 - Initial version
 
 
+[0.0.2.1]: https://github.com/LumiGuide/haskell-opencv/compare/opencv-0.0.2.0...opencv-0.0.2.1
 [0.0.2.0]: https://github.com/LumiGuide/haskell-opencv/compare/opencv-0.0.1.1...opencv-0.0.2.0
 [0.0.1.1]: https://github.com/LumiGuide/haskell-opencv/compare/opencv-0.0.1.0...opencv-0.0.1.1
 [0.0.1.0]: https://github.com/LumiGuide/haskell-opencv/compare/opencv-0.0.0.0...opencv-0.0.1.0
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/car.gif b/doc/generated/examples/car.gif
deleted file mode 100644
# file too large to diff: doc/generated/examples/car.gif
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.gif b/doc/generated/examples/dummy.gif
new file mode 100644
Binary files /dev/null and b/doc/generated/examples/dummy.gif 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/mog2.gif b/doc/generated/examples/mog2.gif
deleted file mode 100644
Binary files a/doc/generated/examples/mog2.gif 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.cabal b/opencv.cabal
--- a/opencv.cabal
+++ b/opencv.cabal
@@ -1,5 +1,5 @@
 name:          opencv
-version:       0.0.2.0
+version:       0.0.2.1
 homepage:      https://github.com/LumiGuide/haskell-opencv
 bug-reports:   https://github.com/LumiGuide/haskell-opencv/issues
 license:       BSD3
@@ -62,41 +62,8 @@
         termcriteria.hpp
         video_motion_analysis.hpp
 
-    c-sources:
-        src/OpenCV/Calib3d.cpp
-        src/OpenCV/Core/ArrayOps.cpp
-        src/OpenCV/Core/Types.cpp
-        src/OpenCV/Core/Types/Mat.cpp
-        src/OpenCV/Core/Types/Mat/Repa.cpp
-        src/OpenCV/Core/Types/Matx.cpp
-        src/OpenCV/Core/Types/Point.cpp
-        src/OpenCV/Core/Types/Rect.cpp
-        src/OpenCV/Core/Types/Size.cpp
-        src/OpenCV/Core/Types/Vec.cpp
-        src/OpenCV/Features2d.cpp
-        src/OpenCV/HighGui.cpp
-        src/OpenCV/ImgCodecs.cpp
-        src/OpenCV/ImgProc/ColorMaps.cpp
-        src/OpenCV/ImgProc/Drawing.cpp
-        src/OpenCV/ImgProc/FeatureDetection.cpp
-        src/OpenCV/ImgProc/GeometricImgTransform.cpp
-        src/OpenCV/ImgProc/ImgFiltering.cpp
-        src/OpenCV/ImgProc/MiscImgTransform.cpp
-        src/OpenCV/ImgProc/ObjectDetection.cpp
-        src/OpenCV/ImgProc/StructuralAnalysis.cpp
-        src/OpenCV/ImgProc/CascadeClassifier.cpp
-        src/OpenCV/Internal/Core/Types.cpp
-        src/OpenCV/Internal/Core/Types/Mat.cpp
-        src/OpenCV/Internal/Core/Types/Mat/ToFrom.cpp
-        src/OpenCV/Internal/Exception.cpp
-        src/OpenCV/Photo.cpp
-        src/OpenCV/Video.cpp
-        src/OpenCV/VideoIO/VideoCapture.cpp
-        src/OpenCV/VideoIO/VideoWriter.cpp
-        src/OpenCV/Video/MotionAnalysis.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
 
@@ -109,8 +76,8 @@
       , containers        >= 0.5.6.2
       , data-default      >= 0.7.1.1
       , deepseq           >= 1.4.1.1
-      , inline-c          >= 0.5.5.5
-      , inline-c-cpp      >= 0.1
+      , inline-c          >= 0.6
+      , inline-c-cpp      >= 0.2.1
       , JuicyPixels       >= 3.2.8.1
       , linear            >= 1.20.4
       , primitive         >= 0.6.1
@@ -220,14 +187,14 @@
         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
     build-depends:
         base              >= 4.8 && < 5
       , bytestring        >= 0.10.6
       , 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
@@ -255,14 +222,14 @@
     hs-source-dirs:   test
     main-is:          test.hs
     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
     build-depends:
         base              >= 4.8 && < 5
       , bytestring        >= 0.10.6
       , lens              >= 4.13
       , linear            >= 1.20.4
       , opencv
-      , QuickCheck        >= 2.8.2
+      , QuickCheck        >= 2.10.1
       , repa              >= 3.4.0.2
       , tasty             >= 0.11.0.2
       , tasty-hunit       >= 0.9.2
@@ -283,7 +250,7 @@
     hs-source-dirs:   bench
     main-is:          bench.hs
     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
     build-depends:
         base              >= 4.8 && < 5
       , bytestring        >= 0.10.6
diff --git a/src/OpenCV/Calib3d.cpp b/src/OpenCV/Calib3d.cpp
deleted file mode 100644
--- a/src/OpenCV/Calib3d.cpp
+++ /dev/null
@@ -1,90 +0,0 @@
-
-#include "opencv2/core.hpp"
-
-#include "opencv2/calib3d.hpp"
-
-using namespace cv;
-
-extern "C" {
-Exception * inline_c_OpenCV_Calib3d_0_82151bb63545e3ec9d63bdbbd099566678dac718(Point2d * pts1Ptr_inline_c_0, int32_t cnumPts1_27_inline_c_1, Point2d * pts2Ptr_inline_c_2, int32_t cnumPts2_27_inline_c_3, Mat * fmPtr_inline_c_4, int32_t cmethod_27_inline_c_5, double cp1_27_inline_c_6, double cp2_27_inline_c_7, Mat * pointMaskPtr_inline_c_8) {
-
-  try
-  {   
-            cv::_InputArray pts1 = cv::_InputArray(pts1Ptr_inline_c_0, cnumPts1_27_inline_c_1);
-            cv::_InputArray pts2 = cv::_InputArray(pts2Ptr_inline_c_2, cnumPts2_27_inline_c_3);
-            *fmPtr_inline_c_4 =
-              cv::findFundamentalMat
-              ( pts1
-              , pts2
-              , cmethod_27_inline_c_5
-              , cp1_27_inline_c_6
-              , cp2_27_inline_c_7
-              , *pointMaskPtr_inline_c_8
-              );
-          
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_Calib3d_1_977ea2515e09e42791f45dfd690308962ddb21ad(Point2d * srcPtr_inline_c_0, int32_t cnumSrcPts_27_inline_c_1, Point2d * dstPtr_inline_c_2, int32_t cnumDstPts_27_inline_c_3, Mat * fmPtr_inline_c_4, int32_t cmethod_27_inline_c_5, double cransacReprojThreshold_27_inline_c_6, Mat * pointMaskPtr_inline_c_7, int32_t cmaxIters_27_inline_c_8, double cconfidence_27_inline_c_9) {
-
-  try
-  {   
-            cv::_InputArray srcPts = cv::_InputArray(srcPtr_inline_c_0, cnumSrcPts_27_inline_c_1);
-            cv::_InputArray dstPts = cv::_InputArray(dstPtr_inline_c_2, cnumDstPts_27_inline_c_3);
-            *fmPtr_inline_c_4 =
-              cv::findHomography
-                  ( srcPts
-                  , dstPts
-                  , cmethod_27_inline_c_5
-                  , cransacReprojThreshold_27_inline_c_6
-                  , *pointMaskPtr_inline_c_7
-                  , cmaxIters_27_inline_c_8
-                  , cconfidence_27_inline_c_9
-                  );
-          
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_Calib3d_2_6580eb89fe56557059d953009d36dacf9f92ae43(Point2d * pointsPtr_inline_c_0, int32_t cnumPoints_27_inline_c_1, int32_t cwhichImage_27_inline_c_2, Mat * fmPtr_inline_c_3, Mat * epilinesPtr_inline_c_4) {
-
-  try
-  {   
-          cv::_InputArray points =
-            cv::_InputArray( pointsPtr_inline_c_0
-                           , cnumPoints_27_inline_c_1
-                           );
-          cv::computeCorrespondEpilines
-          ( points
-          , cwhichImage_27_inline_c_2
-          , *fmPtr_inline_c_3
-          , *epilinesPtr_inline_c_4
-          );
-        
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
diff --git a/src/OpenCV/Core/ArrayOps.cpp b/src/OpenCV/Core/ArrayOps.cpp
deleted file mode 100644
--- a/src/OpenCV/Core/ArrayOps.cpp
+++ /dev/null
@@ -1,500 +0,0 @@
-
-#include "opencv2/core.hpp"
-
-using namespace cv;
-
-extern "C" {
-void inline_c_OpenCV_Core_ArrayOps_0_452974cb3d241811fc2c9eebbd71284be027cbd2(Mat * dstPtr_inline_c_0, Mat * srcPtr_inline_c_1, Scalar * xPtr_inline_c_2) {
-
-            *dstPtr_inline_c_0 = *srcPtr_inline_c_1 + *xPtr_inline_c_2;
-          
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_ArrayOps_1_6b9fd3dd5862c8a194878d10a361086ee45501e6(Mat * dstPtr_inline_c_0, Mat * srcPtr_inline_c_1, double cx_27_inline_c_2) {
-
-          *dstPtr_inline_c_0 = *srcPtr_inline_c_1 * cx_27_inline_c_2;
-        
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_ArrayOps_2_870402e1ddeaf3da6060607dc50250f3b9880a76(Mat * dstPtr_inline_c_0, Mat * srcPtr_inline_c_1) {
-
-          *dstPtr_inline_c_0 = cv::abs(*srcPtr_inline_c_1);
-        
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_ArrayOps_3_53325319d2f26119f0d208466fac5bc7b34d5083(Mat * src1Ptr_inline_c_0, Mat * src2Ptr_inline_c_1, Mat * dstPtr_inline_c_2) {
-
-          cv::absdiff( *src1Ptr_inline_c_0
-                     , *src2Ptr_inline_c_1
-                     , *dstPtr_inline_c_2
-                     );
-        
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_ArrayOps_4_1678b98e2628a48ea264d2a6123aff08ecd9e6f0(Mat * src1Ptr_inline_c_0, Mat * src2Ptr_inline_c_1, Mat * dstPtr_inline_c_2) {
-
-          cv::add
-          ( *src1Ptr_inline_c_0
-          , *src2Ptr_inline_c_1
-          , *dstPtr_inline_c_2
-          , cv::noArray()
-          );
-        
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_ArrayOps_5_aa0c246bd1d6319e13424fd1e46e9b875cf24a0c(Mat * src1Ptr_inline_c_0, Mat * src2Ptr_inline_c_1, Mat * dstPtr_inline_c_2) {
-
-          cv::subtract
-          ( *src1Ptr_inline_c_0
-          , *src2Ptr_inline_c_1
-          , *dstPtr_inline_c_2
-          , cv::noArray()
-          );
-        
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_Core_ArrayOps_6_47ff83e6532e31e45d281de520b46d3a4bb45d9e(Mat * src1Ptr_inline_c_0, double calpha_27_inline_c_1, Mat * src2Ptr_inline_c_2, double cbeta_27_inline_c_3, double cgamma_27_inline_c_4, Mat * dstPtr_inline_c_5, int32_t cdtype_27_inline_c_6) {
-
-  try
-  {   
-        cv::addWeighted
-          ( *src1Ptr_inline_c_0
-          , calpha_27_inline_c_1
-          , *src2Ptr_inline_c_2
-          , cbeta_27_inline_c_3
-          , cgamma_27_inline_c_4
-          , *dstPtr_inline_c_5
-          , cdtype_27_inline_c_6
-          );
-      
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_Core_ArrayOps_7_267aab8568cb3235e703df09dbd516a54e638ec4(Mat * src1Ptr_inline_c_0, double cscale_27_inline_c_1, Mat * src2Ptr_inline_c_2, Mat * dstPtr_inline_c_3) {
-
-  try
-  {   
-        cv::scaleAdd
-          ( *src1Ptr_inline_c_0
-          , cscale_27_inline_c_1
-          , *src2Ptr_inline_c_2
-          , *dstPtr_inline_c_3
-          );
-      
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_Core_ArrayOps_8_31bccad32ca5c4e2dcad90d97216dd614c127146(Mat * src1Ptr_inline_c_0, Mat * src2Ptr_inline_c_1, Mat * dstPtr_inline_c_2) {
-
-  try
-  {   
-          cv::max
-          ( *src1Ptr_inline_c_0
-          , *src2Ptr_inline_c_1
-          , *dstPtr_inline_c_2
-          );
-        
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_Core_ArrayOps_9_48ba65e091a4952ceeaf5f341d915f8b761aad98(Mat * srcPtr_inline_c_0, double cx_27_inline_c_1, Mat * dstPtr_inline_c_2, int32_t ccmpOp_27_inline_c_3) {
-
-  try
-  {   
-          cv::compare
-          ( *srcPtr_inline_c_0
-          , cx_27_inline_c_1
-          , *dstPtr_inline_c_2
-          , ccmpOp_27_inline_c_3
-          );
-        
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_Core_ArrayOps_10_1f4ed5f07e2b770709ecd921504e6a135e59e4fb(Mat * srcPtr_inline_c_0, Mat * dstPtr_inline_c_1) {
-
-  try
-  {   
-          cv::bitwise_not
-          ( *srcPtr_inline_c_0
-          , *dstPtr_inline_c_1
-          , cv::noArray()
-          );
-        
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_Core_ArrayOps_11_dc8ccab3cbbcd17ec78dda97d0571ff60dd45782(Mat * src1Ptr_inline_c_0, Mat * src2Ptr_inline_c_1, Mat * dstPtr_inline_c_2) {
-
-  try
-  {   
-          cv::bitwise_and
-          ( *src1Ptr_inline_c_0
-          , *src2Ptr_inline_c_1
-          , *dstPtr_inline_c_2
-          , cv::noArray()
-          );
-        
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_Core_ArrayOps_12_142520adebed49e1e1ef9bab34ab61eebe8235ae(Mat * src1Ptr_inline_c_0, Mat * src2Ptr_inline_c_1, Mat * dstPtr_inline_c_2) {
-
-  try
-  {   
-          cv::bitwise_or
-          ( *src1Ptr_inline_c_0
-          , *src2Ptr_inline_c_1
-          , *dstPtr_inline_c_2
-          , cv::noArray()
-          );
-        
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_Core_ArrayOps_13_fb71306ade07cba36c0678f252b48d3b2832e50f(Mat * src1Ptr_inline_c_0, Mat * src2Ptr_inline_c_1, Mat * dstPtr_inline_c_2) {
-
-  try
-  {   
-          cv::bitwise_xor
-          ( *src1Ptr_inline_c_0
-          , *src2Ptr_inline_c_1
-          , *dstPtr_inline_c_2
-          , cv::noArray()
-          );
-        
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_ArrayOps_14_147119876c05df67a629f003ff026fba111e5ac6(Mat * srcVecPtr_inline_c_0, size_t csrcVecLength_27_inline_c_1, Mat * dstPtr_inline_c_2) {
-
-          cv::merge
-          ( srcVecPtr_inline_c_0
-          , csrcVecLength_27_inline_c_1
-          , *dstPtr_inline_c_2
-          );
-        
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_ArrayOps_15_217852e2dbdfadc92ed83393f4806a183113b805(Mat * srcPtr_inline_c_0, int32_t cnumChans_27_inline_c_1, Mat ** splitsArray_inline_c_2) {
-
-        cv::Mat * srcPtr = srcPtr_inline_c_0;
-        int32_t numChans = cnumChans_27_inline_c_1;
-        cv::Mat *splits = new cv::Mat[numChans];
-        cv::split(*srcPtr, splits);
-        for(int i = 0; i < numChans; i++){
-          splitsArray_inline_c_2[i] = new cv::Mat(splits[i]);
-        }
-        delete [] splits;
-      
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_Core_ArrayOps_16_e9c348936e1d574774205ac0bd609d25dd9804bc(Mat * srcPtr_inline_c_0, double * minValPtr_inline_c_1, double * maxValPtr_inline_c_2, Point2i * minLocPtr_inline_c_3, Point2i * maxLocPtr_inline_c_4) {
-
-  try
-  {   
-            cv::minMaxLoc( *srcPtr_inline_c_0
-                         , minValPtr_inline_c_1
-                         , maxValPtr_inline_c_2
-                         , minLocPtr_inline_c_3
-                         , maxLocPtr_inline_c_4
-                         );
-          
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_Core_ArrayOps_17_7efee8680a1dc682471802948ff18b6fcb540c0a(Mat * mskPtr_inline_c_0, double * normPtr_inline_c_1, Mat * srcPtr_inline_c_2, int32_t cnormType_27_inline_c_3) {
-
-  try
-  {   
-        Mat * mskPtr = mskPtr_inline_c_0;
-        *normPtr_inline_c_1 =
-          cv::norm( *srcPtr_inline_c_2
-                  , cnormType_27_inline_c_3
-                  , mskPtr ? _InputArray(*mskPtr) : _InputArray(cv::noArray())
-                  );
-      
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_Core_ArrayOps_18_92a97241c6dbd1301c89df518de3170bbb2c2952(Mat * mskPtr_inline_c_0, double * normPtr_inline_c_1, Mat * src1Ptr_inline_c_2, Mat * src2Ptr_inline_c_3, int32_t cnormType_27_inline_c_4) {
-
-  try
-  {   
-        Mat * mskPtr = mskPtr_inline_c_0;
-        *normPtr_inline_c_1 =
-          cv::norm( *src1Ptr_inline_c_2
-                  , *src2Ptr_inline_c_3
-                  , cnormType_27_inline_c_4
-                  , mskPtr ? _InputArray(*mskPtr) : _InputArray(cv::noArray())
-                  );
-      
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_Core_ArrayOps_19_a54daf4ae50af714d99ad385f88d0a894f1f7102(Mat * mskPtr_inline_c_0, Mat * srcPtr_inline_c_1, Mat * dstPtr_inline_c_2, double calpha_27_inline_c_3, double cbeta_27_inline_c_4, int32_t cnormType_27_inline_c_5, int32_t cdtype_27_inline_c_6) {
-
-  try
-  {   
-          Mat * mskPtr = mskPtr_inline_c_0;
-          cv::normalize( *srcPtr_inline_c_1
-                       , *dstPtr_inline_c_2
-                       , calpha_27_inline_c_3
-                       , cbeta_27_inline_c_4
-                       , cnormType_27_inline_c_5
-                       , cdtype_27_inline_c_6
-                       , mskPtr ? _InputArray(*mskPtr) : _InputArray(cv::noArray())
-                       );
-        
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_Core_ArrayOps_20_697bd7b2cba259dcb319d55434ca80fd96f2bd7a(Scalar * sPtr_inline_c_0, Mat * srcPtr_inline_c_1) {
-
-  try
-  {   
-          *sPtr_inline_c_0 = cv::sum(*srcPtr_inline_c_1);
-        
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_Core_ArrayOps_21_99a8d1550a5f02228e0ed2828fdb06705b9a69b8(Mat * maskPtr_inline_c_0, Mat * srcPtr_inline_c_1, Scalar * meanPtr_inline_c_2, Scalar * stddevPtr_inline_c_3) {
-
-  try
-  {   
-          cv::Mat * maskPtr = maskPtr_inline_c_0;
-          cv::meanStdDev
-          ( *srcPtr_inline_c_1
-          , *meanPtr_inline_c_2
-          , *stddevPtr_inline_c_3
-          , maskPtr ? cv::_InputArray(*maskPtr) : cv::_InputArray(cv::noArray())
-          );
-        
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_ArrayOps_22_6d29e95be3bb248e3e9eb67e17905be7eb8bcad9(Mat * srcPtr_inline_c_0, Mat * dstPtr_inline_c_1, int32_t flipCode_inline_c_2) {
-
-          cv::flip(*srcPtr_inline_c_0, *dstPtr_inline_c_1, flipCode_inline_c_2);
-        
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_ArrayOps_23_dc3483f267722d4953a9984c842efd5bf72d4e85(Mat * srcPtr_inline_c_0, Mat * dstPtr_inline_c_1) {
-
-          cv::transpose(*srcPtr_inline_c_0, *dstPtr_inline_c_1);
-        
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_Core_ArrayOps_24_c4b844a405cfe807dac35ef495bd740db3789b10(Mat * matsPtr_inline_c_0, size_t cnumMats_27_inline_c_1, Mat * dstPtr_inline_c_2) {
-
-  try
-  {   
-          cv::hconcat
-            ( matsPtr_inline_c_0
-            , cnumMats_27_inline_c_1
-            , *dstPtr_inline_c_2
-            );
-        
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_Core_ArrayOps_25_f90bb8ea407f21af89dacdb7a4893fb6db43264c(Mat * matsPtr_inline_c_0, size_t cnumMats_27_inline_c_1, Mat * dstPtr_inline_c_2) {
-
-  try
-  {   
-          cv::vconcat
-            ( matsPtr_inline_c_0
-            , cnumMats_27_inline_c_1
-            , *dstPtr_inline_c_2
-            );
-        
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_ArrayOps_26_228e7ff428ad599703e14a00252d380743ce0af1(Point2d * srcPtr_inline_c_0, int32_t cnumPts_27_inline_c_1, Point2d * dstPtr_27_inline_c_2, int32_t cnumPts_27_inline_c_3, Mat * tmPtr_inline_c_4) {
-
-            cv::_InputArray srcPts  = cv::_InputArray( srcPtr_inline_c_0,  cnumPts_27_inline_c_1);
-            cv::_OutputArray dstPts = cv::_OutputArray(dstPtr_27_inline_c_2, cnumPts_27_inline_c_3);
-            cv::perspectiveTransform
-                ( srcPts
-                , dstPts
-                , *tmPtr_inline_c_4
-                );
-            
-}
-
-}
diff --git a/src/OpenCV/Core/Types.cpp b/src/OpenCV/Core/Types.cpp
deleted file mode 100644
--- a/src/OpenCV/Core/Types.cpp
+++ /dev/null
@@ -1,147 +0,0 @@
-
-#include "opencv2/core.hpp"
-
-using namespace cv;
-
-extern "C" {
-Point2f * inline_c_OpenCV_Core_Types_0_e5b42cc0974a53721799faffb0b442af4bbe4a81(RotatedRect * rotRectPtr_inline_c_0) {
-return ( new Point2f(rotRectPtr_inline_c_0->center) );
-}
-
-}
-
-extern "C" {
-Size2f * inline_c_OpenCV_Core_Types_1_fb6b3d7a5fc2db9553bcae3227927a44ffddd9a8(RotatedRect * rotRectPtr_inline_c_0) {
-return ( new Size2f(rotRectPtr_inline_c_0->size) );
-}
-
-}
-
-extern "C" {
-float inline_c_OpenCV_Core_Types_2_891e2a28d3f3f2e839bd031b2f480ca167e9e6cd(RotatedRect * rotRectPtr_inline_c_0) {
-return ( rotRectPtr_inline_c_0->angle );
-}
-
-}
-
-extern "C" {
-Rect2i * inline_c_OpenCV_Core_Types_3_2ead237e4d4def0d0ca44ca5ad0c3328e032c167(RotatedRect * rotRectPtr_inline_c_0) {
-return ( new Rect2i(rotRectPtr_inline_c_0->boundingRect()) );
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_4_5d0207dad9e659b71d3d8607dde889c79092626f(RotatedRect * rotRectPtr_inline_c_0, Point2f * p1Ptr_inline_c_1, Point2f * p2Ptr_inline_c_2, Point2f * p3Ptr_inline_c_3, Point2f * p4Ptr_inline_c_4) {
-
-          Point2f vertices[4];
-          rotRectPtr_inline_c_0->points(vertices);
-          *p1Ptr_inline_c_1 = vertices[0];
-          *p2Ptr_inline_c_2 = vertices[1];
-          *p3Ptr_inline_c_3 = vertices[2];
-          *p4Ptr_inline_c_4 = vertices[3];
-        
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_5_45080693b2e4cf60c491e408d010cdba0bea094e(KeyPoint * dst_inline_c_0, KeyPoint * src_inline_c_1) {
- new(dst_inline_c_0) cv::KeyPoint(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_6_e5ee841a2c46c5b14208d74daf99dacb2116cf35(KeyPoint * ptr_inline_c_0) {
- ptr_inline_c_0->~KeyPoint() ;
-}
-
-}
-
-extern "C" {
-KeyPoint * inline_c_OpenCV_Core_Types_7_15a2fd2dc48409980f89973a3754a199f53777a4(float cx_27_inline_c_0, float cy_27_inline_c_1, float ckptSize_27_inline_c_2, float ckptAngle_27_inline_c_3, float ckptResponse_27_inline_c_4, int32_t kptOctave_inline_c_5, int32_t kptClassId_inline_c_6) {
-return (
-      new cv::KeyPoint
-          ( cv::Point2f(cx_27_inline_c_0, cy_27_inline_c_1)
-          , ckptSize_27_inline_c_2
-          , ckptAngle_27_inline_c_3
-          , ckptResponse_27_inline_c_4
-          , kptOctave_inline_c_5
-          , kptClassId_inline_c_6
-          )
-    );
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_8_06dd8b8ef918074e4901eaf5565602eb16add198(KeyPoint * kptPtr_inline_c_0, float * xPtr_inline_c_1, float * yPtr_inline_c_2, float * sizePtr_inline_c_3, float * anglePtr_inline_c_4, float * responsePtr_inline_c_5, int32_t * octavePtr_inline_c_6, int32_t * classIdPtr_inline_c_7) {
-
-        KeyPoint * kpt = kptPtr_inline_c_0;
-        *xPtr_inline_c_1 = kpt->pt.x    ;
-        *yPtr_inline_c_2 = kpt->pt.y    ;
-        *sizePtr_inline_c_3 = kpt->size    ;
-        *anglePtr_inline_c_4 = kpt->angle   ;
-        *responsePtr_inline_c_5 = kpt->response;
-        *octavePtr_inline_c_6 = kpt->octave  ;
-        *classIdPtr_inline_c_7 = kpt->class_id;
-      
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_9_f9fc50076fb8ce439d325154369233a66494792a(KeyPoint * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_10_d10678090e9d04ea683ea9dea1b3596910e05ead(DMatch * dst_inline_c_0, DMatch * src_inline_c_1) {
- new(dst_inline_c_0) cv::DMatch(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_11_3a9482d88464980c5462e7f2dc4451f1d502bcfc(DMatch * ptr_inline_c_0) {
- ptr_inline_c_0->~DMatch() ;
-}
-
-}
-
-extern "C" {
-DMatch * inline_c_OpenCV_Core_Types_12_925bd2b3768db79d4aa15d94dd905f3c2e4c5e55(int32_t dmatchQueryIdx_inline_c_0, int32_t dmatchTrainIdx_inline_c_1, int32_t dmatchImgIdx_inline_c_2, float cdistance_27_inline_c_3) {
-return (
-      new cv::DMatch
-          ( dmatchQueryIdx_inline_c_0
-          , dmatchTrainIdx_inline_c_1
-          , dmatchImgIdx_inline_c_2
-          , cdistance_27_inline_c_3
-          )
-    );
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_13_7d9d6365e269b4b622abd551b0ff585b27ac418c(DMatch * dmatchPtr_inline_c_0, int32_t * queryIdxPtr_inline_c_1, int32_t * trainIdxPtr_inline_c_2, int32_t * imgIdxPtr_inline_c_3, float * distancePtr_inline_c_4) {
-
-        DMatch * dmatch = dmatchPtr_inline_c_0;
-        *queryIdxPtr_inline_c_1 = dmatch->queryIdx;
-        *trainIdxPtr_inline_c_2 = dmatch->trainIdx;
-        *imgIdxPtr_inline_c_3 = dmatch->imgIdx  ;
-        *distancePtr_inline_c_4 = dmatch->distance;
-      
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_14_d42014346527f57acc835683dd35ac0b571325f4(DMatch * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
diff --git a/src/OpenCV/Core/Types/Mat.cpp b/src/OpenCV/Core/Types/Mat.cpp
deleted file mode 100644
--- a/src/OpenCV/Core/Types/Mat.cpp
+++ /dev/null
@@ -1,88 +0,0 @@
-
-#include "opencv2/core.hpp"
-
-using namespace cv;
-
-extern "C" {
-Mat * inline_c_OpenCV_Core_Types_Mat_0_aec6440342a3a3b538a2682b90656c83ca688dbd(int32_t cheight_27_inline_c_0, int32_t cwidth_27_inline_c_1, int32_t ctype_27_inline_c_2) {
-return (
-      new Mat(Mat::eye( cheight_27_inline_c_0
-                      , cwidth_27_inline_c_1
-                      , ctype_27_inline_c_2
-                      ))
-    );
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_Core_Types_Mat_1_8d35f6d3e6bcc195bd496c0496e5a557ede4c888(Mat * matOutPtr_inline_c_0, Mat * matInPtr_inline_c_1, Rect2i * rectPtr_inline_c_2) {
-
-  try
-  {   
-          *matOutPtr_inline_c_0 =
-            Mat( *matInPtr_inline_c_1
-               , *rectPtr_inline_c_2
-               );
-        
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_Core_Types_Mat_2_28121ccc1bca77b68036dd041ceeb27ec3b1354d(Mat * srcPtr_inline_c_0, Mat * dstPtr_inline_c_1, int32_t crtype_27_inline_c_2, double calpha_27_inline_c_3, double cbeta_27_inline_c_4) {
-
-  try
-  {   
-          srcPtr_inline_c_0->
-            convertTo( *dstPtr_inline_c_1
-                     , crtype_27_inline_c_2
-                     , calpha_27_inline_c_3
-                     , cbeta_27_inline_c_4
-                     );
-        
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_Core_Types_Mat_3_1f86d28ec864caf3dc84c4aa5822106a8859bd51(const Mat *const srcPtr_inline_c_0, int32_t x_inline_c_1, int32_t y_inline_c_2, Mat * srcMaskPtr_inline_c_3, Mat * dstPtr_inline_c_4) {
-
-  try
-  {   
-        const cv::Mat * const srcPtr = srcPtr_inline_c_0;
-        const int32_t x = x_inline_c_1;
-        const int32_t y = y_inline_c_2;
-        cv::Mat * srcMaskPtr = srcMaskPtr_inline_c_3;
-        srcPtr->copyTo( dstPtr_inline_c_4
-                      ->rowRange(y, y + srcPtr->rows)
-                       .colRange(x, x + srcPtr->cols)
-                      , srcMaskPtr
-                        ? cv::_InputArray(*srcMaskPtr)
-                        : cv::_InputArray(cv::noArray())
-                      );
-      
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
diff --git a/src/OpenCV/Core/Types/Mat/Repa.cpp b/src/OpenCV/Core/Types/Mat/Repa.cpp
deleted file mode 100644
--- a/src/OpenCV/Core/Types/Mat/Repa.cpp
+++ /dev/null
@@ -1,16 +0,0 @@
-
-#include "opencv2/core.hpp"
-
-using namespace cv;
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Mat_Repa_0_ed529332643b0925ec50dffef40211e93fda01ed(Mat * matPtr_inline_c_0, int32_t **const sizePtr_inline_c_1, size_t **const stepPtr_inline_c_2, uint8_t **const dataPtrPtr_inline_c_3) {
-
-        const Mat * const matPtr = matPtr_inline_c_0;
-        *sizePtr_inline_c_1 = matPtr->size.p;
-        *stepPtr_inline_c_2 = matPtr->step.p;
-        *dataPtrPtr_inline_c_3 = matPtr->data;
-      
-}
-
-}
diff --git a/src/OpenCV/Core/Types/Matx.cpp b/src/OpenCV/Core/Types/Matx.cpp
deleted file mode 100644
--- a/src/OpenCV/Core/Types/Matx.cpp
+++ /dev/null
@@ -1,944 +0,0 @@
-
-#include "opencv2/core.hpp"
-
-#include "haskell_opencv_matx_typedefs.hpp"
-
-using namespace cv;
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_0_ecc0aea5264d88a93f3198f3f74b7e772d7e135b(Matx12f * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Matx12f * inline_c_OpenCV_Core_Types_Matx_1_fb8da77ff92a9bb05e8aab30d9984bb5ec1ddb72(float f11_inline_c_0, float f12_inline_c_1) {
-return ( new cv::Matx<float, 1, 2>(f11_inline_c_0, f12_inline_c_1));
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_2_1c84c42bdc9f7b3ada5769613cd32dbcbff603a5(Matx12f * dst_inline_c_0, Matx12f * src_inline_c_1) {
- new(dst_inline_c_0) cv::Matx12f(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_3_a1a740c9625197899332bc82a3e8c165e13d86d9(Matx12f * ptr_inline_c_0) {
- ptr_inline_c_0->~Matx12f() ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_4_357f36170e27df1054eccb8ff672050f3a0e8946(Matx12d * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Matx12d * inline_c_OpenCV_Core_Types_Matx_5_346fc1f702eddc96083c2fcfb9b14b69944bc3ec(double f11_inline_c_0, double f12_inline_c_1) {
-return ( new cv::Matx<double, 1, 2>(f11_inline_c_0, f12_inline_c_1));
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_6_95b918fe3dc7efa16e17380f0d404b135b417cdb(Matx12d * dst_inline_c_0, Matx12d * src_inline_c_1) {
- new(dst_inline_c_0) cv::Matx12d(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_7_a33160048231055b813bc4419b4ab2757fb276fe(Matx12d * ptr_inline_c_0) {
- ptr_inline_c_0->~Matx12d() ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_8_9fb0861969a347ec6ae2ffb981bea3733d504ee1(Matx13f * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Matx13f * inline_c_OpenCV_Core_Types_Matx_9_dd792afe93422c8de89075299be8ab0a47f4966f(float f11_inline_c_0, float f12_inline_c_1, float f13_inline_c_2) {
-return ( new cv::Matx<float, 1, 3>(f11_inline_c_0, f12_inline_c_1, f13_inline_c_2));
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_10_7fdce466881f5c6581623c3e4e029b3b4ac434bd(Matx13f * dst_inline_c_0, Matx13f * src_inline_c_1) {
- new(dst_inline_c_0) cv::Matx13f(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_11_7eef2eaba25087bd730faead16222330046c1510(Matx13f * ptr_inline_c_0) {
- ptr_inline_c_0->~Matx13f() ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_12_e5e848f55240fa84a16b967fd3975a921b7fce38(Matx13d * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Matx13d * inline_c_OpenCV_Core_Types_Matx_13_d546c2c8f0e1bdb247f2aa8afadcd9af28bcd0fa(double f11_inline_c_0, double f12_inline_c_1, double f13_inline_c_2) {
-return ( new cv::Matx<double, 1, 3>(f11_inline_c_0, f12_inline_c_1, f13_inline_c_2));
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_14_f0b1b6e64967ccc82108ed5d120da5ba4b792513(Matx13d * dst_inline_c_0, Matx13d * src_inline_c_1) {
- new(dst_inline_c_0) cv::Matx13d(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_15_8e4b5410e2971c04c64cc6b65cedad7b7c4a1f18(Matx13d * ptr_inline_c_0) {
- ptr_inline_c_0->~Matx13d() ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_16_554fc7fe535e59bb3dc663b0ef60d9a4ea403c88(Matx14f * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Matx14f * inline_c_OpenCV_Core_Types_Matx_17_32d2241d5268e5c2e95c7e43f890d6061c004c63(float f11_inline_c_0, float f12_inline_c_1, float f13_inline_c_2, float f14_inline_c_3) {
-return ( new cv::Matx<float, 1, 4>(f11_inline_c_0, f12_inline_c_1, f13_inline_c_2, f14_inline_c_3));
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_18_6754bf25c403d9f3541b6ed593b595ef14c413af(Matx14f * dst_inline_c_0, Matx14f * src_inline_c_1) {
- new(dst_inline_c_0) cv::Matx14f(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_19_5958fb9d776f9f708ff1e97d653b9704c1cdac99(Matx14f * ptr_inline_c_0) {
- ptr_inline_c_0->~Matx14f() ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_20_76b511b85c5f0c709ebd92e41f59df24da362f6f(Matx14d * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Matx14d * inline_c_OpenCV_Core_Types_Matx_21_94e36916752cfddc6539ac06db0a41e93d83bf86(double f11_inline_c_0, double f12_inline_c_1, double f13_inline_c_2, double f14_inline_c_3) {
-return ( new cv::Matx<double, 1, 4>(f11_inline_c_0, f12_inline_c_1, f13_inline_c_2, f14_inline_c_3));
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_22_8be3b874e6ddfd14e8c9292dbe4dbb7febfe718b(Matx14d * dst_inline_c_0, Matx14d * src_inline_c_1) {
- new(dst_inline_c_0) cv::Matx14d(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_23_c44f16b7809469acdfa6f1093b56cd856f2583c8(Matx14d * ptr_inline_c_0) {
- ptr_inline_c_0->~Matx14d() ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_24_e931a27d6ca3a911fbcdb3f99da90704ae03c4f2(Matx16f * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Matx16f * inline_c_OpenCV_Core_Types_Matx_25_ddfc330d15e7a5050ed9051ab006af00a19d3f12(float f11_inline_c_0, float f12_inline_c_1, float f13_inline_c_2, float f14_inline_c_3, float f15_inline_c_4, float f16_inline_c_5) {
-return ( new cv::Matx<float, 1, 6>(f11_inline_c_0, f12_inline_c_1, f13_inline_c_2, f14_inline_c_3, f15_inline_c_4, f16_inline_c_5));
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_26_ccd6452c7cb4ef33bbdf247bc80ab97430b3f108(Matx16f * dst_inline_c_0, Matx16f * src_inline_c_1) {
- new(dst_inline_c_0) cv::Matx16f(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_27_69dbedaa4755805a515476dd41d156e7b38dc7ee(Matx16f * ptr_inline_c_0) {
- ptr_inline_c_0->~Matx16f() ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_28_88580a7f44470f96eee3b9cfc2adeeff6d672934(Matx16d * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Matx16d * inline_c_OpenCV_Core_Types_Matx_29_79e31d1238b61036d7f57caf1611ef7b82306764(double f11_inline_c_0, double f12_inline_c_1, double f13_inline_c_2, double f14_inline_c_3, double f15_inline_c_4, double f16_inline_c_5) {
-return ( new cv::Matx<double, 1, 6>(f11_inline_c_0, f12_inline_c_1, f13_inline_c_2, f14_inline_c_3, f15_inline_c_4, f16_inline_c_5));
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_30_18210c540fc473aedb15eba9df7b3fe2d22462c7(Matx16d * dst_inline_c_0, Matx16d * src_inline_c_1) {
- new(dst_inline_c_0) cv::Matx16d(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_31_53b1cb2c033499ac599ff85cd7c583b960188d81(Matx16d * ptr_inline_c_0) {
- ptr_inline_c_0->~Matx16d() ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_32_db496641dcfe557f141bb9882960e324caf7edb2(Matx21f * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Matx21f * inline_c_OpenCV_Core_Types_Matx_33_671f33c55c067f94f3c49117b2dee51b27aaa3c4(float f11_inline_c_0, float f21_inline_c_1) {
-return ( new cv::Matx<float, 2, 1>(f11_inline_c_0, f21_inline_c_1));
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_34_89cd945a0053581614fede243bceab846e83dc5a(Matx21f * dst_inline_c_0, Matx21f * src_inline_c_1) {
- new(dst_inline_c_0) cv::Matx21f(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_35_03ae0fbb42c4bf865e36ec9e7960a7ad456747e8(Matx21f * ptr_inline_c_0) {
- ptr_inline_c_0->~Matx21f() ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_36_d77ece2ae4136f68abf1ab461dc1d9e7fe48d37a(Matx21d * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Matx21d * inline_c_OpenCV_Core_Types_Matx_37_d838f2c4138bb4a75b3b1d5d717119d12fecd63d(double f11_inline_c_0, double f21_inline_c_1) {
-return ( new cv::Matx<double, 2, 1>(f11_inline_c_0, f21_inline_c_1));
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_38_321cab012775ef6c2d93b558ee7a69f56affbf9f(Matx21d * dst_inline_c_0, Matx21d * src_inline_c_1) {
- new(dst_inline_c_0) cv::Matx21d(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_39_2fefacaf137a288c7e95eda42878527f39f0bcd7(Matx21d * ptr_inline_c_0) {
- ptr_inline_c_0->~Matx21d() ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_40_f41e528a9ba7a823d3b6273592513f7eb00d5b4c(Matx22f * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Matx22f * inline_c_OpenCV_Core_Types_Matx_41_f92caa84793f6e4b7d6d9b513331da4e074eb899(float f11_inline_c_0, float f12_inline_c_1, float f21_inline_c_2, float f22_inline_c_3) {
-return ( new cv::Matx<float, 2, 2>(f11_inline_c_0, f12_inline_c_1, f21_inline_c_2, f22_inline_c_3));
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_42_17de5feab7a3cb0f499a1cdea31249978b1d7379(Matx22f * dst_inline_c_0, Matx22f * src_inline_c_1) {
- new(dst_inline_c_0) cv::Matx22f(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_43_c975a8bcc6f15379bb7b515f10e523ef2430d310(Matx22f * ptr_inline_c_0) {
- ptr_inline_c_0->~Matx22f() ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_44_c57d19e319737e6b6675c39f49b1813a6ae3961e(Matx22d * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Matx22d * inline_c_OpenCV_Core_Types_Matx_45_d344812730325f3db83bff3410f0a5d2382e4369(double f11_inline_c_0, double f12_inline_c_1, double f21_inline_c_2, double f22_inline_c_3) {
-return ( new cv::Matx<double, 2, 2>(f11_inline_c_0, f12_inline_c_1, f21_inline_c_2, f22_inline_c_3));
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_46_4cd9e3ddb68a7420af5a62d4b8e674fbc05f0039(Matx22d * dst_inline_c_0, Matx22d * src_inline_c_1) {
- new(dst_inline_c_0) cv::Matx22d(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_47_0ee2d38d0351aa0c259f98c04b1824850efd142c(Matx22d * ptr_inline_c_0) {
- ptr_inline_c_0->~Matx22d() ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_48_bcf09c6d33bbe18a85c1bcb71ad4011f10d02994(Matx23f * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Matx23f * inline_c_OpenCV_Core_Types_Matx_49_166cdb24ef3f5e441f895c8aef38b478b6401dd8(float f11_inline_c_0, float f12_inline_c_1, float f13_inline_c_2, float f21_inline_c_3, float f22_inline_c_4, float f23_inline_c_5) {
-return ( new cv::Matx<float, 2, 3>(f11_inline_c_0, f12_inline_c_1, f13_inline_c_2, f21_inline_c_3, f22_inline_c_4, f23_inline_c_5));
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_50_4e81fe68d3719ee8034e61319ca375dddb18a6fd(Matx23f * dst_inline_c_0, Matx23f * src_inline_c_1) {
- new(dst_inline_c_0) cv::Matx23f(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_51_95566ebbdb0a916fbd924b6b19096c9d9f581388(Matx23f * ptr_inline_c_0) {
- ptr_inline_c_0->~Matx23f() ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_52_fb14f4a788de99616cafab7daf200307318d0536(Matx23d * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Matx23d * inline_c_OpenCV_Core_Types_Matx_53_919defd104b3e7b42f4c366ef47bfbaaefb5de75(double f11_inline_c_0, double f12_inline_c_1, double f13_inline_c_2, double f21_inline_c_3, double f22_inline_c_4, double f23_inline_c_5) {
-return ( new cv::Matx<double, 2, 3>(f11_inline_c_0, f12_inline_c_1, f13_inline_c_2, f21_inline_c_3, f22_inline_c_4, f23_inline_c_5));
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_54_c9256b30f91a917c17e9410040ce45101dd55058(Matx23d * dst_inline_c_0, Matx23d * src_inline_c_1) {
- new(dst_inline_c_0) cv::Matx23d(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_55_e728e1914495bd63b6bdfe951a536c87ab1bff8c(Matx23d * ptr_inline_c_0) {
- ptr_inline_c_0->~Matx23d() ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_56_aedb5254eb38137a593dc8e6de1b99e092dddc92(Matx31f * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Matx31f * inline_c_OpenCV_Core_Types_Matx_57_b48ea0caa7a591aa65e2235d943fb0856f4a73c7(float f11_inline_c_0, float f21_inline_c_1, float f31_inline_c_2) {
-return ( new cv::Matx<float, 3, 1>(f11_inline_c_0, f21_inline_c_1, f31_inline_c_2));
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_58_aea38048429c3f9f58c9d937f0c19fbb5f1e7fea(Matx31f * dst_inline_c_0, Matx31f * src_inline_c_1) {
- new(dst_inline_c_0) cv::Matx31f(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_59_d8f4eabf3bfc5ef6cb984604bf2835b7b09fdf15(Matx31f * ptr_inline_c_0) {
- ptr_inline_c_0->~Matx31f() ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_60_5dc65b4a633b162429ae3f31d4a415b90f942bee(Matx31d * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Matx31d * inline_c_OpenCV_Core_Types_Matx_61_5ab9941b3a87247afaef157feabe7b855387c828(double f11_inline_c_0, double f21_inline_c_1, double f31_inline_c_2) {
-return ( new cv::Matx<double, 3, 1>(f11_inline_c_0, f21_inline_c_1, f31_inline_c_2));
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_62_37b8b5b69dd8cd7fa3110cfb0d770bd784ee10cc(Matx31d * dst_inline_c_0, Matx31d * src_inline_c_1) {
- new(dst_inline_c_0) cv::Matx31d(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_63_738557b34baf2f9ebb210ccc0a2d6a14635da89a(Matx31d * ptr_inline_c_0) {
- ptr_inline_c_0->~Matx31d() ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_64_4caeceee736d6c5285cc5f6177314b1e3ff1d4b4(Matx32f * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Matx32f * inline_c_OpenCV_Core_Types_Matx_65_c7c133dc746adf8a86ffd7a1dc27b6a35e97d6b5(float f11_inline_c_0, float f12_inline_c_1, float f21_inline_c_2, float f22_inline_c_3, float f31_inline_c_4, float f32_inline_c_5) {
-return ( new cv::Matx<float, 3, 2>(f11_inline_c_0, f12_inline_c_1, f21_inline_c_2, f22_inline_c_3, f31_inline_c_4, f32_inline_c_5));
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_66_1c32b1ccf1625d3e3fa447e32a8e54dbee5485ba(Matx32f * dst_inline_c_0, Matx32f * src_inline_c_1) {
- new(dst_inline_c_0) cv::Matx32f(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_67_1ae7db01b605ed8247e108ccea9da6ee85b1576c(Matx32f * ptr_inline_c_0) {
- ptr_inline_c_0->~Matx32f() ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_68_e81e053372e9b203f508b5a1be1aaafada501c84(Matx32d * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Matx32d * inline_c_OpenCV_Core_Types_Matx_69_c3506943947fa3bd9f8fdcd57ab2ba87af463c4c(double f11_inline_c_0, double f12_inline_c_1, double f21_inline_c_2, double f22_inline_c_3, double f31_inline_c_4, double f32_inline_c_5) {
-return ( new cv::Matx<double, 3, 2>(f11_inline_c_0, f12_inline_c_1, f21_inline_c_2, f22_inline_c_3, f31_inline_c_4, f32_inline_c_5));
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_70_47d26c134c9a257524d349a1f2fb46120e091576(Matx32d * dst_inline_c_0, Matx32d * src_inline_c_1) {
- new(dst_inline_c_0) cv::Matx32d(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_71_cefe63c762390d7a12eec665aa68428c22766e29(Matx32d * ptr_inline_c_0) {
- ptr_inline_c_0->~Matx32d() ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_72_b63f326b15e215b8e56bfc1c3e53db176a26aaeb(Matx33f * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Matx33f * inline_c_OpenCV_Core_Types_Matx_73_3484300f9db08025060be432db735876641a681b(float f11_inline_c_0, float f12_inline_c_1, float f13_inline_c_2, float f21_inline_c_3, float f22_inline_c_4, float f23_inline_c_5, float f31_inline_c_6, float f32_inline_c_7, float f33_inline_c_8) {
-return ( new cv::Matx<float, 3, 3>(f11_inline_c_0, f12_inline_c_1, f13_inline_c_2, f21_inline_c_3, f22_inline_c_4, f23_inline_c_5, f31_inline_c_6, f32_inline_c_7, f33_inline_c_8));
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_74_2d9faeba8f715d60cbc2319d6bc7b417eb76178d(Matx33f * dst_inline_c_0, Matx33f * src_inline_c_1) {
- new(dst_inline_c_0) cv::Matx33f(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_75_dcaf6054dd53fe44f13ecfd2dc580ff81c9efd1a(Matx33f * ptr_inline_c_0) {
- ptr_inline_c_0->~Matx33f() ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_76_125734cf190ec61af4b9c5c4aa46950d79ed856e(Matx33d * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Matx33d * inline_c_OpenCV_Core_Types_Matx_77_e99e24aa2e52614a3bafa2e5e256807bcc19cb3d(double f11_inline_c_0, double f12_inline_c_1, double f13_inline_c_2, double f21_inline_c_3, double f22_inline_c_4, double f23_inline_c_5, double f31_inline_c_6, double f32_inline_c_7, double f33_inline_c_8) {
-return ( new cv::Matx<double, 3, 3>(f11_inline_c_0, f12_inline_c_1, f13_inline_c_2, f21_inline_c_3, f22_inline_c_4, f23_inline_c_5, f31_inline_c_6, f32_inline_c_7, f33_inline_c_8));
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_78_d5d8983f6444b21b62c6d0180100950346d27a87(Matx33d * dst_inline_c_0, Matx33d * src_inline_c_1) {
- new(dst_inline_c_0) cv::Matx33d(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_79_6e53e44ba5b2542f27b7b8b33dd74798f6acabd5(Matx33d * ptr_inline_c_0) {
- ptr_inline_c_0->~Matx33d() ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_80_9a093ee30d030fabdcf340004217f89618463931(Matx34f * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Matx34f * inline_c_OpenCV_Core_Types_Matx_81_ca19bba3590dcef56e46240b8a7acd357647f070(float f11_inline_c_0, float f12_inline_c_1, float f13_inline_c_2, float f14_inline_c_3, float f21_inline_c_4, float f22_inline_c_5, float f23_inline_c_6, float f24_inline_c_7, float f31_inline_c_8, float f32_inline_c_9, float f33_inline_c_10, float f34_inline_c_11) {
-return ( new cv::Matx<float, 3, 4>(f11_inline_c_0, f12_inline_c_1, f13_inline_c_2, f14_inline_c_3, f21_inline_c_4, f22_inline_c_5, f23_inline_c_6, f24_inline_c_7, f31_inline_c_8, f32_inline_c_9, f33_inline_c_10, f34_inline_c_11));
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_82_cd829afb745dd049a2886e8649b81ce142adc8aa(Matx34f * dst_inline_c_0, Matx34f * src_inline_c_1) {
- new(dst_inline_c_0) cv::Matx34f(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_83_e565dfe74916a4aadaf98e7208712956b6bb4de1(Matx34f * ptr_inline_c_0) {
- ptr_inline_c_0->~Matx34f() ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_84_a1ffadb3fcf5316d39955cd1710cc341963ddaa7(Matx34d * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Matx34d * inline_c_OpenCV_Core_Types_Matx_85_47ac8970971e717e36c105b7c7f942c335dbf99c(double f11_inline_c_0, double f12_inline_c_1, double f13_inline_c_2, double f14_inline_c_3, double f21_inline_c_4, double f22_inline_c_5, double f23_inline_c_6, double f24_inline_c_7, double f31_inline_c_8, double f32_inline_c_9, double f33_inline_c_10, double f34_inline_c_11) {
-return ( new cv::Matx<double, 3, 4>(f11_inline_c_0, f12_inline_c_1, f13_inline_c_2, f14_inline_c_3, f21_inline_c_4, f22_inline_c_5, f23_inline_c_6, f24_inline_c_7, f31_inline_c_8, f32_inline_c_9, f33_inline_c_10, f34_inline_c_11));
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_86_48e2c72ef708ef6922da982165f42e3d2aaf0978(Matx34d * dst_inline_c_0, Matx34d * src_inline_c_1) {
- new(dst_inline_c_0) cv::Matx34d(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_87_649c36fe976a2c64f1ed45ddad48ee5680373ef5(Matx34d * ptr_inline_c_0) {
- ptr_inline_c_0->~Matx34d() ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_88_544d823770baa46d1ccc3fa6319d770d18b3a306(Matx41f * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Matx41f * inline_c_OpenCV_Core_Types_Matx_89_f259e678948d720471bd840f2666c4832a20d832(float f11_inline_c_0, float f21_inline_c_1, float f31_inline_c_2, float f41_inline_c_3) {
-return ( new cv::Matx<float, 4, 1>(f11_inline_c_0, f21_inline_c_1, f31_inline_c_2, f41_inline_c_3));
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_90_ad18e320d648c62a8d681eb392aebb69752c166e(Matx41f * dst_inline_c_0, Matx41f * src_inline_c_1) {
- new(dst_inline_c_0) cv::Matx41f(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_91_4eae7d25d3fdceed3f5a4b36353b93e425bf79e1(Matx41f * ptr_inline_c_0) {
- ptr_inline_c_0->~Matx41f() ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_92_2d5c9ebe3cfe3a0f0c43872ece5b8e884f4e0150(Matx41d * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Matx41d * inline_c_OpenCV_Core_Types_Matx_93_6a7473824354e2fa29ed260d9f9a397fc4dbbb1b(double f11_inline_c_0, double f21_inline_c_1, double f31_inline_c_2, double f41_inline_c_3) {
-return ( new cv::Matx<double, 4, 1>(f11_inline_c_0, f21_inline_c_1, f31_inline_c_2, f41_inline_c_3));
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_94_e8f29ed53c833fe9bd90c79cd4c811f10c7f38c1(Matx41d * dst_inline_c_0, Matx41d * src_inline_c_1) {
- new(dst_inline_c_0) cv::Matx41d(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_95_d137e413aca15cb0f949afa656a61703d02c6c67(Matx41d * ptr_inline_c_0) {
- ptr_inline_c_0->~Matx41d() ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_96_7dbb15428397cc59f0f6f7a5013aad3c2a4593d4(Matx43f * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Matx43f * inline_c_OpenCV_Core_Types_Matx_97_c63ca9f1a492e644a0dba8f53f7717b3ca6f9590(float f11_inline_c_0, float f12_inline_c_1, float f13_inline_c_2, float f21_inline_c_3, float f22_inline_c_4, float f23_inline_c_5, float f31_inline_c_6, float f32_inline_c_7, float f33_inline_c_8, float f41_inline_c_9, float f42_inline_c_10, float f43_inline_c_11) {
-return ( new cv::Matx<float, 4, 3>(f11_inline_c_0, f12_inline_c_1, f13_inline_c_2, f21_inline_c_3, f22_inline_c_4, f23_inline_c_5, f31_inline_c_6, f32_inline_c_7, f33_inline_c_8, f41_inline_c_9, f42_inline_c_10, f43_inline_c_11));
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_98_158b31730cb4058e8d44c4c4f754739b06ccd61f(Matx43f * dst_inline_c_0, Matx43f * src_inline_c_1) {
- new(dst_inline_c_0) cv::Matx43f(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_99_587e941b95f98b11ae72fcbafcb3c05f9a0ada90(Matx43f * ptr_inline_c_0) {
- ptr_inline_c_0->~Matx43f() ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_100_d2e69c94e35f2821acb96e80d42723b6f1c88109(Matx43d * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Matx43d * inline_c_OpenCV_Core_Types_Matx_101_6cd7600446c189784350025019a2dd9093a3a0ae(double f11_inline_c_0, double f12_inline_c_1, double f13_inline_c_2, double f21_inline_c_3, double f22_inline_c_4, double f23_inline_c_5, double f31_inline_c_6, double f32_inline_c_7, double f33_inline_c_8, double f41_inline_c_9, double f42_inline_c_10, double f43_inline_c_11) {
-return ( new cv::Matx<double, 4, 3>(f11_inline_c_0, f12_inline_c_1, f13_inline_c_2, f21_inline_c_3, f22_inline_c_4, f23_inline_c_5, f31_inline_c_6, f32_inline_c_7, f33_inline_c_8, f41_inline_c_9, f42_inline_c_10, f43_inline_c_11));
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_102_27c91b2c0c0694e6dd496fe73bbaa16e85646815(Matx43d * dst_inline_c_0, Matx43d * src_inline_c_1) {
- new(dst_inline_c_0) cv::Matx43d(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_103_aa86bf92a4ce09bb07a34703621e33b398bd3f93(Matx43d * ptr_inline_c_0) {
- ptr_inline_c_0->~Matx43d() ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_104_9a5c2f3156f5cbce80c7cf2eaec77adb8fd4c775(Matx44f * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Matx44f * inline_c_OpenCV_Core_Types_Matx_105_7040d0979afd3acb647e57685e3fa845c69cea98(float f11_inline_c_0, float f12_inline_c_1, float f13_inline_c_2, float f14_inline_c_3, float f21_inline_c_4, float f22_inline_c_5, float f23_inline_c_6, float f24_inline_c_7, float f31_inline_c_8, float f32_inline_c_9, float f33_inline_c_10, float f34_inline_c_11, float f41_inline_c_12, float f42_inline_c_13, float f43_inline_c_14, float f44_inline_c_15) {
-return ( new cv::Matx<float, 4, 4>(f11_inline_c_0, f12_inline_c_1, f13_inline_c_2, f14_inline_c_3, f21_inline_c_4, f22_inline_c_5, f23_inline_c_6, f24_inline_c_7, f31_inline_c_8, f32_inline_c_9, f33_inline_c_10, f34_inline_c_11, f41_inline_c_12, f42_inline_c_13, f43_inline_c_14, f44_inline_c_15));
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_106_686b89c6e61ea871263a084f858680649b40a09d(Matx44f * dst_inline_c_0, Matx44f * src_inline_c_1) {
- new(dst_inline_c_0) cv::Matx44f(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_107_39f8f56420d11b97b36ad9ffa7af5ca7d3514482(Matx44f * ptr_inline_c_0) {
- ptr_inline_c_0->~Matx44f() ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_108_a114155b10958523c9a714122bf36a637a7ba100(Matx44d * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Matx44d * inline_c_OpenCV_Core_Types_Matx_109_1753edede667749e7e562104238ab0c09636474f(double f11_inline_c_0, double f12_inline_c_1, double f13_inline_c_2, double f14_inline_c_3, double f21_inline_c_4, double f22_inline_c_5, double f23_inline_c_6, double f24_inline_c_7, double f31_inline_c_8, double f32_inline_c_9, double f33_inline_c_10, double f34_inline_c_11, double f41_inline_c_12, double f42_inline_c_13, double f43_inline_c_14, double f44_inline_c_15) {
-return ( new cv::Matx<double, 4, 4>(f11_inline_c_0, f12_inline_c_1, f13_inline_c_2, f14_inline_c_3, f21_inline_c_4, f22_inline_c_5, f23_inline_c_6, f24_inline_c_7, f31_inline_c_8, f32_inline_c_9, f33_inline_c_10, f34_inline_c_11, f41_inline_c_12, f42_inline_c_13, f43_inline_c_14, f44_inline_c_15));
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_110_1ce140751a04ebfe3a85a04b69c6dbdf4c020c57(Matx44d * dst_inline_c_0, Matx44d * src_inline_c_1) {
- new(dst_inline_c_0) cv::Matx44d(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_111_85a4ae342aa6be5b5c81bab59544c99dd9b2c2c5(Matx44d * ptr_inline_c_0) {
- ptr_inline_c_0->~Matx44d() ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_112_d48ec1cd5d7800f7e70d3559eba99ac9b44770c4(Matx51f * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Matx51f * inline_c_OpenCV_Core_Types_Matx_113_fdacfa7b3291214cdc410df34dabb74dcbe87f69(float f11_inline_c_0, float f21_inline_c_1, float f31_inline_c_2, float f41_inline_c_3, float f51_inline_c_4) {
-return ( new cv::Matx<float, 5, 1>(f11_inline_c_0, f21_inline_c_1, f31_inline_c_2, f41_inline_c_3, f51_inline_c_4));
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_114_d7887e33ea0da2b8f5ab12d84428001faf958b28(Matx51f * dst_inline_c_0, Matx51f * src_inline_c_1) {
- new(dst_inline_c_0) cv::Matx51f(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_115_575d7660855bb437f9b24f7a5937e01f9bad0b65(Matx51f * ptr_inline_c_0) {
- ptr_inline_c_0->~Matx51f() ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_116_3eb846870eb373320a31912477c9f12c9b740447(Matx51d * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Matx51d * inline_c_OpenCV_Core_Types_Matx_117_92875d62e418a45e4aee4d562df35cdbe43e55ca(double f11_inline_c_0, double f21_inline_c_1, double f31_inline_c_2, double f41_inline_c_3, double f51_inline_c_4) {
-return ( new cv::Matx<double, 5, 1>(f11_inline_c_0, f21_inline_c_1, f31_inline_c_2, f41_inline_c_3, f51_inline_c_4));
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_118_f6b1fd1fc2495bc8814f504cf5581b6b2cfcbcf5(Matx51d * dst_inline_c_0, Matx51d * src_inline_c_1) {
- new(dst_inline_c_0) cv::Matx51d(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_119_bec01f17acace040f313fc20f3bb8a02b4e3ae9a(Matx51d * ptr_inline_c_0) {
- ptr_inline_c_0->~Matx51d() ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_120_290d967d3b74622af9162142871b0474b2a8bd85(Matx61f * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Matx61f * inline_c_OpenCV_Core_Types_Matx_121_88beb79fbf4fac58359963ce03d72d9d1860b39d(float f11_inline_c_0, float f21_inline_c_1, float f31_inline_c_2, float f41_inline_c_3, float f51_inline_c_4, float f61_inline_c_5) {
-return ( new cv::Matx<float, 6, 1>(f11_inline_c_0, f21_inline_c_1, f31_inline_c_2, f41_inline_c_3, f51_inline_c_4, f61_inline_c_5));
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_122_adb3e91425e827d5e5b5a7a0ce2c4c67907d17f7(Matx61f * dst_inline_c_0, Matx61f * src_inline_c_1) {
- new(dst_inline_c_0) cv::Matx61f(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_123_f7de6dd79872f040addd23ea38243e7440d00623(Matx61f * ptr_inline_c_0) {
- ptr_inline_c_0->~Matx61f() ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_124_4587bc094cc72a31060b4b5c4cfab3020597d4f3(Matx61d * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Matx61d * inline_c_OpenCV_Core_Types_Matx_125_0024ed44353a0ae7a6e52a8f87caf9eda5ec75b9(double f11_inline_c_0, double f21_inline_c_1, double f31_inline_c_2, double f41_inline_c_3, double f51_inline_c_4, double f61_inline_c_5) {
-return ( new cv::Matx<double, 6, 1>(f11_inline_c_0, f21_inline_c_1, f31_inline_c_2, f41_inline_c_3, f51_inline_c_4, f61_inline_c_5));
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_126_a9425b9b70fc8f8ef7320a1a2f9c64f5a5dc6474(Matx61d * dst_inline_c_0, Matx61d * src_inline_c_1) {
- new(dst_inline_c_0) cv::Matx61d(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_127_352b0dc6d6305cb4d443f78185b87d746f4deadd(Matx61d * ptr_inline_c_0) {
- ptr_inline_c_0->~Matx61d() ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_128_075a9dc2a0e226d16af311d9ec46734fea493a8f(Matx66f * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_129_fa1bc687b8e0135d9208e2869fdba7f5ca20d683(Matx66f * dst_inline_c_0, Matx66f * src_inline_c_1) {
- new(dst_inline_c_0) cv::Matx66f(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_130_5032037b0b440c629d27ce0edca36b8a2bd8cb99(Matx66f * ptr_inline_c_0) {
- ptr_inline_c_0->~Matx66f() ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_131_6f6df408218406aeb4f4493ac2fcc0006c983f48(Matx66d * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_132_308dc8fe1a439220b85267f35fab5db6c8a271ff(Matx66d * dst_inline_c_0, Matx66d * src_inline_c_1) {
- new(dst_inline_c_0) cv::Matx66d(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Matx_133_c896033f5bc5e69a3a469f54213b6216f12f9b75(Matx66d * ptr_inline_c_0) {
- ptr_inline_c_0->~Matx66d() ;
-}
-
-}
diff --git a/src/OpenCV/Core/Types/Point.cpp b/src/OpenCV/Core/Types/Point.cpp
deleted file mode 100644
--- a/src/OpenCV/Core/Types/Point.cpp
+++ /dev/null
@@ -1,235 +0,0 @@
-
-#include "opencv2/core.hpp"
-
-using namespace cv;
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Point_0_4c1092f465636708903a1e55c9ecbdeabd8dbb4e(Point2i * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Point2i * inline_c_OpenCV_Core_Types_Point_1_ff12c6c6f284402f3fcb567a543408d4d5e19736(int32_t x_inline_c_0, int32_t y_inline_c_1) {
-return ( new cv::Point_<int32_t>(x_inline_c_0, y_inline_c_1) );
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Point_2_36fc588cdfcab60ba98c5c647d8fef351c89db7a(Point2i * pointPtr_inline_c_0, int32_t * xPtr_inline_c_1, int32_t * yPtr_inline_c_2) {
-const cv::Point_<int32_t> & p = *pointPtr_inline_c_0;
-*xPtr_inline_c_1 = p.x;
-*yPtr_inline_c_2 = p.y;
-
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Point_3_e96ace6d8309077979d03c129b3190b421f8c86f(Point2i * dst_inline_c_0, Point2i * src_inline_c_1) {
- new(dst_inline_c_0) cv::Point2i(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Point_4_3d0253537d58326b8b58148c4f9ca64dcf7baf96(Point2i * ptr_inline_c_0) {
- ptr_inline_c_0->~Point2i() ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Point_5_437f1664107aa8e50cd3791f8308eff14a5626ca(Point2f * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Point2f * inline_c_OpenCV_Core_Types_Point_6_1c59054097b6c9e61c1e892798e944e1ff0c3a30(float x_inline_c_0, float y_inline_c_1) {
-return ( new cv::Point_<float>(x_inline_c_0, y_inline_c_1) );
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Point_7_6f41b4e6aa3bba43baad41ed0affd6f1ee2be9fc(Point2f * pointPtr_inline_c_0, float * xPtr_inline_c_1, float * yPtr_inline_c_2) {
-const cv::Point_<float> & p = *pointPtr_inline_c_0;
-*xPtr_inline_c_1 = p.x;
-*yPtr_inline_c_2 = p.y;
-
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Point_8_ab8c69bd58d183c62fb2d434f078c17f73ab2340(Point2f * dst_inline_c_0, Point2f * src_inline_c_1) {
- new(dst_inline_c_0) cv::Point2f(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Point_9_424d9064784dff209a6a1f7d5a91967ad8d9c9f2(Point2f * ptr_inline_c_0) {
- ptr_inline_c_0->~Point2f() ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Point_10_769fd8ff9cd8c8697e0ce0d4590fa74c3f4886a1(Point2d * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Point2d * inline_c_OpenCV_Core_Types_Point_11_45f70672566f9082b4518ddb07eb73291f7c67b1(double x_inline_c_0, double y_inline_c_1) {
-return ( new cv::Point_<double>(x_inline_c_0, y_inline_c_1) );
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Point_12_4eb865d20dc87fb594c62c6042350384c4e71661(Point2d * pointPtr_inline_c_0, double * xPtr_inline_c_1, double * yPtr_inline_c_2) {
-const cv::Point_<double> & p = *pointPtr_inline_c_0;
-*xPtr_inline_c_1 = p.x;
-*yPtr_inline_c_2 = p.y;
-
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Point_13_b809b9643ed71aa47abef75c0919c3b76d0ed2fc(Point2d * dst_inline_c_0, Point2d * src_inline_c_1) {
- new(dst_inline_c_0) cv::Point2d(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Point_14_d9bd99c8394df6debc379195cf23453e5f32538d(Point2d * ptr_inline_c_0) {
- ptr_inline_c_0->~Point2d() ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Point_15_ac8c5a37eb6ce6d17879d6faaba5345fef64c1c0(Point3i * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Point3i * inline_c_OpenCV_Core_Types_Point_16_eb9bbb8a0db9a0eec73d5d060e0052cbde743ff4(int32_t x_inline_c_0, int32_t y_inline_c_1, int32_t z_inline_c_2) {
-return ( new cv::Point3_<int32_t>(x_inline_c_0, y_inline_c_1, z_inline_c_2) );
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Point_17_92f1f8191764ae3d7ce1e5f04ae61f88dd229efc(Point3i * pointPtr_inline_c_0, int32_t * xPtr_inline_c_1, int32_t * yPtr_inline_c_2, int32_t * zPtr_inline_c_3) {
-const cv::Point3_<int32_t> & p = *pointPtr_inline_c_0;
-*xPtr_inline_c_1 = p.x;
-*yPtr_inline_c_2 = p.y;
-*zPtr_inline_c_3 = p.z;
-
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Point_18_7d001d545e9d4eca68fb056cb0d3e35e01d97bb2(Point3i * dst_inline_c_0, Point3i * src_inline_c_1) {
- new(dst_inline_c_0) cv::Point3i(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Point_19_5c3d561e8841e5271fd465bfb109504b1d56b3f6(Point3i * ptr_inline_c_0) {
- ptr_inline_c_0->~Point3i() ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Point_20_47a48e736968a91f839f3878f329dae25dc4d44c(Point3f * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Point3f * inline_c_OpenCV_Core_Types_Point_21_d421f1efe69726d7c6f34739986fa1e6349d86dd(float x_inline_c_0, float y_inline_c_1, float z_inline_c_2) {
-return ( new cv::Point3_<float>(x_inline_c_0, y_inline_c_1, z_inline_c_2) );
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Point_22_4897152901f708dca15a4c5d911fa1fbcec2f9da(Point3f * pointPtr_inline_c_0, float * xPtr_inline_c_1, float * yPtr_inline_c_2, float * zPtr_inline_c_3) {
-const cv::Point3_<float> & p = *pointPtr_inline_c_0;
-*xPtr_inline_c_1 = p.x;
-*yPtr_inline_c_2 = p.y;
-*zPtr_inline_c_3 = p.z;
-
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Point_23_aa5379e6758c3f064378958a62572e251b1786d5(Point3f * dst_inline_c_0, Point3f * src_inline_c_1) {
- new(dst_inline_c_0) cv::Point3f(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Point_24_f6c7ab928947a9a6edb6aa80f82f1fe67d9f97a0(Point3f * ptr_inline_c_0) {
- ptr_inline_c_0->~Point3f() ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Point_25_a25f256af3d64b9da2e48cd781d9b3ab53c9055e(Point3d * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Point3d * inline_c_OpenCV_Core_Types_Point_26_362d4fbcaa0d2f6e3bf384b3c8b75e3ddaa10e38(double x_inline_c_0, double y_inline_c_1, double z_inline_c_2) {
-return ( new cv::Point3_<double>(x_inline_c_0, y_inline_c_1, z_inline_c_2) );
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Point_27_46f3905c37aded90c4877e1f261d3c2493b3f34f(Point3d * pointPtr_inline_c_0, double * xPtr_inline_c_1, double * yPtr_inline_c_2, double * zPtr_inline_c_3) {
-const cv::Point3_<double> & p = *pointPtr_inline_c_0;
-*xPtr_inline_c_1 = p.x;
-*yPtr_inline_c_2 = p.y;
-*zPtr_inline_c_3 = p.z;
-
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Point_28_6966815a8dcc93abfca6f17f31b5301c754d464f(Point3d * dst_inline_c_0, Point3d * src_inline_c_1) {
- new(dst_inline_c_0) cv::Point3d(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Point_29_3e82d58d154914c55fd819b6c8fc989749e787b6(Point3d * ptr_inline_c_0) {
- ptr_inline_c_0->~Point3d() ;
-}
-
-}
diff --git a/src/OpenCV/Core/Types/Rect.cpp b/src/OpenCV/Core/Types/Rect.cpp
deleted file mode 100644
--- a/src/OpenCV/Core/Types/Rect.cpp
+++ /dev/null
@@ -1,193 +0,0 @@
-
-#include "opencv2/core.hpp"
-
-using namespace cv;
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Rect_0_2a03833d3782c5d114273430f1b66c14ab3cc116(Rect2i * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Point2i * inline_c_OpenCV_Core_Types_Rect_1_e88ee65dc4fd80a5e02c7a7ffd67ee311564baa4(Rect2i * rectPtr_inline_c_0) {
-return ( new Point2i(rectPtr_inline_c_0->tl()) );
-}
-
-}
-
-extern "C" {
-Point2i * inline_c_OpenCV_Core_Types_Rect_2_dcbe7fb07489378839abd73274d02bf0b1dfe595(Rect2i * rectPtr_inline_c_0) {
-return ( new Point2i(rectPtr_inline_c_0->br()) );
-}
-
-}
-
-extern "C" {
-Size2i * inline_c_OpenCV_Core_Types_Rect_3_fee2c7d398c9f0a125180587b20ed5d1846ec104(Rect2i * rectPtr_inline_c_0) {
-return ( new Size2i(rectPtr_inline_c_0->size()) );
-}
-
-}
-
-extern "C" {
-int32_t inline_c_OpenCV_Core_Types_Rect_4_73faa5315716a776ac7931fbdf1877b4812b167b(Rect2i * rectPtr_inline_c_0) {
-return ( rectPtr_inline_c_0->area() );
-}
-
-}
-
-extern "C" {
-int inline_c_OpenCV_Core_Types_Rect_5_0225df883d2169db13e9eee85a40b1e8553f3f41(Rect2i * rectPtr_inline_c_0, Point2i * pointPtr_inline_c_1) {
-return ( rectPtr_inline_c_0->contains(*pointPtr_inline_c_1) );
-}
-
-}
-
-extern "C" {
-Rect2i * inline_c_OpenCV_Core_Types_Rect_6_d5d1a676fc6c97ff167fdbcc6cbe7f2b0fd7a855(int32_t x_inline_c_0, int32_t y_inline_c_1, int32_t w_inline_c_2, int32_t h_inline_c_3) {
-return ( new cv::Rect_<int32_t>(x_inline_c_0, y_inline_c_1, w_inline_c_2, h_inline_c_3));
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Rect_7_e4b911966f836003b9d7755d1eedf6d8cbb7a2b2(Rect2i * dst_inline_c_0, Rect2i * src_inline_c_1) {
- new(dst_inline_c_0) cv::Rect2i(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Rect_8_7c4416a9e3fcf2a789b8b1b8ed564708e00242a5(Rect2i * ptr_inline_c_0) {
- ptr_inline_c_0->~Rect2i() ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Rect_9_ea9d5db520e06210fa6fc99b6d365cf1362243d4(Rect2f * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Point2f * inline_c_OpenCV_Core_Types_Rect_10_4d55b94263389918b9a65679cc5a07255ed1bb31(Rect2f * rectPtr_inline_c_0) {
-return ( new Point2f(rectPtr_inline_c_0->tl()) );
-}
-
-}
-
-extern "C" {
-Point2f * inline_c_OpenCV_Core_Types_Rect_11_627bc66aa680ebd7004d347c661fc6fb1ad0bb71(Rect2f * rectPtr_inline_c_0) {
-return ( new Point2f(rectPtr_inline_c_0->br()) );
-}
-
-}
-
-extern "C" {
-Size2f * inline_c_OpenCV_Core_Types_Rect_12_e98b6862b86d12450cd6d30615b1ab8d2ea116fe(Rect2f * rectPtr_inline_c_0) {
-return ( new Size2f(rectPtr_inline_c_0->size()) );
-}
-
-}
-
-extern "C" {
-float inline_c_OpenCV_Core_Types_Rect_13_16aef11090458219db53802aadf1d0f5b808d19e(Rect2f * rectPtr_inline_c_0) {
-return ( rectPtr_inline_c_0->area() );
-}
-
-}
-
-extern "C" {
-int inline_c_OpenCV_Core_Types_Rect_14_c1fc2bc1e7e300731b568d6c4a87782abac455d3(Rect2f * rectPtr_inline_c_0, Point2f * pointPtr_inline_c_1) {
-return ( rectPtr_inline_c_0->contains(*pointPtr_inline_c_1) );
-}
-
-}
-
-extern "C" {
-Rect2f * inline_c_OpenCV_Core_Types_Rect_15_9b26325d49184116b872dc2bd6952db50b947311(float x_inline_c_0, float y_inline_c_1, float w_inline_c_2, float h_inline_c_3) {
-return ( new cv::Rect_<float>(x_inline_c_0, y_inline_c_1, w_inline_c_2, h_inline_c_3));
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Rect_16_0b307b841dded7c0b465b56e7788a2f448662302(Rect2f * dst_inline_c_0, Rect2f * src_inline_c_1) {
- new(dst_inline_c_0) cv::Rect2f(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Rect_17_8d8f6d8c774fc2f238b6c18c682876dbf1da631e(Rect2f * ptr_inline_c_0) {
- ptr_inline_c_0->~Rect2f() ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Rect_18_c8f0ad0e7f99e37b71ab16061d6ff30b61054a43(Rect2d * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Point2d * inline_c_OpenCV_Core_Types_Rect_19_508e81a88fc4f50ac6837d4e7f1edc71ae058d2b(Rect2d * rectPtr_inline_c_0) {
-return ( new Point2d(rectPtr_inline_c_0->tl()) );
-}
-
-}
-
-extern "C" {
-Point2d * inline_c_OpenCV_Core_Types_Rect_20_645032c326d4d286854c9aa28563bf2a20e807ad(Rect2d * rectPtr_inline_c_0) {
-return ( new Point2d(rectPtr_inline_c_0->br()) );
-}
-
-}
-
-extern "C" {
-Size2d * inline_c_OpenCV_Core_Types_Rect_21_2386fcaccd38ce874d37c745a6ec30bf94d6a49e(Rect2d * rectPtr_inline_c_0) {
-return ( new Size2d(rectPtr_inline_c_0->size()) );
-}
-
-}
-
-extern "C" {
-double inline_c_OpenCV_Core_Types_Rect_22_5e47a0497a31309cd6b309d9d36bd6b55cb40f38(Rect2d * rectPtr_inline_c_0) {
-return ( rectPtr_inline_c_0->area() );
-}
-
-}
-
-extern "C" {
-int inline_c_OpenCV_Core_Types_Rect_23_05e33e41465b0473f41dc94c0192610e25c67f18(Rect2d * rectPtr_inline_c_0, Point2d * pointPtr_inline_c_1) {
-return ( rectPtr_inline_c_0->contains(*pointPtr_inline_c_1) );
-}
-
-}
-
-extern "C" {
-Rect2d * inline_c_OpenCV_Core_Types_Rect_24_0b0c40305dcffc0bda363a99d135f673037e9f38(double x_inline_c_0, double y_inline_c_1, double w_inline_c_2, double h_inline_c_3) {
-return ( new cv::Rect_<double>(x_inline_c_0, y_inline_c_1, w_inline_c_2, h_inline_c_3));
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Rect_25_251289a591b14ee0f63b7f031449ec42f539cb05(Rect2d * dst_inline_c_0, Rect2d * src_inline_c_1) {
- new(dst_inline_c_0) cv::Rect2d(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Rect_26_d5f41a503bb952930172daeb6e0bc176112e0fd4(Rect2d * ptr_inline_c_0) {
- ptr_inline_c_0->~Rect2d() ;
-}
-
-}
diff --git a/src/OpenCV/Core/Types/Size.cpp b/src/OpenCV/Core/Types/Size.cpp
deleted file mode 100644
--- a/src/OpenCV/Core/Types/Size.cpp
+++ /dev/null
@@ -1,118 +0,0 @@
-
-#include "opencv2/core.hpp"
-
-using namespace cv;
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Size_0_32bf1f9fa11367334eb5e82acfd147a8e7f79ecc(Size2i * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Size2i * inline_c_OpenCV_Core_Types_Size_1_64a321c7dd7b04eb97b84811b17e53cf6b27f617(int32_t width_inline_c_0, int32_t height_inline_c_1) {
-return ( new cv::Size_<int32_t>(width_inline_c_0, height_inline_c_1) );
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Size_2_c63519756fa60c6fdd2a694874215def881d038c(Size2i * sizePtr_inline_c_0, int32_t * widthPtr_inline_c_1, int32_t * heightPtr_inline_c_2) {
-const cv::Size_<int32_t> & p = *sizePtr_inline_c_0;
-*widthPtr_inline_c_1 = p.width;
-*heightPtr_inline_c_2 = p.height;
-
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Size_3_859419933e0232667597f4884e13d5916280981d(Size2i * dst_inline_c_0, Size2i * src_inline_c_1) {
- new(dst_inline_c_0) cv::Size2i(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Size_4_616eab004b2b554610add9842ce37a509c4c82fc(Size2i * ptr_inline_c_0) {
- ptr_inline_c_0->~Size2i() ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Size_5_b7958046176feafd41be4accec7a556438e5c3fb(Size2f * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Size2f * inline_c_OpenCV_Core_Types_Size_6_a3e9dfac9a56d9141c6c24fa3f71e551bbf998e9(float width_inline_c_0, float height_inline_c_1) {
-return ( new cv::Size_<float>(width_inline_c_0, height_inline_c_1) );
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Size_7_27a41d9b7beb05a85456d0e5ffe48adc69009d43(Size2f * sizePtr_inline_c_0, float * widthPtr_inline_c_1, float * heightPtr_inline_c_2) {
-const cv::Size_<float> & p = *sizePtr_inline_c_0;
-*widthPtr_inline_c_1 = p.width;
-*heightPtr_inline_c_2 = p.height;
-
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Size_8_03a67537d8ac66ecd30c1f281952bef45fd2a630(Size2f * dst_inline_c_0, Size2f * src_inline_c_1) {
- new(dst_inline_c_0) cv::Size2f(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Size_9_60b3405b2dd407e91e6b7aaf545f5626d14e36a2(Size2f * ptr_inline_c_0) {
- ptr_inline_c_0->~Size2f() ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Size_10_5bf047e657221b4c0c4239926d71df74082493e9(Size2d * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Size2d * inline_c_OpenCV_Core_Types_Size_11_4bfe7c6c8a1760cc3ce046e944838d75fd8b7287(double width_inline_c_0, double height_inline_c_1) {
-return ( new cv::Size_<double>(width_inline_c_0, height_inline_c_1) );
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Size_12_d48c98941fac6f4bb7860cc21ff084e932c30dd2(Size2d * sizePtr_inline_c_0, double * widthPtr_inline_c_1, double * heightPtr_inline_c_2) {
-const cv::Size_<double> & p = *sizePtr_inline_c_0;
-*widthPtr_inline_c_1 = p.width;
-*heightPtr_inline_c_2 = p.height;
-
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Size_13_c75b0ea696663c9ab3d8fdebfddbeb41c3057c0a(Size2d * dst_inline_c_0, Size2d * src_inline_c_1) {
- new(dst_inline_c_0) cv::Size2d(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Size_14_da100e8455f8f216556ea391bb42864390e1cd4d(Size2d * ptr_inline_c_0) {
- ptr_inline_c_0->~Size2d() ;
-}
-
-}
diff --git a/src/OpenCV/Core/Types/Vec.cpp b/src/OpenCV/Core/Types/Vec.cpp
deleted file mode 100644
--- a/src/OpenCV/Core/Types/Vec.cpp
+++ /dev/null
@@ -1,355 +0,0 @@
-
-#include "opencv2/core.hpp"
-
-using namespace cv;
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Vec_0_bd90a53d8e34a42571859deb4c1c0e490fa468b8(Vec2i * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Vec2i * inline_c_OpenCV_Core_Types_Vec_1_c2682acbcc1e690f6a479e8e291fc4690d615c30(int32_t x_inline_c_0, int32_t y_inline_c_1) {
-return ( new cv::Vec<int32_t, 2>(x_inline_c_0, y_inline_c_1) );
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Vec_2_814334e0438e1a63b54e6ce83f624f4dc7fd474e(Vec2i * vecPtr_inline_c_0, int32_t * xPtr_inline_c_1, int32_t * yPtr_inline_c_2) {
-const cv::Vec<int32_t, 2> & p = *vecPtr_inline_c_0;
-*xPtr_inline_c_1 = p[0];
-*yPtr_inline_c_2 = p[1];
-
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Vec_3_1b970fea639df1aeaf8bd626cd353748a703276e(Vec2i * dst_inline_c_0, Vec2i * src_inline_c_1) {
- new(dst_inline_c_0) cv::Vec2i(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Vec_4_c17782ca3797c35a642af252c7e4bd52d9efd365(Vec2i * ptr_inline_c_0) {
- ptr_inline_c_0->~Vec2i() ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Vec_5_369fbba76e661422a46c2986f4908b94895d571d(Vec2f * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Vec2f * inline_c_OpenCV_Core_Types_Vec_6_eb9b40a7a6c5fb414b3020b78f02b3c90004abf7(float x_inline_c_0, float y_inline_c_1) {
-return ( new cv::Vec<float, 2>(x_inline_c_0, y_inline_c_1) );
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Vec_7_ca623c450ec9e141c47884040ebcc00c5b39e8fe(Vec2f * vecPtr_inline_c_0, float * xPtr_inline_c_1, float * yPtr_inline_c_2) {
-const cv::Vec<float, 2> & p = *vecPtr_inline_c_0;
-*xPtr_inline_c_1 = p[0];
-*yPtr_inline_c_2 = p[1];
-
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Vec_8_acab7dd6947550a11cfd5ee94f9e199615f00762(Vec2f * dst_inline_c_0, Vec2f * src_inline_c_1) {
- new(dst_inline_c_0) cv::Vec2f(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Vec_9_a72a0b0c10755846aba8f382352136fbe20b50d6(Vec2f * ptr_inline_c_0) {
- ptr_inline_c_0->~Vec2f() ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Vec_10_54ac694dca066ae202393ad3b0d96f824a537a1f(Vec2d * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Vec2d * inline_c_OpenCV_Core_Types_Vec_11_ef593eb9f46ebe6f548568269aa0d20bcc874fed(double x_inline_c_0, double y_inline_c_1) {
-return ( new cv::Vec<double, 2>(x_inline_c_0, y_inline_c_1) );
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Vec_12_36e65dd7a90fe56c8b42fdcef0fc5946df532d88(Vec2d * vecPtr_inline_c_0, double * xPtr_inline_c_1, double * yPtr_inline_c_2) {
-const cv::Vec<double, 2> & p = *vecPtr_inline_c_0;
-*xPtr_inline_c_1 = p[0];
-*yPtr_inline_c_2 = p[1];
-
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Vec_13_dda485106eea8b62ce7328b30643852cf11391e6(Vec2d * dst_inline_c_0, Vec2d * src_inline_c_1) {
- new(dst_inline_c_0) cv::Vec2d(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Vec_14_46ee73b43db2a74615ca8ef8854087e026861c3d(Vec2d * ptr_inline_c_0) {
- ptr_inline_c_0->~Vec2d() ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Vec_15_f8335ca02691a51ad1e76c686cd563027ba3628d(Vec3i * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Vec3i * inline_c_OpenCV_Core_Types_Vec_16_d97c555fbf19006c0ce54a8e8edcb90a88c6e756(int32_t x_inline_c_0, int32_t y_inline_c_1, int32_t z_inline_c_2) {
-return ( new cv::Vec<int32_t, 3>(x_inline_c_0, y_inline_c_1, z_inline_c_2) );
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Vec_17_b490915472cc80580674c67d463d04c645fb5462(Vec3i * vecPtr_inline_c_0, int32_t * xPtr_inline_c_1, int32_t * yPtr_inline_c_2, int32_t * zPtr_inline_c_3) {
-const cv::Vec<int32_t, 3> & p = *vecPtr_inline_c_0;
-*xPtr_inline_c_1 = p[0];
-*yPtr_inline_c_2 = p[1];
-*zPtr_inline_c_3 = p[2];
-
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Vec_18_1c6668c2bd1f3bb11d1fc2e84d75c51853fc4b86(Vec3i * dst_inline_c_0, Vec3i * src_inline_c_1) {
- new(dst_inline_c_0) cv::Vec3i(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Vec_19_109e1ab1fb029dd161d06ce89250d921c1128978(Vec3i * ptr_inline_c_0) {
- ptr_inline_c_0->~Vec3i() ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Vec_20_91b908cfeae8b98203b8bd531742626ff5f53c8a(Vec3f * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Vec3f * inline_c_OpenCV_Core_Types_Vec_21_fa060470dc508d0bb9bd79b6168cfefe45fcc0da(float x_inline_c_0, float y_inline_c_1, float z_inline_c_2) {
-return ( new cv::Vec<float, 3>(x_inline_c_0, y_inline_c_1, z_inline_c_2) );
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Vec_22_94daa5083f78a31e98a081ce12989a4b37694858(Vec3f * vecPtr_inline_c_0, float * xPtr_inline_c_1, float * yPtr_inline_c_2, float * zPtr_inline_c_3) {
-const cv::Vec<float, 3> & p = *vecPtr_inline_c_0;
-*xPtr_inline_c_1 = p[0];
-*yPtr_inline_c_2 = p[1];
-*zPtr_inline_c_3 = p[2];
-
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Vec_23_abdda6f78559aaa967a2b2cdba3d1e324b5b289d(Vec3f * dst_inline_c_0, Vec3f * src_inline_c_1) {
- new(dst_inline_c_0) cv::Vec3f(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Vec_24_868135adcc75b3b5515e158b86191f31669f0803(Vec3f * ptr_inline_c_0) {
- ptr_inline_c_0->~Vec3f() ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Vec_25_c17e46388d705916ce3f180f18dc95cb19548894(Vec3d * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Vec3d * inline_c_OpenCV_Core_Types_Vec_26_cbfdfd5c790d4b8aca9e5fac0905d17790bc3959(double x_inline_c_0, double y_inline_c_1, double z_inline_c_2) {
-return ( new cv::Vec<double, 3>(x_inline_c_0, y_inline_c_1, z_inline_c_2) );
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Vec_27_927fe079641601dfdf2e5a033f8fc5f3cb33357e(Vec3d * vecPtr_inline_c_0, double * xPtr_inline_c_1, double * yPtr_inline_c_2, double * zPtr_inline_c_3) {
-const cv::Vec<double, 3> & p = *vecPtr_inline_c_0;
-*xPtr_inline_c_1 = p[0];
-*yPtr_inline_c_2 = p[1];
-*zPtr_inline_c_3 = p[2];
-
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Vec_28_7afa319750c112112ecf5695bc47cb94796d9871(Vec3d * dst_inline_c_0, Vec3d * src_inline_c_1) {
- new(dst_inline_c_0) cv::Vec3d(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Vec_29_d14b2318148691baf560aa7586c48a98d5f9ba71(Vec3d * ptr_inline_c_0) {
- ptr_inline_c_0->~Vec3d() ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Vec_30_80a659ecf510418217b7a41de2100e08300fed62(Vec4i * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Vec4i * inline_c_OpenCV_Core_Types_Vec_31_0ae99afb6a03e793d17c781a872bf1be8306c8e1(int32_t x_inline_c_0, int32_t y_inline_c_1, int32_t z_inline_c_2, int32_t w_inline_c_3) {
-return ( new cv::Vec<int32_t, 4>(x_inline_c_0, y_inline_c_1, z_inline_c_2, w_inline_c_3) );
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Vec_32_c34ce15118daef551bdae306fcefb01334cd6b39(Vec4i * vecPtr_inline_c_0, int32_t * xPtr_inline_c_1, int32_t * yPtr_inline_c_2, int32_t * zPtr_inline_c_3, int32_t * wPtr_inline_c_4) {
-const cv::Vec<int32_t, 4> & p = *vecPtr_inline_c_0;
-*xPtr_inline_c_1 = p[0];
-*yPtr_inline_c_2 = p[1];
-*zPtr_inline_c_3 = p[2];
-*wPtr_inline_c_4 = p[3];
-
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Vec_33_22c2d27a5f24fcbcf39421501b19c458d49bb6f3(Vec4i * dst_inline_c_0, Vec4i * src_inline_c_1) {
- new(dst_inline_c_0) cv::Vec4i(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Vec_34_9b9e5cbd6edcf7f4ee49a222b137eb6c46b92fdf(Vec4i * ptr_inline_c_0) {
- ptr_inline_c_0->~Vec4i() ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Vec_35_9760fbae2ee6131b7974b26f37ad96908668d70f(Vec4f * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Vec4f * inline_c_OpenCV_Core_Types_Vec_36_d7c59efd631649caf759aaa2dc180e73011f6e93(float x_inline_c_0, float y_inline_c_1, float z_inline_c_2, float w_inline_c_3) {
-return ( new cv::Vec<float, 4>(x_inline_c_0, y_inline_c_1, z_inline_c_2, w_inline_c_3) );
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Vec_37_d38530096dcc50e4a3786ffaf9fd81ddc3bc8e03(Vec4f * vecPtr_inline_c_0, float * xPtr_inline_c_1, float * yPtr_inline_c_2, float * zPtr_inline_c_3, float * wPtr_inline_c_4) {
-const cv::Vec<float, 4> & p = *vecPtr_inline_c_0;
-*xPtr_inline_c_1 = p[0];
-*yPtr_inline_c_2 = p[1];
-*zPtr_inline_c_3 = p[2];
-*wPtr_inline_c_4 = p[3];
-
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Vec_38_f6a12031e0f6f6332384d5179f7e1889d1277ecd(Vec4f * dst_inline_c_0, Vec4f * src_inline_c_1) {
- new(dst_inline_c_0) cv::Vec4f(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Vec_39_f50abbe64a09c89abb4c1890256cfaf4eb75d2c4(Vec4f * ptr_inline_c_0) {
- ptr_inline_c_0->~Vec4f() ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Vec_40_71e0c612f928c42e0d9bf1653d0e9f861bbc6cf1(Vec4d * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-Vec4d * inline_c_OpenCV_Core_Types_Vec_41_e33402e2b80c6e38e230ec4148770e0e95684837(double x_inline_c_0, double y_inline_c_1, double z_inline_c_2, double w_inline_c_3) {
-return ( new cv::Vec<double, 4>(x_inline_c_0, y_inline_c_1, z_inline_c_2, w_inline_c_3) );
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Vec_42_e6588cf44cf5ec6d83f4b4734b1c3273e90ad581(Vec4d * vecPtr_inline_c_0, double * xPtr_inline_c_1, double * yPtr_inline_c_2, double * zPtr_inline_c_3, double * wPtr_inline_c_4) {
-const cv::Vec<double, 4> & p = *vecPtr_inline_c_0;
-*xPtr_inline_c_1 = p[0];
-*yPtr_inline_c_2 = p[1];
-*zPtr_inline_c_3 = p[2];
-*wPtr_inline_c_4 = p[3];
-
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Vec_43_5363c43cb6c2a163c53acab25538fc4e19d61cda(Vec4d * dst_inline_c_0, Vec4d * src_inline_c_1) {
- new(dst_inline_c_0) cv::Vec4d(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Core_Types_Vec_44_0a476e8310288423c9baf620a098c92b7174c847(Vec4d * ptr_inline_c_0) {
- ptr_inline_c_0->~Vec4d() ;
-}
-
-}
diff --git a/src/OpenCV/Features2d.cpp b/src/OpenCV/Features2d.cpp
deleted file mode 100644
--- a/src/OpenCV/Features2d.cpp
+++ /dev/null
@@ -1,371 +0,0 @@
-
-#include "opencv2/core.hpp"
-
-#include "opencv2/features2d.hpp"
-
-#include "orb.hpp"
-
-#include "simple_blob_detector.hpp"
-
-using namespace cv;
-
-using namespace cv::flann;
-
-extern "C" {
-void inline_c_OpenCV_Features2d_0_c20526c404a6fe4a0e071193ba0c68f0b5fe2c85(Mat * trainVecPtr_inline_c_0, Mat * trainVecPtr_inline_c_1, int32_t ctrainVecLength_27_inline_c_2, DescriptorMatcher * dmPtr_inline_c_3) {
-
-                std::vector<Mat> buffer( trainVecPtr_inline_c_0
-                                       , trainVecPtr_inline_c_1 + ctrainVecLength_27_inline_c_2 );
-                dmPtr_inline_c_3->add(buffer);
-            
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Features2d_1_2813de60614f1b2e1d0142d271069dc9106fb99d(DescriptorMatcher * dmPtr_inline_c_0) {
- dmPtr_inline_c_0->train(); 
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Features2d_2_3de0409117ca129a76f8d5b6e877199877ed9bf5(Mat * maskPtr_inline_c_0, DescriptorMatcher * dmPtr_inline_c_1, Mat * queryPtr_inline_c_2, Mat * trainPtr_inline_c_3, int32_t * numMatchesPtr_inline_c_4, DMatch *** arrayPtrPtr_inline_c_5) {
-
-                cv::Mat * maskPtr = maskPtr_inline_c_0;
-                std::vector<cv::DMatch> matches = std::vector<cv::DMatch>();
-                dmPtr_inline_c_1->match
-                    ( *queryPtr_inline_c_2
-                    , *trainPtr_inline_c_3
-                    , matches
-                    , maskPtr ? cv::_InputArray(*maskPtr) : cv::_InputArray(noArray())
-                    );
-                *numMatchesPtr_inline_c_4 = matches.size();
-                cv::DMatch * * * arrayPtrPtr = arrayPtrPtr_inline_c_5;
-                cv::DMatch * * arrayPtr = new cv::DMatch * [matches.size()];
-                *arrayPtrPtr = arrayPtr;
-                for (std::vector<cv::DMatch>::size_type ix = 0; ix != matches.size(); ix++)
-                {
-                    cv::DMatch & org = matches[ix];
-                    cv::DMatch * newMatch =
-                        new cv::DMatch( org.queryIdx
-                                      , org.trainIdx
-                                      , org.imgIdx
-                                      , org.distance
-                                      );
-                    arrayPtr[ix] = newMatch;
-                }
-            
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Features2d_3_c754e0d048d4bef52c712950b7974557eb9337ca(DMatch *** arrayPtrPtr_inline_c_0) {
-
-                delete [] *arrayPtrPtr_inline_c_0;
-            
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Features2d_4_f81e11a4cba05db7138b02901752eba162a82674(Mat * maskPtr_inline_c_0, DescriptorMatcher * dmPtr_inline_c_1, Mat * queryPtr_inline_c_2, int32_t * numMatchesPtr_inline_c_3, DMatch *** arrayPtrPtr_inline_c_4) {
-
-                cv::Mat * maskPtr = maskPtr_inline_c_0;
-                std::vector<cv::DMatch> matches = std::vector<cv::DMatch>();
-                dmPtr_inline_c_1->match
-                    ( *queryPtr_inline_c_2
-                    , matches
-                    , maskPtr ? cv::_InputArray(*maskPtr) : cv::_InputArray(noArray())
-                    );
-                *numMatchesPtr_inline_c_3 = matches.size();
-                cv::DMatch * * * arrayPtrPtr = arrayPtrPtr_inline_c_4;
-                cv::DMatch * * arrayPtr = new cv::DMatch * [matches.size()];
-                *arrayPtrPtr = arrayPtr;
-                for (std::vector<cv::DMatch>::size_type ix = 0; ix != matches.size(); ix++)
-                {
-                    cv::DMatch & org = matches[ix];
-                    cv::DMatch * newMatch =
-                        new cv::DMatch( org.queryIdx
-                                      , org.trainIdx
-                                      , org.imgIdx
-                                      , org.distance
-                                      );
-                    arrayPtr[ix] = newMatch;
-                }
-            
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Features2d_5_c754e0d048d4bef52c712950b7974557eb9337ca(DMatch *** arrayPtrPtr_inline_c_0) {
-
-                delete [] *arrayPtrPtr_inline_c_0;
-            
-}
-
-}
-
-extern "C" {
-Ptr_ORB * inline_c_OpenCV_Features2d_6_6b7f5143762c2c000af552afd3a3d686bdefea20(int32_t orb_nfeatures_inline_c_0, float cscaleFactor_27_inline_c_1, int32_t orb_nlevels_inline_c_2, int32_t orb_edgeThreshold_inline_c_3, int32_t orb_firstLevel_inline_c_4, int32_t cWTA_K_27_inline_c_5, int32_t cscoreType_27_inline_c_6, int32_t orb_patchSize_inline_c_7, int32_t orb_fastThreshold_inline_c_8) {
-
-      cv::Ptr<cv::ORB> orbPtr =
-        cv::ORB::create
-        ( orb_nfeatures_inline_c_0
-        , cscaleFactor_27_inline_c_1
-        , orb_nlevels_inline_c_2
-        , orb_edgeThreshold_inline_c_3
-        , orb_firstLevel_inline_c_4
-        , cWTA_K_27_inline_c_5
-        , cscoreType_27_inline_c_6
-        , orb_patchSize_inline_c_7
-        , orb_fastThreshold_inline_c_8
-        );
-      return new cv::Ptr<cv::ORB>(orbPtr);
-    
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_Features2d_7_ab5c3c7294768d603136931b15d35c34105db400(Ptr_ORB * orbPtr_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::ORB * orb = *orbPtr_inline_c_0;
-          cv::Mat * maskPtr = maskPtr_inline_c_1;
-
-          std::vector<cv::KeyPoint> keypoints = std::vector<cv::KeyPoint>();
-          orb->
-            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_Features2d_8_cf7ed8abd0aadc595f02b1ca9ec2ba13285a12cd(KeyPoint *** arrayPtrPtr_inline_c_0) {
-
-            delete [] *arrayPtrPtr_inline_c_0;
-          
-}
-
-}
-
-extern "C" {
-Ptr_SimpleBlobDetector * inline_c_OpenCV_Features2d_9_6d49cdf958cb32caa9373b05297fc3fae472250c(unsigned char cblobColor_27_inline_c_0, bool cfilterByArea_27_inline_c_1, bool cfilterByCircularity_27_inline_c_2, bool cfilterByColor_27_inline_c_3, bool cfilterByConvexity_27_inline_c_4, bool cfilterByInertia_27_inline_c_5, float cmaxArea_27_inline_c_6, float cmaxCircularity_27_inline_c_7, float cmaxConvexity_27_inline_c_8, float cmaxInertiaRatio_27_inline_c_9, float cmaxThreshold_27_inline_c_10, float cminArea_27_inline_c_11, float cminCircularity_27_inline_c_12, float cminConvexity_27_inline_c_13, float cminDistBetweenBlobs_27_inline_c_14, float cminInertiaRatio_27_inline_c_15, float cminRepeatability_27_inline_c_16, float cminThreshold_27_inline_c_17, float cthresholdStep_27_inline_c_18) {
-
-      cv::SimpleBlobDetector::Params params;
-      params.blobColor           = cblobColor_27_inline_c_0;
-      params.filterByArea        = cfilterByArea_27_inline_c_1;
-      params.filterByCircularity = cfilterByCircularity_27_inline_c_2;
-      params.filterByColor       = cfilterByColor_27_inline_c_3;
-      params.filterByConvexity   = cfilterByConvexity_27_inline_c_4;
-      params.filterByInertia     = cfilterByInertia_27_inline_c_5;
-      params.maxArea             = cmaxArea_27_inline_c_6;
-      params.maxCircularity      = cmaxCircularity_27_inline_c_7;
-      params.maxConvexity        = cmaxConvexity_27_inline_c_8;
-      params.maxInertiaRatio     = cmaxInertiaRatio_27_inline_c_9;
-      params.maxThreshold        = cmaxThreshold_27_inline_c_10;
-      params.minArea             = cminArea_27_inline_c_11;
-      params.minCircularity      = cminCircularity_27_inline_c_12;
-      params.minConvexity        = cminConvexity_27_inline_c_13;
-      params.minDistBetweenBlobs = cminDistBetweenBlobs_27_inline_c_14;
-      params.minInertiaRatio     = cminInertiaRatio_27_inline_c_15;
-      params.minRepeatability    = cminRepeatability_27_inline_c_16;
-      params.minThreshold        = cminThreshold_27_inline_c_17;
-      params.thresholdStep       = cthresholdStep_27_inline_c_18;
-      cv::Ptr<cv::SimpleBlobDetector> detectorPtr =
-        cv::SimpleBlobDetector::create(params);
-      return new cv::Ptr<cv::SimpleBlobDetector>(detectorPtr);
-    
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_Features2d_10_d7dbc50e18a0ed3c0249b015e18a47ba992cc422(Ptr_SimpleBlobDetector * detectorPtr_inline_c_0, Mat * maskPtr_inline_c_1, Mat * imgPtr_inline_c_2, int32_t * numPtsPtr_inline_c_3, KeyPoint *** arrayPtrPtr_inline_c_4) {
-
-  try
-  {   
-          cv::SimpleBlobDetector * detector = *detectorPtr_inline_c_0;
-          cv::Mat * maskPtr = maskPtr_inline_c_1;
-
-          std::vector<cv::KeyPoint> keypoints = std::vector<cv::KeyPoint>();
-          detector->
-            detect
-            ( *imgPtr_inline_c_2
-            , keypoints
-            , maskPtr ? cv::_InputArray(*maskPtr) : cv::_InputArray(noArray())
-            );
-
-          *numPtsPtr_inline_c_3 = keypoints.size();
-
-          cv::KeyPoint * * * arrayPtrPtr = arrayPtrPtr_inline_c_4;
-          cv::KeyPoint * * arrayPtr = new cv::KeyPoint * [keypoints.size()];
-          *arrayPtrPtr = arrayPtr;
-
-          for (std::vector<cv::KeyPoint>::size_type ix = 0; ix != keypoints.size(); ix++)
-          {
-            arrayPtr[ix] = new cv::KeyPoint(keypoints[ix]);
-          }
-        
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Features2d_11_cf7ed8abd0aadc595f02b1ca9ec2ba13285a12cd(KeyPoint *** arrayPtrPtr_inline_c_0) {
-
-            delete [] *arrayPtrPtr_inline_c_0;
-          
-}
-
-}
-
-extern "C" {
-BFMatcher * inline_c_OpenCV_Features2d_12_3d629b7d8af2ebe2d28b0b1fe498acf0062a5280(int32_t cnormType_27_inline_c_0, bool ccrossCheck_27_inline_c_1) {
-return (
-      new cv::BFMatcher
-          ( cnormType_27_inline_c_0
-          , ccrossCheck_27_inline_c_1
-          )
-    );
-}
-
-}
-
-extern "C" {
-void * inline_c_OpenCV_Features2d_13_0d213c0657123ccc4d29cdc7303c0b69c02d5fda(int32_t ctree_27_inline_c_0) {
-return ( new flann::KDTreeIndexParams(ctree_27_inline_c_0) );
-}
-
-}
-
-extern "C" {
-void * inline_c_OpenCV_Features2d_14_2c184908ffa3530071446466c17650df005901f2(int32_t ctableNumber_27_inline_c_0, int32_t ckeySize_27_inline_c_1, int32_t cmultiProbeLevel_27_inline_c_2) {
-return ( new cv::flann::LshIndexParams(ctableNumber_27_inline_c_0, ckeySize_27_inline_c_1, cmultiProbeLevel_27_inline_c_2) );
-}
-
-}
-
-extern "C" {
-void * inline_c_OpenCV_Features2d_15_f616e207428e82c732ad58557798246008ce8ba8(int32_t cchecks_27_inline_c_0, float ceps_27_inline_c_1, bool csorted_27_inline_c_2) {
-return ( new cv::flann::SearchParams(cchecks_27_inline_c_0, ceps_27_inline_c_1, csorted_27_inline_c_2) );
-}
-
-}
-
-extern "C" {
-FlannBasedMatcher * inline_c_OpenCV_Features2d_16_6b8b6e4917570b136dfcc14b4750c0f143a658dd(void * cindexParams_27_inline_c_0, void * csearchParams_27_inline_c_1) {
-return (
-      new cv::FlannBasedMatcher((flann::IndexParams*)(cindexParams_27_inline_c_0), (flann::SearchParams*)(csearchParams_27_inline_c_1))
-    );
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_Features2d_17_9769634ffcfe6b2423aca319c5ed479323f9a54a(KeyPoint * kps1Ptr_inline_c_0, KeyPoint * kps1Ptr_inline_c_1, int32_t ckps1Length_27_inline_c_2, KeyPoint * kps2Ptr_inline_c_3, KeyPoint * kps2Ptr_inline_c_4, int32_t ckps2Length_27_inline_c_5, DMatch * mt12Ptr_inline_c_6, DMatch * mt12Ptr_inline_c_7, int32_t cmatches1to2Length_27_inline_c_8, Mat * img1Ptr_inline_c_9, Mat * img2Ptr_inline_c_10, Mat * outImgPtr_inline_c_11) {
-
-  try
-  {   
-                std::vector<KeyPoint> kps1(kps1Ptr_inline_c_0, kps1Ptr_inline_c_1 + ckps1Length_27_inline_c_2);
-                std::vector<KeyPoint> kps2(kps2Ptr_inline_c_3, kps2Ptr_inline_c_4 + ckps2Length_27_inline_c_5);
-                std::vector<DMatch>   mt12(mt12Ptr_inline_c_6,   mt12Ptr_inline_c_7 + cmatches1to2Length_27_inline_c_8);
-                drawMatches(
-                    *img1Ptr_inline_c_9,
-                    kps1,
-                    *img2Ptr_inline_c_10,
-                    kps2,
-                    mt12,
-                    *outImgPtr_inline_c_11);
-            
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Features2d_18_6765b7d0bd3bbad57c755d54daef3014c487f076(FlannBasedMatcher * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Features2d_19_4d27bc77ab4560f842e67bc6c3296c78e8185def(BFMatcher * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Features2d_20_33d1ad332669dd8a8debec52f30c332c6ecaca71(Ptr_SimpleBlobDetector * ptr_inline_c_0) {
-
-                  cv::Ptr<cv::SimpleBlobDetector> * simpleBlobDetector_ptr_ptr = ptr_inline_c_0;
-                  simpleBlobDetector_ptr_ptr->release();
-                  delete simpleBlobDetector_ptr_ptr;
-                
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Features2d_21_ed7595b29d7e25c46f90b240e3eaf60bd8a0e85f(Ptr_ORB * ptr_inline_c_0) {
-
-                  cv::Ptr<cv::ORB> * orb_ptr_ptr = ptr_inline_c_0;
-                  orb_ptr_ptr->release();
-                  delete orb_ptr_ptr;
-                
-}
-
-}
diff --git a/src/OpenCV/HighGui.cpp b/src/OpenCV/HighGui.cpp
deleted file mode 100644
--- a/src/OpenCV/HighGui.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-
-#include "opencv2/core.hpp"
-
-#include "opencv2/highgui.hpp"
-
-using namespace cv;
-
-extern "C" {
-void inline_c_OpenCV_HighGui_0_2d7609c7f0e6c42f93d15df73edc3537e124c660(char * cname_27_inline_c_0, char * ctitle_27_inline_c_1) {
-
-        char * cname = cname_27_inline_c_0;
-        cv::namedWindow(cname, cv::WINDOW_NORMAL | cv::WINDOW_KEEPRATIO);
-        cv::setWindowTitle(cname, ctitle_27_inline_c_1);
-      
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_HighGui_1_c5fcdd7a84ce1bf6ff6826a91819bb2eeec8b958(char * cname_27_inline_c_0) {
- cv::destroyWindow(cname_27_inline_c_0); ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_HighGui_2_6d77ebbd6b41637df8ae54e62490b84a083b5302(char * cname_27_inline_c_0, int32_t width_inline_c_1, int32_t height_inline_c_2) {
- cv::resizeWindow(cname_27_inline_c_0, width_inline_c_1, height_inline_c_2); ;
-}
-
-}
-
-extern "C" {
-int32_t inline_c_OpenCV_HighGui_3_fb37cd90c9f3b163f9aca91658c8817f9bd8cd3b(int32_t delay_inline_c_0) {
-return ( cv::waitKey(delay_inline_c_0) );
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_HighGui_4_74ffe2404cfc5216db3374d216ffaa2c36262814(char * cname_27_inline_c_0, MouseCallback callbackPtr_inline_c_1) {
- cv::setMouseCallback(cname_27_inline_c_0, callbackPtr_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_HighGui_5_fb47c18a6250110f9b081b530e8420cf3207a0c8(char * ctrackbarName_27_inline_c_0, char * cname_27_inline_c_1, int32_t * valuePtr_inline_c_2, int32_t count_inline_c_3, TrackbarCallback callbackPtr_inline_c_4) {
-
-        (void)cv::createTrackbar
-          ( ctrackbarName_27_inline_c_0
-          , cname_27_inline_c_1
-          , valuePtr_inline_c_2
-          , count_inline_c_3
-          , callbackPtr_inline_c_4
-          )
-      ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_HighGui_6_940dcb370c787776fef1ce37b44d4eb5e8e1fd3e(char * cname_27_inline_c_0, Mat * matPtr_inline_c_1) {
- cv::imshow(cname_27_inline_c_0, *matPtr_inline_c_1); ;
-}
-
-}
diff --git a/src/OpenCV/ImgCodecs.cpp b/src/OpenCV/ImgCodecs.cpp
deleted file mode 100644
--- a/src/OpenCV/ImgCodecs.cpp
+++ /dev/null
@@ -1,53 +0,0 @@
-
-#include <vector>
-
-#include "opencv2/core.hpp"
-
-#include "opencv2/imgcodecs.hpp"
-
-using namespace cv;
-
-extern "C" {
-Mat * inline_c_OpenCV_ImgCodecs_0_36f746c8786403014d5e310cdd8e7c7dc1545ec1(char * hbuf_inline_c_0, long hbuf_inline_c_1, int32_t cimreadMode_27_inline_c_2) {
-
-      cv::_InputArray cbuf = cv::_InputArray(hbuf_inline_c_0, hbuf_inline_c_1);
-      return new cv::Mat(cv::imdecode(cbuf, cimreadMode_27_inline_c_2));
-    
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_ImgCodecs_1_d787acca1f472edcee9c045aea331d0f2c0df0b1(void * vecPtr_inline_c_0) {
- delete reinterpret_cast< std::vector<uchar> * >(vecPtr_inline_c_0) ;
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_ImgCodecs_2_7bba68846f49f21451c299ab6a8a271ad64dc223(int * params_inline_c_0, void ** vecPtrPtr_inline_c_1, long params_inline_c_2, char * extPtr_inline_c_3, Mat * matPtr_inline_c_4, int32_t * cbufSizePtr_27_inline_c_5, unsigned char ** bufPtrPtr_inline_c_6) {
-
-  try
-  {   
-        const int * const paramsPtr = params_inline_c_0;
-        std::vector<uchar> * vec = new std::vector<uchar>();
-        *vecPtrPtr_inline_c_1 = reinterpret_cast<void *>(vec);
-        std::vector<int> params(paramsPtr, paramsPtr + params_inline_c_2);
-        cv::imencode( extPtr_inline_c_3
-                    , *matPtr_inline_c_4
-                    , *vec
-                    , params
-                    );
-        *cbufSizePtr_27_inline_c_5 = vec->size();
-        *bufPtrPtr_inline_c_6 = &((*vec)[0]);
-      
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
diff --git a/src/OpenCV/ImgProc/CascadeClassifier.cpp b/src/OpenCV/ImgProc/CascadeClassifier.cpp
deleted file mode 100644
--- a/src/OpenCV/ImgProc/CascadeClassifier.cpp
+++ /dev/null
@@ -1,108 +0,0 @@
-
-#include "opencv2/core.hpp"
-
-#include "opencv2/objdetect.hpp"
-
-using namespace cv;
-
-extern "C" {
-CascadeClassifier * inline_c_OpenCV_ImgProc_CascadeClassifier_0_6b80627dbb95966554673ed98b4bf9e812eac7fe(const char * cfp_27_inline_c_0) {
-return ( new CascadeClassifier(cv::String(cfp_27_inline_c_0)) );
-}
-
-}
-
-extern "C" {
-bool inline_c_OpenCV_ImgProc_CascadeClassifier_1_17f93b884990af769e6f4ab16cdb7850ba9e4770(CascadeClassifier * ccPtr_inline_c_0) {
-return ( ccPtr_inline_c_0->empty() );
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_ImgProc_CascadeClassifier_2_467f3c6b4b735f82c540b6876885dfe6994469fb(CascadeClassifier * ccPtr_inline_c_0, Mat * srcPtr_inline_c_1, double cscaleFactor_27_inline_c_2, int32_t cminNeighbours_27_inline_c_3, Size2i * minSizePtr_inline_c_4, Size2i * maxSizePtr_inline_c_5, int32_t * numRectsPtr_inline_c_6, Rect2i *** rectsPtrPtr_inline_c_7) {
-
-        std::vector<cv::Rect> rects;
-        ccPtr_inline_c_0->detectMultiScale(
-          *srcPtr_inline_c_1,
-          rects,
-          cscaleFactor_27_inline_c_2,
-          cminNeighbours_27_inline_c_3,
-          0,
-          *minSizePtr_inline_c_4,
-          *maxSizePtr_inline_c_5);
-        *numRectsPtr_inline_c_6 = rects.size();
-        cv::Rect * * rectsPtr = new cv::Rect * [rects.size()];
-        *rectsPtrPtr_inline_c_7 = rectsPtr;
-        for (std::vector<cv::Rect>::size_type i = 0; i != rects.size(); i++) {
-          rectsPtr[i] = new cv::Rect(rects[i]);
-        }
-      
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_ImgProc_CascadeClassifier_3_4e4326e12039326df2bfe9ec9769c5c8e08cabda(Rect2i *** rectsPtrPtr_inline_c_0) {
- delete [] *rectsPtrPtr_inline_c_0; 
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_ImgProc_CascadeClassifier_4_a3df942cd43c33275e4dc0c56e3f8201fa538bbc(CascadeClassifier * ccPtr_inline_c_0, Mat * srcPtr_inline_c_1, double cscaleFactor_27_inline_c_2, int32_t cminNeighbours_27_inline_c_3, Size2i * minSizePtr_inline_c_4, Size2i * maxSizePtr_inline_c_5, int32_t * numRectsPtr_inline_c_6, Rect2i *** rectsPtrPtr_inline_c_7, int32_t ** rejectLevelsPtrPtr_inline_c_8, double ** levelWeightsPtrPtr_inline_c_9) {
-
-        std::vector<cv::Rect> rects;
-        std::vector<int> rejectLevels;
-        std::vector<double> levelWeights;
-        ccPtr_inline_c_0->detectMultiScale(
-          *srcPtr_inline_c_1,
-          rects,
-          rejectLevels,
-          levelWeights,
-          cscaleFactor_27_inline_c_2,
-          cminNeighbours_27_inline_c_3,
-          0,
-          *minSizePtr_inline_c_4,
-          *maxSizePtr_inline_c_5,
-          true);
-        *numRectsPtr_inline_c_6 = rects.size();
-
-        cv::Rect * * rectsPtr = new cv::Rect * [rects.size()];
-        *rectsPtrPtr_inline_c_7 = rectsPtr;
-
-        int32_t * rejectLevelsPtr = new int32_t [rejectLevels.size()];
-        *rejectLevelsPtrPtr_inline_c_8 = rejectLevelsPtr;
-
-        double * levelWeightsPtr = new double [levelWeights.size()];
-        *levelWeightsPtrPtr_inline_c_9 = levelWeightsPtr;
-
-
-        for (std::vector<cv::Rect>::size_type i = 0; i != rects.size(); i++) {
-
-          rectsPtr[i] = new cv::Rect(rects[i]);
-          rejectLevelsPtr[i] = rejectLevels[i];
-          levelWeightsPtr[i] = levelWeights[i];
-        }
-      
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_ImgProc_CascadeClassifier_5_5eecd2b84cc54564205c6b34cbf0d26aa68cf96c(Rect2i *** rectsPtrPtr_inline_c_0, int32_t ** rejectLevelsPtrPtr_inline_c_1, double ** levelWeightsPtrPtr_inline_c_2) {
-
-      delete [] *rectsPtrPtr_inline_c_0;
-      delete [] *rejectLevelsPtrPtr_inline_c_1;
-      delete [] *levelWeightsPtrPtr_inline_c_2;
-      
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_ImgProc_CascadeClassifier_6_305cd84927e8af4495fea16fc54550910af3cd0e(CascadeClassifier * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
diff --git a/src/OpenCV/ImgProc/ColorMaps.cpp b/src/OpenCV/ImgProc/ColorMaps.cpp
deleted file mode 100644
--- a/src/OpenCV/ImgProc/ColorMaps.cpp
+++ /dev/null
@@ -1,27 +0,0 @@
-
-#include "opencv2/core.hpp"
-
-#include "opencv2/imgproc.hpp"
-
-using namespace cv;
-
-extern "C" {
-Exception * inline_c_OpenCV_ImgProc_ColorMaps_0_9631e9b68167076ee89b837a473e459ecefb6d62(Mat * srcPtr_inline_c_0, Mat * dstPtr_inline_c_1, int32_t ccolorMap_27_inline_c_2) {
-
-  try
-  {   
-          cv::applyColorMap( *srcPtr_inline_c_0
-                           , *dstPtr_inline_c_1
-                           , ccolorMap_27_inline_c_2
-                           );
-        
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
diff --git a/src/OpenCV/ImgProc/Drawing.cpp b/src/OpenCV/ImgProc/Drawing.cpp
deleted file mode 100644
--- a/src/OpenCV/ImgProc/Drawing.cpp
+++ /dev/null
@@ -1,214 +0,0 @@
-
-#include "opencv2/core.hpp"
-
-#include "opencv2/imgproc.hpp"
-
-using namespace cv;
-
-extern "C" {
-void inline_c_OpenCV_ImgProc_Drawing_0_3a0520f15da2fc2b3962c29cc5c120d9a9c18abf(Mat * matPtr_inline_c_0, Point2i * pt1Ptr_inline_c_1, Point2i * pt2Ptr_inline_c_2, Scalar * colorPtr_inline_c_3, int32_t thickness_inline_c_4, int32_t clineType_27_inline_c_5, int32_t shift_inline_c_6, double ctipLength_27_inline_c_7) {
-
-        cv::arrowedLine( *matPtr_inline_c_0
-                       , *pt1Ptr_inline_c_1
-                       , *pt2Ptr_inline_c_2
-                       , *colorPtr_inline_c_3
-                       , thickness_inline_c_4
-                       , clineType_27_inline_c_5
-                       , shift_inline_c_6
-                       , ctipLength_27_inline_c_7
-                       )
-      ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_ImgProc_Drawing_1_daca4286248a7ee2ccda3f206be5689da30871fe(Mat * matPtr_inline_c_0, Point2i * centerPtr_inline_c_1, int32_t radius_inline_c_2, Scalar * colorPtr_inline_c_3, int32_t thickness_inline_c_4, int32_t clineType_27_inline_c_5, int32_t shift_inline_c_6) {
-
-        cv::circle( *matPtr_inline_c_0
-                  , *centerPtr_inline_c_1
-                  , radius_inline_c_2
-                  , *colorPtr_inline_c_3
-                  , thickness_inline_c_4
-                  , clineType_27_inline_c_5
-                  , shift_inline_c_6
-                  )
-      ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_ImgProc_Drawing_2_3cbae587154ddb0812861be9b3f0d9acdceae727(Mat * matPtr_inline_c_0, Point2i * centerPtr_inline_c_1, Size2i * axesPtr_inline_c_2, double cangle_27_inline_c_3, double cstartAngle_27_inline_c_4, double cendAngle_27_inline_c_5, Scalar * colorPtr_inline_c_6, int32_t thickness_inline_c_7, int32_t clineType_27_inline_c_8, int32_t shift_inline_c_9) {
-
-        cv::ellipse( *matPtr_inline_c_0
-                   , *centerPtr_inline_c_1
-                   , *axesPtr_inline_c_2
-                   , cangle_27_inline_c_3
-                   , cstartAngle_27_inline_c_4
-                   , cendAngle_27_inline_c_5
-                   , *colorPtr_inline_c_6
-                   , thickness_inline_c_7
-                   , clineType_27_inline_c_8
-                   , shift_inline_c_9
-                   )
-      ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_ImgProc_Drawing_3_031c409cd06f5215f5e4a5670cb5b25eccb4ca11(Mat * matPtr_inline_c_0, Point2i * pointsPtr_inline_c_1, int32_t cnumPoints_27_inline_c_2, Scalar * colorPtr_inline_c_3, int32_t clineType_27_inline_c_4, int32_t shift_inline_c_5) {
-
-        cv::fillConvexPoly( *matPtr_inline_c_0
-                          , pointsPtr_inline_c_1
-                          , cnumPoints_27_inline_c_2
-                          , *colorPtr_inline_c_3
-                          , clineType_27_inline_c_4
-                          , shift_inline_c_5
-                          )
-      ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_ImgProc_Drawing_4_87a75e1d46e9256c81dbe6273a64341fe7c2cfe7(Mat * matPtr_inline_c_0, const Point2i ** polygonsPtr_inline_c_1, int32_t * nptsPtr_inline_c_2, int32_t cnumPolygons_27_inline_c_3, Scalar * colorPtr_inline_c_4, int32_t clineType_27_inline_c_5, int32_t shift_inline_c_6) {
-
-        cv::fillPoly( *matPtr_inline_c_0
-                    , polygonsPtr_inline_c_1
-                    , nptsPtr_inline_c_2
-                    , cnumPolygons_27_inline_c_3
-                    , *colorPtr_inline_c_4
-                    , clineType_27_inline_c_5
-                    , shift_inline_c_6
-                    )
-      ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_ImgProc_Drawing_5_94d9ed25c5bccafc37420981e18c6003529185f3(Mat * matPtr_inline_c_0, const Point2i ** curvesPtr_inline_c_1, int32_t * nptsPtr_inline_c_2, int32_t cnumCurves_27_inline_c_3, bool cisClosed_27_inline_c_4, Scalar * colorPtr_inline_c_5, int32_t thickness_inline_c_6, int32_t clineType_27_inline_c_7, int32_t shift_inline_c_8) {
-
-        cv::polylines
-        ( *matPtr_inline_c_0
-        , curvesPtr_inline_c_1
-        , nptsPtr_inline_c_2
-        , cnumCurves_27_inline_c_3
-        , cisClosed_27_inline_c_4
-        , *colorPtr_inline_c_5
-        , thickness_inline_c_6
-        , clineType_27_inline_c_7
-        , shift_inline_c_8
-        );
-      ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_ImgProc_Drawing_6_6ffd1c2cabd6b1495a585104598e09378cca874b(Mat * matPtr_inline_c_0, Point2i * pt1Ptr_inline_c_1, Point2i * pt2Ptr_inline_c_2, Scalar * colorPtr_inline_c_3, int32_t thickness_inline_c_4, int32_t clineType_27_inline_c_5, int32_t shift_inline_c_6) {
-
-        cv::line( *matPtr_inline_c_0
-                , *pt1Ptr_inline_c_1
-                , *pt2Ptr_inline_c_2
-                , *colorPtr_inline_c_3
-                , thickness_inline_c_4
-                , clineType_27_inline_c_5
-                , shift_inline_c_6
-                )
-      ;
-}
-
-}
-
-extern "C" {
-Size2i * inline_c_OpenCV_ImgProc_Drawing_7_68fda68cf830daae4fb5f792ee50138e035ec7bc(char * ctext_27_inline_c_0, int32_t cfontFace_27_inline_c_1, double cfontScale_27_inline_c_2, int32_t thickness_inline_c_3, int32_t * cbaseLinePtr_27_inline_c_4) {
-
-          Size size = cv::getTextSize( ctext_27_inline_c_0
-                                     , cfontFace_27_inline_c_1
-                                     , cfontScale_27_inline_c_2
-                                     , thickness_inline_c_3
-                                     , cbaseLinePtr_27_inline_c_4
-                                     );
-          return new Size(size);
-        
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_ImgProc_Drawing_8_6328657f90b4ad0a72d22e3bfae3609a8ac9c164(Mat * matPtr_inline_c_0, char * ctext_27_inline_c_1, Point2i * orgPtr_inline_c_2, int32_t cfontFace_27_inline_c_3, double cfontScale_27_inline_c_4, Scalar * colorPtr_inline_c_5, int32_t thickness_inline_c_6, int32_t clineType_27_inline_c_7, bool cbottomLeftOrigin_27_inline_c_8) {
-
-        cv::putText( *matPtr_inline_c_0
-                   , ctext_27_inline_c_1
-                   , *orgPtr_inline_c_2
-                   , cfontFace_27_inline_c_3
-                   , cfontScale_27_inline_c_4
-                   , *colorPtr_inline_c_5
-                   , thickness_inline_c_6
-                   , clineType_27_inline_c_7
-                   , cbottomLeftOrigin_27_inline_c_8
-                   )
-      ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_ImgProc_Drawing_9_29c08dfd62c9d47ba6b543619ed3098b9438d5b2(Mat * matPtr_inline_c_0, Rect2i * rectPtr_inline_c_1, Scalar * colorPtr_inline_c_2, int32_t thickness_inline_c_3, int32_t clineType_27_inline_c_4, int32_t shift_inline_c_5) {
-
-        cv::rectangle( *matPtr_inline_c_0
-                     , *rectPtr_inline_c_1
-                     , *colorPtr_inline_c_2
-                     , thickness_inline_c_3
-                     , clineType_27_inline_c_4
-                     , shift_inline_c_5
-                     )
-      ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_ImgProc_Drawing_10_498c9f67c0218fe7be40785d262dde694e17d039(int32_t * contourLengthsPtr_inline_c_0, Point2i * contoursPtrPtr_inline_c_1, int32_t numContours_inline_c_2, Mat * dstPtr_inline_c_3, Scalar * colorPtr_inline_c_4, int32_t cthickness_27_inline_c_5, int32_t clineType_27_inline_c_6) {
-
-      int32_t *contourLengths = contourLengthsPtr_inline_c_0;
-      Point2i * contoursPtr = contoursPtrPtr_inline_c_1;
-      std::vector<std::vector<cv::Point>> contours;
-      int32_t numContours = numContours_inline_c_2;
-
-      int k = 0;
-      for(int i = 0; i < numContours; i++) {
-        std::vector<cv::Point> contour;
-        for(int j = 0; j < contourLengths[i]; j++) {
-          contour.push_back( contoursPtr[k] );
-          k++;
-        }
-        contours.push_back(contour);
-      }
-
-      cv::drawContours(
-        *dstPtr_inline_c_3,
-        contours,
-        -1,
-        *colorPtr_inline_c_4,
-        cthickness_27_inline_c_5,
-        clineType_27_inline_c_6
-      );
-    ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_ImgProc_Drawing_11_5cbadc68dfbca79abe64e3cf58ccba5b4bb72b69(Mat * matPtr_inline_c_0, Point2i * centerPtr_inline_c_1, Scalar * colorPtr_inline_c_2) {
-
-      cv::drawMarker( *matPtr_inline_c_0
-                    , *centerPtr_inline_c_1
-                    , *colorPtr_inline_c_2)
-    ;
-}
-
-}
diff --git a/src/OpenCV/ImgProc/Drawing.hsc b/src/OpenCV/ImgProc/Drawing.hsc
--- a/src/OpenCV/ImgProc/Drawing.hsc
+++ b/src/OpenCV/ImgProc/Drawing.hsc
@@ -813,7 +813,7 @@
     [C.exp|void {
       int32_t *contourLengths = $(int32_t * contourLengthsPtr);
       Point2i * contoursPtr = $(Point2i * contoursPtrPtr);
-      std::vector<std::vector<cv::Point>> contours;
+      std::vector< std::vector<cv::Point> > contours;
       int32_t numContours = $(int32_t numContours);
 
       int k = 0;
diff --git a/src/OpenCV/ImgProc/FeatureDetection.cpp b/src/OpenCV/ImgProc/FeatureDetection.cpp
deleted file mode 100644
--- a/src/OpenCV/ImgProc/FeatureDetection.cpp
+++ /dev/null
@@ -1,157 +0,0 @@
-
-#include "opencv2/core.hpp"
-
-#include "opencv2/imgproc.hpp"
-
-using namespace cv;
-
-extern "C" {
-Exception * inline_c_OpenCV_ImgProc_FeatureDetection_0_5f88cbbf14721ff0e52026e5bf93249a196cdb8c(Mat * srcPtr_inline_c_0, Mat * dstPtr_inline_c_1, double cthreshold1_27_inline_c_2, double cthreshold2_27_inline_c_3, int32_t capertureSize_27_inline_c_4, bool cl2Gradient_27_inline_c_5) {
-
-  try
-  {   
-          cv::Canny
-          ( *srcPtr_inline_c_0
-          , *dstPtr_inline_c_1
-          , cthreshold1_27_inline_c_2
-          , cthreshold2_27_inline_c_3
-          , capertureSize_27_inline_c_4
-          , cl2Gradient_27_inline_c_5
-          );
-        
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_ImgProc_FeatureDetection_1_d3ad35ecbcac628897a1552ca7c9008021f820e4(Mat * mskPtr_inline_c_0, Mat * srcPtr_inline_c_1, int32_t maxCorners_inline_c_2, double cqualityLevel_27_inline_c_3, double cminDistance_27_inline_c_4, int32_t cblockSize_27_inline_c_5, bool cuseHarrisDetector_27_inline_c_6, double charrisK_27_inline_c_7, Point2f *** cornersPtrPtr_inline_c_8, int32_t * cornersLengthsPtr_inline_c_9) {
-
-      std::vector<cv::Point2f> corners;
-      Mat * mskPtr = mskPtr_inline_c_0;
-      cv::goodFeaturesToTrack
-      ( *srcPtr_inline_c_1
-      , corners
-      , maxCorners_inline_c_2
-      , cqualityLevel_27_inline_c_3
-      , cminDistance_27_inline_c_4
-      , mskPtr ? _InputArray(*mskPtr) : _InputArray(cv::noArray())
-      , cblockSize_27_inline_c_5
-      , cuseHarrisDetector_27_inline_c_6
-      , charrisK_27_inline_c_7
-      );
-
-      cv::Point2f * * * cornersPtrPtr = cornersPtrPtr_inline_c_8;
-      cv::Point2f * * cornersPtr = new cv::Point2f * [corners.size()];
-      *cornersPtrPtr = cornersPtr;
-
-      *cornersLengthsPtr_inline_c_9 = corners.size();
-
-      for (std::vector<cv::Point2f>::size_type i = 0; i != corners.size(); i++) {
-        cornersPtr[i] = new cv::Point2f( corners[i] );
-      }
-    
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_ImgProc_FeatureDetection_2_c9d92b710b149101347a9c45ed5938492191af5c(Point2f *** cornersPtrPtr_inline_c_0) {
-
-      delete [] *cornersPtrPtr_inline_c_0;
-    
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_ImgProc_FeatureDetection_3_a4f81dd096a5abe34749e20b9be735232e6748b4(Mat * srcPtr_inline_c_0, double cdp_27_inline_c_1, double cminDist_27_inline_c_2, double cparam1_27_inline_c_3, double cparam2_27_inline_c_4, int32_t cminRadius_27_inline_c_5, int32_t cmaxRadius_27_inline_c_6, Vec3f *** circlesPtrPtr_inline_c_7, int32_t * circleLengthsPtr_inline_c_8) {
-
-  try
-  {   
-      std::vector<cv::Vec3f> circles;
-      cv::HoughCircles(
-        *srcPtr_inline_c_0,
-        circles,
-        CV_HOUGH_GRADIENT,
-        cdp_27_inline_c_1,
-        cminDist_27_inline_c_2,
-        cparam1_27_inline_c_3,
-        cparam2_27_inline_c_4,
-        cminRadius_27_inline_c_5,
-        cmaxRadius_27_inline_c_6
-      );
-
-      cv::Vec3f * * * circlesPtrPtr = circlesPtrPtr_inline_c_7;
-      cv::Vec3f * * circlesPtr = new cv::Vec3f * [circles.size()];
-      *circlesPtrPtr = circlesPtr;
-
-      *circleLengthsPtr_inline_c_8 = circles.size();
-
-      for (std::vector<cv::Vec3f>::size_type i = 0; i != circles.size(); i++) {
-        circlesPtr[i] = new cv::Vec3f( circles[i] );
-      }
-    
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_ImgProc_FeatureDetection_4_c6446509d1918e78bf046dd1d2f1c932e3ccf9f6(Vec3f *** circlesPtrPtr_inline_c_0) {
- delete [] *circlesPtrPtr_inline_c_0; 
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_ImgProc_FeatureDetection_5_e55ed1c705d2d80d10931b28319c21af80a9d7e0(Mat * srcPtr_inline_c_0, double crho_27_inline_c_1, double ctheta_27_inline_c_2, int32_t threshold_inline_c_3, double cminLineLength_27_inline_c_4, double cmaxLineGap_27_inline_c_5, int32_t * numLinesPtr_inline_c_6, Vec4i *** linesPtrPtr_inline_c_7) {
-
-        std::vector<cv::Vec4i> lines = std::vector<cv::Vec4i>();
-        cv::HoughLinesP
-          ( *srcPtr_inline_c_0
-          , lines
-          , crho_27_inline_c_1
-          , ctheta_27_inline_c_2
-          , threshold_inline_c_3
-          , cminLineLength_27_inline_c_4
-          , cmaxLineGap_27_inline_c_5
-          );
-
-        *numLinesPtr_inline_c_6 = lines.size();
-
-        cv::Vec4i * * * linesPtrPtr = linesPtrPtr_inline_c_7;
-        cv::Vec4i * * linesPtr = new cv::Vec4i * [lines.size()];
-        *linesPtrPtr = linesPtr;
-
-        for (std::vector<cv::Vec4i>::size_type ix = 0; ix != lines.size(); ix++)
-        {
-          cv::Vec4i & org = lines[ix];
-          cv::Vec4i * newLine = new cv::Vec4i(org[0], org[1], org[2], org[3]);
-          linesPtr[ix] = newLine;
-        }
-      
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_ImgProc_FeatureDetection_6_38d283b332ccfda6ddffce48d6828cd1a8dde2d9(Vec4i *** linesPtrPtr_inline_c_0) {
-
-        delete [] *linesPtrPtr_inline_c_0;
-      
-}
-
-}
diff --git a/src/OpenCV/ImgProc/GeometricImgTransform.cpp b/src/OpenCV/ImgProc/GeometricImgTransform.cpp
deleted file mode 100644
--- a/src/OpenCV/ImgProc/GeometricImgTransform.cpp
+++ /dev/null
@@ -1,167 +0,0 @@
-
-#include "opencv2/core.hpp"
-
-#include "opencv2/imgproc.hpp"
-
-using namespace cv;
-
-extern "C" {
-Exception * inline_c_OpenCV_ImgProc_GeometricImgTransform_0_c2b99805a51c969cd8f0197f3312633538eae840(Mat * srcPtr_inline_c_0, Mat * dstPtr_inline_c_1, Size2i * dsizePtr_inline_c_2, double fx_inline_c_3, double fy_inline_c_4, int32_t cinterpolation_27_inline_c_5) {
-
-  try
-  {   
-          cv::resize
-          ( *srcPtr_inline_c_0
-          , *dstPtr_inline_c_1
-          , *dsizePtr_inline_c_2
-          , fx_inline_c_3
-          , fy_inline_c_4
-          , cinterpolation_27_inline_c_5
-          );
-        
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_ImgProc_GeometricImgTransform_1_3de91dcfbe482398170a011285287da39aab63a0(Mat * srcPtr_inline_c_0, Mat * dstPtr_inline_c_1, Mat * transformPtr_inline_c_2, int32_t cinterpolationMethod_27_inline_c_3, int32_t cinverse_27_inline_c_4, int32_t cfillOutliers_27_inline_c_5, int32_t cborderMode_27_inline_c_6, Scalar * borderValuePtr_inline_c_7) {
-
-  try
-  {   
-            Mat * src = srcPtr_inline_c_0;
-            cv::warpAffine
-              ( *src
-              , *dstPtr_inline_c_1
-              , *transformPtr_inline_c_2
-              , src->size()
-              , cinterpolationMethod_27_inline_c_3 | cinverse_27_inline_c_4 | cfillOutliers_27_inline_c_5
-              , cborderMode_27_inline_c_6
-              , *borderValuePtr_inline_c_7
-              );
-          
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_ImgProc_GeometricImgTransform_2_4e6ddd0199bf9ac49390a7b6ec8672f793256425(Mat * srcPtr_inline_c_0, Mat * dstPtr_inline_c_1, Mat * transformPtr_inline_c_2, int32_t cinterpolationMethod_27_inline_c_3, int32_t cinverse_27_inline_c_4, int32_t cfillOutliers_27_inline_c_5, int32_t cborderMode_27_inline_c_6, Scalar * borderValuePtr_inline_c_7) {
-
-  try
-  {   
-            Mat * src = srcPtr_inline_c_0;
-            cv::warpPerspective
-              ( *src
-              , *dstPtr_inline_c_1
-              , *transformPtr_inline_c_2
-              , src->size()
-              , cinterpolationMethod_27_inline_c_3 | cinverse_27_inline_c_4 | cfillOutliers_27_inline_c_5
-              , cborderMode_27_inline_c_6
-              , *borderValuePtr_inline_c_7
-              );
-          
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_ImgProc_GeometricImgTransform_3_db4c7b21fb82ac16f38778e04e1a21d3c2a15efb(Mat * matInPtr_inline_c_0, Mat * matOutPtr_inline_c_1) {
-
-  try
-  {   
-           cv::invertAffineTransform(*matInPtr_inline_c_0, *matOutPtr_inline_c_1);
-        
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-Mat * inline_c_OpenCV_ImgProc_GeometricImgTransform_4_5705994512e2d75b375ec9799d768645b380269b(Point2f * srcPtsPtr_inline_c_0, Point2f * dstPtsPtr_inline_c_1) {
-
-            return new cv::Mat
-            ( cv::getPerspectiveTransform(srcPtsPtr_inline_c_0, dstPtsPtr_inline_c_1)
-            );
-        
-}
-
-}
-
-extern "C" {
-Mat * inline_c_OpenCV_ImgProc_GeometricImgTransform_5_0ccf603b281c6c9ea50e37bde67fdad2ca9d8fb7(Point2f * centerPtr_inline_c_0, double cangle_27_inline_c_1, double cscale_27_inline_c_2) {
-
-        return new cv::Mat
-        ( cv::getRotationMatrix2D
-          ( *centerPtr_inline_c_0
-          , cangle_27_inline_c_1
-          , cscale_27_inline_c_2
-          )
-        );
-      
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_ImgProc_GeometricImgTransform_6_90a3b43830af9c51592b5cfb3eeb2224044835b4(Mat * srcPtr_inline_c_0, Mat * dstPtr_inline_c_1, Mat * mappingPtr_inline_c_2, int32_t cinterpolation_27_inline_c_3, int32_t cborderMode_27_inline_c_4, Scalar * borderValuePtr_inline_c_5) {
-
-  try
-  {   
-          cv::remap
-            ( *srcPtr_inline_c_0
-            , *dstPtr_inline_c_1
-            , *mappingPtr_inline_c_2
-            , {}
-            , cinterpolation_27_inline_c_3
-            , cborderMode_27_inline_c_4
-            , *borderValuePtr_inline_c_5
-            );
-        
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_ImgProc_GeometricImgTransform_7_b911b00f072c7df7d438e470e94acbbfd6dfa9ef(Mat * imgPtr_inline_c_0, Mat * dstPtr_inline_c_1, Mat * cameraPtr_inline_c_2, Mat * distCoeffsPtr_inline_c_3) {
-
-          undistort(*imgPtr_inline_c_0,
-                    *dstPtr_inline_c_1,
-                    *cameraPtr_inline_c_2,
-                    *distCoeffsPtr_inline_c_3);
-        
-}
-
-}
diff --git a/src/OpenCV/ImgProc/ImgFiltering.cpp b/src/OpenCV/ImgProc/ImgFiltering.cpp
deleted file mode 100644
--- a/src/OpenCV/ImgProc/ImgFiltering.cpp
+++ /dev/null
@@ -1,247 +0,0 @@
-
-#include "opencv2/core.hpp"
-
-#include "opencv2/imgproc.hpp"
-
-using namespace cv;
-
-extern "C" {
-Exception * inline_c_OpenCV_ImgProc_ImgFiltering_0_7d3d053e68542f65ab73e44b4db97dfe42c74c51(Mat * srcPtr_inline_c_0, Mat * dstPtr_inline_c_1, int32_t cd_27_inline_c_2, double csigmaColor_27_inline_c_3, double csigmaSpace_27_inline_c_4, int32_t cborderType_27_inline_c_5) {
-
-  try
-  {   
-        cv::bilateralFilter
-        ( *srcPtr_inline_c_0
-        , *dstPtr_inline_c_1
-        ,  cd_27_inline_c_2
-        ,  csigmaColor_27_inline_c_3
-        ,  csigmaSpace_27_inline_c_4
-        ,  cborderType_27_inline_c_5
-        );
-      
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_ImgProc_ImgFiltering_1_e376504d66a67a81166f6a7de96ff685ab99ae52(Mat * srcPtr_inline_c_0, Mat * dstPtr_inline_c_1, int32_t cddepth_27_inline_c_2, int32_t cksize_27_inline_c_3, double cscale_27_inline_c_4, double cdelta_27_inline_c_5, int32_t cborderType_27_inline_c_6) {
-
-  try
-  {   
-        cv::Laplacian
-        ( *srcPtr_inline_c_0
-        , *dstPtr_inline_c_1
-        ,  cddepth_27_inline_c_2
-        ,  cksize_27_inline_c_3
-        ,  cscale_27_inline_c_4
-        ,  cdelta_27_inline_c_5
-        ,  cborderType_27_inline_c_6
-        );
-      
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_ImgProc_ImgFiltering_2_345ace375d204c2a7dff8b68ca0269df67bc7938(Mat * matInPtr_inline_c_0, Mat * matOutPtr_inline_c_1, int32_t ksize_inline_c_2) {
-
-  try
-  {    cv::medianBlur(*matInPtr_inline_c_0, *matOutPtr_inline_c_1, ksize_inline_c_2); 
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_ImgProc_ImgFiltering_3_d33ce1e3332ac2ac4dd5246990112c449c582d4c(Mat * matInPtr_inline_c_0, Mat * matOutPtr_inline_c_1, Size2i * ksizePtr_inline_c_2) {
-
-  try
-  {   
-           cv::blur
-           ( *matInPtr_inline_c_0
-           , *matOutPtr_inline_c_1
-           , *ksizePtr_inline_c_2
-           );
-       
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_ImgProc_ImgFiltering_4_907ecf95556ac76c10894cb3ae59a4e2b7e7ca9b(Mat * matInPtr_inline_c_0, Mat * matOutPtr_inline_c_1, Size2i * ksizePtr_inline_c_2, double csigmaX_27_inline_c_3, double csigmaY_27_inline_c_4) {
-
-  try
-  {   
-           cv::GaussianBlur
-           ( *matInPtr_inline_c_0
-           , *matOutPtr_inline_c_1
-           , *ksizePtr_inline_c_2
-           , csigmaX_27_inline_c_3
-           , csigmaY_27_inline_c_4
-           );
-       
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_ImgProc_ImgFiltering_5_82421a3cb5054e4b649407f8926c057bfed86a45(Mat * srcPtr_inline_c_0, Mat * dstPtr_inline_c_1, Mat * kernelPtr_inline_c_2, Point2i * anchorPtr_inline_c_3, int32_t citerations_27_inline_c_4, int32_t cborderType_27_inline_c_5, Scalar * borderValuePtr_inline_c_6) {
-
-  try
-  {   
-          cv::erode
-          ( *srcPtr_inline_c_0
-          , *dstPtr_inline_c_1
-          , *kernelPtr_inline_c_2
-          , *anchorPtr_inline_c_3
-          ,  citerations_27_inline_c_4
-          ,  cborderType_27_inline_c_5
-          , *borderValuePtr_inline_c_6
-          );
-        
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_ImgProc_ImgFiltering_6_686cd566b987aa9d5ec27846da2b925a79b1c365(Mat * srcPtr_inline_c_0, Mat * dstPtr_inline_c_1, Mat * kernelPtr_inline_c_2, Point2i * anchorPtr_inline_c_3, double cdelta_27_inline_c_4, int32_t cborderType_27_inline_c_5) {
-
-  try
-  {   
-          cv::filter2D
-          ( *srcPtr_inline_c_0
-          , *dstPtr_inline_c_1
-          , -1
-          , *kernelPtr_inline_c_2
-          , *anchorPtr_inline_c_3
-          ,  cdelta_27_inline_c_4
-          ,  cborderType_27_inline_c_5
-          );
-        
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_ImgProc_ImgFiltering_7_93c9df76baf0966fe0e3e5136e89b57d1aea3586(Mat * srcPtr_inline_c_0, Mat * dstPtr_inline_c_1, Mat * kernelPtr_inline_c_2, Point2i * anchorPtr_inline_c_3, int32_t citerations_27_inline_c_4, int32_t cborderType_27_inline_c_5, Scalar * borderValuePtr_inline_c_6) {
-
-  try
-  {   
-          cv::dilate
-          ( *srcPtr_inline_c_0
-          , *dstPtr_inline_c_1
-          , *kernelPtr_inline_c_2
-          , *anchorPtr_inline_c_3
-          ,  citerations_27_inline_c_4
-          ,  cborderType_27_inline_c_5
-          , *borderValuePtr_inline_c_6
-          );
-        
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_ImgProc_ImgFiltering_8_fe64cf1ef54e417d07f7d0a61e6c49313898058d(Mat * srcPtr_inline_c_0, Mat * dstPtr_inline_c_1, int32_t cop_27_inline_c_2, Mat * kernelPtr_inline_c_3, Point2i * anchorPtr_inline_c_4, int32_t citerations_27_inline_c_5, int32_t cborderType_27_inline_c_6, Scalar * borderValuePtr_inline_c_7) {
-
-  try
-  {   
-          cv::morphologyEx
-          ( *srcPtr_inline_c_0
-          , *dstPtr_inline_c_1
-          ,  cop_27_inline_c_2
-          , *kernelPtr_inline_c_3
-          , *anchorPtr_inline_c_4
-          ,  citerations_27_inline_c_5
-          ,  cborderType_27_inline_c_6
-          , *borderValuePtr_inline_c_7
-          );
-        
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_ImgProc_ImgFiltering_9_7ea2729a8a8a953773da566c07815d3fa635d8e9(Mat * elementPtr_inline_c_0, int32_t cmorphShape_27_inline_c_1, Size2i * ksizePtr_inline_c_2, Point2i * anchorPtr_inline_c_3) {
-
-  try
-  {   
-         *elementPtr_inline_c_0 =
-           cv::getStructuringElement
-           ( cmorphShape_27_inline_c_1
-           , *ksizePtr_inline_c_2
-           , *anchorPtr_inline_c_3
-           );
-       
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
diff --git a/src/OpenCV/ImgProc/MiscImgTransform.cpp b/src/OpenCV/ImgProc/MiscImgTransform.cpp
deleted file mode 100644
--- a/src/OpenCV/ImgProc/MiscImgTransform.cpp
+++ /dev/null
@@ -1,115 +0,0 @@
-
-#include "opencv2/core.hpp"
-
-#include "opencv2/imgproc.hpp"
-
-using namespace cv;
-
-extern "C" {
-Exception * inline_c_OpenCV_ImgProc_MiscImgTransform_0_d2be594f4f12563672774c8c4e1f40e11ca04a85(Mat * srcPtr_inline_c_0, Mat * dstPtr_inline_c_1, int32_t ccode_27_inline_c_2) {
-
-  try
-  {   
-          cv::cvtColor( *srcPtr_inline_c_0
-                      , *dstPtr_inline_c_1
-                      , ccode_27_inline_c_2
-                      , 0
-                      );
-        
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_ImgProc_MiscImgTransform_1_7f03ad69fa7f1dd24496f6fd913ec5b08e914c63(Mat * maskPtr_inline_c_0, Mat * matPtr_inline_c_1, Point2i * seedPointPtr_inline_c_2, Scalar * colorPtr_inline_c_3, Rect2i * rectPtr_inline_c_4, Scalar * loDiffPtr_inline_c_5, Scalar * upDiffPtr_inline_c_6, int32_t copFlags_27_inline_c_7) {
-
-        cv::Mat * maskPtr = maskPtr_inline_c_0;
-        cv::floodFill( *matPtr_inline_c_1
-                     , maskPtr ? cv::_InputOutputArray(*maskPtr) : cv::_InputOutputArray(noArray())
-                     , *seedPointPtr_inline_c_2
-                     , *colorPtr_inline_c_3
-                     , rectPtr_inline_c_4
-                     , *loDiffPtr_inline_c_5
-                     , *upDiffPtr_inline_c_6
-                     , copFlags_27_inline_c_7
-                     );
-      
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_ImgProc_MiscImgTransform_2_b818811bceb7d3047a2b7526a53fde01319f83df(double * calcThreshPtr_inline_c_0, Mat * srcPtr_inline_c_1, Mat * dstPtr_inline_c_2, double cthreshVal_27_inline_c_3, double cmaxVal_27_inline_c_4, int32_t ctype_27_inline_c_5) {
-
-  try
-  {   
-          *calcThreshPtr_inline_c_0 =
-            cv::threshold( *srcPtr_inline_c_1
-                         , *dstPtr_inline_c_2
-                         , cthreshVal_27_inline_c_3
-                         , cmaxVal_27_inline_c_4
-                         , ctype_27_inline_c_5
-                         );
-        
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_ImgProc_MiscImgTransform_3_4f0f8c34c71fc074383b1de89868150524d9d984(Mat * imgPtr_inline_c_0, Mat * markersPtr_inline_c_1) {
-
-        cv::watershed( *imgPtr_inline_c_0
-                     , *markersPtr_inline_c_1
-                     )
-      ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_ImgProc_MiscImgTransform_4_5f6806c8350b79ac1a2202371cf50a4940707dc2(Mat * imgPtr_inline_c_0, Mat * maskPtr_inline_c_1, Rect2i * rectPtr_inline_c_2, Mat * bgdModelPtr_inline_c_3, Mat * fgdModelPtr_inline_c_4, int32_t iterCount_inline_c_5, int32_t cmodeFlags_27_inline_c_6) {
-
-        cv::grabCut( *imgPtr_inline_c_0
-                   , *maskPtr_inline_c_1
-                   , *rectPtr_inline_c_2
-                   , *bgdModelPtr_inline_c_3
-                   , *fgdModelPtr_inline_c_4
-                   , iterCount_inline_c_5
-                   , cmodeFlags_27_inline_c_6
-                   );
-      
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_ImgProc_MiscImgTransform_5_0c1197093bd6dc0e0cbd6cb325fabba737cf7d53(Mat * srcPtr_inline_c_0, Scalar * loPtr_inline_c_1, Scalar * hiPtr_inline_c_2, Mat * dstPtr_inline_c_3) {
-
-  try
-  {   
-        cv::inRange(*srcPtr_inline_c_0, *loPtr_inline_c_1, *hiPtr_inline_c_2, *dstPtr_inline_c_3);
-      
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
diff --git a/src/OpenCV/ImgProc/ObjectDetection.cpp b/src/OpenCV/ImgProc/ObjectDetection.cpp
deleted file mode 100644
--- a/src/OpenCV/ImgProc/ObjectDetection.cpp
+++ /dev/null
@@ -1,30 +0,0 @@
-
-#include "opencv2/core.hpp"
-
-#include "opencv2/imgproc.hpp"
-
-#include "opencv2/objdetect.hpp"
-
-using namespace cv;
-
-extern "C" {
-Exception * inline_c_OpenCV_ImgProc_ObjectDetection_0_bea3a019a4b2867a729135479f483faecee14380(Mat * imagePtr_inline_c_0, Mat * templPtr_inline_c_1, Mat * resultPtr_inline_c_2, int32_t cmethod_27_inline_c_3) {
-
-  try
-  {   
-          cv::matchTemplate( *imagePtr_inline_c_0
-                           , *templPtr_inline_c_1
-                           , *resultPtr_inline_c_2
-                           , cmethod_27_inline_c_3
-                           );
-        
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
diff --git a/src/OpenCV/ImgProc/StructuralAnalysis.cpp b/src/OpenCV/ImgProc/StructuralAnalysis.cpp
deleted file mode 100644
--- a/src/OpenCV/ImgProc/StructuralAnalysis.cpp
+++ /dev/null
@@ -1,192 +0,0 @@
-
-#include "opencv2/core.hpp"
-
-#include "opencv2/imgproc.hpp"
-
-using namespace cv;
-
-extern "C" {
-Exception * inline_c_OpenCV_ImgProc_StructuralAnalysis_0_7935fba0a7f8ba80a4bbee32ab76a2a8748ac730(Point2f * contourPtr_inline_c_0, int32_t cnumPoints_27_inline_c_1, double * carea_27_inline_c_2, bool coriented_27_inline_c_3) {
-
-  try
-  {   
-        cv::_InputArray contour =
-          cv::_InputArray( contourPtr_inline_c_0
-                         , cnumPoints_27_inline_c_1
-                         );
-        *carea_27_inline_c_2 = cv::contourArea(contour, coriented_27_inline_c_3);
-      
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_ImgProc_StructuralAnalysis_1_4b2ac3789eb26d10e61f390b3818a71f30a3a509(Point2f * contourPtr_inline_c_0, int32_t cnumPoints_27_inline_c_1, double * cresultPtr_27_inline_c_2, Point2f * ptPtr_inline_c_3, bool cmeasureDist_27_inline_c_4) {
-
-  try
-  {   
-        cv::_InputArray contour =
-          cv::_InputArray( contourPtr_inline_c_0
-                         , cnumPoints_27_inline_c_1
-                         );
-        *cresultPtr_27_inline_c_2 =
-          cv::pointPolygonTest( contour
-                              , *ptPtr_inline_c_3
-                              , cmeasureDist_27_inline_c_4
-                              );
-      
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_ImgProc_StructuralAnalysis_2_614023623c1bbdf57403aa0cb1c576902533a9fe(Mat * srcPtr_inline_c_0, int32_t cmode_27_inline_c_1, int32_t cmethod_27_inline_c_2, int32_t * numContoursPtr_inline_c_3, Point2i **** contoursPtrPtr_inline_c_4, Vec4i *** hierarchyPtrPtr_inline_c_5, int32_t ** contourLengthsPtrPtr_inline_c_6) {
-
-      std::vector<std::vector<cv::Point>> contours;
-      std::vector<cv::Vec4i> hierarchy;
-      cv::findContours(
-        *srcPtr_inline_c_0,
-        contours,
-        hierarchy,
-        cmode_27_inline_c_1,
-        cmethod_27_inline_c_2
-      );
-
-      *numContoursPtr_inline_c_3 = contours.size();
-
-      cv::Point * * * * contoursPtrPtr = contoursPtrPtr_inline_c_4;
-      cv::Point * * * contoursPtr = new cv::Point * * [contours.size()];
-      *contoursPtrPtr = contoursPtr;
-
-      cv::Vec4i * * * hierarchyPtrPtr = hierarchyPtrPtr_inline_c_5;
-      cv::Vec4i * * hierarchyPtr = new cv::Vec4i * [contours.size()];
-      *hierarchyPtrPtr = hierarchyPtr;
-
-      int32_t * * contourLengthsPtrPtr = contourLengthsPtrPtr_inline_c_6;
-      int32_t * contourLengthsPtr = new int32_t [contours.size()];
-      *contourLengthsPtrPtr = contourLengthsPtr;
-
-      for (std::vector<std::vector<cv::Point>>::size_type i = 0; i < contours.size(); i++) {
-        std::vector<cv::Point> & contourPoints = contours[i];
-        cv::Vec4i hierarchyInfo = hierarchy[i];
-
-        contourLengthsPtr[i] = contourPoints.size();
-
-        cv::Point * * newContourPoints = new cv::Point * [contourPoints.size()];
-        for (std::vector<cv::Point>::size_type j = 0; j < contourPoints.size(); j++) {
-          cv::Point & orig = contourPoints[j];
-          cv::Point * newPt = new cv::Point(orig.x, orig.y);
-          newContourPoints[j] = newPt;
-        }
-        contoursPtr[i] = newContourPoints;
-
-        hierarchyPtr[i] = new cv::Vec4i(
-          hierarchyInfo[0],
-          hierarchyInfo[1],
-          hierarchyInfo[2],
-          hierarchyInfo[3]
-        );
-      }
-    
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_ImgProc_StructuralAnalysis_3_ff5ea92778e465a6335a4692b484c0bf9d4d34d0(Point2i **** contoursPtrPtr_inline_c_0, Vec4i *** hierarchyPtrPtr_inline_c_1, int32_t ** contourLengthsPtrPtr_inline_c_2) {
-
-      delete [] *contoursPtrPtr_inline_c_0;
-      delete [] *hierarchyPtrPtr_inline_c_1;
-      delete [] *contourLengthsPtrPtr_inline_c_2;
-    
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_ImgProc_StructuralAnalysis_4_b1965061fd4c69b7637c516ababa8f2fae19bdde(Point2i * curvePtr_inline_c_0, int32_t cnumPoints_27_inline_c_1, double cepsilon_27_inline_c_2, bool cisClosed_27_inline_c_3, int32_t * numPointsResPtr_inline_c_4, Point2i *** pointsResPtrPtr_inline_c_5) {
-
-        std::vector<cv::Point> points_res;
-        cv::_InputArray curve = cv::_InputArray (curvePtr_inline_c_0, cnumPoints_27_inline_c_1);
-        cv::approxPolyDP
-        (  curve
-        ,  points_res
-        ,  cepsilon_27_inline_c_2
-        ,  cisClosed_27_inline_c_3
-        );
-
-        *numPointsResPtr_inline_c_4 = points_res.size();
-
-        cv::Point * * * pointsResPtrPtr = pointsResPtrPtr_inline_c_5;
-        cv::Point * * pointsResPtr = new cv::Point * [points_res.size()];
-        *pointsResPtrPtr = pointsResPtr;
-
-        for (std::vector<cv::Point>::size_type i = 0; i < points_res.size(); i++) {
-            cv::Point & ptAddress = points_res[i];
-            cv::Point * newPt = new cv::Point(ptAddress.x, ptAddress.y);
-            pointsResPtr[i] = newPt;
-        }
-      
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_ImgProc_StructuralAnalysis_5_c6aa8b9807565075fddddcc34edf8efb263f7d67(Point2i *** pointsResPtrPtr_inline_c_0) {
-
-        delete [] *pointsResPtrPtr_inline_c_0;
-      
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_ImgProc_StructuralAnalysis_6_1fed7fd1e0382f9c24232067deba04c89c597064(Point2i * curvePtr_inline_c_0, int32_t cnumPoints_27_inline_c_1, double * cresultPtr_27_inline_c_2, bool cisClosed_27_inline_c_3) {
-
-  try
-  {   
-            cv::_InputArray curve =
-              cv::_InputArray ( curvePtr_inline_c_0
-                              , cnumPoints_27_inline_c_1
-                              );
-            *cresultPtr_27_inline_c_2 =
-               cv::arcLength( curve
-                              , cisClosed_27_inline_c_3
-                            );
-        
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-RotatedRect * inline_c_OpenCV_ImgProc_StructuralAnalysis_7_a83635d7b79cb79d9a94886051098775b48130e1(Point2i * pointsPtr_inline_c_0, int32_t cnumPoints_27_inline_c_1) {
-return (
-          new RotatedRect(
-            cv::minAreaRect(
-                cv::_InputArray( pointsPtr_inline_c_0
-                               , cnumPoints_27_inline_c_1)))
-        );
-}
-
-}
diff --git a/src/OpenCV/ImgProc/StructuralAnalysis.hsc b/src/OpenCV/ImgProc/StructuralAnalysis.hsc
--- a/src/OpenCV/ImgProc/StructuralAnalysis.hsc
+++ b/src/OpenCV/ImgProc/StructuralAnalysis.hsc
@@ -207,7 +207,7 @@
   alloca $ \(hierarchyPtrPtr :: Ptr (Ptr (Ptr C'Vec4i))) ->
   alloca $ \(numContoursPtr :: Ptr Int32) -> mask_ $ do
     [C.block| void {
-      std::vector<std::vector<cv::Point>> contours;
+      std::vector< std::vector<cv::Point> > contours;
       std::vector<cv::Vec4i> hierarchy;
       cv::findContours(
         *$(Mat * srcPtr),
@@ -231,7 +231,7 @@
       int32_t * contourLengthsPtr = new int32_t [contours.size()];
       *contourLengthsPtrPtr = contourLengthsPtr;
 
-      for (std::vector<std::vector<cv::Point>>::size_type i = 0; i < contours.size(); i++) {
+      for (std::vector< std::vector<cv::Point> >::size_type i = 0; i < contours.size(); i++) {
         std::vector<cv::Point> & contourPoints = contours[i];
         cv::Vec4i hierarchyInfo = hierarchy[i];
 
diff --git a/src/OpenCV/Internal/Core/Types.cpp b/src/OpenCV/Internal/Core/Types.cpp
deleted file mode 100644
--- a/src/OpenCV/Internal/Core/Types.cpp
+++ /dev/null
@@ -1,112 +0,0 @@
-
-#include "opencv2/core.hpp"
-
-using namespace cv;
-
-extern "C" {
-Scalar * inline_c_OpenCV_Internal_Core_Types_0_1b24a839693d320671a79485fe080fbb7355a4b6(double x_inline_c_0, double y_inline_c_1, double z_inline_c_2, double w_inline_c_3) {
-return ( new cv::Scalar( x_inline_c_0
-                                     , y_inline_c_1
-                                     , z_inline_c_2
-                                     , w_inline_c_3
-                                     )
-                     );
-}
-
-}
-
-extern "C" {
-RotatedRect * inline_c_OpenCV_Internal_Core_Types_1_9ea56c49f81d2b10cbc82e23b1d147a494702aa2(Point2f * centerPtr_inline_c_0, Size2f * sizePtr_inline_c_1, float angle_inline_c_2) {
-return (
-          new cv::RotatedRect( *centerPtr_inline_c_0
-                             , *sizePtr_inline_c_1
-                             , angle_inline_c_2
-                             )
-      );
-}
-
-}
-
-extern "C" {
-TermCriteria * inline_c_OpenCV_Internal_Core_Types_2_ec54942df5510b406f829c77b86a8160c5e005f2(int32_t ctype_27_inline_c_0, int32_t cmaxCount_27_inline_c_1, double cepsilon_27_inline_c_2) {
-return (
-      new cv::TermCriteria( ctype_27_inline_c_0
-                          , cmaxCount_27_inline_c_1
-                          , cepsilon_27_inline_c_2
-                          )
-    );
-}
-
-}
-
-extern "C" {
-Range * inline_c_OpenCV_Internal_Core_Types_3_c61bc1a3ba5434a1d82b055b88065a109674fe34(int32_t start_inline_c_0, int32_t end_inline_c_1) {
-return ( new cv::Range( start_inline_c_0, end_inline_c_1) );
-}
-
-}
-
-extern "C" {
-Range * inline_c_OpenCV_Internal_Core_Types_4_82b2e212e109153a3890aefd82f32ae7fbac75bc() {
-
-      cv::Range a = cv::Range::all();
-      return new cv::Range(a.start, a.end);
-    
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Internal_Core_Types_5_2a14b0f4fdf4947ed9c1c4c5b5fbb3ac023fd3e9(Scalar * sPtr_inline_c_0, double * xPtr_inline_c_1, double * yPtr_inline_c_2, double * zPtr_inline_c_3, double * wPtr_inline_c_4) {
-
-          const Scalar & s = *sPtr_inline_c_0;
-          *xPtr_inline_c_1 = s[0];
-          *yPtr_inline_c_2 = s[1];
-          *zPtr_inline_c_3 = s[2];
-          *wPtr_inline_c_4 = s[3];
-        
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Internal_Core_Types_6_efb01268b38779dc6977b46241f8d4bb29b2e499(Scalar * dst_inline_c_0, Scalar * src_inline_c_1) {
- new(dst_inline_c_0) cv::Scalar(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Internal_Core_Types_7_cdde9ee703374d51bfb7f2dd78ebf22ab49b3cf7(Scalar * ptr_inline_c_0) {
- ptr_inline_c_0->~Scalar() ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Internal_Core_Types_8_76e484cb7925a501e0119c9d1809f00bec5663a7(Range * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Internal_Core_Types_9_2679f6a9c87ab8d51e9b3244c98b481d5e4bd49c(TermCriteria * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Internal_Core_Types_10_1d7454cf4b3a0d88671f5b2941ad3ac0c74aeefb(RotatedRect * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Internal_Core_Types_11_b56573ae17f3058ee640bf072b7a5c7b25cfe766(Scalar * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
diff --git a/src/OpenCV/Internal/Core/Types/Mat.cpp b/src/OpenCV/Internal/Core/Types/Mat.cpp
deleted file mode 100644
--- a/src/OpenCV/Internal/Core/Types/Mat.cpp
+++ /dev/null
@@ -1,86 +0,0 @@
-
-#include "opencv2/core.hpp"
-
-using namespace cv;
-
-extern "C" {
-Mat * inline_c_OpenCV_Internal_Core_Types_Mat_0_8768adeedcae20c11dd5e602ef044df2ee6a09fd() {
-return ( new Mat() );
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_Internal_Core_Types_Mat_1_5f31dc1188e4b3f4d0035cc5ace1eb9bef10a6b6(Mat * dstPtr_inline_c_0, int32_t cndims_27_inline_c_1, int32_t * shapePtr_inline_c_2, int32_t ctype_27_inline_c_3, Scalar * scalarPtr_inline_c_4) {
-
-  try
-  {   
-          *dstPtr_inline_c_0 =
-            Mat( cndims_27_inline_c_1
-               , shapePtr_inline_c_2
-               , ctype_27_inline_c_3
-               , *scalarPtr_inline_c_4
-               );
-        
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Internal_Core_Types_Mat_2_00f93178ab847fcc332d169992583a5da893c0b0(Mat * matPtr_inline_c_0, int32_t *const dimsPtr_inline_c_1, size_t **const stepPtr2_inline_c_2, uint8_t **const dataPtr2_inline_c_3) {
-
-        const Mat * const matPtr = matPtr_inline_c_0;
-        *dimsPtr_inline_c_1 = matPtr->dims;
-        *stepPtr2_inline_c_2 = matPtr->step.p;
-        *dataPtr2_inline_c_3 = matPtr->data;
-      
-}
-
-}
-
-extern "C" {
-Mat * inline_c_OpenCV_Internal_Core_Types_Mat_3_a16c0b433745dc68200cf06194a285990fbd7c64(Mat * matPtr_inline_c_0) {
-return ( new Mat(matPtr_inline_c_0->clone()) );
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Internal_Core_Types_Mat_4_52c637925cd5824494e212b21b7b4da6b5a7303d(Mat * matPtr_inline_c_0, int32_t *const flagsPtr_inline_c_1, int32_t *const dimsPtr_inline_c_2, int32_t **const sizePtr_inline_c_3) {
-
-        const Mat * const matPtr = matPtr_inline_c_0;
-        *flagsPtr_inline_c_1 = matPtr->flags;
-        *dimsPtr_inline_c_2 = matPtr->dims;
-        *sizePtr_inline_c_3 = matPtr->size.p;
-      
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Internal_Core_Types_Mat_5_d5614b8cb3656a53b9c01ee01b93e309410817f7(Mat * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Internal_Core_Types_Mat_6_042465638c29b7efc44f066175472fe3d06dfba9(Mat * dst_inline_c_0, Mat * src_inline_c_1) {
- new(dst_inline_c_0) cv::Mat(*src_inline_c_1) ;
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Internal_Core_Types_Mat_7_f5866e170cd14346d5a568ea79d8d4c825431619(Mat * ptr_inline_c_0) {
- ptr_inline_c_0->~Mat() ;
-}
-
-}
diff --git a/src/OpenCV/Internal/Core/Types/Mat.hs b/src/OpenCV/Internal/Core/Types/Mat.hs
--- a/src/OpenCV/Internal/Core/Types/Mat.hs
+++ b/src/OpenCV/Internal/Core/Types/Mat.hs
@@ -1,5 +1,5 @@
 {-# language CPP #-}
-{-# LANGUAGE RankNTypes #-}
+{-# language RankNTypes #-}
 {-# language QuasiQuotes #-}
 {-# language ConstraintKinds #-}
 {-# language TemplateHaskell #-}
@@ -42,6 +42,7 @@
     , createMat
     , withMatM
     , cloneMatM
+    , deallocateMatM
 
       -- * Meta information
     , MatInfo(..)
@@ -68,6 +69,7 @@
     , ToDepthDS(toDepthDS)
     ) where
 
+import "base" Control.Exception ( throwIO )
 import "base" Control.Monad.ST ( ST )
 import "base" Data.Int
 import "base" Data.Maybe
@@ -454,6 +456,19 @@
           -> m (Mat shape channels depth)
 cloneMatM = unsafePrimToPrim . cloneMatIO
 
+-- | Deallocates the matrix data.
+--
+-- Highly unsafe. Subsequent operations that need the data will
+-- generate exceptions (or segfaults).
+deallocateMatM
+    :: (PrimMonad m)
+    => Mut (Mat shape channels depth) (PrimState m)
+    -> m ()
+deallocateMatM mutMat = unsafePrimToPrim $ do
+    e <- handleCvException (pure ()) $
+           withPtr mutMat $ \mutMatPtr ->
+             [cvExcept| $(Mat * mutMatPtr)->deallocate(); |]
+    either throwIO pure e
 
 --------------------------------------------------------------------------------
 -- Meta information
@@ -464,8 +479,7 @@
      { miShape    :: ![Int32]
      , miDepth    :: !Depth
      , miChannels :: !Int32
-     }
-     deriving (Show, Eq)
+     } deriving (Show, Eq)
 
 matInfo :: Mat shape channels depth -> MatInfo
 matInfo mat = unsafePerformIO $
diff --git a/src/OpenCV/Internal/Core/Types/Mat/ToFrom.cpp b/src/OpenCV/Internal/Core/Types/Mat/ToFrom.cpp
deleted file mode 100644
--- a/src/OpenCV/Internal/Core/Types/Mat/ToFrom.cpp
+++ /dev/null
@@ -1,307 +0,0 @@
-
-#include "opencv2/core.hpp"
-
-#include "haskell_opencv_matx_typedefs.hpp"
-
-using namespace cv;
-
-extern "C" {
-Mat * inline_c_OpenCV_Internal_Core_Types_Mat_ToFrom_0_0b4a62ec427ab2026755892cbce6d99281ca3e6b(Vec4d * vecPtr_inline_c_0) {
-return (                                    new cv::Mat(*vecPtr_inline_c_0, false)           );
-}
-
-}
-
-extern "C" {
-Mat * inline_c_OpenCV_Internal_Core_Types_Mat_ToFrom_1_1e9a2ac9b7f375489b1402a45fada434d61f94ab(Vec4f * vecPtr_inline_c_0) {
-return (                                    new cv::Mat(*vecPtr_inline_c_0, false)           );
-}
-
-}
-
-extern "C" {
-Mat * inline_c_OpenCV_Internal_Core_Types_Mat_ToFrom_2_36cb789c879453eee67df8a386d46f5c2c587f56(Vec4i * vecPtr_inline_c_0) {
-return (                                    new cv::Mat(*vecPtr_inline_c_0, false)           );
-}
-
-}
-
-extern "C" {
-Mat * inline_c_OpenCV_Internal_Core_Types_Mat_ToFrom_3_942d6618c0fe7f6b9593fc883669524d0d9fb227(Vec3d * vecPtr_inline_c_0) {
-return (                                    new cv::Mat(*vecPtr_inline_c_0, false)           );
-}
-
-}
-
-extern "C" {
-Mat * inline_c_OpenCV_Internal_Core_Types_Mat_ToFrom_4_b3090145918705b77f10036ff2143482f46f2000(Vec3f * vecPtr_inline_c_0) {
-return (                                    new cv::Mat(*vecPtr_inline_c_0, false)           );
-}
-
-}
-
-extern "C" {
-Mat * inline_c_OpenCV_Internal_Core_Types_Mat_ToFrom_5_05dd7c934cb60b53490b79f16fe45af9fbaec9c2(Vec3i * vecPtr_inline_c_0) {
-return (                                    new cv::Mat(*vecPtr_inline_c_0, false)           );
-}
-
-}
-
-extern "C" {
-Mat * inline_c_OpenCV_Internal_Core_Types_Mat_ToFrom_6_6ddc28a7e03249693033ca7c6a8c0135085e8c7e(Vec2d * vecPtr_inline_c_0) {
-return (                                    new cv::Mat(*vecPtr_inline_c_0, false)           );
-}
-
-}
-
-extern "C" {
-Mat * inline_c_OpenCV_Internal_Core_Types_Mat_ToFrom_7_02eb999953c24952016530e4d2b0cd1324dcf2b0(Vec2f * vecPtr_inline_c_0) {
-return (                                    new cv::Mat(*vecPtr_inline_c_0, false)           );
-}
-
-}
-
-extern "C" {
-Mat * inline_c_OpenCV_Internal_Core_Types_Mat_ToFrom_8_6bb22999b6b050d5ac86e6984a03f887ff92869b(Vec2i * vecPtr_inline_c_0) {
-return (                                    new cv::Mat(*vecPtr_inline_c_0, false)           );
-}
-
-}
-
-extern "C" {
-Mat * inline_c_OpenCV_Internal_Core_Types_Mat_ToFrom_9_7d7f73c0b46f8baa76378762885fc6a6bed9f8e8(Matx66d * matxPtr_inline_c_0) {
-return (                                     new cv::Mat(*matxPtr_inline_c_0, false)           );
-}
-
-}
-
-extern "C" {
-Mat * inline_c_OpenCV_Internal_Core_Types_Mat_ToFrom_10_128a0da7555089a341c68840e2f9b233452c95a0(Matx66f * matxPtr_inline_c_0) {
-return (                                     new cv::Mat(*matxPtr_inline_c_0, false)           );
-}
-
-}
-
-extern "C" {
-Mat * inline_c_OpenCV_Internal_Core_Types_Mat_ToFrom_11_d5eb541705f28bd53dd7a69dbd70d47f741335cf(Matx61d * matxPtr_inline_c_0) {
-return (                                     new cv::Mat(*matxPtr_inline_c_0, false)           );
-}
-
-}
-
-extern "C" {
-Mat * inline_c_OpenCV_Internal_Core_Types_Mat_ToFrom_12_2a493b0b3c4f2c67550f6a3f73b0aafa3513fb69(Matx61f * matxPtr_inline_c_0) {
-return (                                     new cv::Mat(*matxPtr_inline_c_0, false)           );
-}
-
-}
-
-extern "C" {
-Mat * inline_c_OpenCV_Internal_Core_Types_Mat_ToFrom_13_8f5c233071748410b50a201aa2153d4f2d553f24(Matx51d * matxPtr_inline_c_0) {
-return (                                     new cv::Mat(*matxPtr_inline_c_0, false)           );
-}
-
-}
-
-extern "C" {
-Mat * inline_c_OpenCV_Internal_Core_Types_Mat_ToFrom_14_c2fff5fd5ff4dfdb086e6bd9f73ade8470fb5d21(Matx51f * matxPtr_inline_c_0) {
-return (                                     new cv::Mat(*matxPtr_inline_c_0, false)           );
-}
-
-}
-
-extern "C" {
-Mat * inline_c_OpenCV_Internal_Core_Types_Mat_ToFrom_15_2a562a86dc1b9757af2c1b812f95b880980e57e1(Matx44d * matxPtr_inline_c_0) {
-return (                                     new cv::Mat(*matxPtr_inline_c_0, false)           );
-}
-
-}
-
-extern "C" {
-Mat * inline_c_OpenCV_Internal_Core_Types_Mat_ToFrom_16_8c8c57f97f89df5748204bbe5663ecb2b5d94da2(Matx44f * matxPtr_inline_c_0) {
-return (                                     new cv::Mat(*matxPtr_inline_c_0, false)           );
-}
-
-}
-
-extern "C" {
-Mat * inline_c_OpenCV_Internal_Core_Types_Mat_ToFrom_17_af42cdd7bb243571475ab963f212fd5a10d3502d(Matx43d * matxPtr_inline_c_0) {
-return (                                     new cv::Mat(*matxPtr_inline_c_0, false)           );
-}
-
-}
-
-extern "C" {
-Mat * inline_c_OpenCV_Internal_Core_Types_Mat_ToFrom_18_ce60ea97659f2605dd06601ae1df24e60068c466(Matx43f * matxPtr_inline_c_0) {
-return (                                     new cv::Mat(*matxPtr_inline_c_0, false)           );
-}
-
-}
-
-extern "C" {
-Mat * inline_c_OpenCV_Internal_Core_Types_Mat_ToFrom_19_d175891079fb26a1501b7c42c5c0e6d54a56bed5(Matx41d * matxPtr_inline_c_0) {
-return (                                     new cv::Mat(*matxPtr_inline_c_0, false)           );
-}
-
-}
-
-extern "C" {
-Mat * inline_c_OpenCV_Internal_Core_Types_Mat_ToFrom_20_a48f3bf9a9a4dae2340a50d2c77ced59d92f1e7e(Matx41f * matxPtr_inline_c_0) {
-return (                                     new cv::Mat(*matxPtr_inline_c_0, false)           );
-}
-
-}
-
-extern "C" {
-Mat * inline_c_OpenCV_Internal_Core_Types_Mat_ToFrom_21_39e9a8089a76e17cf7899f56a0bc809d66ad748c(Matx34d * matxPtr_inline_c_0) {
-return (                                     new cv::Mat(*matxPtr_inline_c_0, false)           );
-}
-
-}
-
-extern "C" {
-Mat * inline_c_OpenCV_Internal_Core_Types_Mat_ToFrom_22_8178c2bd3f85a221e26692bdb78ce0eb008f3f1d(Matx34f * matxPtr_inline_c_0) {
-return (                                     new cv::Mat(*matxPtr_inline_c_0, false)           );
-}
-
-}
-
-extern "C" {
-Mat * inline_c_OpenCV_Internal_Core_Types_Mat_ToFrom_23_abb3f5c03c857879d7be5d421dc86538447c4f09(Matx33d * matxPtr_inline_c_0) {
-return (                                     new cv::Mat(*matxPtr_inline_c_0, false)           );
-}
-
-}
-
-extern "C" {
-Mat * inline_c_OpenCV_Internal_Core_Types_Mat_ToFrom_24_2d75ca50c440f5a6e27fe2914183afee147f6fdb(Matx33f * matxPtr_inline_c_0) {
-return (                                     new cv::Mat(*matxPtr_inline_c_0, false)           );
-}
-
-}
-
-extern "C" {
-Mat * inline_c_OpenCV_Internal_Core_Types_Mat_ToFrom_25_4c6f1d03642f100349b976eaf03d1942836b04e6(Matx32d * matxPtr_inline_c_0) {
-return (                                     new cv::Mat(*matxPtr_inline_c_0, false)           );
-}
-
-}
-
-extern "C" {
-Mat * inline_c_OpenCV_Internal_Core_Types_Mat_ToFrom_26_304a66a864f53a670157dccab6b4d77145dcb663(Matx32f * matxPtr_inline_c_0) {
-return (                                     new cv::Mat(*matxPtr_inline_c_0, false)           );
-}
-
-}
-
-extern "C" {
-Mat * inline_c_OpenCV_Internal_Core_Types_Mat_ToFrom_27_d87e61baada48adb272b1c3d22d3e36ac49c31d6(Matx31d * matxPtr_inline_c_0) {
-return (                                     new cv::Mat(*matxPtr_inline_c_0, false)           );
-}
-
-}
-
-extern "C" {
-Mat * inline_c_OpenCV_Internal_Core_Types_Mat_ToFrom_28_1ad748701b04668af63d83ad3eb71a9062d77c03(Matx31f * matxPtr_inline_c_0) {
-return (                                     new cv::Mat(*matxPtr_inline_c_0, false)           );
-}
-
-}
-
-extern "C" {
-Mat * inline_c_OpenCV_Internal_Core_Types_Mat_ToFrom_29_c148fc5d41eae792f80646df7451f6fd83661ebb(Matx23d * matxPtr_inline_c_0) {
-return (                                     new cv::Mat(*matxPtr_inline_c_0, false)           );
-}
-
-}
-
-extern "C" {
-Mat * inline_c_OpenCV_Internal_Core_Types_Mat_ToFrom_30_0d87f13f869b54c7d3be9b6a2253cfe70e29091e(Matx23f * matxPtr_inline_c_0) {
-return (                                     new cv::Mat(*matxPtr_inline_c_0, false)           );
-}
-
-}
-
-extern "C" {
-Mat * inline_c_OpenCV_Internal_Core_Types_Mat_ToFrom_31_6ac96f8c93771e9e0d3c6a6b661686a823ada3e2(Matx22d * matxPtr_inline_c_0) {
-return (                                     new cv::Mat(*matxPtr_inline_c_0, false)           );
-}
-
-}
-
-extern "C" {
-Mat * inline_c_OpenCV_Internal_Core_Types_Mat_ToFrom_32_da9adea007a8a4326278f8e111d196407bdaaba3(Matx22f * matxPtr_inline_c_0) {
-return (                                     new cv::Mat(*matxPtr_inline_c_0, false)           );
-}
-
-}
-
-extern "C" {
-Mat * inline_c_OpenCV_Internal_Core_Types_Mat_ToFrom_33_eca473cb3b20c52d6f56c76b87b794d6dff08a77(Matx21d * matxPtr_inline_c_0) {
-return (                                     new cv::Mat(*matxPtr_inline_c_0, false)           );
-}
-
-}
-
-extern "C" {
-Mat * inline_c_OpenCV_Internal_Core_Types_Mat_ToFrom_34_4aea234c82d147d8026b542eaa3df0f4a79578bb(Matx21f * matxPtr_inline_c_0) {
-return (                                     new cv::Mat(*matxPtr_inline_c_0, false)           );
-}
-
-}
-
-extern "C" {
-Mat * inline_c_OpenCV_Internal_Core_Types_Mat_ToFrom_35_93f1240e7f9ffcefd5a36ba09f255cb803598eff(Matx16d * matxPtr_inline_c_0) {
-return (                                     new cv::Mat(*matxPtr_inline_c_0, false)           );
-}
-
-}
-
-extern "C" {
-Mat * inline_c_OpenCV_Internal_Core_Types_Mat_ToFrom_36_21af6d717acc7cde7d12727c234bba875e251589(Matx16f * matxPtr_inline_c_0) {
-return (                                     new cv::Mat(*matxPtr_inline_c_0, false)           );
-}
-
-}
-
-extern "C" {
-Mat * inline_c_OpenCV_Internal_Core_Types_Mat_ToFrom_37_9022eda55895d984c013f67a43809740eb9b0729(Matx14d * matxPtr_inline_c_0) {
-return (                                     new cv::Mat(*matxPtr_inline_c_0, false)           );
-}
-
-}
-
-extern "C" {
-Mat * inline_c_OpenCV_Internal_Core_Types_Mat_ToFrom_38_b0259f9daae441d86b4dc3f6f629ba31b12fa704(Matx14f * matxPtr_inline_c_0) {
-return (                                     new cv::Mat(*matxPtr_inline_c_0, false)           );
-}
-
-}
-
-extern "C" {
-Mat * inline_c_OpenCV_Internal_Core_Types_Mat_ToFrom_39_0fc44fd1bfef1edde38f265c3d53b2d59e42b626(Matx13d * matxPtr_inline_c_0) {
-return (                                     new cv::Mat(*matxPtr_inline_c_0, false)           );
-}
-
-}
-
-extern "C" {
-Mat * inline_c_OpenCV_Internal_Core_Types_Mat_ToFrom_40_faded17ee945cc4d3d26b6c2b54aad7d80d60795(Matx13f * matxPtr_inline_c_0) {
-return (                                     new cv::Mat(*matxPtr_inline_c_0, false)           );
-}
-
-}
-
-extern "C" {
-Mat * inline_c_OpenCV_Internal_Core_Types_Mat_ToFrom_41_5131effdb62ad7e1c09d0a396e20d56b6bd8a80e(Matx12d * matxPtr_inline_c_0) {
-return (                                     new cv::Mat(*matxPtr_inline_c_0, false)           );
-}
-
-}
-
-extern "C" {
-Mat * inline_c_OpenCV_Internal_Core_Types_Mat_ToFrom_42_7abd6a2eb31c14304b28a0aa525e105497baf217(Matx12f * matxPtr_inline_c_0) {
-return (                                     new cv::Mat(*matxPtr_inline_c_0, false)           );
-}
-
-}
diff --git a/src/OpenCV/Internal/Exception.cpp b/src/OpenCV/Internal/Exception.cpp
deleted file mode 100644
--- a/src/OpenCV/Internal/Exception.cpp
+++ /dev/null
@@ -1,18 +0,0 @@
-
-#include "opencv2/core.hpp"
-
-using namespace cv;
-
-extern "C" {
-const char * inline_c_OpenCV_Internal_Exception_0_9c662f8b58a9de54c461812288a8567063b02b4d(Exception * cvExceptionPtr_inline_c_0) {
-return ( cvExceptionPtr_inline_c_0->what() );
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Internal_Exception_1_2402dbf3aea4f7f79392b71ed42618962a22e9aa(Exception * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
diff --git a/src/OpenCV/Photo.cpp b/src/OpenCV/Photo.cpp
deleted file mode 100644
--- a/src/OpenCV/Photo.cpp
+++ /dev/null
@@ -1,126 +0,0 @@
-
-#include "opencv2/core.hpp"
-
-#include "opencv2/photo.hpp"
-
-using namespace cv;
-
-extern "C" {
-Exception * inline_c_OpenCV_Photo_0_dac42d1fe6129176553b190f2c1ab4ea3868b5ce(Mat * srcPtr_inline_c_0, Mat * inpaintMaskPtr_inline_c_1, Mat * dstPtr_inline_c_2, double cinpaintRadius_27_inline_c_3, int32_t cmethod_27_inline_c_4) {
-
-  try
-  {   
-        cv::inpaint( *srcPtr_inline_c_0
-                   , *inpaintMaskPtr_inline_c_1
-                   , *dstPtr_inline_c_2
-                   , cinpaintRadius_27_inline_c_3
-                   , cmethod_27_inline_c_4
-                   );
-      
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_Photo_1_cdc017d1b83f0af3b77acfa9c323650631d4108c(Mat * srcPtr_inline_c_0, Mat * dstPtr_inline_c_1, double ch_27_inline_c_2, double chColor_27_inline_c_3, int32_t templateWindowSize_inline_c_4, int32_t searchWindowSize_inline_c_5) {
-
-  try
-  {   
-        cv::fastNlMeansDenoisingColored( *srcPtr_inline_c_0
-                                       , *dstPtr_inline_c_1
-                                       , ch_27_inline_c_2
-                                       , chColor_27_inline_c_3
-                                       , templateWindowSize_inline_c_4
-                                       , searchWindowSize_inline_c_5
-                                       );
-      
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_Photo_2_21eb93edb3c09c34ee63f35f5649016ca5df8b0b(Mat * srcVecPtr_inline_c_0, Mat * srcVecPtr_inline_c_1, int32_t ctemporalWindowSize_27_inline_c_2, Mat * dstPtr_inline_c_3, int32_t cimgToDenoiseIndex_27_inline_c_4, int32_t ctemporalWindowSize_27_inline_c_5, double ch_27_inline_c_6, double chColor_27_inline_c_7, int32_t templateWindowSize_inline_c_8, int32_t searchWindowSize_inline_c_9) {
-
-  try
-  {   
-        std::vector<Mat> buffer( srcVecPtr_inline_c_0
-                    , srcVecPtr_inline_c_1 + ctemporalWindowSize_27_inline_c_2 );
-        cv::fastNlMeansDenoisingColoredMulti( buffer
-                                            , *dstPtr_inline_c_3
-                                            , cimgToDenoiseIndex_27_inline_c_4
-                                            , ctemporalWindowSize_27_inline_c_5
-                                            , ch_27_inline_c_6
-                                            , chColor_27_inline_c_7
-                                            , templateWindowSize_inline_c_8
-                                            , searchWindowSize_inline_c_9
-                                            );
-      
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_Photo_3_1c316b2af4a9f9c007f326e4f4a13fc675613477(Mat * srcVecPtr_inline_c_0, Mat * srcVecPtr_inline_c_1, int32_t csrcVecLength_27_inline_c_2, Mat * dstPtr_inline_c_3, double clambda_27_inline_c_4, int32_t niters_inline_c_5) {
-
-  try
-  {   
-        std::vector<Mat> buffer( srcVecPtr_inline_c_0
-                           , srcVecPtr_inline_c_1 + csrcVecLength_27_inline_c_2 );
-        cv::denoise_TVL1( buffer
-                        , *dstPtr_inline_c_3
-                        , clambda_27_inline_c_4
-                        , niters_inline_c_5
-                        );
-      
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_Photo_4_fe1aedf09e63d5faa9a1c3ef9ba438b9c607a8fb(Mat * srcPtr_inline_c_0, Mat * grayPtr_inline_c_1, Mat * boostPtr_inline_c_2) {
-
-  try
-  {   
-        cv::decolor( *srcPtr_inline_c_0
-                   , *grayPtr_inline_c_1
-                   , *boostPtr_inline_c_2
-                   );
-      
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
diff --git a/src/OpenCV/Video.cpp b/src/OpenCV/Video.cpp
deleted file mode 100644
--- a/src/OpenCV/Video.cpp
+++ /dev/null
@@ -1,30 +0,0 @@
-
-#include "opencv2/core.hpp"
-
-#include "opencv2/video.hpp"
-
-using namespace cv;
-
-extern "C" {
-Exception * inline_c_OpenCV_Video_0_c7a068d39e7de16608cca36fb2c18a26ebc396dd(Mat * matOutPtr_inline_c_0, Point2i * srcPtr_inline_c_1, int32_t csrcLen_27_inline_c_2, Point2i * dstPtr_inline_c_3, int32_t cdstLen_27_inline_c_4, bool cfullAffine_27_inline_c_5) {
-
-  try
-  {   
-            Mat * matOutPtr = matOutPtr_inline_c_0;
-            *matOutPtr =
-               cv::estimateRigidTransform
-               ( cv::_InputArray(srcPtr_inline_c_1, csrcLen_27_inline_c_2)
-               , cv::_InputArray(dstPtr_inline_c_3, cdstLen_27_inline_c_4)
-               , cfullAffine_27_inline_c_5
-               );
-          
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
diff --git a/src/OpenCV/Video/MotionAnalysis.cpp b/src/OpenCV/Video/MotionAnalysis.cpp
deleted file mode 100644
--- a/src/OpenCV/Video/MotionAnalysis.cpp
+++ /dev/null
@@ -1,150 +0,0 @@
-
-#include "opencv2/core.hpp"
-
-#include "opencv2/video.hpp"
-
-#include "video_motion_analysis.hpp"
-
-using namespace cv;
-
-extern "C" {
-Ptr_BackgroundSubtractorKNN * inline_c_OpenCV_Video_MotionAnalysis_0_0a0b275740813683c1bfed73969c25c494b46b98(int32_t chistory_27_inline_c_0, double cdist2Threshold_27_inline_c_1, bool cdetectShadows_27_inline_c_2) {
-
-      cv::Ptr<cv::BackgroundSubtractorKNN> knnPtr =
-        cv::createBackgroundSubtractorKNN
-        ( chistory_27_inline_c_0
-        , cdist2Threshold_27_inline_c_1
-        , cdetectShadows_27_inline_c_2
-        );
-      return new cv::Ptr<cv::BackgroundSubtractorKNN>(knnPtr);
-    
-}
-
-}
-
-extern "C" {
-Ptr_BackgroundSubtractorMOG2 * inline_c_OpenCV_Video_MotionAnalysis_1_6bd1934e204ea96bb8aa587f6a5548311105c7e1(int32_t chistory_27_inline_c_0, double cvarThreshold_27_inline_c_1, bool cdetectShadows_27_inline_c_2) {
-
-      cv::Ptr<cv::BackgroundSubtractorMOG2> mog2Ptr =
-        cv::createBackgroundSubtractorMOG2
-        ( chistory_27_inline_c_0
-        , cvarThreshold_27_inline_c_1
-        , cdetectShadows_27_inline_c_2
-        );
-      return new cv::Ptr<cv::BackgroundSubtractorMOG2>(mog2Ptr);
-    
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Video_MotionAnalysis_2_4a6f75be46ee9ae7f66ce94ff11f820f90a0920e(Ptr_BackgroundSubtractorMOG2 * mog2Ptr_inline_c_0, Mat * imgPtr_inline_c_1, Mat * fgMaskPtr_inline_c_2, double clearningRate_27_inline_c_3) {
-
-              cv::BackgroundSubtractorMOG2 * mog2 = *mog2Ptr_inline_c_0;
-              mog2->apply
-              ( *imgPtr_inline_c_1
-              , *fgMaskPtr_inline_c_2
-              , clearningRate_27_inline_c_3
-              );
-            
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Video_MotionAnalysis_3_dd637d33bcb924803904d88fe7ac6404770cb2c2(Ptr_BackgroundSubtractorMOG2 * mog2Ptr_inline_c_0, Mat * imgPtr_inline_c_1) {
-
-              cv::BackgroundSubtractorMOG2 * mog2 = *mog2Ptr_inline_c_0;
-              mog2->getBackgroundImage(*imgPtr_inline_c_1);
-            
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Video_MotionAnalysis_4_e309b886cafe1283f14b5556398e8236e0b09791(Ptr_BackgroundSubtractorKNN * knnPtr_inline_c_0, Mat * imgPtr_inline_c_1, Mat * fgMaskPtr_inline_c_2, double clearningRate_27_inline_c_3) {
-
-              cv::BackgroundSubtractorKNN * knn = *knnPtr_inline_c_0;
-              knn->apply
-              ( *imgPtr_inline_c_1
-              , *fgMaskPtr_inline_c_2
-              , clearningRate_27_inline_c_3
-              );
-            
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Video_MotionAnalysis_5_acc3fe34d3592ae448faa1c398acf9aefbe9cdbf(Ptr_BackgroundSubtractorKNN * knnPtr_inline_c_0, Mat * imgPtr_inline_c_1) {
-
-              cv::BackgroundSubtractorKNN * knn = *knnPtr_inline_c_0;
-              knn->getBackgroundImage(*imgPtr_inline_c_1);
-            
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Video_MotionAnalysis_6_31db6e29933a955292a26fc8a2f21656f0264fc0(Ptr_BackgroundSubtractorMOG2 * mog2Ptr_inline_c_0) {
-
-              cv::BackgroundSubtractorMOG2 * mog2 = *mog2Ptr_inline_c_0;
-              mog2->clear();
-          
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Video_MotionAnalysis_7_778ae04bc23f9731f5715891f6c00c2e233cfae3(Ptr_BackgroundSubtractorMOG2 * mog2Ptr_inline_c_0, bool * emptyPtr_inline_c_1) {
-
-              cv::BackgroundSubtractorMOG2 * mog2 = *mog2Ptr_inline_c_0;
-              *emptyPtr_inline_c_1 = mog2->empty();
-          
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Video_MotionAnalysis_8_6d32d18fa950d5c3ad83fd26ae6d6fb09e7a8372(Ptr_BackgroundSubtractorKNN * knnPtr_inline_c_0) {
-
-              cv::BackgroundSubtractorKNN * knn = *knnPtr_inline_c_0;
-              knn->clear();
-          
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Video_MotionAnalysis_9_7be48f700e60c4da4e297a30717dc1fb9252896c(Ptr_BackgroundSubtractorKNN * knnPtr_inline_c_0, bool * emptyPtr_inline_c_1) {
-
-              cv::BackgroundSubtractorKNN * knn = *knnPtr_inline_c_0;
-              *emptyPtr_inline_c_1 = knn->empty();
-          
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Video_MotionAnalysis_10_c5f690e42d74da8f96ffec2e1798eec5b52382be(Ptr_BackgroundSubtractorMOG2 * ptr_inline_c_0) {
-
-                  cv::Ptr<cv::BackgroundSubtractorMOG2> * mog2_ptr_ptr =
-                    ptr_inline_c_0;
-                  mog2_ptr_ptr->release();
-                  delete mog2_ptr_ptr;
-                
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_Video_MotionAnalysis_11_27d85d129e9b7f1552b33141a9a7575fe19563bc(Ptr_BackgroundSubtractorKNN * ptr_inline_c_0) {
-
-                  cv::Ptr<cv::BackgroundSubtractorKNN> * knn_ptr_ptr =
-                    ptr_inline_c_0;
-                  knn_ptr_ptr->release();
-                  delete knn_ptr_ptr;
-                
-}
-
-}
diff --git a/src/OpenCV/VideoIO/VideoCapture.cpp b/src/OpenCV/VideoIO/VideoCapture.cpp
deleted file mode 100644
--- a/src/OpenCV/VideoIO/VideoCapture.cpp
+++ /dev/null
@@ -1,143 +0,0 @@
-
-#include "opencv2/core.hpp"
-
-#include "opencv2/videoio.hpp"
-
-using namespace cv;
-
-extern "C" {
-VideoCapture * inline_c_OpenCV_VideoIO_VideoCapture_0_ab9ed265db29f4cf2a2777e8ca5cb16998f7ac71() {
-return (
-      new cv::VideoCapture()
-    );
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_VideoIO_VideoCapture_1_f37094426ee7b6109652e57363ff24948f8b3740(VideoCapture * videoCapturePtr_inline_c_0, const char * cfilePath_27_inline_c_1, int32_t capi_27_inline_c_2) {
-
-  try
-  {   
-              videoCapturePtr_inline_c_0->open(cv::String(cfilePath_27_inline_c_1), capi_27_inline_c_2);
-            
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_VideoIO_VideoCapture_2_431a33a1d2563009e4ba8552b79f9019adbf7d6c(VideoCapture * videoCapturePtr_inline_c_0, int32_t cdevice_27_inline_c_1) {
-
-  try
-  {   
-            videoCapturePtr_inline_c_0->open(cdevice_27_inline_c_1);
-          
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_VideoIO_VideoCapture_3_1882f853a76cc5f0bc18c4d9f5f2075126512391(VideoCapture * videoCapturePtr_inline_c_0) {
-
-  try
-  {   
-        videoCapturePtr_inline_c_0->release();
-      
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-bool inline_c_OpenCV_VideoIO_VideoCapture_4_3c98054f960c952ed632d3d0a95d6f46f0f1b559(VideoCapture * videoCapturePtr_inline_c_0) {
-return (
-        videoCapturePtr_inline_c_0->isOpened()
-      );
-}
-
-}
-
-extern "C" {
-bool inline_c_OpenCV_VideoIO_VideoCapture_5_6c2ca3ac7eb301e8870a46d2eab31ba7bbfe1c17(VideoCapture * videoCapturePtr_inline_c_0) {
-return (
-        videoCapturePtr_inline_c_0->grab()
-      );
-}
-
-}
-
-extern "C" {
-bool inline_c_OpenCV_VideoIO_VideoCapture_6_254460c041760fe3eb8f3e5e05438f91d2a82ce5(VideoCapture * videoCapturePtr_inline_c_0, Mat * framePtr_inline_c_1) {
-return (
-          videoCapturePtr_inline_c_0->retrieve(*framePtr_inline_c_1, 0)
-        );
-}
-
-}
-
-extern "C" {
-double inline_c_OpenCV_VideoIO_VideoCapture_7_407526323012c89432561c3320a753a4fcdd1521(VideoCapture * videoCapturePtr_inline_c_0, int32_t cprop_27_inline_c_1) {
-return (
-        videoCapturePtr_inline_c_0->get( cprop_27_inline_c_1 )
-      );
-}
-
-}
-
-extern "C" {
-int32_t inline_c_OpenCV_VideoIO_VideoCapture_8_c923566cc51e3c1649dbf96f60f8c5d6ecb9d10b(VideoCapture * videoCapturePtr_inline_c_0, int32_t cprop_27_inline_c_1) {
-return (
-        videoCapturePtr_inline_c_0->get( cprop_27_inline_c_1 )
-      );
-}
-
-}
-
-extern "C" {
-bool inline_c_OpenCV_VideoIO_VideoCapture_9_8a3e42766b51dc8a22277104ce93cd0e01023d66(VideoCapture * videoCapturePtr_inline_c_0, int32_t cprop_27_inline_c_1, double cval_27_inline_c_2) {
-return (
-        videoCapturePtr_inline_c_0->set( cprop_27_inline_c_1
-                                              , cval_27_inline_c_2
-                                              )
-      );
-}
-
-}
-
-extern "C" {
-bool inline_c_OpenCV_VideoIO_VideoCapture_10_ddb51d8b9125e643559ae784160d563071bed3db(VideoCapture * videoCapturePtr_inline_c_0, int32_t cprop_27_inline_c_1, int32_t val_inline_c_2) {
-return (
-        videoCapturePtr_inline_c_0->set( cprop_27_inline_c_1
-                                              , val_inline_c_2
-                                              )
-      );
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_VideoIO_VideoCapture_11_525579f48382e876139050af6413f576695c80b7(VideoCapture * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
diff --git a/src/OpenCV/VideoIO/VideoWriter.cpp b/src/OpenCV/VideoIO/VideoWriter.cpp
deleted file mode 100644
--- a/src/OpenCV/VideoIO/VideoWriter.cpp
+++ /dev/null
@@ -1,71 +0,0 @@
-
-#include "opencv2/core.hpp"
-
-#include "opencv2/videoio.hpp"
-
-using namespace cv;
-
-extern "C" {
-VideoWriter * inline_c_OpenCV_VideoIO_VideoWriter_0_63dd3b8b2445d3abd57d4874d4c4971d404cd27b(const char * cfilePath_27_inline_c_0, int32_t cfourCC_27_inline_c_1, double cfps_27_inline_c_2, Size2i * frameDimsPtr_inline_c_3) {
-return (
-              new cv::VideoWriter( cv::String(cfilePath_27_inline_c_0)
-                                 , cfourCC_27_inline_c_1
-                                 , cfps_27_inline_c_2
-                                 , *frameDimsPtr_inline_c_3
-                                 )
-            );
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_VideoIO_VideoWriter_1_22f2391373836933935aaf9c1eb3ad3542bdf277(VideoWriter * videoWriterPtr_inline_c_0) {
-
-  try
-  {   
-        videoWriterPtr_inline_c_0->release();
-      
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-bool inline_c_OpenCV_VideoIO_VideoWriter_2_5b2c7490b5a9614bcf2aca28f612292eeab436fc(VideoWriter * videoWriterPtr_inline_c_0) {
-return (
-        videoWriterPtr_inline_c_0->isOpened()
-      );
-}
-
-}
-
-extern "C" {
-Exception * inline_c_OpenCV_VideoIO_VideoWriter_3_47a0f544e1d36145156061e7d8494b8fe5fce91f(VideoWriter * videoWriterPtr_inline_c_0, Mat * framePtr_inline_c_1) {
-
-  try
-  {   
-          videoWriterPtr_inline_c_0->write(*framePtr_inline_c_1);
-        
-    return NULL;
-  }
-  catch (const cv::Exception & e)
-  {
-    return new cv::Exception(e);
-  }
-
-}
-
-}
-
-extern "C" {
-void inline_c_OpenCV_VideoIO_VideoWriter_4_f06942315b8f072b23a70879094d8ade94144525(VideoWriter * ptr_inline_c_0) {
- delete ptr_inline_c_0 ;
-}
-
-}
diff --git a/test/test.hs b/test/test.hs
--- a/test/test.hs
+++ b/test/test.hs
@@ -19,6 +19,7 @@
 import "linear" Linear.V4 ( V4(..) )
 import "opencv" OpenCV
 import "opencv" OpenCV.Unsafe
+import "opencv" OpenCV.Internal.Core.Types.Mat ( deallocateMatM )
 import "opencv" OpenCV.Internal.Core.Types.Mat.Marshal ( marshalDepth, unmarshalDepth )
 import qualified "repa" Data.Array.Repa as Repa
 import "repa" Data.Array.Repa.Index ((:.)((:.)))
@@ -68,6 +69,7 @@
           ]
         , testGroup "Mat"
           [ HU.testCase "emptyMat" $ testMatType emptyMat
+          , HU.testCase "deallocate" $ testDeallocate
           , testGroup "matInfo"
             [ matHasInfoFP "Lenna.png"  $ MatInfo [512, 512] Depth_8U 3
             , matHasInfoFP "kikker.jpg" $ MatInfo [390, 500] Depth_8U 3
@@ -235,6 +237,12 @@
       [] -> pure ()
       errors -> assertFailure $ show errors
 
+testDeallocate :: HU.Assertion
+testDeallocate = do
+    mat <- loadLambda
+    mutMat <- thaw mat
+    deallocateMatM mutMat
+
 matHasInfoFP :: FilePath -> MatInfo -> TestTree
 matHasInfoFP fp expectedInfo = HU.testCase fp $ do
     mat <- loadImg ImreadUnchanged fp
@@ -389,12 +397,6 @@
 --------------------------------------------------------------------------------
 -- QuikcCheck Arbitrary Instances
 --------------------------------------------------------------------------------
-
-instance QC.Arbitrary CFloat where
-    arbitrary = CFloat <$> QC.arbitrary
-
-instance QC.Arbitrary CDouble where
-    arbitrary = CDouble <$> QC.arbitrary
 
 instance (QC.Arbitrary a) => QC.Arbitrary (V2 a) where
     arbitrary = V2 <$> QC.arbitrary <*> QC.arbitrary
