h&~t      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                                Safe-Inferred  K friday1Our index type, used for both shapes and indices.fridayAn index of dimension zero.fridayGives the successor of an index, given the shape of the array.fridayConvert an index into its equivalent flat, linear, row-major version.friday Inverse of .friday9Return the ascending list of indexes for the given shape.friday/Check whether an index is within a given shape.fridayHelper for index construction./Use this instead of explicit constructors like (Z :. (x :: Int)). The this is sometimes needed to ensure that x is constrained to be in Int.fridayShape of the array.fridayIndex.fridayShape of the array.fridayIndex into the array.fridayShape of the array.friday!Index into linear representation.fridayShape of the array.fridayIndex to check for.   !"    !" 33 Safe-Inferred5friday-Rational coordinates used for interpolations.?fridaySize of an object.Can be constructed using . The first parameter is the height while the second is the width (i.e. ix2 h w).@fridayCoordinates inside the image.Can be constructed using . The first parameter is the y coordinate while the second is the x coordinate (i.e.  y x). Image origin ( 0 0') is located in the upper left corner.,  !"56789:;<=>?@ @?9:;<=>5678 Safe-InferredIfridayDefines a class for images on which a function can be applied. The class is different from  as there could be some constraints and transformations the pixel and image types.Kfriday4Provides ways to construct an image from a function.MfridayGenerates an image by calling the given function for each pixel of the constructed image.NfridayGenerates 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.OfridayGenerates 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 M.PfridayGenerates 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 N.QfridayProvides an abstraction over the internal representation of an image.Image origin (ix2 0 0&) is located in the upper left corner.Rfriday)Returns the pixel value at 'Z :. y :. x'.SfridayReturns the pixel value as if the image was a single dimension vector (row-major representation).TfridayReturns every pixel values as if the image was a single dimension vector (row-major representation).VfridayProvides an abstraction for images which are not defined for each of their pixels. The interface is similar to Q5 except that indexing functions don't always return.Image origin (ix2 0 0&) is located in the upper left corner.Yfriday,Returns the pixel's value at 'Z :. y, :. x'.ZfridayReturns the pixel's value as if the image was a single dimension vector (row-major representation).[friday+Returns the non-masked values of the image.\fridayDetermines the number of channels and the type of each pixel of the image and how images are represented.^friday,Returns the number of channels of the pixel.Must not consume p (could be ).`friday Alias of Y.afriday Alias of R.bfriday+Returns the number of channels of an image.cfriday Returns an  instance of a pixel of the image. This is sometime useful to satisfy the type checker as in a call to ^ : (nChannels img = pixNChannels (pixel img)Pfriday Line functionfridayColumn functionfridayPixel functionIJKLMNOPQTRSUVWXYZ[\]^_`abc\]^_VWXYZ[QTRSUKLMNOPIJa`bc Safe-Inferred SrfridayA delayed image is an image which is constructed using a function.Usually, a delayed image maps each of its pixels over another image. Delayed images are useful by avoiding intermediate images in a transformation pipeline of images or by avoiding the computation of the whole resulting image when only a portion of its pixels will be accessed.vfridayStores the image content in a .zfriday.Delays an image in its delayed representation.{friday>Computes the value of an image into a manifest representation.|fridayForces an image to be in its delayed representation. Does nothing.}fridayForces an image to be in its manifest representation. Does nothing.nopqrstuvwxyz{|}vwxyrstunopqz{|} Safe-Inferred#. friday?Class for images which can be constructed from a mutable image.friday7The type of the immutable version of the mutable image i.friday doesn't run in a monad as the size of a mutable image is constant.fridayCreates a new mutable image of the given size. Pixels are initialized with an unknown value.fridayCreates a new mutable image of the given size and fill it with the given value.fridayReturns the pixel value at  Z :. y :. x.fridayReturns the pixel value as if the image was a single dimension vector (row-major representation).friday$Overrides the value of the pixel at  Z :. y :. x.fridayOverrides the value of the pixel at the given index as if the image was a single dimension vector (row-major representation).friday/Returns an immutable copy of the mutable image.fridayReturns the immutable version of the mutable image. The mutable image should not be modified thereafter.friday.Returns a mutable copy of the immutable image.friday#Creates an immutable image from an ! action creating a mutable image. Safe-Inferred$ffridayParallel version of compute.Computes the value of an image into a manifest representation in parallel.The monad ensures that the image is fully evaluated before continuing. Safe-Inferred&fridayProvides a way to apply the interpolation to every component of a pixel.fridayGiven a function which interpolates two points over a single channel, returns a function which interpolates two points over every channel of two pixels.fridayUses a bilinear interpolation to find the value of the pixel at the rational coordinates.(Estimates the value of a rational point p using a, b, c and d :  x1 x2 y1 a ------ b - - - p - - - y2 c ------ d   Safe-Inferred) fridayDefines the set of possible methods for pixel interpolations when looking for a pixel at floating point coordinates.friday%Selects the top left pixel (fastest).friday!Selects the nearest pixel (fast).fridayDoes a double linear interpolation over the four surrounding points (slow).friday9Maps the content of the image's rectangle in a new image.friday Resizes the Q& using the given interpolation method.friday Reverses the image horizontally.fridayReverses the image vertically.fridayPaints with a new value the pixels surrounding the given point of the image which have the same value as the starting point.    Safe-Inferred %&*  Safe-Inferred %&*g  Safe-Inferred %&,friday24 bits (3 * 8 bits) HSV image.The Hue value is in [0..179], Saturation in [0..255] and Value in [0..255].This image type is more respectful to human eye perception of colors and can be converted (using convert) from RGB images.Uses  (http://en.wikipedia.org/wiki/HSL_and_HSV' equations to convert from and to RGB.  Safe-Inferred,j Safe-Inferred,fridayConverts the colors to greyscale using the human eye colors perception. Safe-Inferred)*A"fridayDefines how image boundaries are extrapolated by the algorithms.'|'* characters in examples are image borders.friday2Replicates the first and last pixels of the image. aaaaaa|abcdefgh|hhhhhhhfriday!Reflects the border of the image. fedcba|abcdefgh|hgfedcbfridayConsiders that the last pixel of the image is before the first one. cdefgh|abcdefgh|abcdefgfriday0Assigns a constant value to out of image pixels. 0iiiiii|abcdefgh|iiiiiii with some specified 'i'fridayUses the first pixel in the kernel as initial value. The kernel must not be empty and the accumulator type must be the same as the source pixel type.?This kind of initialization is needed by morphological filters.fridayUses the result of the provided function as the initial value of the kernel's accumulator, depending on the center coordinates in the image.For most filters, the function will always return the same value (i.e. defined as const 0), but this kind of initialization could be required for some filters.fridayUsed to determine the type of the accumulator image used when computing separable filters.src and res? are respectively the source and the result image types while acc& is the pixel type of the accumulator.fridaySome kernels can be factorized in two uni-dimensional kernels (horizontal and vertical).Separable filters computational complexity grows linearly according to the size of the sides of the kernel.See  4http://http://en.wikipedia.org/wiki/Separable_filter.fridayVertical (column) kernel.fridayHorizontal (row) kernel.fridayA simple 2D kernel.The kernel function accepts the coordinates in the kernel, the value of the pixel at these coordinates (src), the current accumulated value and returns a new accumulated value.Non-separable filters computational complexity grows quadratically according to the size of the sides of the kernel.friday8Defines how the center of the kernel will be determined.friday ().friday1Defines how the accumulated value is initialized.See  and .fridayThis function will be executed after the iteration of the kernel on a given point.= maxBound src * (kernel size).fridayBlurs the image by averaging the pixel inside the kernel using a Gaussian function.See *http://en.wikipedia.org/wiki/Gaussian_blurfriday=Estimates the first derivative using the Scharr's 3x3 kernel.4Convolves the following kernel for the X derivative: $ -3 0 3 -10 0 10 -3 0 3 %And this kernel for the Y derivative: $ -3 -10 -3 0 0 0 3 10 3 *Considers using a signed integer type for res with !maxBound res >= 16 * maxBound src.friday6Estimates the first derivative using a Sobel's kernel.Prefer  when radius equals 1 as Scharr's kernel is more accurate and is implemented faster.*Considers using a signed integer type for res% which is significantly larger than src, especially for large kernels.friday3Computes the average of a kernel of the given size.This is similar to % but with a rectangular kernel and a  result.fridaySeparable filters initialized using the first pixel of the kernel.friday1Separable filters initialized with a given value.friday for a reduction of the number of dimensions of an histogram.fridayComputes the cumulative histogram of another single dimension histogram.C(i) = SUM H(j) for each j in [0..i] where C# is the cumulative histogram, and H the original histogram.fridayNormalizes the histogram so that the sum of the histogram bins is equal to the given value (normalisation by the L1 norm).This is useful to compare two histograms which have been computed from images with a different number of pixels.friday=Equalizes a single channel image by equalising its histogram.The algorithm equalizes the brightness and increases the contrast of the image by mapping each pixel values to the value at the index of the cumulative L1-normalized histogram :N(x, y) = H(I(x, y)) where N is the equalized image, I is the image and H4 the cumulative of the histogram normalized over an L1 norm.See  4https://en.wikipedia.org/wiki/Histogram_equalization.friday Computes the !Pearson's correlation coefficient8 between each corresponding bins of the two histograms.A value of 1 implies a perfect correlation, a value of -1 a perfect opposition and a value of 0 no correlation at all.  = SUM [ (H1(i) - (H1)) (H1(2) - (H2)) ] / ( SQRT [ SUM [ (H1(i) - (H1))^2 ] ] * SQRT [ SUM [ (H2(i) - (H2))^2 ] ] )Where (H)' is the average value of the histogram H.See  Applies the given predicate and threshold policy on the image.fridayCompares every pixel to its surrounding ones in the kernel of the given radius.friday8Creates an adaptive thresholding filter to be used with .Use 3 if you only want to apply the filter on the image.Compares every pixel to its surrounding ones in the kernel of the given radius.fridayApplies a clustering-based image thresholding using the Otsu's method.See  +https://en.wikipedia.org/wiki/Otsu's_method.fridayThis is a sliding concentric window filter (SCW) that uses the ratio of the standard deviations of two sliding windows centered on a same point to detect regions of interest (ROI). .scw sizeWindowA sizeWindowB beta thresType imgLet A? be the standard deviation of a fist window around a pixel and B be the standard deviation of another window around the same pixel. Then the pixel will match the threshold if B / A >= beta2, and will be thresholded according to the given .See  http://www.academypublisher.com/jcp/vol04/no08/jcp0408771777.pdf.fridayGiven a mean image and an original image, computes the variance of the kernel of the given size.average [ (origPix - mean)^2 | origPix <- kernel pixels on original ].fridayKernel radius.fridayMinimum difference between the pixel and the kernel average. The pixel is thresholded if &pixel_value - kernel_mean > difference3 where difference is this number. Can be negative.fridayKernel radius.fridayMinimum difference between the pixel and the kernel average. The pixel is thresholded if &pixel_value - kernel_mean > difference3 where difference is this number. Can be negative. Safe-Inferrede Safe-Inferrede Safe-Inferredf Safe-Inferredf' Safe-Inferredf[ Safe-Inferredf Safe-Inferredf Safe-Inferredf Safe-Inferred o* fridayOutline: Just draw the edge.OuterOutline: Outline the outer contours only, no hole contours AllOutlines: Draw all contours Fill: Draw the object but fill it in, ignoring holes. FillWithHoles: Draw the object and do not fill in the holes.fridayRowContour is a method of expressing contours by, for each row, recording the start of an object and the end (due to reaching the other side or a hole/inner contour) for each row.fridayA contour is described by the points on the perimeter and a boolean indicating if that point is "terminal" (next pixel to the right is background iff the point is terminal). The terminal information allows for a slightly simpler  implementation.friday/Contours are identified by a numeric ID number.fridayContours of an image include: * A map from contour number to outer points and negative contour number of inner contour points. * A vector of sizes for each contour for domain [1..size contourOutlines] (the zero index is meaningless)fridayDraws a given contour. The size specified must be large enough to include the coordinate originally occupied by the contour being drawn, no cropping or other transformation is done.fridayDraws many contours. See .fridayDraws rows, throwing an exception when the size is too small for the coordinates.fridayGiven a vector including outer (and optionally inner) contour points, make 'row contour' from which is easier to transform back into a binary image. By not including the inner contour points the row will be filled, making traces of objects with holes appear solid.fridayThe meat of this module is the  function, which extracts the contours (outer and inner outlines) of a binary image. Zero-valued pixels are the background and non-zero are active/objects to trace. The output, , contains enough information to determine the number of contours, their traces, the size in pixels (filled size and perimeter), number of holes, etc. Safe-InferredoIJKPONLMLQSTRUV[ZYWXW\_]^]`abcnqoprustvywxz{|} Safe-Inferredtfriday|friday@friday/friday\fridayDetects edges using the Canny's algorithm. Edges are given the value % while non-edges are given the value .This implementation doesn't perform any noise erasing (as blurring) before edge detection. Noisy images might need to be pre-processed using a Gaussian blur.The bidirectional derivative (gradient magnitude) is computed from x and y derivatives using sqrt(dx + dy).See  0http://en.wikipedia.org/wiki/Canny_edge_detector for details.!This function is specialized for  images but is declared  INLINABLE0 to be further specialized for new image types.fridayRadius of the Sobel's filter.fridayLow threshold. Pixels for which the bidirectional derivative is greater than this value and which are connected to another pixel which is part of an edge will be part of this edge.fridayHigh threshold. Pixels for which the bidirectional derivative is greater than this value will be part of an edge. !"#$%&'()*+,,--./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRRSTUUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                               som|ne%friday-0.2.3.2-8On5VvNOMcCDg1mEiVpYRlVision.Image.ConversionVision.Primitive.ShapeVision.PrimitiveVision.Image.ClassVision.Image.TypeVision.Image.MutableVision.Image.ParallelVision.Image.InterpolateVision.Image.TransformVision.Image.RGBA.TypeVision.Image.RGB.TypeVision.Image.HSV.TypeVision.Image.Grey.TypeVision.Image.Filter.InternalVision.Image.FilterVision.HistogramVision.Image.ThresholdVision.Image.ContourVision.Detector.EdgeVision.Image.RGBA.SpecializeVision.Image.RGBAVision.Image.RGB.SpecializeVision.Image.RGBVision.Image.HSV.SpecializeVision.Image.HSVVision.Image.Grey.SpecializeVision.Image.Grey Vision.Image*convertible-1.1.1.1-Joy6hn0SiOmKsvCIwOlOVoData.Convertible.Baseconvert safeConvert ConvertibleDIM9DIM8DIM7DIM6DIM5DIM4DIM3DIM2DIM1DIM0:.ZShape shapeRank shapeLength shapeZero shapeSucc toLinearIndexfromLinearIndex shapeListinShapeix1ix2ix3ix4ix5ix6ix7ix8ix9 $fStorableZ$fShapeZ$fUnboxZ$fVectorVectorZ$fMVectorMVectorZ $fStorable:. $fShape:. $fUnbox:.$fVectorVector:.$fMVectorMVector:.$fShow:.$fRead:.$fEq:.$fOrd:.$fShowZ$fReadZ$fEqZ$fOrdZRPointrpXrpYRectrXrYrWidthrHeightSizePoint $fShowRPoint $fReadRPoint $fEqRPoint $fOrdRPoint $fShowRect $fReadRect$fEqRect $fOrdRect FunctorImagemap FromFunctionFromFunctionPixel fromFunctionfromFunctionLinefromFunctionColfromFunctionCachedImageindex linearIndexvector ImageChannel MaskedImage ImagePixelshape maskedIndexmaskedLinearIndexvaluesPixel PixelChannel pixNChannelspixIndex!?! nChannelspixel $fPixelBool $fPixelDouble $fPixelFloat $fPixelWord $fPixelWord32 $fPixelWord16 $fPixelWord8 $fPixelInt $fPixelInt32 $fPixelInt16 DelayedMaskdelayedMaskSizedelayedMaskFunDelayed delayedSize delayedFunManifest manifestSizemanifestVectordelaycomputedelayedmanifest$fConvertibleManifestManifest$fFunctorImagesrcManifest$fFromFunctionManifest$fImageManifest$fMaskedImageManifest$fNFDataManifest$fConvertibleManifestDelayed$fConvertibleDelayedManifest$fConvertibleDelayedDelayed$fFunctorImagesrcDelayed$fFromFunctionDelayed$fImageDelayed$fMaskedImageDelayed$fFunctorImagesrcDelayedMask$fFromFunctionDelayedMask$fMaskedImageDelayedMask $fEqManifest $fOrdManifest$fShowManifestMutableManifestmmSizemmVector MutableImageFreezedmShapenewnew'read linearReadwrite linearWritefreeze unsafeFreezethawcreate$fMutableImageMutableManifestcomputeP InterpolableinterpolbilinearInterpol$fInterpolableBool$fInterpolableDouble$fInterpolableFloat$fInterpolableWord$fInterpolableWord32$fInterpolableWord16$fInterpolableWord8$fInterpolableInt$fInterpolableInt32$fInterpolableInt16InterpolMethodTruncateIntegerNearestNeighborBilinearcropresizehorizontalFlip verticalFlip floodFill RGBADelayedRGBA RGBAPixelrgbaRed rgbaGreenrgbaBlue rgbaAlpha$fInterpolableRGBAPixel$fPixelRGBAPixel$fStorableRGBAPixel $fEqRGBAPixel$fShowRGBAPixel RGBDelayedRGBRGBPixelrgbRedrgbGreenrgbBlue$fInterpolableRGBPixel$fPixelRGBPixel$fStorableRGBPixel $fEqRGBPixel$fShowRGBPixel HSVDelayedHSVHSVPixelhsvHuehsvSathsvValue$fInterpolableHSVPixel$fPixelHSVPixel$fStorableHSVPixel $fEqHSVPixel$fShowHSVPixel GreyDelayedGrey GreyPixel$fInterpolableGreyPixel$fPixelGreyPixel$fBitsGreyPixel$fBoundedGreyPixel$fEnumGreyPixel $fEqGreyPixel$fIntegralGreyPixel$fNumGreyPixel$fOrdGreyPixel$fRealGreyPixel$fReadGreyPixel$fShowGreyPixel$fStorableGreyPixel$fConvertibleRGBPixelRGBAPixel$fConvertibleHSVPixelRGBAPixel$fConvertibleGreyPixelRGBAPixel$fConvertibleRGBAPixelRGBAPixel$fConvertibleHSVPixelRGBPixel$fConvertibleRGBAPixelRGBPixel$fConvertibleGreyPixelRGBPixel$fConvertibleRGBPixelRGBPixel$fConvertibleRGBAPixelHSVPixel$fConvertibleRGBPixelHSVPixel$fConvertibleGreyPixelHSVPixel$fConvertibleHSVPixelHSVPixel$fConvertibleRGBPixelGreyPixel$fConvertibleRGBAPixelGreyPixel$fConvertibleHSVPixelGreyPixel$fConvertibleGreyPixelGreyPixelMeanDerivativeType DerivativeX DerivativeY DerivativeBlur MorphologicalBorderInterpolateBorderReplicate BorderReflect BorderWrapBorderConstant FilterFold1 FilterFoldSeparatelyFiltrableSeparableFilterAccumulatorSeparableKernel skVertical skHorizontalKernel KernelAnchorKernelAnchorCenterSeparableFilter1SeparableFilter BoxFilter1 BoxFilterFilter fKernelSize fKernelCenterfKernelfInitfFoldfPost fInterpol Filterableapply kernelAnchorborderInterpolatedilateerodeblur gaussianBlurscharrsobelmean"$fSeparatelyFiltrablesrcDelayedacc#$fSeparatelyFiltrablesrcManifestacc$fFilterablesrcresFilter$fFilterablesrcresFilter0$fFilterablesrcresFilter1$fFilterablesrcresFilter2 ToHistogramPixelValueSpace pixToIndex domainSizeHistogramShapetoBin HistogramassocspixToBin histogram histogram2Dreduce cumulative normalize equalizeImage compareCorrel compareChicompareIntersect compareEMD$fHistogramShape:.$fHistogramShapeZ$fToHistogramHSVPixel$fToHistogramRGBPixel$fToHistogramRGBAPixel$fToHistogramGreyPixel $fEqHistogram$fOrdHistogram$fShowHistogramAdaptiveThresholdAdaptiveThresholdKernel MeanKernelGaussianKernel ThresholdTypeBinaryThresholdTruncate TruncateInv thresholdType thresholdadaptiveThresholdadaptiveThresholdFilterotsuscwContourDrawStyle OuterOutline AllOutlinesFill FillWithHoles RowContourContour outerContour innerContours ContourValue OneContour ContourIdContourscontourOutlines contourSizes allContourIdscontourPerimeter contourSize lookupContour drawContour drawContours rowContourcontours$fEnumContourPos$fBoundedContourPos$fEqContourPos$fShowContourPos$fEqContourType$fEqContourDrawStyle$fOrdContourDrawStyle$fShowContourDrawStyle$fReadContourDrawStyle$fEnumContourDrawStyle$fBoundedContourDrawStyle $fEqContourId$fOrdContourId$fStorableContourId$fNumContourId$fShowContourIdcannybaseGHC.BaseFunctorGHC.Err undefined&vector-0.13.0.0-JKrBPPZBIK2JBM2KZEUb7ZData.Vector.StorableVectorGHC.STST rgbToGreyGHC.Real FractionalGHC.IntInt32variancedrawRows NorthSouthWestEastNorthEastSouthWestNorthWestSouthEastGHC.EnummaxBoundminBound