[brlcad-commits] SF.net SVN: brlcad:[56853] brlcad/trunk/src/libicv
Open Source Solid Modeling CAD
Brought to you by:
brlcad
From: <moh...@us...> - 2013-08-15 10:33:22
|
Revision: 56853 http://sourceforge.net/p/brlcad/code/56853 Author: mohitdaga Date: 2013-08-15 10:33:19 +0000 (Thu, 15 Aug 2013) Log Message: ----------- Add dpix.c in libicv. This file will contain routines to read and write images in dpix format. Also added normalize function which will be used to normalize the value in image Modified Paths: -------------- brlcad/trunk/src/libicv/CMakeLists.txt Added Paths: ----------- brlcad/trunk/src/libicv/dpix.c Modified: brlcad/trunk/src/libicv/CMakeLists.txt =================================================================== --- brlcad/trunk/src/libicv/CMakeLists.txt 2013-08-15 10:27:42 UTC (rev 56852) +++ brlcad/trunk/src/libicv/CMakeLists.txt 2013-08-15 10:33:19 UTC (rev 56853) @@ -19,6 +19,7 @@ decimate.c pix.c bw.c + dpix.c ) BRLCAD_ADDLIB(libicv "${LIBICV_SOURCES}" "libbu;libbn;${PNG_LIBRARY}") Added: brlcad/trunk/src/libicv/dpix.c =================================================================== --- brlcad/trunk/src/libicv/dpix.c (rev 0) +++ brlcad/trunk/src/libicv/dpix.c 2013-08-15 10:33:19 UTC (rev 56853) @@ -0,0 +1,87 @@ +/* D P I X . C + * BRL-CAD + * + * Copyright (c) 2013 United States Government as represented by + * the U.S. Army Research Laboratory. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * version 2.1 as published by the Free Software Foundation. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this file; see the file named COPYING for more + * information. + */ +/** @file dpix.c + * + * this contains read/write routines for dpix format. + * + */ + +#include "common.h" + +#include <sys/stat.h> /* for file mode infor in WRMODE */ +#include <fcntl.h> + +#include "bio.h" +#include "bu.h" +#include "icv.h" +#include "vmath.h" + +#define WRMODE S_IRUSR|S_IRGRP|S_IROTH + +/* + * This function normalizes the data array of the input image. + */ +HIDDEN icv_image_t * +icv_normalize(icv_image_t *bif) +{ + double *data; + double max, min; + double m, b; + size_t size; + unsigned long int i; + + if (bif == NULL) { + bu_log("icv_normalize : trying to normalize a NULL bif\n"); + return bif; + } + + data = bif->data; + size = bif->height*bif->width*bif->channels; + + min = INFINITY; + max = -INFINITY; + + for (i = 0; i<size; i++) { + V_MIN(min, *data); + V_MAX(max, *data); + data++; + } + + data = bif->data; + m = 1/(max-min); + b = -min/(max-min); + + for (i =0; i<size; i++) { + *data = m*(*data) + b; + data++; + } + + return bif; +} + +/* + * Local Variables: + * tab-width: 8 + * mode: C + * indent-tabs-mode: t + * c-file-style: "stroustrup" + * End: + * ex: shiftwidth=4 tabstop=8 + */ Property changes on: brlcad/trunk/src/libicv/dpix.c ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |