cc [ flag... ] file... –lmlib [ library... ] #include <mlib.h> mlib_status mlib_ImageDivShift1_Inp(mlib_image *src1dst, const mlib_image *src2, mlib_s32 shift);
The mlib_ImageDivShift1_Inp() function divides the second source image into the first source image on a pixel-by-pixel basis. It scales the result by a left shift and writes the result to the destination image on a pixel-by-pixel basis.
It uses the following equation:
src1dst[x][y][i] = src1dst[x][y][i] / src2[x][y][i] * 2**shift
In the case of src2[x][y][i] = 0,
src1dst[x][y][i] = 0 if src1dst[x][y][i] = 0 src1dst[x][y][i] = DATA_TYPE_MAX if src1dst[x][y][i] > 0 src1dst[x][y][i] = DATA_TYPE_MIN if src1dst[x][y][i] < 0
where DATA_TYPE is MLIB_U8, MLIB_S16, MLIB_U16, or MLIB_S32 for an image of type MLIB_BYTE, MLIB_SHORT, MLIB_USHORT, or MLIB_INT, respectively.
The function takes the following arguments:
Pointer to first source and destination image.
Pointer to second source image.
Left shifting factor. 0 ≤ shift ≤ 31.
The function returns MLIB_SUCCESS if successful. Otherwise it returns MLIB_FAILURE.
See attributes(5) for descriptions of the following attributes:
|
mlib_ImageDivShift(3MLIB), mlib_ImageDivShift2_Inp(3MLIB), attributes(5)