Ln
Computes the natural logarithm of pixel values in a source image and writes the results into the destination image.
Syntax
Case 1: Not-in-place operation on integer data
IppStatus ippiLn_<mod>
(
const Ipp<datatype>*
pSrc
,
int
srcStep
,
Ipp<datatype>*
pDst
,
int
dstStep
,
IppiSize
roiSize
,
int
scaleFactor
);
Supported values for
mod
:8u_C1RSfs | 16u_C1RSfs | 16s_C1RSfs |
8u_C3RSfs | 16u_C3RSfs | 16s_C3RSfs |
Case 2: Not-in-place operation on floating-point data
IppStatus ippiLn_<mod>
(
const Ipp32f*
pSrc
,
int
srcStep
,
Ipp32f*
pDst
,
int
dstStep
,
IppiSize
roiSize
);
Supported values for
mod
:32f_C1R |
32f_C3R |
Case 3: In-place operation on integer data
IppStatus ippiLn_<mod>
(
Ipp<datatype>*
pSrcDst
,
int
srcDstStep
,
IppiSize
roiSize
,
int
scaleFactor
);
Supported values for
mod
:8u_C1IRSfs | 16u_C1IRSfs | 16s_C1IRSfs |
8u_C3IRSfs | 16u_C3IRSfs | 16s_C3IRSfs |
Case 4: In-place operation on floating-point data
IppStatus ippiLn_<mod>
(
Ipp32f*
pSrcDst
,
int
srcDstStep
,
IppiSize
roiSize
);
Supported values for
mod
:32f_C1IR |
32f_C3IR |
Include Files
ippi.h
Domain Dependencies
Headers:
ippcore.h
,
ippvm.h
,
ipps.h
Libraries:
ippcore.lib
,
ippvm.lib
,
ipps.lib
Parameters
- pSrc
- Pointer to the source image ROI.
- srcStep
- Distance in bytes between starts of consecutive lines in the source image.
- pDst
- Pointer to the destination image ROI.
- dstStep
- Distance in bytes between starts of consecutive lines in the destination image.
- pSrcDst
- Pointer to the source and destination image ROI for the in-place operation.
- srcDstStep
- Distance in bytes between starts of consecutive lines in the source and destination image for the in-place operation.
- roiSize
- Size of the source and destination ROI in pixels.
- scaleFactor
- Scale factor (see Integer Result Scaling).
Description
This function operates with ROI (see Regions of Interest in Intel IPP).
This function computes natural logarithms of pixel values of the source image ROI and writes the resultant values to the destination image ROI. The function flavors operating on integer data apply fixed scaling defined by
scaleFactor
to the internally computed values, and saturate the results before writing them to the destination image ROI. If a source pixel value is zero or negative, the function issues a corresponding warning and continues execution with the corresponding result value (see appendix “Handling of Special Cases” for more information).
When several inputs have zero or negative value, the status code returned by the function corresponds to the first encountered case as illustrated in the code example below.
Return Values
- ippStsNoErr
- Indicates no error. Any other value indicates an error or a warning.
- ippStsNullPtrErr
- Indicates an error condition if one of the specified pointers isNULL.
- ippStsSizeErr
- Indicates an error condition ifroiSizehas a field with zero or negative value.
- ippStsStepErr
- Indicates an error condition ifsrcStep,dstStep, orsrcDstStephas a zero or negative value.
- ippStsLnZeroArg
- Indicates a warning that a source pixel has a zero value.
- ippStsLnNegArg
- Indicates a warning that a source pixel has a negative value.
Example
The code example below shows how to use
Ln
function.IppStatus ln( void ) { Ipp32f img[8*8]; IppiSize roi = { 8, 8 }; IppStatus st; ippiSet_32f_C1R( (float)IPP_E, img, 8*4, roi ); img[0] = -0; img[1] = -1; st = ippiLn_32f_C1IR( img, 8*sizeof(Ipp32f), roi ); printf( "%f %f %f\n", img[0], img[1], img[2] ); return st; }
Output values:
-1.#INF00 -1.#IND00 1.000000
Status value and message:
(7) Zero value(s) of argument in the Ln function