Example #1
0
void ColorSpace::XYZtoLab (CoImage* pIn, CoImage* pOut)
{
	assert (pIn->GetType() == MAT_Tfloat);
	assert (pOut->GetType() == MAT_Tfloat);
	float* prX = pIn->m_matX.data.fl[0];
	float* prY = pIn->m_matY.data.fl[0];
	float* prZ = pIn->m_matZ.data.fl[0];
	
	float* pbR = pOut->m_matX.data.fl[0];
	float* pbG = pOut->m_matY.data.fl[0];
	float* pbB = pOut->m_matZ.data.fl[0];
	
	for (int i = 0; i < pIn->GetHeight() * pIn->GetWidth(); i ++)
	{
		XYZtoLab(prX[i], prY[i], prZ[i], &pbR[i], &pbG[i], &pbB[i]);
	}
}
Example #2
0
void ColorSpace::RGBtoLab (BYTE bR, BYTE bG, BYTE bB, float *prL, float *pra, float *prb)
{
	float rX, rY, rZ;
	RGBtoXYZ(bR, bG, bB, &rX, &rY, &rZ);
	XYZtoLab(rX, rY, rZ, prL, pra, prb);
}
Example #3
0
void Image::RGBtoLab(pixel4b *source, pixel3f *destination)
{
	RGBtoXYZ(source, destination);
	XYZtoLab(destination);
}