friday-0.2.3.1: A functional image processing library for Haskell.

Safe HaskellNone
LanguageHaskell2010

Vision.Image.Class

Contents

Synopsis

Classes

class Pixel p where #

Determines the number of channels and the type of each pixel of the image and how images are represented.

Minimal complete definition

pixNChannels, pixIndex

Associated Types

type PixelChannel p #

Methods

pixNChannels :: p -> Int #

Returns the number of channels of the pixel.

Must not consume p (could be undefined).

pixIndex :: p -> Int -> PixelChannel p #

Instances
Pixel Bool # 
Instance details

Defined in Vision.Image.Class

Associated Types

type PixelChannel Bool :: * #

Pixel Double # 
Instance details

Defined in Vision.Image.Class

Associated Types

type PixelChannel Double :: * #

Pixel Float # 
Instance details

Defined in Vision.Image.Class

Associated Types

type PixelChannel Float :: * #

Pixel Int # 
Instance details

Defined in Vision.Image.Class

Associated Types

type PixelChannel Int :: * #

Pixel Int16 # 
Instance details

Defined in Vision.Image.Class

Associated Types

type PixelChannel Int16 :: * #

Pixel Int32 # 
Instance details

Defined in Vision.Image.Class

Associated Types

type PixelChannel Int32 :: * #

Pixel Word # 
Instance details

Defined in Vision.Image.Class

Associated Types

type PixelChannel Word :: * #

Pixel Word8 # 
Instance details

Defined in Vision.Image.Class

Associated Types

type PixelChannel Word8 :: * #

Pixel Word16 # 
Instance details

Defined in Vision.Image.Class

Associated Types

type PixelChannel Word16 :: * #

Pixel Word32 # 
Instance details

Defined in Vision.Image.Class

Associated Types

type PixelChannel Word32 :: * #

Pixel RGBAPixel # 
Instance details

Defined in Vision.Image.RGBA.Type

Associated Types

type PixelChannel RGBAPixel :: * #

Pixel RGBPixel # 
Instance details

Defined in Vision.Image.RGB.Type

Associated Types

type PixelChannel RGBPixel :: * #

Pixel HSVPixel # 
Instance details

Defined in Vision.Image.HSV.Type

Associated Types

type PixelChannel HSVPixel :: * #

Pixel GreyPixel # 
Instance details

Defined in Vision.Image.Grey.Type

Associated Types

type PixelChannel GreyPixel :: * #

class Storable (ImagePixel i) => MaskedImage i where #

Provides an abstraction for images which are not defined for each of their pixels. The interface is similar to Image except that indexing functions don't always return.

Image origin (ix2 0 0) is located in the upper left corner.

Minimal complete definition

shape, (maskedIndex | maskedLinearIndex)

Associated Types

type ImagePixel i #

Methods

shape :: i -> Size #

maskedIndex :: i -> Point -> Maybe (ImagePixel i) #

Returns the pixel's value at 'Z :. y, :. x'.

maskedLinearIndex :: i -> Int -> Maybe (ImagePixel i) #

Returns the pixel's value as if the image was a single dimension vector (row-major representation).

values :: i -> Vector (ImagePixel i) #

Returns the non-masked values of the image.

Instances
Storable p => MaskedImage (DelayedMask p) # 
Instance details

Defined in Vision.Image.Type

Associated Types

type ImagePixel (DelayedMask p) :: * #

Storable p => MaskedImage (Delayed p) # 
Instance details

Defined in Vision.Image.Type

Associated Types

type ImagePixel (Delayed p) :: * #

Storable p => MaskedImage (Manifest p) # 
Instance details

Defined in Vision.Image.Type

Associated Types

type ImagePixel (Manifest p) :: * #

class MaskedImage i => Image i where #

Provides an abstraction over the internal representation of an image.

Image origin (ix2 0 0) is located in the upper left corner.

Minimal complete definition

index | linearIndex

Methods

index :: i -> Point -> ImagePixel i #

Returns the pixel value at 'Z :. y :. x'.

linearIndex :: i -> Int -> ImagePixel i #

Returns the pixel value as if the image was a single dimension vector (row-major representation).

vector :: i -> Vector (ImagePixel i) #

Returns every pixel values as if the image was a single dimension vector (row-major representation).

Instances
Storable p => Image (Delayed p) # 
Instance details

Defined in Vision.Image.Type

Storable p => Image (Manifest p) # 
Instance details

Defined in Vision.Image.Type

class FromFunction i where #

Provides ways to construct an image from a function.

Minimal complete definition

fromFunction

Associated Types

type FromFunctionPixel i #

Methods

