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

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

Graphics.Image.Interface.Repa

Contents

Description

 

Synopsis

Conversion

toRepaArray :: (Array arr cs e, Array RSU cs e, Exchangable arr RSU) => Image arr cs e -> Array U DIM2 (Pixel cs e) Source #

Retrieve an underlying Repa array from an image.

Representation

data RSU Source #

Repa Array representation backed by Unboxed Vector, which is computed sequentially.

Constructors

RSU 

Instances

Show RSU Source # 

Methods

showsPrec :: Int -> RSU -> ShowS #

show :: RSU -> String #

showList :: [RSU] -> ShowS #

Exchangable VU RSU Source #

O(1) - Changes to Repa representation.

Methods

exchange :: (Array VU cs e, Array RSU cs e) => RSU -> Image VU cs e -> Image RSU cs e Source #

Exchangable RPU RSU Source #

Changes computation strategy. Will casue all fused operations to be computed.

Methods

exchange :: (Array RPU cs e, Array RSU cs e) => RSU -> Image RPU cs e -> Image RSU cs e Source #

Exchangable RSU VU Source #

Changes to Vector representation.

Methods

exchange :: (Array RSU cs e, Array VU cs e) => VU -> Image RSU cs e -> Image VU cs e Source #

Exchangable RSU RPU Source #

Changes computation strategy. Will casue all fused operations to be computed.

Methods

exchange :: (Array RSU cs e, Array RPU cs e) => RPU -> Image RSU cs e -> Image RPU cs e Source #

BaseArray RSU cs e => Array RSU cs e Source # 

Associated Types

type Manifest RSU :: * Source #

Methods

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

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

singleton :: Pixel cs e -> Image RSU cs e Source #

index00 :: Image RSU cs e -> Pixel cs e Source #

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

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

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

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

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

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

transpose :: Image RSU cs e -> Image RSU cs e Source #

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

fromLists :: [[Pixel cs e]] -> Image RSU cs e Source #

(|*|) :: Image RSU cs e -> Image RSU cs e -> Image RSU cs e Source #

fold :: (Pixel cs e -> Pixel cs e -> Pixel cs e) -> Pixel cs e -> Image RSU cs e -> Pixel cs e Source #

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

eq :: Image RSU cs e -> Image RSU cs e -> Bool Source #

compute :: Image RSU cs e -> Image RSU cs e Source #

toManifest :: Image RSU cs e -> Image (Manifest RSU) cs e Source #

SuperClass RSU cs e => BaseArray RSU cs e Source # 

Associated Types

type SuperClass RSU cs e :: Constraint Source #

data Image RSU cs e :: * Source #

Methods

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

type Manifest RSU Source # 
type Manifest RSU = VU
data Image RSU Source # 
data Image RSU = SUImage !(Image (RS U) cs e)
type SuperClass RSU cs e Source # 
type SuperClass RSU cs e = (ColorSpace cs e, Num (Pixel cs e), Unbox e, Unbox (Components cs e), Elt e, Elt (Pixel cs e))

data RPU Source #

Repa Array representation backed by Unboxed Vector, which is computed in parallel.

Constructors

RPU 

Instances

Show RPU Source # 

Methods

showsPrec :: Int -> RPU -> ShowS #

show :: RPU -> String #

showList :: [RPU] -> ShowS #

Exchangable VU RPU Source #

O(1) - Changes to Repa representation.

Methods

exchange :: (Array VU cs e, Array RPU cs e) => RPU -> Image VU cs e -> Image RPU cs e Source #

Exchangable RPU VU Source #

Changes to Vector representation.

Methods

exchange :: (Array RPU cs e, Array VU cs e) => VU -> Image RPU cs e -> Image VU cs e Source #

Exchangable RPU RSU Source #

Changes computation strategy. Will casue all fused operations to be computed.

Methods

exchange :: (Array RPU cs e, Array RSU cs e) => RSU -> Image RPU cs e -> Image RSU cs e Source #

Exchangable RSU RPU Source #

Changes computation strategy. Will casue all fused operations to be computed.

