BlinkenArea - GitList
Repositories
Blog
Wiki
libflexipix
Code
Commits
Branches
Tags
Search
Tree:
aa3270a
Branches
Tags
master
v1.0.0
v1.0.1
v1.0.2
v1.0.3
v1.0.4
v1.0.5
v1.0.6
v1.0.7
v1.0.8
libflexipix
src
mapping.c
removed version information from file headers (manged via git now)
Stefan Schuermans
commited
aa3270a
at 2011-09-11 17:30:15
mapping.c
Blame
History
Raw
/* * FlexiPix library * * Copyright 2010-2011 Stefan Schuermans <stefan schuermans info> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, version 3 of the License. * * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ #include <math.h> #include <flexipix/types.h> #include <intern/mapping.h> #include <intern/types.h> /** * \brief precalculate mapping table * * updates the internal lookup table according to the parameters * * \param[in,out] p_mapping mapping to precalculate */ void flp_mapping_precalc(flp_mapping_t *p_mapping) { double gamma_1; int v; /* precalculate 1 / gamma */ gamma_1 = 1.0 / p_mapping->gamma; /* map all values */ for (v = 0; v < 256; v++) { double val = p_mapping->base + p_mapping->factor * pow((double)v / 255.0, gamma_1); if (val < 0.0) p_mapping->table[v] = 0; else if (val > 1.0) p_mapping->table[v] = 255; else p_mapping->table[v] = (flp_u8_t)(val * 255.0 + 0.5); } }