SampleLine
SampleLine
Puts a raster line into buffer.
Syntax
IppStatus ippiSampleLine_<mod>
(
const Ipp<datatype>*
pSrc
,
int
srcStep
,
IppiSize
roiSize
,
Ipp<datatype>*
pDst
,
IppiPoint
pt1
,
IppiPoint
pt2
);
Supported values for
mod
:8u_C1R | 16u_C1R | 32f_C1R |
8u_C3R | 16u_C3R | 32f_C3R |
Include Files
ippcv.h
Domain Dependencies
Headers:
ippcore.h
,
ippvm.h
,
ipps.h
,
ippi.h
Libraries:
ippcore.lib
,
ippvm.lib
,
ipps.lib
,
ippi.lib
Parameters
- pSrc
- Pointer to the ROI in the source raster image.
- srcStep
- Distance in bytes between starts of consecutive lines in the raster image.
- roiSize
- Size of the image ROI in pixels.
- pDst
- Pointer to the destination buffer. The buffer is to store at leastmax(|pt2.x - pt1.x| + 1, |pt2.y - pt1.y| + 1)points.
- pt1
- Starting point of the line.
- pt2
- Ending point of the line.
Description
This function operates with ROI (see Regions of Interest in Intel IPP).
This function iterates through the points that belong to the raster line using the 8-point connected Bresenham algorithm, and puts the resulting pixels into the destination buffer.
Return Values
- ippStsNoErr
- Indicates no error. Any other value indicates an error or a warning.
- ippStsNullPtrErr
- Indicates an error condition if any of the specified pointers isNULL.
- ippStsSizeErr
- Indicates an error condition ifroiSize.widthorroiSize.heightis less than or equal to zero.
- ippStsStepErr
- Indicates an error condition ifsrcStepis less than.roiSize.width*<pixelSize>
- ippStsNotEvenStepErr
- Indicates an error when the step for the floating-point image cannot be divided by 4.
- ippStsOutOfRangeErr
- Indicates an error when any of the line ending points is outside the image.
Example
The code example below shows how to use the function
ippiSampleLine_8u_C1R
.void func_sampleline() { Ipp8u pSrc[5*4] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 9, 8, 7, 6, 5, 4, 3, 2, 1 }; IppiSize roiSize = {5, 4}; IppiPoint pt1 = {1, 1}; IppiPoint pt2 = {2, 3}; Ipp8u pDst[3]; int srcStep = 5; ippiSampleLine_8u_C1R( pSrc, srcStep, roiSize, pDst, pt1, pt2 ); printf("%Result: d, %d, %d\n", pDst[0], pDst[1], pDst[2] ); // << this wrong line printf("%Result: %d, %d, %d\n", pDst[0], pDst[1], pDst[2] ); // this is correct line }
Result: 6, 9, 3