18 #ifndef PIC_FILTERING_FILTER_LINEAR_COLOR_SPACE_HPP 19 #define PIC_FILTERING_FILTER_LINEAR_COLOR_SPACE_HPP 21 #include "../filtering/filter.hpp" 42 if(src[0]->channels !=
nMatrix) {
46 int width = dst->
width;
47 int channels = src[0]->channels;
48 float *data = src[0]->data;
50 for(
int j = box->
y0; j < box->y1; j++) {
53 for(
int i = box->
x0; i < box->x1; i++) {
54 int c1 = (c + i) * channels;
56 for(
int k = 0; k < channels; k++) {
60 for(
int l = 0; l < channels; l++) {
61 sum += data[c1 + l] *
matrix[ind + l];
64 dst->
data[c1 + k] = sum;
The BBox class manages the creation of bounding boxes for images.
Definition: bbox.hpp:29
The FilterLinearColorSpace class.
Definition: filter_linear_color_space.hpp:28
static Image * execute_XYZ_to_RGB(Image *imgIn, Image *imgOut)
execute_XYZ_to_RGB
Definition: filter_linear_color_space.hpp:158
float * data
data is the main buffer where pixel values are stored.
Definition: image.hpp:91
~FilterLinearColorSpace()
Definition: filter_linear_color_space.hpp:80
std::vector< Image * > ImageVec
ImageVec an std::vector of pic::Image.
Definition: image_vec.hpp:29
int x0
Definition: bbox.hpp:32
The Filter class.
Definition: filter.hpp:50
virtual Image * Process(ImageVec imgIn, Image *imgOut)
Process.
Definition: filter.hpp:390
float * getRGB2XYZMatrix()
getRGB2XYZMatrix
Definition: filter_linear_color_space.hpp:91
int y0
Definition: bbox.hpp:32
float * getXYZ2RGBMatrix()
getXYZ2RGBMatrix
Definition: filter_linear_color_space.hpp:116
static Image * execute_RGB_to_XYZ(Image *imgIn, Image *imgOut)
execute_RGB_to_XYZ
Definition: filter_linear_color_space.hpp:143
The Image class stores an image as buffer of float.
Definition: image.hpp:60
FilterLinearColorSpace()
FilterLinearColorSpace.
Definition: filter_linear_color_space.hpp:74
PIC_INLINE ImageVec Single(Image *img)
Single creates an std::vector which contains img; this is for filters input.
Definition: image_vec.hpp:36
Definition: bilateral_separation.hpp:25
float * matrix
Definition: filter_linear_color_space.hpp:31
void ProcessBBox(Image *dst, ImageVec src, BBox *box)
ProcessBBox.
Definition: filter_linear_color_space.hpp:40
int width
Definition: image.hpp:80
int nMatrix
Definition: filter_linear_color_space.hpp:32