Image-Leptonica
view release on metacpan or search on metacpan
lib/Image/Leptonica/Func/scale.pm view on Meta::CPAN
PIX * pixScaleGrayMinMax2 ( PIX *pixs, l_int32 type )
pixScaleGrayMinMax2()
Input: pixs (8 bpp, not cmapped)
type (L_CHOOSE_MIN, L_CHOOSE_MAX, L_CHOOSE_MAX_MIN_DIFF)
Return: pixd (8 bpp downscaled by 2x)
Notes:
(1) Special version for 2x reduction. The downscaled pixels
in pixd are the min, max or (max - min) of the corresponding
set of 4 pixels in pixs.
(2) The max and min operations are a special case (for levels 1
and 4) of grayscale analog to the binary rank scaling operation
pixReduceRankBinary2(). Note, however, that because of
the photometric definition that higher gray values are
lighter, the erosion-like L_CHOOSE_MIN will darken
the resulting image, corresponding to a threshold level 1
in the binary case. Likewise, L_CHOOSE_MAX will lighten
the pixd, corresponding to a threshold level of 4.
(3) To choose any of the four rank levels in a 2x grayscale
reduction, use pixScaleGrayRank2().
(4) This runs at about 70 MPix/sec/GHz of source data for
erosion and dilation.
=head2 pixScaleGrayRank2
PIX * pixScaleGrayRank2 ( PIX *pixs, l_int32 rank )
pixScaleGrayRank2()
Input: pixs (8 bpp, no cmap)
rank (1 (darkest), 2, 3, 4 (lightest))
Return: pixd (8 bpp, downscaled by 2x)
Notes:
(1) Rank 2x reduction. If rank == 1(4), the downscaled pixels
in pixd are the min(max) of the corresponding set of
4 pixels in pixs. Values 2 and 3 are intermediate.
(2) This is the grayscale analog to the binary rank scaling operation
pixReduceRankBinary2(). Here, because of the photometric
definition that higher gray values are lighter, rank 1 gives
the darkest pixel, whereas rank 4 gives the lightest pixel.
This is opposite to the binary rank operation.
(3) For rank = 1 and 4, this calls pixScaleGrayMinMax2(),
which runs at about 70 MPix/sec/GHz of source data.
For rank 2 and 3, this runs 3x slower, at about 25 MPix/sec/GHz.
=head2 pixScaleGrayRankCascade
PIX * pixScaleGrayRankCascade ( PIX *pixs, l_int32 level1, l_int32 level2, l_int32 level3, l_int32 level4 )
pixScaleGrayRankCascade()
Input: pixs (8 bpp, not cmapped)
level1, ... level4 (rank thresholds, in set {0, 1, 2, 3, 4})
Return: pixd (8 bpp, downscaled by up to 16x)
Notes:
(1) This performs up to four cascaded 2x rank reductions.
(2) Use level = 0 to truncate the cascade.
=head2 pixScaleGrayToBinaryFast
PIX * pixScaleGrayToBinaryFast ( PIX *pixs, l_int32 factor, l_int32 thresh )
pixScaleGrayToBinaryFast()
Input: pixs (8 bpp grayscale)
factor (integer reduction factor >= 1)
thresh (binarization threshold)
Return: pixd (1 bpp), or null on error
Notes:
(1) This does simultaneous subsampling by an integer factor and
thresholding from gray to binary.
(2) It is designed for maximum speed, and is used for quickly
generating a downsized binary image from a higher resolution
gray image. This would typically be used for image analysis.
=head2 pixScaleLI
PIX * pixScaleLI ( PIX *pixs, l_float32 scalex, l_float32 scaley )
pixScaleLI()
Input: pixs (2, 4, 8 or 32 bpp; with or without colormap)
scalex, scaley (must both be >= 0.7)
Return: pixd, or null on error
Notes:
(1) This function should only be used when the scale factors are
greater than or equal to 0.7, and typically greater than 1.
If either scale factor is smaller than 0.7, we issue a warning
and invoke pixScale().
(2) This works on 2, 4, 8, 16 and 32 bpp images, as well as on
2, 4 and 8 bpp images that have a colormap. If there is a
colormap, it is removed to either gray or RGB, depending
on the colormap.
(3) This does a linear interpolation on the src image.
(4) It dispatches to much faster implementations for
the special cases of 2x and 4x expansion.
*** Warning: implicit assumption about RGB component ordering
=head2 pixScaleMipmap
PIX * pixScaleMipmap ( PIX *pixs1, PIX *pixs2, l_float32 scale )
pixScaleMipmap()
Input: pixs1 (high res 8 bpp, no cmap)
pixs2 (low res -- 2x reduced -- 8 bpp, no cmap)
scale (reduction with respect to high res image, > 0.5)
Return: 8 bpp pix, scaled down by reduction in each direction,
or NULL on error.
Notes:
(1) See notes in pixScaleToGrayMipmap().
(2) This function suffers from aliasing effects that are
easily seen in document images.
( run in 1.140 second using v1.01-cache-2.11-cpan-524268b4103 )