Methods

exchange :: (Array RSU cs e, Array RPU cs e) => RPU -> Image RSU cs e -> Image RPU cs e Source #

BaseArray RPU cs e => Array RPU cs e Source # 

Associated Types

type Manifest RPU :: * Source #

Methods

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

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

singleton :: Pixel cs e -> Image RPU cs e Source #

index00 :: Image RPU cs e -> Pixel cs e Source #

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

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

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

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

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

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

transpose :: Image RPU cs e -> Image RPU cs e Source #

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

fromLists :: [[Pixel cs e]] -> Image RPU cs e Source #

(|*|) :: Image RPU cs e -> Image RPU cs e -> Image RPU cs e Source #

fold :: (Pixel cs e -> Pixel cs e -> Pixel cs e) -> Pixel cs e -> Image RPU cs e -> Pixel cs e Source #

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

eq :: Image RPU cs e -> Image RPU cs e -> Bool Source #

compute :: Image RPU cs e -> Image RPU cs e Source #

toManifest :: Image RPU cs e -> Image (Manifest RPU) cs e Source #

SuperClass RPU cs e => BaseArray RPU cs e Source # 

Associated Types

type SuperClass RPU cs e :: Constraint Source #

data Image RPU cs e :: * Source #

Methods

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

type Manifest RPU Source # 
type Manifest RPU = VU
data Image RPU Source # 
data Image RPU = PUImage !(Image (RP U) cs e)
type SuperClass RPU cs e Source # 
type SuperClass RPU cs e = (ColorSpace cs e, Num (Pixel cs e), Unbox e, Unbox (Components cs e), Elt e, Elt (Pixel cs e))

data RSS Source #

Repa Array representation backed by Storable Vector, which is computed sequentially.

Constructors

RSS 

Instances

Show RSS Source # 

Methods

showsPrec :: Int -> RSS -> ShowS #

show :: RSS -> String #

showList :: [RSS] -> ShowS #

Exchangable VS RSS Source #

O(1) - Changes to Repa representation.

Methods

exchange :: (Array VS cs e, Array RSS cs e) => RSS -> Image VS cs e -> Image RSS cs e Source #

Exchangable RPS RSS Source #

Changes computation strategy. Will casue all fused operations to be computed.

Methods

exchange :: (Array RPS cs e, Array RSS cs e) => RSS -> Image RPS cs e -> Image RSS cs e Source #

Exchangable RSS VS Source #

Changes to Vector representation.

Methods

exchange :: (Array RSS cs e, Array VS cs e) => VS -> Image RSS cs e -> Image VS cs e Source #

Exchangable RSS RPS Source #

Changes computation strategy. Will casue all fused operations to be computed.

Methods

exchange :: (Array RSS cs e, Array RPS cs e) => RPS -> Image RSS cs e -> Image RPS cs e Source #

BaseArray RSS cs e => Array RSS cs e Source # 

Associated Types

type Manifest RSS :: * Source #

Methods

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

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

singleton :: Pixel cs e -> Image RSS cs e Source #

index00 :: Image RSS cs e -> Pixel cs e Source #

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

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

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

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

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

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

transpose :: Image RSS cs e -> Image RSS cs e Source #

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

fromLists :: [[Pixel cs e]] -> Image RSS cs e Source #

(|*|) :: Image RSS cs e -> Image RSS cs e -> Image RSS cs e Source #

fold :: (Pixel cs e -> Pixel cs e -> Pixel cs e) -> Pixel cs e -> Image RSS cs e -> Pixel cs e Source #

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

eq :: Image RSS cs e -> Image RSS cs e -> Bool Source #

compute :: Image RSS cs e -> Image RSS cs e Source #

toManifest :: Image RSS cs e -> Image (Manifest RSS) cs e Source #

SuperClass RSS cs e => BaseArray RSS cs e Source # 

Associated Types

type SuperClass RSS cs e :: Constraint Source #

data Image RSS cs e :: * Source #

Methods

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

