{-# OPTIONS_GHC -fno-warn-orphans #-} -- | @SPECIALIZE@ pragma declarations for grey-scale images. module Vision.Image.Grey.Specialize () where import Data.Int import Vision.Histogram (Histogram, histogram, histogram2D, equalizeImage) import Vision.Image.Filter ( DerivativeType, dilate, erode, blur, gaussianBlur, scharr, sobel, mean ) import Vision.Image.Grey.Type (Grey, GreyPixel) import Vision.Image.Threshold ( ThresholdType, AdaptiveThresholdKernel, adaptiveThreshold, otsu, scw ) import Vision.Image.Transform ( InterpolMethod, crop, resize, horizontalFlip, verticalFlip ) import Vision.Image.Type (Manifest) import Vision.Primitive (DIM1, DIM3, Rect, Size) {-# SPECIALIZE histogram :: Maybe DIM1 -> Grey -> Histogram DIM1 Int32 , Maybe DIM1 -> Grey -> Histogram DIM1 Double , Maybe DIM1 -> Grey -> Histogram DIM1 Float #-} {-# SPECIALIZE histogram2D :: DIM3 -> Grey -> Histogram DIM3 Int32 , DIM3 -> Grey -> Histogram DIM3 Double , DIM3 -> Grey -> Histogram DIM3 Float #-} -- FIXME: GHC 7.8.2 fails to specialize {-# SPECIALIZE equalizeImage :: Grey -> Grey #-} {-# SPECIALIZE dilate :: Int -> Grey -> Grey #-} {-# SPECIALIZE erode :: Int -> Grey -> Grey #-} {-# SPECIALIZE blur :: Int -> Grey -> Grey #-} {-# SPECIALIZE gaussianBlur :: Int -> Maybe Double -> Grey -> Grey #-} {-# SPECIALIZE gaussianBlur :: Int -> Maybe Float -> Grey -> Grey #-} {-# SPECIALIZE scharr :: DerivativeType -> Grey -> Grey #-} {-# SPECIALIZE scharr :: DerivativeType -> Grey -> Manifest Int16 #-} {-# SPECIALIZE scharr :: DerivativeType -> Grey -> Manifest Int32 #-} {-# SPECIALIZE scharr :: DerivativeType -> Grey -> Manifest Int #-} {-# SPECIALIZE sobel :: Int -> DerivativeType -> Grey -> Grey #-} {-# SPECIALIZE sobel :: Int -> DerivativeType -> Grey -> Manifest Int16 #-} {-# SPECIALIZE sobel :: Int -> DerivativeType -> Grey -> Manifest Int32 #-} {-# SPECIALIZE sobel :: Int -> DerivativeType -> Grey -> Manifest Int #-} {-# SPECIALIZE mean :: Size -> Grey -> Manifest Double #-} {-# SPECIALIZE mean :: Size -> Grey -> Manifest Float #-} {-# SPECIALIZE adaptiveThreshold :: AdaptiveThresholdKernel Int -> Int -> GreyPixel -> ThresholdType GreyPixel GreyPixel -> Grey -> Grey #-} {-# SPECIALIZE adaptiveThreshold :: AdaptiveThresholdKernel Int16 -> Int -> GreyPixel -> ThresholdType GreyPixel GreyPixel -> Grey -> Grey #-} {-# SPECIALIZE adaptiveThreshold :: AdaptiveThresholdKernel Int32 -> Int -> GreyPixel -> ThresholdType GreyPixel GreyPixel -> Grey -> Grey #-} {-# SPECIALIZE adaptiveThreshold :: AdaptiveThresholdKernel Double -> Int -> GreyPixel -> ThresholdType GreyPixel GreyPixel -> Grey -> Grey #-} {-# SPECIALIZE adaptiveThreshold :: AdaptiveThresholdKernel Float -> Int -> GreyPixel -> ThresholdType GreyPixel GreyPixel -> Grey -> Grey #-} {-# SPECIALIZE otsu :: ThresholdType GreyPixel GreyPixel -> Grey -> Grey #-} {-# SPECIALIZE scw :: Size -> Size -> Double -> ThresholdType GreyPixel GreyPixel -> Grey -> Grey #-} {-# SPECIALIZE scw :: Size -> Size -> Float -> ThresholdType GreyPixel GreyPixel -> Grey -> Grey #-} {-# SPECIALIZE crop :: Rect -> Grey -> Grey #-} {-# SPECIALIZE resize :: InterpolMethod -> Size -> Grey -> Grey #-} {-# SPECIALIZE horizontalFlip :: Grey -> Grey #-} {-# SPECIALIZE verticalFlip :: Grey -> Grey #-}