get_divide_by_sum_projection_matrix - Projects RGB data into rg space


#include "c/c_projection.h"

Example compile flags (system dependent):
   -L/home/kobus/misc/load/linux_x86_64_opteron -L/usr/lib/x86_64-linux-gnu
  -lKJB                               -lfftw3  -lgsl -lgslcblas -ljpeg  -lSVM -lstdc++                    -lpthread -lSLATEC -lg2c    -lacml -lacml_mv -lblas -lg2c      -lncursesw 

int get_divide_by_sum_projection_matrix
	Matrix **output_mpp,
	const Matrix *input_mp,
	Invalid_chromaticity_action invalid_chromaticity_action,
	double max_projection_coordinate,
	double absolute_pixel_error,
	double relative_pixel_error,
	Matrix **error_points_mpp


This routine projects RGB data into the rg chromaticity space. The input matrix should have either 3 or 4 columns. The number of columns of the output matrix is one less than that of the input matrix. If the input matrix has 4 columns, the first column is assumed to be a value which should be propogated into the chromaticity output, and it is copied to the first column of the output matrix. The argument "max_projection_coordinate" is used to specify the reciprocal of the smallest value of the sum which is considered valid. For example, if "max_projection_coordinate" is 1000, then any triplet with R+G+B < 0.001 is considered invalid, and an action dictated by invalid_chromaticity_action is taken. Possible actions are SKIP_INVALID_CHROMATICITY, ZERO_INVALID_CHROMATICITY, and NEGATE_INVALID_CHROMATICITY. The name and behaviour of "max_projection_coordinate" is currently chosen to be consistent with the arguments to the more general function get_projection_matrix(). If "max_projection_coordinate" is negative, then a default value is used. If "error_points_mpp" is not NULL, then a result representing the range of points based on the "absolute_pixel_error" and "relative_pixel_error" is computed. If "error_points_mpp" is NULL, then the error parameters " absolute_pixel_error" and "relative_pixel_error" are ignored, but by convention they should have the value DBL_NOT_SET. A more general routine get_projection_matrix() is available.


NO_ERROR on success; ERROR on failure.


The semantics of the routines in this module are ugly, and hopefully they will be changed for the better. However, it is recomended that these routines are used for colour projection regardless, to be consistent.


The number of rows in the projected data can be less than that of the input. Similarly, the number of rows in the error results are not easily determined from the input size.




This software is not adequatedly tested. It is recomended that results are checked independantly where appropriate.


Kobus Barnard


Kobus Barnard, Lindsay Martin


get_projection_matrix , project_matrix , divide_by_sum_project_matrix , project_matrix_onto_unit_sphere , get_projection_vector , project_vector , back_project_matrix , back_project_vector