Convert the image from one color space to another by using 3D-Lookup with trilinear interpolation
SSE2
FwStatus | fwiLookUp3D_16u_C3R | ( | const Fw16u * pSrc, int srcStep, Fw16u * pDst, int dstStep, FwiSize roiSize, const Fw16u * pCube, FwiLUTSpec* pLUTSpec ); | |
FwStatus | fwiLookUp3D_16u_C3IR | ( | Fw16u * pSrcDst, int srcDstStep, FwiSize roiSize, const Fw16u * pCube, FwiLUTSpec* pLUTSpec ); |
dstStep | Destination buffer step size (width of the buffer in bytes). | |
pCube | Pointer to the 3d_LUT cube. The pixel values in the table should be filled along z-axis first, then along y-axis and finally along x-axis | |
pDst | Pointer to a location in a destination buffer. | |
pLUTSpec | pointer to the FwiLUTSpec structure | |
pSrc | Pointer to a location in a source buffer. | |
pSrcDst | Pointer to a location in a buffer that contains both the source and destination. | |
roiSize | Specifies the height and width of an ROI. | |
srcDstStep | Source and destination buffer step size in bytes (width of both buffers in bytes). | |
srcStep | Source buffer step size (width of the buffer in bytes). |
The functions run through all the pixels in an ROI and and convert them from one color space to another. The R, G and B values of each pixel are taken up and a 3D look-up is performed using the pCube table to find it's 8 neighbouring vertices in the new color space. Then a trilinear interpolation is done using the R, G and B values of the 8 vertices(in the new color space) to get the R, G and B values for the current pixel in the new color space. pCubepoints to a 3 dimensional cube. The contents of the table are the R, G and B values(in new color space) of each vertex in the cube.