hip-1.3.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

Construction

makeImageS Source #

Arguments

:: Array RS cs Double 
=> (Int, Int)

(m rows, n columns) - dimensions of a new image.

-> ((Int, Int) -> Pixel cs Double)

A function that takes (i-th row, and j-th column) as an argument and returns a pixel for that location.

-> Image RS cs Double 

Create an image with sequential array representation.

makeImageP Source #

Arguments

:: Array RP cs Double 
=> (Int, Int)

(m rows, n columns) - dimensions of a new image.

-> ((Int, Int) -> Pixel cs Double)

A function that takes (i-th row, and j-th column) as an argument and returns a pixel for that location.

-> Image RP cs Double 

Create an image with parallel array representation.

fromListsS :: Array RS cs e => [[Pixel cs e]] -> Image RS cs e Source #

Construct an image from a nested rectangular shaped list of pixels sequentially.

fromListsP :: Array RP cs e => [[Pixel cs e]] -> Image RP cs e Source #

Construct an image from a nested rectangular shaped list of pixels in parallel.

Representation

data RS Source #

Repa Unboxed Array representation, which is computed sequentially.

Constructors

RS 

Instances

Show RS Source # 

Methods

showsPrec :: Int -> RS -> ShowS #

show :: RS -> String #

showList :: [RS] -> ShowS #

Exchangable VU RS Source #

O(1) - Changes to Repa representation.

Methods

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

Exchangable RS VU Source #

O(1) - Changes to Vector representation.

Methods

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

Exchangable RS RP Source #

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

Methods

exchange :: (Array RS cs e, Array RP cs e) => RP -> Image RS cs e -> Image RP cs e Source #

Exchangable RP RS Source #

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

Methods

exchange :: (Array RP cs e, Array RS cs e) => RS -> Image RP cs e -> Image RS cs e Source #

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

Associated Types

type Manifest RS :: * Source #

Methods

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Elt RS cs e => BaseArray RS cs e Source # 

Associated Types

type Elt RS cs e :: Constraint Source #

data Image RS cs e :: * Source #

Methods

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

type Manifest RS Source # 
type Manifest RS = VU
data Image RS Source # 
data Image RS
type Elt RS cs e Source # 
type Elt RS cs e = (ColorSpace cs, Elt e, Unbox e, Num e, Typeable * e, Elt (PixelElt cs e), Unbox (PixelElt cs e), Elt (Pixel cs e), Unbox (Pixel cs e))

data RP Source #

Repa Unboxed Array representation, which is computed in parallel.

Constructors

RP 

Instances

Show RP Source # 

Methods

showsPrec :: Int -> RP -> ShowS #

show :: RP -> String #

showList :: [RP] -> ShowS #

Exchangable VU RP Source #

O(1) - Changes to Repa representation.

Methods

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

Exchangable RS RP Source #

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

Methods

exchange :: (Array RS cs e, Array RP cs e) => RP -> Image RS cs e -> Image RP cs e Source #

Exchangable RP VU Source #

O(1) - Changes to Vector representation.

Methods

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

Exchangable RP RS Source #

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

Methods

exchange :: (Array RP cs e, Array RS cs e) => RS -> Image RP cs e -> Image RS cs e Source #

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

Associated Types

type Manifest RP :: * Source #

Methods

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Elt RP cs e => BaseArray RP cs e Source # 

Associated Types

type Elt RP cs e :: Constraint Source #

data Image RP cs e :: * Source #

Methods

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

type Manifest RP Source # 
type Manifest RP = VU
data Image RP Source # 
data Image RP
type Elt RP cs e Source # 
type Elt RP cs e = (ColorSpace cs, Elt e, Unbox e, Num e, Typeable * e, Elt (PixelElt cs e), Unbox (PixelElt cs e), Elt (Pixel cs e), Unbox (Pixel cs e))

Conversion

fromRepaArrayS :: Array D DIM2 (Pixel cs e) -> Image RS cs e Source #

Create a sequential image from a 2D Repa delayed array.

fromRepaArrayP :: Array D DIM2 (Pixel cs e) -> Image RP cs e Source #

Create a parallel image from a 2D Repa delayed array.

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

Retrieve an underlying Repa array from an image.