hip-1.5.3.0: Haskell Image Processing (HIP) Library.

Copyright(c) Alexey Kuleshevich 2017
LicenseBSD3
MaintainerAlexey Kuleshevich <lehins@yandex.ru>
Stabilityexperimental
Portabilitynon-portable
Safe HaskellNone
LanguageHaskell2010

Graphics.Image.Interface.Vector

Contents

Description

 

Synopsis

Representation

data VU #

Unboxed Vector representation.

Constructors

VU 

Instances

Show VU # 

Methods

showsPrec :: Int -> VU -> ShowS #

show :: VU -> String #

showList :: [VU] -> ShowS #

BaseArray VU cs e => MArray VU cs e # 

Associated Types

data MImage s VU cs e :: * #

Methods

unsafeIndex :: Image VU cs e -> (Int, Int) -> Pixel cs e #

deepSeqImage :: Image VU cs e -> a -> a #

foldl :: (a -> Pixel cs e -> a) -> a -> Image VU cs e -> a #

foldr :: (Pixel cs e -> a -> a) -> a -> Image VU cs e -> a #

makeImageM :: (Functor m, Monad m) => (Int, Int) -> ((Int, Int) -> m (Pixel cs e)) -> m (Image VU cs e) #

mapM :: (MArray VU cs' e', Functor m, Monad m) => (Pixel cs' e' -> m (Pixel cs e)) -> Image VU cs' e' -> m (Image VU cs e) #

mapM_ :: (Functor m, Monad m) => (Pixel cs e -> m b) -> Image VU cs e -> m () #

foldM :: (Functor m, Monad m) => (a -> Pixel cs e -> m a) -> a -> Image VU cs e -> m a #

foldM_ :: (Functor m, Monad m) => (a -> Pixel cs e -> m a) -> a -> Image VU cs e -> m () #

mdims :: MImage s VU cs e -> (Int, Int) #

thaw :: (Functor m, PrimMonad m) => Image VU cs e -> m (MImage (PrimState m) VU cs e) #

freeze :: (Functor m, PrimMonad m) => MImage (PrimState m) VU cs e -> m (Image VU cs e) #

new :: (Functor m, PrimMonad m) => (Int, Int) -> m (MImage (PrimState m) VU cs e) #

read :: (Functor m, PrimMonad m) => MImage (PrimState m) VU cs e -> (Int, Int) -> m (Pixel cs e) #

write :: (Functor m, PrimMonad m) => MImage (PrimState m) VU cs e -> (Int, Int) -> Pixel cs e -> m () #

swap :: (Functor m, PrimMonad m) => MImage (PrimState m) VU cs e -> (Int, Int) -> (Int, Int) -> m () #

(MArray VU cs e, BaseArray VU cs e) => Array VU cs e # 

Associated Types

type Manifest VU :: * #

type Vector VU :: * -> * #

Methods

makeImage :: (Int, Int) -> ((Int, Int) -> Pixel cs e) -> Image VU cs e #

makeImageWindowed :: (Int, Int) -> (Int, Int) -> (Int, Int) -> ((Int, Int) -> Pixel cs e) -> ((Int, Int) -> Pixel cs e) -> Image VU cs e #

scalar :: Pixel cs e -> Image VU cs e #

index00 :: Image VU cs e -> Pixel cs e #

map :: Array VU cs' e' => (Pixel cs' e' -> Pixel cs e) -> Image VU cs' e' -> Image VU cs e #

imap :: Array VU cs' e' => ((Int, Int) -> Pixel cs' e' -> Pixel cs e) -> Image VU cs' e' -> Image VU cs e #

zipWith :: (Array VU cs1 e1, Array VU cs2 e2) => (Pixel cs1 e1 -> Pixel cs2 e2 -> Pixel cs e) -> Image VU cs1 e1 -> Image VU cs2 e2 -> Image VU cs e #

izipWith :: (Array VU cs1 e1, Array VU cs2 e2) => ((Int, Int) -> Pixel cs1 e1 -> Pixel cs2 e2 -> Pixel cs e) -> Image VU cs1 e1 -> Image VU cs2 e2 -> Image VU cs e #

traverse :: Array VU cs' e' => Image VU cs' e' -> ((Int, Int) -> (Int, Int)) -> (((Int, Int) -> Pixel cs' e') -> (Int, Int) -> Pixel cs e) -> Image VU cs e #

traverse2 :: (Array VU cs1 e1, Array VU cs2 e2) => Image VU cs1 e1 -> Image VU cs2 e2 -> ((Int, Int) -> (Int, Int) -> (Int, Int)) -> (((Int, Int) -> Pixel cs1 e1) -> ((Int, Int) -> Pixel cs2 e2) -> (Int, Int) -> Pixel cs e) -> Image VU cs e #

