예제 #1
0
static void
vips_Lab2LCh_line( VipsColour *colour, VipsPel *out, VipsPel **in, int width )
{
	float *p = (float *) in[0];
	float *q = (float *) out;

	int x;

	for( x = 0; x < width; x++ ) {
		float L = p[0];
		float a = p[1];
		float b = p[2];
		float C, h;

		p += 3;

		C = sqrt( a * a + b * b );
		h = vips_col_ab2h( a, b );

		q[0] = L;
		q[1] = C;
		q[2] = h;

		q += 3;
	}
}
예제 #2
0
파일: Lab2LCh.c 프로젝트: jcupitt/libvips
void
vips_col_ab2Ch( float a, float b, float *C, float *h )
{
#ifdef HAVE_ATAN2
	*h = VIPS_DEG( atan2( b, a ) );
	if( *h < 0.0 )
		*h += 360;
#else
	*h = vips_col_ab2h( a, b ); 
#endif 

#ifdef HAVE_HYPOT
	*C = hypot( a, b ); 
#else
	*C = sqrt( a * a + b * b );
#endif
}
예제 #3
0
void
vips_col_ab2Ch( float a, float b, float *C, float *h )
{
	*h = vips_col_ab2h( a, b ); 
	*C = sqrt( a * a + b * b );
}