CV-0.3.6.0: OpenCV based machine vision library

Safe HaskellSafe-Infered

CV.ImageMath

Contents

Description

Mathematical and statistical operations for images. See also module CV.ImageMathOp which contains handy operators for some of these.

Synopsis

Operations for two images

add :: Image c1 d1 -> Image c1 d1 -> Image c1 d1Source

Calculates the per-pixel sum of two images.

sub :: Image c1 d1 -> Image c1 d1 -> Image c1 d1Source

Calculates the per-pixel difference of two images.

absDiff :: Image c1 d1 -> Image c1 d1 -> Image c1 d1Source

Calculates the per-pixel absolute difference of two images.

mul :: Image c1 d1 -> Image c1 d1 -> Image c1 d1Source

Calculates the per-pixel product of two images.

div :: Image c1 d1 -> Image c1 d1 -> Image c1 d1Source

Calculates the per-pixel division of two images.

min :: Image c1 d1 -> Image c1 d1 -> Image c1 d1Source

Calculates the per-pixel minimum of two images.

max :: Image c1 d1 -> Image c1 d1 -> Image c1 d1Source

Calculates the per-pixel maximum of two images.

maskedMerge :: Image GrayScale D8 -> Image GrayScale D32 -> Image GrayScale D32 -> Image GrayScale D32Source

Merge two images according to a mask. Result is R = A*m + B*(m-1).

averageImages :: [Image GrayScale D32] -> Image GrayScale D32Source

Calculates the average of multiple images by adding the pixel values and dividing the resulting values by number of images.

atan2 :: Image GrayScale D32 -> Image GrayScale D32 -> Image GrayScale D32Source

Calculates the atan2 of pixel values in two images.

Operations for one image

subMean :: Image GrayScale D32 -> Image GrayScale D32Source

Calculates the (non-absolute) difference of every pixel to image mean. See also subMeanAbs.

subMeanAbs :: Image GrayScale D32 -> Image GrayScale D32Source

Calculates the absolute difference of every pixel to image mean. See also subMean.

sqrt :: Image GrayScale D32 -> Image GrayScale D32Source

Calculates the square root of every pixel.

log :: Image GrayScale D32 -> Image GrayScale D32Source

Calculates the natural logarithm of every pixel.

abs :: Image c d -> Image c dSource

Calculates the absolute value of every pixel.

atan :: Image GrayScale D32 -> Image GrayScale D32Source

Calculates the atan of every pixel.

invert :: Image GrayScale D32 -> Image GrayScale D32Source

Logical inversion of image (ie. invert, but stay on [0..1] range; multiply by -1 and add 1).

Operations for a scalar and an image

addS :: D32 -> Image GrayScale D32 -> Image GrayScale D32Source

Adds a scalar to every pixel.

subS :: Real a => Image c d -> a -> Image c dSource

Subtracts a scalar from every pixel, scalar on left.

subRS :: D32 -> Image GrayScale D32 -> Image GrayScale D32Source

Subtracts a scalar from every pixel, scalar on right.

mulS :: D32 -> Image GrayScale D32 -> Image GrayScale D32Source

Multiplies every pixel by a scalar.

minS :: Float -> Image c d -> Image c dSource

Calculates the per-pixel minimum between an image and a scalar.

maxS :: Float -> Image c d -> Image c dSource

Calculates the per-pixel maximum between an image and a scalar.

Comparison operations

lessThan :: D32 -> Image GrayScale D32 -> Image GrayScale D8Source

Compares each pixel to a scalar, and produces a binary image where the pixel value is less than the scalar. For example, (lessThan s I) has white pixels where value of I is less than s. Notice that the order of operands is opposite to the intuitive interpretation of s `lessThan` I.

moreThan :: D32 -> Image GrayScale D32 -> Image GrayScale D8Source

Compares each pixel to a scalar, and produces a binary image where the pixel value is greater than the scalar. For example, (moreThan s I) has white pixels where value of I is greater than s. Notice that the order of operands is opposite to the intuitive interpretation of s `moreThan` I.

less2Than, more2Than :: CreateImage (Image GrayScale d) => Image GrayScale d -> Image GrayScale d -> Image GrayScale D8Source

Compares two images and produces a binary image that has white pixels in those positions where the comparison is true. For example, (less2Than A B) has white pixels where value of A is less than value of B. Notice that these functions follow the intuitive order of operands, unlike lessThan and moreThan.

Image statistics

sum :: Image GrayScale D32 -> D32Source

Calculates the sum of pixel values in whole image (notice that OpenCV automatically casts the result to double).

average :: Image GrayScale D32 -> D32Source

Calculates the average pixel value in whole image.

averageMask :: Image GrayScale D32 -> Image GrayScale D8 -> D32Source

Calculates the average value for pixels that have non-zero mask value.

stdDeviation :: Image GrayScale D32 -> D32Source

Calculates the standard deviation of pixel values in whole image.

stdDeviationMask :: Image c d -> Image c1 d1 -> CDoubleSource

Calculates the standard deviation of values for pixels that have non-zero mask value.

findMinMax :: Image t t1 -> (D32, D32)Source

Finds the minimum and maximum pixel value in the image.

findMinMaxLoc :: (Fractional t, Fractional t3, Num t5, Num t4, Num t2, Num t1) => Image c d -> (((t1, t2), t), ((t4, t5), t3))Source

Finds the minimum and maximum pixel value in the image and the locations where these values were found.

findMinMaxMask :: BareImage -> BareImage -> (D32, D32)Source

Finds the minimum and maximum value for pixels with non-zero mask value.

imageMinMax :: Fractional d => Image GrayScale d -> (d, d)Source

Finds the minimum and maximum pixel value in the image.

maxValue, minValue :: Image GrayScale D32 -> D32Source

Utility functions for getting the maximum or minimum pixel value of the image; equal to snd . findMinMax and fst . findMinMax.

imageAvgSdv :: Fractional d => Image GrayScale d -> (d, d)Source

Calculates the average and standard deviation of pixel values in the image in one operation.

Misc (to be moved?)

gaussianImage :: (Int, Int) -> (Double, Double) -> Image GrayScale D32Source

Render image of 2D gaussian curve with standard deviation of (stdX,stdY) to image size (w,h) The origin/center of curve is in center of the image.

fadedEdgeImage :: (CInt, CInt) -> CInt -> Image channels depthSource

Produce white image with edgeW amount of edges fading to black.

fadeToCenter :: (CInt, CInt) -> Image channels depthSource

Produce image where pixel is coloured according to distance from the edge.

maximalCoveringCircle :: (Fractional t2, Num t1, Num t) => Image c d -> (CInt, CInt, CDouble) -> (t, t1, t2)Source

Given a distance map and a circle, return the biggest circle with radius less than given in the distance map that fully covers the previous one.

limitToOp :: Image c1 d1 -> ImageOperation c dSource

Operation to limit image with another image; same as min.