transpose :: Image VU cs e -> Image VU cs e #

backpermute :: (Int, Int) -> ((Int, Int) -> (Int, Int)) -> Image VU cs e -> Image VU cs e #

fromLists :: [[Pixel cs e]] -> Image VU cs e #

(|*|) :: Image VU cs e -> Image VU cs e -> Image VU cs e #

fold :: (Pixel cs e -> Pixel cs e -> Pixel cs e) -> Pixel cs e -> Image VU cs e -> Pixel cs e #

foldIx :: (Pixel cs e -> (Int, Int) -> Pixel cs e -> Pixel cs e) -> Pixel cs e -> Image VU cs e -> Pixel cs e #

eq :: Image VU cs e -> Image VU cs e -> Bool #

compute :: Image VU cs e -> Image VU cs e #

toManifest :: Image VU cs e -> Image (Manifest VU) cs e #

toVector :: Image VU cs e -> Vector VU (Pixel cs e) #

fromVector :: (Int, Int) -> Vector VU (Pixel cs e) -> Image VU cs e #

SuperClass VU cs e => BaseArray VU cs e # 

Associated Types

type SuperClass VU cs e :: Constraint #

data Image VU cs e :: * #

Methods

dims :: Image VU cs e -> (Int, Int) #

type Manifest VU # 
type Manifest VU = VU
type Vector VU # 
data Image VU # 
data Image VU = VUImage (VGImage Vector (Pixel cs e))
data MImage s VU # 
data MImage s VU = MVUImage (MVGImage s Vector (Pixel cs e))
type SuperClass VU cs e # 
type SuperClass VU cs e = (ColorSpace cs e, Unbox (Components cs e))

data VS #

Storable Vector representation.

Constructors

VS 

Instances

Show VS # 

Methods

showsPrec :: Int -> VS -> ShowS #

show :: VS -> String #

showList :: [VS] -> ShowS #

BaseArray VS cs e => MArray VS cs e # 

Associated Types

data MImage s VS cs e :: * #

Methods

unsafeIndex :: Image VS cs e -> (Int, Int) -> Pixel cs e #

deepSeqImage :: Image VS cs e -> a -> a #

foldl :: (a -> Pixel cs e -> a) -> a -> Image VS cs e -> a #

foldr :: (Pixel cs e -> a -> a) -> a -> Image VS cs e -> a #

makeImageM :: (Functor m, Monad m) => (Int, Int) -> ((Int, Int) -> m (Pixel cs e)) -> m (Image VS cs e) #

mapM :: (MArray VS cs' e', Functor m, Monad m) => (Pixel cs' e' -> m (Pixel cs e)) -> Image VS cs' e' -> m (Image VS cs e) #

mapM_ :: (Functor m, Monad m) => (Pixel cs e -> m b) -> Image VS cs e -> m () #

foldM :: (Functor m, Monad m) => (a -> Pixel cs e -> m a) -> a -> Image VS cs e -> m a #

foldM_ :: (Functor m, Monad m) => (a -> Pixel cs e -> m a) -> a -> Image VS cs e -> m () #

mdims :: MImage s VS cs e -> (Int, Int) #

thaw :: (Functor m, PrimMonad m) => Image VS cs e -> m (MImage (PrimState m) VS cs e) #

freeze :: (Functor m, PrimMonad m) => MImage (PrimState m) VS cs e -> m (Image VS cs e) #

new :: (Functor m, PrimMonad m) => (Int, Int) -> m (MImage (PrimState m) VS cs e) #

read :: (Functor m, PrimMonad m) => MImage (PrimState m) VS cs e -> (Int, Int) -> m (Pixel cs e) #

write :: (Functor m, PrimMonad m) => MImage (PrimState m) VS cs e -> (Int, Int) -> Pixel cs e -> m () #

swap :: (Functor m, PrimMonad m) => MImage (PrimState m) VS cs e -> (Int, Int) -> (Int, Int) -> m () #

(MArray VS cs e, BaseArray VS cs e) => Array VS cs e # 

Associated Types

type Manifest VS :: * #

type Vector VS :: * -> * #

Methods

makeImage :: (Int, Int) -> ((Int, Int) -> Pixel cs e) -> Image VS cs e #

makeImageWindowed :: (Int, Int) -> (Int, Int) -> (Int, Int) -> ((Int, Int) -> Pixel cs e) -> ((Int, Int) -> Pixel cs e) -> Image VS cs e #

