opencv-0.0.0.0: src/OpenCV/Internal/ImgProc/Types.hsc
{-# language CPP #-}
#ifndef ENABLE_INTERNAL_DOCUMENTATION
{-# OPTIONS_HADDOCK hide #-}
#endif
module OpenCV.Internal.ImgProc.Types where
import "base" Data.Int ( Int32 )
import "base" Foreign.C.Types ( CDouble )
import "linear" Linear.V4 ( V4(..) )
import "linear" Linear.Vector ( zero )
import "this" OpenCV.Core.Types ( Scalar, toScalar )
import "this" OpenCV.ImgProc.Types
--------------------------------------------------------------------------------
#include <bindings.dsl.h>
#include "opencv2/core.hpp"
#include "opencv2/imgproc.hpp"
#include "namespace.hpp"
#num INTER_NEAREST
#num INTER_LINEAR
#num INTER_CUBIC
#num INTER_AREA
#num INTER_LANCZOS4
marshalInterpolationMethod :: InterpolationMethod -> Int32
marshalInterpolationMethod = \case
InterNearest -> c'INTER_NEAREST
InterLinear -> c'INTER_LINEAR
InterCubic -> c'INTER_CUBIC
InterArea -> c'INTER_AREA
InterLanczos4 -> c'INTER_LANCZOS4
#num BORDER_CONSTANT
#num BORDER_REPLICATE
#num BORDER_REFLECT
#num BORDER_WRAP
#num BORDER_REFLECT_101
#num BORDER_TRANSPARENT
#num BORDER_ISOLATED
marshalBorderMode :: BorderMode -> (Int32, Scalar)
marshalBorderMode = \case
BorderConstant s -> (c'BORDER_CONSTANT , s )
BorderReplicate -> (c'BORDER_REPLICATE , zeroScalar)
BorderReflect -> (c'BORDER_REFLECT , zeroScalar)
BorderWrap -> (c'BORDER_WRAP , zeroScalar)
BorderReflect101 -> (c'BORDER_REFLECT_101 , zeroScalar)
BorderTransparent -> (c'BORDER_TRANSPARENT , zeroScalar)
BorderIsolated -> (c'BORDER_ISOLATED , zeroScalar)
where
zeroScalar :: Scalar
zeroScalar = toScalar (zero :: V4 CDouble)