NAME
Prima::IPA::Global  methods that produce images where every pixel is a function of all pixels in the source image
DESCRIPTION
Contains methods that produce images, where every pixel is a function of all pixels in the source image. The process can be described with the mapping function
s = M(R)
where s
is the pixel value in the output images, and R is the source image.
 close_edges IMAGE [ gradient, maxlen, minedgelen, mingradient ]

Closes edges of shapes on IMAGE, according to specified
gradient
image. The unclosed shapes converted to the closed if the gradient spot between the suspected dents falls undermaxlen
maximal length increment,mingradient
the minimal gradient value and the edge is longer thanminedgelen
.Supported types: Byte
Parameters:
 fill_holes IMAGE [ inPlace = 0, edgeSize = 1, backColor = 0, foreColor = 255, neighborhood = 4]

Fills closed shapes to eliminate the contours with holes in IMAGE.
Supported types: Byte
Parameters:
 inPlace BOOLEAN

If true, the original image is changed
 edgeSize INTEGER

The edge breadth that is not touched by the algorithm
 backColor INTEGER

The pixel value used for determination whether a pixel belongs to the background.
 foreColor INTEGER

The pixel value used for hole filling.
 neighborhood INTEGER

Must be either 4 or 8. Selects whether the algorithm must assume 4 or 8 pixel connection.
 area_filter IMAGE [ minArea = 0, maxArea = INT_MAX, inPlace = 0, edgeSize = 1, backColor = 0, foreColor = 255, neighborhood = 4]

Identifies the objects on IMAGE and filters out these that have their area less than
minArea
and more thanmaxArea
. The other parameters are identical to those passed to fill_holes.  identify_contours IMAGE [ edgeSize = 1, backColor = 0, foreColor = 255, neighborhood = 4]

Identifies the objects on IMAGE and returns the contours as array of anonymous arrays of 4 or 8 connected pixel coordinates.
The parameters are identical to those passed to fill_holes.
Supported types: Byte
See also Prima::IPA::Region.
 identify_scanlines IMAGE [ edgeSize = 1, backColor = 0, foreColor = 255, neighborhood = 4]

Same as
identify_contours
but returns a set of scan lines.  identify_pixels IMAGE [ match => 0, eq => 0 ]

Returns coordinates of all pixels that match (if
eq
is 1) or not match (eq
is 0) colormatch
.  fft IMAGE [ inverse = 0 ]

Performs direct and inverse ( governed by
inverse
boolean flag ) fast Fourier transform. IMAGE must have dimensions of power of 2. The resulted image is always of DComplex type.Supported types: all
 fourier IMAGE [ inverse = 0 ]

Performs direct and inverse ( governed by
inverse
boolean flag ) fast Fourier transform. If IMAGE dimensions not of power of 2, then IMAGE is scaled up to the closest power of 2, and the result is scaled back to the original dimensions.The resulted image is always of DComplex type.
Supported types: all
 band_filter IMAGE [ low = 0, spatial = 1, homomorph = 0, power = 2.0, cutoff = 20.0, boost = 0.7 ]

Performs band filtering of IMAGE in frequency domain. IMAGE must have dimensions of power of 2. The resulted image is always of DComplex type.
Supported types: all
Parameters:
 low BOOLEAN

Boolean flag, indicates whether the lowpass or the highpass is to be performed.
 spatial BOOLEAN

Boolean flag, indicates if IMAGE must be treated as if it is in the spatial domain, and therefore conversion to the frequency domain must be performed first.
 homomorph BOOLEAN

Boolean flag, indicates if the homomorph ( exponential ) equalization must be performed. Cannot be set to true if the image is in frequency domain ( if
spatial
parameter set to true ).  power FLOAT

Power operator applied to the input frequency.
 cutoff FLOAT

Threshold value of the filter.
 boost FLOAT

Multiplication factor used in homomorph equalization.
 butterworth IMAGE [ low = 0, spatial = 1, homomorph = 0, power = 2.0, cutoff = 20.0, boost = 0.7 ]

Performs band filtering of IMAGE in frequency domain. If IMAGE dimensions not of power of 2, then IMAGE is scaled up to the closest power of 2, and the result is scaled back to the original dimensions.
The resulted image is always of DComplex type.
Supported types: all
The parameters are same as those passed to band_filter.
 hough IMAGE [ type = "line", direct = 1, resolution = 500 ]

Realizes Hough transform. If type is "line", linear transform is performed. With direct transform,
resolution
is width of the resulted image.Note: Returns a 8bit grayscale image, which means that for all practical purposes the image shouldn't possibly contain more than 256 line candidates.
Supported types: all
 hough2lines IMAGE [ width = 1000, height = 1000 ]

Takes a Houghtransformed image, where each pixel is a line. For each nonzero pixel a line projection on a rectangle with given width and height is calculated. Returns array of quad values in format [x0,y0,x1,y2] where the coordinates stand for the start and the end of a line.
So, if the direct transform was called as
$h = hough( $i );
then plotting lines back (after $h was filtered) would be
$i> line(@$_) for @{ hough2lines( $h, width => $i> width, height => $i> height ) };
Supported types: 8bit (expects result from
hough
function).
Optimized plotting
The following functions can draw lines on images, and are optimized for speed, because Prima doesn't support drawing on images outside begin_paint
/end_paint
scope.
 bar IMAGE, X1, Y1, X2, Y2, COLOR

Fill the given rectangular area with COLOR.
 hlines IMAGE, OFFSET_X, OFFSET_Y, LINES, COLOR

Draws set of horizontal lines as defined by LINES with COLOR. LINES is an array of triplet integers, where each contains [X1, X2, Y] coordinates  beginning of hline, end of hline, and vline.
 line IMAGE, X1, Y1, X2, Y2, COLOR

Draws a single line from X1,Y1 to X2,Y2 .