scalar :: Pixel cs e -> Image VS cs e #

index00 :: Image VS cs e -> Pixel cs e #

map :: Array VS cs' e' => (Pixel cs' e' -> Pixel cs e) -> Image VS cs' e' -> Image VS cs e #

imap :: Array VS cs' e' => ((Int, Int) -> Pixel cs' e' -> Pixel cs e) -> Image VS cs' e' -> Image VS cs e #

zipWith :: (Array VS cs1 e1, Array VS cs2 e2) => (Pixel cs1 e1 -> Pixel cs2 e2 -> Pixel cs e) -> Image VS cs1 e1 -> Image VS cs2 e2 -> Image VS cs e #

izipWith :: (Array VS cs1 e1, Array VS cs2 e2) => ((Int, Int) -> Pixel cs1 e1 -> Pixel cs2 e2 -> Pixel cs e) -> Image VS cs1 e1 -> Image VS cs2 e2 -> Image VS cs e #

traverse :: Array VS cs' e' => Image VS cs' e' -> ((Int, Int) -> (Int, Int)) -> (((Int, Int) -> Pixel cs' e') -> (Int, Int) -> Pixel cs e) -> Image VS cs e #

traverse2 :: (Array VS cs1 e1, Array VS cs2 e2) => Image VS cs1 e1 -> Image VS cs2 e2 -> ((Int, Int) -> (Int, Int) -> (Int, Int)) -> (((Int, Int) -> Pixel cs1 e1) -> ((Int, Int) -> Pixel cs2 e2) -> (Int, Int) -> Pixel cs e) -> Image VS cs e #

transpose :: Image VS cs e -> Image VS cs e #

backpermute :: (Int, Int) -> ((Int, Int) -> (Int, Int)) -> Image VS cs e -> Image VS cs e #

fromLists :: [[Pixel cs e]] -> Image VS cs e #

(|*|) :: Image VS cs e -> Image VS cs e -> Image VS cs e #

fold :: (Pixel cs e -> Pixel cs e -> Pixel cs e) -> Pixel cs e -> Image VS cs e -> Pixel cs e #

foldIx :: (Pixel cs e -> (Int, Int) -> Pixel cs e -> Pixel cs e) -> Pixel cs e -> Image VS cs e -> Pixel cs e #

eq :: Image VS cs e -> Image VS cs e -> Bool #

compute :: Image VS cs e -> Image VS cs e #

toManifest :: Image VS cs e -> Image (Manifest VS) cs e #

toVector :: Image VS cs e -> Vector VS (Pixel cs e) #

fromVector :: (Int, Int) -> Vector VS (Pixel cs e) -> Image VS cs e #

SuperClass VS cs e => BaseArray VS cs e # 

Associated Types

type SuperClass VS cs e :: Constraint #

data Image VS cs e :: * #

Methods

dims :: Image VS cs e -> (Int, Int) #

Writable [(GifDelay, Image VS RGB Double)] GIFA # 
Writable [(GifDelay, Image VS RGB Word8)] GIFA # 
Readable [(GifDelay, Image VS RGBA Word8)] GIFA # 
Readable [(GifDelay, Image VS RGB Word8)] GIFA # 
Readable [Image VS YA Double] GIFA # 
Readable [Image VS Y Double] GIFA # 
Readable [Image VS RGBA Double] GIFA # 
Readable [Image VS RGBA Word8] GIFA # 
Readable [Image VS RGB Double] GIFA # 
Readable [Image VS RGB Word8] GIFA # 
Writable [(GifDelay, Image VS RGB Double)] (Seq GIF) # 
Writable [(GifDelay, Image VS RGB Word8)] (Seq GIF) # 
Readable [(GifDelay, Image VS RGBA Word8)] (Seq GIF) # 
Readable [(GifDelay, Image VS RGB Word8)] (Seq GIF) # 
Readable [Image VS YA Double] (Seq GIF) # 
Readable [Image VS Y Double] (Seq GIF) # 
Readable [Image VS Y Word8] (Seq PGM) # 
Readable [Image VS Y Word16] (Seq PGM) # 
Readable [Image VS X Bit] (Seq PBM) # 
Readable [Image VS RGBA Double] (Seq GIF) # 
Readable [Image VS RGBA Word8] (Seq GIF) # 
Readable [Image VS RGB Double] (Seq GIF) # 
Readable [Image VS RGB Word8] (Seq GIF) # 
Readable [Image VS RGB Word8] (Seq PPM) # 
Readable [Image VS RGB Word16] (Seq PPM) # 
Writable (Image VS YCbCr Double) TIF # 
Writable (Image VS YCbCr Word8) TIF # 
Writable (Image VS YCbCr Word8) JPG # 
Writable (Image VS YA Double) TIF # 
Writable (Image VS YA Double) TGA # 
Writable (Image VS YA Double) PNG # 
Writable (Image VS YA Double) JPG #