fromFunction :: Size -> (Point -> FromFunctionPixel i) -> i #

Generates an image by calling the given function for each pixel of the constructed image.

fromFunctionLine :: Size -> (Int -> a) -> (a -> Point -> FromFunctionPixel i) -> i #

Generates an image by calling the last function for each pixel of the constructed image.

The first function is called for each line, generating a line invariant value.

This function is faster for some image representations as some recurring computation can be cached.

fromFunctionCol :: Storable b => Size -> (Int -> b) -> (b -> Point -> FromFunctionPixel i) -> i #

Generates an image by calling the last function for each pixel of the constructed image.

The first function is called for each column, generating a column invariant value.

This function *can* be faster for some image representations as some recurring computations can be cached. However, it may requires a vector allocation for these values. If the column invariant is cheap to compute, prefer fromFunction.

fromFunctionCached #

Arguments

:: Storable b 
=> Size 
-> (Int -> a)

Line function

-> (Int -> b)

Column function

-> (a -> b -> Point -> FromFunctionPixel i)

Pixel function

-> i 

Generates an image by calling the last function for each pixel of the constructed image.

The two first functions are called for each line and for each column, respectively, generating common line and column invariant values.

This function is faster for some image representations as some recurring computation can be cached. However, it may requires a vector allocation for column values. If the column invariant is cheap to compute, prefer fromFunctionLine.

Instances
Storable p => FromFunction (DelayedMask p) # 
Instance details

Defined in Vision.Image.Type

Associated Types

type FromFunctionPixel (DelayedMask p) :: * #

FromFunction (Delayed p) # 
Instance details

Defined in Vision.Image.Type

Associated Types

type FromFunctionPixel (Delayed p) :: * #

Methods

fromFunction :: Size -> (Point -> FromFunctionPixel (Delayed p)) -> Delayed p #

fromFunctionLine :: Size -> (Int -> a) -> (a -> Point -> FromFunctionPixel (Delayed p)) -> Delayed p #

fromFunctionCol :: Storable b => Size -> (Int -> b) -> (b -> Point -> FromFunctionPixel (Delayed p)) -> Delayed p #

fromFunctionCached :: Storable b => Size -> (Int -> a) -> (Int -> b) -> (a -> b -> Point -> FromFunctionPixel (Delayed p)) -> Delayed p #

Storable p => FromFunction (Manifest p) # 
Instance details

Defined in Vision.Image.Type

Associated Types

type FromFunctionPixel (Manifest p) :: * #

Methods

fromFunction :: Size -> (Point -> FromFunctionPixel (Manifest p)) -> Manifest p #

fromFunctionLine :: Size -> (Int -> a) -> (a -> Point -> FromFunctionPixel (Manifest p)) -> Manifest p #

fromFunctionCol :: Storable b => Size -> (Int -> b) -> (b -> Point -> FromFunctionPixel (Manifest p)) -> Manifest p #

fromFunctionCached :: Storable b => Size -> (Int -> a) -> (Int -> b) -> (a -> b -> Point -> FromFunctionPixel (Manifest p)) -> Manifest p #

class (MaskedImage src, MaskedImage res) => FunctorImage src res where #

Defines a class for images on which a function can be applied. The class is different from Functor as there could be some constraints and transformations the pixel and image types.

Minimal complete definition

map

Methods

map :: (ImagePixel src -> ImagePixel res) -> src -> res #

Instances
(MaskedImage src, Storable p) => FunctorImage src (DelayedMask p) # 
Instance details

Defined in Vision.Image.Type

Methods

map :: (ImagePixel src -> ImagePixel (DelayedMask p)) -> src -> DelayedMask p #

(Image src, Storable p) => FunctorImage src (Delayed p) # 
Instance details

Defined in Vision.Image.Type

Methods

map :: (ImagePixel src -> ImagePixel (Delayed p)) -> src -> Delayed p #

(Image src, Storable p) => FunctorImage src (Manifest p) # 
Instance details

Defined in Vision.Image.Type

Methods

map :: (ImagePixel src -> ImagePixel (Manifest p)) -> src -> Manifest p #

Functions

(!) :: Image i => i -> Point -> ImagePixel i #

Alias of index.

(!?) :: MaskedImage i => i -> Point -> Maybe (ImagePixel i) #

Alias of maskedIndex.

nChannels :: (Pixel (ImagePixel i), MaskedImage i) => i -> Int #

Returns the number of channels of an image.

pixel :: MaskedImage i => i -> ImagePixel i #

Returns an undefined instance of a pixel of the image. This is sometime useful to satisfy the type checker as in a call to pixNChannels :

nChannels img = pixNChannels (pixel img)