|
Leptonica
1.54
|
#include "allheaders.h"
|
static |
Input: datad, w, h, wpld (8 bpp image) datas, wpls (8 bpp image, of same dimensions) size (full length of SEL; restricted to odd numbers) direction (L_HORIZ or L_VERT) buffer (holds full line or column of src image pixels) maxarray (array of dimension 2*size+1) Return: void
Notes: (1) To eliminate border effects on the actual image, these images are prepared with an additional border of dimensions: leftpix = 0.5 * size rightpix = 1.5 * size toppix = 0.5 * size bottompix = 1.5 * size and we initialize the src border pixels to 0. This allows full processing over the actual image; at the end the border is removed. (2) Uses algorithm of van Herk, Gil and Werman
|
static |
Input: datad, w, h, wpld (8 bpp image) datas, wpls (8 bpp image, of same dimensions) size (full length of SEL; restricted to odd numbers) direction (L_HORIZ or L_VERT) buffer (holds full line or column of src image pixels) minarray (array of dimension 2*size+1) Return: void
Notes: (1) See notes in dilateGrayLow()
Input: pixs
hsize (of Sel; must be odd; origin implicitly in center)
vsize (ditto)
Return: pixd
Notes: (1) Sel is a brick with all elements being hits (2) If hsize = vsize = 1, just returns a copy.
Input: pixs (8 bpp, not cmapped)
hsize (1 or 3)
vsize (1 or 3)
Return: pixd, or null on error
Notes: (1) Special case for 1x3, 3x1 or 3x3 brick sel (all hits) (2) If hsize = vsize = 1, just returns a copy.
Input: pixs
hsize (of Sel; must be odd; origin implicitly in center)
vsize (ditto)
Return: pixd
Notes: (1) Sel is a brick with all elements being hits (2) If hsize = vsize = 1, just returns a copy.
Input: pixs (8 bpp, not cmapped)
hsize (1 or 3)
vsize (1 or 3)
Return: pixd, or null on error
Notes: (1) Special case for 1x3, 3x1 or 3x3 brick sel (all hits) (2) If hsize = vsize = 1, just returns a copy.
Input: pixs
hsize (of Sel; must be odd; origin implicitly in center)
vsize (ditto)
Return: pixd
Notes: (1) Sel is a brick with all elements being hits (2) If hsize = vsize = 1, just returns a copy.
Input: pixs (8 bpp, not cmapped)
hsize (1 or 3)
vsize (1 or 3)
Return: pixd, or null on error
Notes: (1) Special case for 1x3, 3x1 or 3x3 brick sel (all hits) (2) If hsize = vsize = 1, just returns a copy. (3) It would be nice not to add a border, but it is required if we want the same results as from the general case. We add 4 bytes on the left to speed up the copying, and 8 bytes at the right and bottom to allow unrolling of the computation of 8 pixels.
Input: pixs (8 bpp, not cmapped) Return: pixd, or null on error
Notes: (1) Special case for vertical 1x3 brick Sel; also used as the second step for the 3x3 brick Sel. (2) Surprisingly, this is faster than setting up the lineptrs array and accessing into it; e.g., val4 = GET_DATA_BYTE(lines8[i + 3], j);
Input: pixs
hsize (of Sel; must be odd; origin implicitly in center)
vsize (ditto)
Return: pixd
Notes: (1) Sel is a brick with all elements being hits (2) If hsize = vsize = 1, just returns a copy.
Input: pixs (8 bpp, not cmapped)
hsize (1 or 3)
vsize (1 or 3)
Return: pixd, or null on error
Notes: (1) Special case for 1x3, 3x1 or 3x3 brick sel (all hits) (2) If hsize = vsize = 1, just returns a copy. (3) It would be nice not to add a border, but it is required to get the same results as for the general case.