type Manifest RSS Source # 
type Manifest RSS = VS
data Image RSS Source # 
data Image RSS = SSImage !(Image (RS S) cs e)
type SuperClass RSS cs e Source # 
type SuperClass RSS cs e = (ColorSpace cs e, Num (Pixel cs e), Storable e, Storable (Pixel cs e), Unbox e, Unbox (Components cs e), Elt e, Elt (Pixel cs e))

data RPS Source #

Repa Array representation backed by Storable Vector, which is computed in parallel.

Constructors

RPS 

Instances

Show RPS Source # 

Methods

showsPrec :: Int -> RPS -> ShowS #

show :: RPS -> String #

showList :: [RPS] -> ShowS #

Exchangable VS RPS Source #

O(1) - Changes to Repa representation.

Methods

exchange :: (Array VS cs e, Array RPS cs e) => RPS -> Image VS cs e -> Image RPS cs e Source #

Exchangable RPS VS Source #

Changes to Vector representation.

Methods

exchange :: (Array RPS cs e, Array VS cs e) => VS -> Image RPS cs e -> Image VS cs e Source #

Exchangable RPS RSS Source #

Changes computation strategy. Will casue all fused operations to be computed.

Methods

exchange :: (Array RPS cs e, Array RSS cs e) => RSS -> Image RPS cs e -> Image RSS cs e Source #

Exchangable RSS RPS Source #

Changes computation strategy. Will casue all fused operations to be computed.

Methods

exchange :: (Array RSS cs e, Array RPS cs e) => RPS -> Image RSS cs e -> Image RPS cs e Source #

BaseArray RPS cs e => Array RPS cs e Source # 

Associated Types

type Manifest RPS :: * Source #

Methods

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

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

singleton :: Pixel cs e -> Image RPS cs e Source #

index00 :: Image RPS cs e -> Pixel cs e Source #

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

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

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

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

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

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

transpose :: Image RPS cs e -> Image RPS cs e Source #

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

fromLists :: [[Pixel cs e]] -> Image RPS cs e Source #

(|*|) :: Image RPS cs e -> Image RPS cs e -> Image RPS cs e Source #

fold :: (Pixel cs e -> Pixel cs e -> Pixel cs e) -> Pixel cs e -> Image RPS cs e -> Pixel cs e Source #

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

eq :: Image RPS cs e -> Image RPS cs e -> Bool Source #

compute :: Image RPS cs e -> Image RPS cs e Source #

toManifest :: Image RPS cs e -> Image (Manifest RPS) cs e Source #

SuperClass RPS cs e => BaseArray RPS cs e Source # 

Associated Types

type SuperClass RPS cs e :: Constraint Source #

data Image RPS cs e :: * Source #

Methods

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

type Manifest RPS Source # 
type Manifest RPS = VS
data Image RPS Source # 
data Image RPS = PSImage !(Image (RP S) cs e)
type SuperClass RPS cs e Source # 
type SuperClass RPS cs e = (ColorSpace cs e, Num (Pixel cs e), Storable e, Storable (Pixel cs e), Unbox e, Unbox (Components cs e), Elt e, Elt (Pixel cs e))

Orphan instances

Exchangable RPS RPU Source #

Makes a copy of an image into a Unboxed representation sequentially.

Methods

exchange :: (Array RPS cs e, Array RPU cs e) => RPU -> Image RPS cs e -> Image RPU cs e Source #

Exchangable RSS RSU Source #

Makes a copy of an image into a Unboxed representation sequentially.

Methods

exchange :: (Array RSS cs e, Array RSU cs e) => RSU -> Image RSS cs e -> Image RSU cs e Source #

Exchangable RPU RPS Source #

Makes a copy of an image into a Storable representation sequentially.

Methods

exchange :: (Array RPU cs e, Array RPS cs e) => RPS -> Image RPU cs e -> Image RPS cs e Source #

Exchangable RSU RSS Source #

Makes a copy of an image into a Storable representation sequentially.

Methods

exchange :: (Array RSU cs e, Array RSS cs e) => RSS -> Image RSU cs e -> Image RSS cs e Source #