#include <stdio.h>
#include <stdlib.h>
#include "allheaders.h"
Функции | |
FPIX * | pixConvertToFPix (PIX *pixs, l_int32 ncomps) |
PIX * | fpixConvertToPix (FPIX *fpixs, l_int32 outdepth, l_int32 negvals, l_int32 errorflag) |
PIX * | fpixDisplayMaxDynamicRange (FPIX *fpixs) |
FPIX * | fpixAddBorder (FPIX *fpixs, l_int32 left, l_int32 right, l_int32 top, l_int32 bot) |
FPIX * | fpixRemoveBorder (FPIX *fpixs, l_int32 left, l_int32 right, l_int32 top, l_int32 bot) |
FPIX * | fpixAddMirroredBorder (FPIX *fpixs, l_int32 left, l_int32 right, l_int32 top, l_int32 bot) |
l_int32 | fpixRasterop (FPIX *fpixd, l_int32 dx, l_int32 dy, l_int32 dw, l_int32 dh, FPIX *fpixs, l_int32 sx, l_int32 sy) |
FPIX * | fpixLinearCombination (FPIX *fpixd, FPIX *fpixs1, FPIX *fpixs2, l_float32 a, l_float32 b) |
l_int32 | fpixAddMultConstant (FPIX *fpix, l_float32 addc, l_float32 multc) |
Input: fpixs left, right, top, bot (pixels on each side to be added) Return: fpixd, or null on error
Notes: (1) Adds border of '0' 32-bit pixels
Input: fpixs left, right, top, bot (pixels on each side to be added) Return: fpixd, or null on error
Notes: (1) See pixAddMirroredBorder() for situations of usage.
Input: fpix addc (use 0.0 to skip the operation) multc (use 1.0 to skip the operation) Return: 0 if OK, 1 on error
Notes: (1) This is an in-place operation. (2) It can be used to multiply each pixel by a constant, and also to add a constant to each pixel. Multiplication is done first.
Input: fpixs outdepth (0, 8, 16 or 32 bpp) negvals (L_CLIP_TO_ZERO, L_TAKE_ABSVAL) errorflag (1 to output error stats; 0 otherwise) Return: pixd, or null on error
Notes: (1) Use = 0 to programmatically determine the output depth. If no values are greater than 255, it will set outdepth = 8; otherwise to 16 or 32. (2) Because we are converting a float to an unsigned int with a specified dynamic range (8, 16 or 32 bits), errors can occur. If errorflag == TRUE, output the number of values out of range, both negative and positive. (3) If a pixel value is positive and out of range, clip to the maximum value represented at the outdepth of 8, 16 or 32 bits.
Input: fpixs Return: pixd (8 bpp), or null on error
FPIX* fpixLinearCombination | ( | FPIX * | fpixd, | |
FPIX * | fpixs1, | |||
FPIX * | fpixs2, | |||
l_float32 | a, | |||
l_float32 | b | |||
) |
fpixLinearCombo()
Input: fpixd (<optional>; this can be null, equal to fpixs1, or different from fpixs1) fpixs1 (can be == to fpixd) fpixs2 Return: pixd always
Notes: (1) Computes pixelwise linear combination: a * src1 + b * src2 (2) Alignment is to UL corner. (3) There are 3 cases. The result can go to a new dest, in-place to fpixs1, or to an existing input dest: * fpixd == null: (src1 + src2) --> new fpixd * fpixd == fpixs1: (src1 + src2) --> src1 (in-place) * fpixd != fpixs1: (src1 + src2) --> input fpixd (4) fpixs2 must be different from both fpixd and fpixs1.
l_int32 fpixRasterop | ( | FPIX * | fpixd, | |
l_int32 | dx, | |||
l_int32 | dy, | |||
l_int32 | dw, | |||
l_int32 | dh, | |||
FPIX * | fpixs, | |||
l_int32 | sx, | |||
l_int32 | sy | |||
) |
Input: fpixd (dest fpix) dx (x val of UL corner of dest rectangle) dy (y val of UL corner of dest rectangle) dw (width of dest rectangle) dh (height of dest rectangle) fpixs (src fpix) sx (x val of UL corner of src rectangle) sy (y val of UL corner of src rectangle) Return: 0 if OK; 1 on error.
Notes: (1) This is similiar in structure to pixRasterop(), except it only allows copying from the source into the destination. For that reason, no op code is necessary. Additionally, all pixels are 32 bit words (float values), which makes the copy very simple. (2) Clipping of both src and dest fpix are done automatically. (3) This allows in-place copying, without checking to see if the result is valid: use for in-place with caution!
Input: fpixs left, right, top, bot (pixels on each side to be removed) Return: fpixd, or null on error
Input: pix (1, 2, 4, 8, 16 or 32 bpp) ncomps (number of components: 3 for RGB, 1 otherwise) Return: fpix, or null on error
Notes: (1) If colormapped, remove to grayscale. (2) If 32 bpp and == 3, this is RGB; convert to luminance. In all other cases the src image is treated as having a single component of pixel values.