Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- class Pixel p where
- type PixelChannel p
- pixNChannels :: p -> Int
- pixIndex :: p -> Int -> PixelChannel p
- class Storable (ImagePixel i) => MaskedImage i where
- type ImagePixel i
- shape :: i -> Size
- maskedIndex :: i -> Point -> Maybe (ImagePixel i)
- maskedLinearIndex :: i -> Int -> Maybe (ImagePixel i)
- values :: i -> Vector (ImagePixel i)
- class MaskedImage i => Image i where
- index :: i -> Point -> ImagePixel i
- linearIndex :: i -> Int -> ImagePixel i
- vector :: i -> Vector (ImagePixel i)
- type ImageChannel i = PixelChannel (ImagePixel i)
- class FromFunction i where
- type FromFunctionPixel i
- fromFunction :: Size -> (Point -> FromFunctionPixel i) -> i
- fromFunctionLine :: Size -> (Int -> a) -> (a -> Point -> FromFunctionPixel i) -> i
- fromFunctionCol :: Storable b => Size -> (Int -> b) -> (b -> Point -> FromFunctionPixel i) -> i
- fromFunctionCached :: Storable b => Size -> (Int -> a) -> (Int -> b) -> (a -> b -> Point -> FromFunctionPixel i) -> i
- class (MaskedImage src, MaskedImage res) => FunctorImage src res where
- map :: (ImagePixel src -> ImagePixel res) -> src -> res
- (!) :: Image i => i -> Point -> ImagePixel i
- (!?) :: MaskedImage i => i -> Point -> Maybe (ImagePixel i)
- nChannels :: (Pixel (ImagePixel i), MaskedImage i) => i -> Int
- pixel :: MaskedImage i => i -> ImagePixel i
Classes
Determines the number of channels and the type of each pixel of the image and how images are represented.
type PixelChannel p Source #
pixNChannels :: p -> Int Source #
Returns the number of channels of the pixel.
Must not consume p
(could be undefined
).
pixIndex :: p -> Int -> PixelChannel p Source #
Instances
class Storable (ImagePixel i) => MaskedImage i where Source #
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 (
) is located in the upper left corner.ix2
0 0
type ImagePixel i Source #
maskedIndex :: i -> Point -> Maybe (ImagePixel i) Source #
Returns the pixel's value at 'Z :. y, :. x'.
maskedLinearIndex :: i -> Int -> Maybe (ImagePixel i) Source #
Returns the pixel's value as if the image was a single dimension vector (row-major representation).
values :: i -> Vector (ImagePixel i) Source #
Returns the non-masked values of the image.
Instances
Storable p => MaskedImage (Delayed p) Source # | |
Defined in Vision.Image.Type type ImagePixel (Delayed p) Source # | |
Storable p => MaskedImage (DelayedMask p) Source # | |
Defined in Vision.Image.Type type ImagePixel (DelayedMask p) Source # shape :: DelayedMask p -> Size Source # maskedIndex :: DelayedMask p -> Point -> Maybe (ImagePixel (DelayedMask p)) Source # maskedLinearIndex :: DelayedMask p -> Int -> Maybe (ImagePixel (DelayedMask p)) Source # values :: DelayedMask p -> Vector (ImagePixel (DelayedMask p)) Source # | |
Storable p => MaskedImage (Manifest p) Source # | |
Defined in Vision.Image.Type type ImagePixel (Manifest p) Source # |
class MaskedImage i => Image i where Source #
Provides an abstraction over the internal representation of an image.
Image origin (
) is located in the upper left corner.ix2
0 0
index :: i -> Point -> ImagePixel i Source #
Returns the pixel value at 'Z :. y :. x'.
linearIndex :: i -> Int -> ImagePixel i Source #
Returns the pixel value as if the image was a single dimension vector (row-major representation).
vector :: i -> Vector (ImagePixel i) Source #
Returns every pixel values as if the image was a single dimension vector (row-major representation).
type ImageChannel i = PixelChannel (ImagePixel i) Source #
class FromFunction i where Source #
Provides ways to construct an image from a function.
type FromFunctionPixel i Source #
fromFunction :: Size -> (Point -> FromFunctionPixel i) -> i Source #
Generates an image by calling the given function for each pixel of the constructed image.
fromFunctionLine :: Size -> (Int -> a) -> (a -> Point -> FromFunctionPixel i) -> i Source #
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 Source #
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
.
:: 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
class (MaskedImage src, MaskedImage res) => FunctorImage src res where Source #
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.
map :: (ImagePixel src -> ImagePixel res) -> src -> res Source #
Instances
(Image src, Storable p) => FunctorImage src (Delayed p) Source # | |
Defined in Vision.Image.Type map :: (ImagePixel src -> ImagePixel (Delayed p)) -> src -> Delayed p Source # | |
(MaskedImage src, Storable p) => FunctorImage src (DelayedMask p) Source # | |
Defined in Vision.Image.Type map :: (ImagePixel src -> ImagePixel (DelayedMask p)) -> src -> DelayedMask p Source # | |
(Image src, Storable p) => FunctorImage src (Manifest p) Source # | |
Defined in Vision.Image.Type map :: (ImagePixel src -> ImagePixel (Manifest p)) -> src -> Manifest p Source # |
Functions
(!?) :: MaskedImage i => i -> Point -> Maybe (ImagePixel i) Source #
Alias of maskedIndex
.
nChannels :: (Pixel (ImagePixel i), MaskedImage i) => i -> Int Source #
Returns the number of channels of an image.
pixel :: MaskedImage i => i -> ImagePixel i Source #
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)