Image is converted YCbCr color space prior to encoding.

Writable (Image VS YA Double) HDR # 
Writable (Image VS YA Double) GIF # 
Writable (Image VS YA Double) BMP # 
Writable (Image VS YA Word8) TIF # 
Writable (Image VS YA Word8) PNG # 
Writable (Image VS YA Word16) TIF # 
Writable (Image VS YA Word16) PNG # 
Writable (Image VS Y Double) TIF # 
Writable (Image VS Y Double) TGA # 
Writable (Image VS Y Double) PNG # 
Writable (Image VS Y Double) JPG #

Image is converted YCbCr color space prior to encoding.

Writable (Image VS Y Double) HDR # 
Writable (Image VS Y Double) GIF # 
Writable (Image VS Y Double) BMP # 
Writable (Image VS Y Word8) TIF # 
Writable (Image VS Y Word8) TGA # 
Writable (Image VS Y Word8) PNG # 
Writable (Image VS Y Word8) JPG # 
Writable (Image VS Y Word8) BMP # 
Writable (Image VS Y Word16) TIF # 
Writable (Image VS Y Word16) PNG # 
Writable (Image VS X Bit) TIF # 

Methods

encode :: TIF -> [SaveOption TIF] -> Image VS X Bit -> ByteString #

Writable (Image VS X Bit) TGA # 

Methods

encode :: TGA -> [SaveOption TGA] -> Image VS X Bit -> ByteString #

Writable (Image VS X Bit) PNG # 

Methods

encode :: PNG -> [SaveOption PNG] -> Image VS X Bit -> ByteString #

Writable (Image VS X Bit) BMP # 

Methods

encode :: BMP -> [SaveOption BMP] -> Image VS X Bit -> ByteString #

Writable (Image VS RGBA Double) TIF # 
Writable (Image VS RGBA Double) TGA # 
Writable (Image VS RGBA Double) PNG # 
Writable (Image VS RGBA Double) JPG #

Image is converted YCbCr color space prior to encoding.

Writable (Image VS RGBA Double) HDR # 
Writable (Image VS RGBA Double) GIF # 
Writable (Image VS RGBA Double) BMP # 
Writable (Image VS RGBA Word8) TIF # 
Writable (Image VS RGBA Word8) TGA # 
Writable (Image VS RGBA Word8) PNG # 
Writable (Image VS RGBA Word8) BMP # 
Writable (Image VS RGBA Word16) TIF # 
Writable (Image VS RGBA Word16) PNG # 
Writable (Image VS RGB Double) TIF # 
Writable (Image VS RGB Double) TGA # 
Writable (Image VS RGB Double) PNG # 
Writable (Image VS RGB Double) JPG #

Image is converted YCbCr color space prior to encoding.

Writable (Image VS RGB Double) HDR # 
Writable (Image VS RGB Double) GIF # 
Writable (Image VS RGB Double) BMP # 
Writable (Image VS RGB Float) HDR # 
Writable (Image VS RGB Word8) TIF # 
Writable (Image VS RGB Word8) TGA # 
Writable (Image VS RGB Word8) PNG # 
Writable (Image VS RGB Word8) JPG # 
Writable (Image VS RGB Word8) GIF # 
Writable (Image VS RGB Word8) BMP # 
Writable (Image VS RGB Word16) TIF # 
Writable (Image VS RGB Word16) PNG # 
Writable (Image VS CMYK Double) TIF # 
Writable (Image VS CMYK Word8) TIF # 
Writable (Image VS CMYK Word8) JPG # 
Writable (Image VS CMYK Word16) TIF # 
Readable (Image VS YCbCr Word8) JPG # 
Readable (Image VS YA Double) TIF # 
Readable (Image VS YA Double) TGA # 
Readable (Image VS YA Double) PNG # 
Readable (Image VS YA Double) JPG # 
Readable (Image VS YA Double) HDR # 
Readable (Image VS YA Double) GIF # 
Readable (Image VS YA Double) BMP # 
Readable (Image VS YA Double) PPM # 
Readable (Image VS YA Word8) TIF # 
Readable (Image VS YA Word8) PNG # 
Readable (Image VS YA Word8) JPG # 
Readable (Image VS YA Word16) TIF # 
Readable (Image VS YA Word16) PNG # 
Readable (Image VS Y Double) TIF # 
Readable (Image VS Y Double) TGA # 
Readable (Image VS Y Double) PNG # 
Readable (Image VS Y Double) JPG # 
Readable (Image VS Y Double) HDR # 
Readable (Image VS Y Double) GIF # 
Readable (Image VS Y Double) BMP # 
Readable (Image VS Y Double) PPM # 
Readable (Image VS Y Double) PGM # 
Readable (Image VS Y Double) PBM # 
Readable (Image VS Y Word8) TIF # 
Readable (Image VS Y Word8) TGA # 
Readable (Image VS Y Word8) PNG # 
Readable (Image VS Y Word8) JPG # 
Readable (Image VS Y Word8) BMP # 
Readable (Image VS Y Word8) PGM # 
Readable (Image VS Y Word16) TIF # 
Readable (Image VS Y Word16) PNG # 
Readable (Image VS Y Word16) PGM # 
Readable (Image VS X Bit) TIF # 
Readable (Image VS X Bit) TGA # 
Readable (Image VS X Bit) PNG # 
Readable (Image VS X Bit) BMP # 
Readable (Image VS X Bit) PBM # 
Readable (Image VS RGBA Double) TIF # 
Readable (Image VS RGBA Double) TGA # 
Readable (Image VS RGBA Double) PNG # 
Readable (Image VS RGBA Double) JPG # 
Readable (Image VS RGBA Double) HDR # 
Readable (Image VS RGBA Double) GIF # 
Readable (Image VS RGBA Double) BMP # 
Readable (Image VS RGBA Double) PPM # 
Readable (Image VS RGBA Word8) TIF # 
Readable (Image VS RGBA Word8) TGA # 
Readable (Image VS RGBA Word8) PNG # 
Readable (Image VS RGBA Word8) GIF # 
Readable (Image VS RGBA Word8) BMP # 
Readable (Image VS RGBA Word16) TIF # 
Readable (Image VS RGBA Word16) PNG # 
Readable (Image VS RGB Double) TIF # 
Readable (Image VS RGB Double) TGA # 
Readable (Image VS RGB Double) PNG # 
Readable (Image VS RGB Double) JPG # 
Readable (Image VS RGB Double) HDR # 
Readable (Image VS RGB Double) GIF # 
Readable (Image VS RGB Double) BMP # 
Readable (Image VS RGB Double) PPM # 
Readable (Image VS RGB Float) HDR # 
Readable (Image VS RGB Word8) TIF # 
Readable (Image VS RGB Word8) TGA # 
Readable (Image VS RGB Word8) PNG # 
Readable (Image VS RGB Word8) JPG # 
Readable (Image VS RGB Word8) GIF # 
Readable (Image VS RGB Word8) BMP # 
Readable (Image VS RGB Word8) PPM # 
Readable (Image VS RGB Word16) TIF # 
Readable (Image VS RGB Word16) PNG # 
Readable (Image VS RGB Word16) PPM # 
Readable (Image VS CMYK Word8) TIF # 
Readable (Image VS CMYK Word8) JPG # 
Readable (Image VS CMYK Word16) TIF # 
type Manifest VS # 
type Manifest VS = VS
type Vector VS # 
data Image VS # 
data Image VS = VSImage (VGImage Vector (Pixel cs e))
data MImage s VS # 
data MImage s VS = MVSImage (MVGImage s Vector (Pixel cs e))
type SuperClass VS cs e # 
type SuperClass VS cs e = (ColorSpace cs e, Storable (Pixel cs e))

Filtering

filter #

Arguments

:: Array arr cs e 
=> (Pixel cs e -> Bool)

The predicate

-> Image arr cs e

Source image

-> Vector ((Int, Int), Pixel cs e) 

Filter out Pixels from an image that do not satisfy the predicate and convert a result into a flat unboxed vector with indexed Pixels.

ifilter #

Arguments

:: Array arr cs e 
=> ((Int, Int) -> Pixel cs e -> Bool)

The predicate

-> Image arr cs e

Source image

-> Vector ((Int, Int), Pixel cs e) 

Filter out Pixels from an image that do not satisfy the index aware predicate and convert a result into a flat unboxed vector with indexed Pixels.

Linear index conversion

toIx #

Arguments

:: Int

n columns

-> Int

Flat vector index

-> (Int, Int)

(i, j) row, column index

Flat vector to 2D index conversion.

fromIx #

Arguments

:: Int

n columns

-> (Int, Int)

(i, j) row, column index

-> Int

Flat vector index

2D to a flat vector index conversion.

Note: There is an implicit assumption that j < n