added im_rad2float

This commit is contained in:
John Cupitt 2009-03-03 17:06:48 +00:00
parent ed80e7fdd6
commit 651d81ec76
12 changed files with 700 additions and 1545 deletions

View File

@ -1,3 +1,9 @@
3/3/09 started 7.17.2
- im_magick2vips.c: allow funky bit depths, like 14 (thanks Mikkel)
- isradiance was returning TRUE too often
- radiance loader now loads packed RGBE/XYZE instead of unpacking to float
- added im_rad2float()
11/10/08 started 7.17.0
- merge vips-7.16 brach back into trunk
- bumped version number to 7.17.0
@ -42,7 +48,6 @@
- added Matlab save file read
- added Radiance file read
- better file-not-found messages
- im_magick2vips.c: allow funky bit depths, like 14 (thanks Mikkel)
11/9/08 started 7.16.3
- oop typo in manpage for im_project()

View File

@ -5,7 +5,7 @@ AM_CONFIG_HEADER(config.h)
# user-visible library versioning
IM_MAJOR_VERSION=7
IM_MINOR_VERSION=17
IM_MICRO_VERSION=1
IM_MICRO_VERSION=2
IM_VERSION=$IM_MAJOR_VERSION.$IM_MINOR_VERSION.$IM_MICRO_VERSION
IM_VERSION_STRING=$IM_VERSION-`date`
@ -21,9 +21,9 @@ PACKAGE=vips
# interface changes backwards compatible?: increment age
# interface changes not backwards compatible?: reset age to 0
LIBRARY_CURRENT=23
LIBRARY_CURRENT=24
LIBRARY_REVISION=0
LIBRARY_AGE=8
LIBRARY_AGE=9
AM_INIT_AUTOMAKE($PACKAGE,$VERSION)

View File

@ -499,6 +499,7 @@ int im_vips2raw( IMAGE *in, int fd );
int im_Lab2LCh( IMAGE *, IMAGE * );
int im_LCh2Lab( IMAGE *, IMAGE * );
int im_LabQ2XYZ( IMAGE *, IMAGE * );
int im_rad2float( IMAGE *, IMAGE * );
int im_LCh2UCS( IMAGE *, IMAGE * );
int im_Lab2LCh( IMAGE *, IMAGE * );
int im_Lab2LabQ( IMAGE *, IMAGE * );

View File

@ -1,8 +1,5 @@
// this file automatically generated from
// VIPS library 7.14.0-Fri Feb 29 12:02:58 GMT 2008
VDMask estpar( VImage, int, int, int, double& ) throw( VError );
VImage transform( VDMask, int, int ) throw( VError );
VImage transform_search( VImage, double, int, int, int, int, VDMask&, double& ) throw( VError );
// VIPS library 7.17.2-Tue Mar 3 14:42:34 GMT 2009
VImage abs() throw( VError );
VImage acos() throw( VError );
VImage add( VImage ) throw( VError );
@ -102,6 +99,7 @@ VImage icc_import( char*, int ) throw( VError );
VImage icc_import_embedded( int ) throw( VError );
VImage icc_transform( char*, char*, int ) throw( VError );
VImage lab_morph( VDMask, double, double, double, double ) throw( VError );
VImage rad2float() throw( VError );
VImage sRGB2XYZ() throw( VError );
VImage bandjoin( VImage ) throw( VError );
static VImage black( int, int, int ) throw( VError );
@ -125,7 +123,6 @@ VImage copy() throw( VError );
VImage copy_morph( int, int, int ) throw( VError );
VImage copy_swap() throw( VError );
VImage copy_set( int, double, double, int, int ) throw( VError );
static VImage csv2vips( char* ) throw( VError );
VImage extract_area( int, int, int, int ) throw( VError );
VImage extract_areabands( int, int, int, int, int, int ) throw( VError );
VImage extract_band( int ) throw( VError );
@ -138,16 +135,10 @@ static VImage gbandjoin( std::vector<VImage> ) throw( VError );
VImage grid( int, int, int ) throw( VError );
VImage insert( VImage, int, int ) throw( VError );
VImage insert_noexpand( VImage, int, int ) throw( VError );
static VImage jpeg2vips( char* ) throw( VError );
VImage lrjoin( VImage ) throw( VError );
static VImage magick2vips( char* ) throw( VError );
static VImage mask2vips( VDMask ) throw( VError );
VImage msb() throw( VError );
VImage msb_band( int ) throw( VError );
static VImage png2vips( char* ) throw( VError );
static VImage exr2vips( char* ) throw( VError );
static VImage ppm2vips( char* ) throw( VError );
static VImage analyze2vips( char* ) throw( VError );
VImage recomb( VDMask ) throw( VError );
VImage replicate( int, int ) throw( VError );
VImage ri2c( VImage ) throw( VError );
@ -163,14 +154,7 @@ char* system( char* ) throw( VError );
VImage tbjoin( VImage ) throw( VError );
static VImage text( char*, char*, int, int, int ) throw( VError );
VImage thresh( double ) throw( VError );
static VImage tiff2vips( char* ) throw( VError );
void vips2csv( char* ) throw( VError );
void vips2jpeg( char* ) throw( VError );
VDMask vips2mask() throw( VError );
void vips2mimejpeg( int ) throw( VError );
void vips2png( char* ) throw( VError );
void vips2ppm( char* ) throw( VError );
void vips2tiff( char* ) throw( VError );
VImage wrap( int, int ) throw( VError );
VImage zoom( int, int ) throw( VError );
VImage addgnoise( double ) throw( VError );
@ -209,6 +193,20 @@ VImage spcor( VImage ) throw( VError );
VImage spcor_raw( VImage ) throw( VError );
VImage stretch3( double, double ) throw( VError );
VImage zerox( int ) throw( VError );
static VImage csv2vips( char* ) throw( VError );
static VImage jpeg2vips( char* ) throw( VError );
static VImage magick2vips( char* ) throw( VError );
static VImage png2vips( char* ) throw( VError );
static VImage exr2vips( char* ) throw( VError );
static VImage ppm2vips( char* ) throw( VError );
static VImage analyze2vips( char* ) throw( VError );
static VImage tiff2vips( char* ) throw( VError );
void vips2csv( char* ) throw( VError );
void vips2jpeg( char* ) throw( VError );
void vips2mimejpeg( int ) throw( VError );
void vips2png( char* ) throw( VError );
void vips2ppm( char* ) throw( VError );
void vips2tiff( char* ) throw( VError );
static VImage create_fmask( int, int, int, double, double, double, double, double ) throw( VError );
VImage disp_ps() throw( VError );
VImage flt_image_freq( int, double, double, double, double, double ) throw( VError );
@ -261,7 +259,6 @@ VImage dilate_raw( VIMask ) throw( VError );
VImage erode( VIMask ) throw( VError );
VImage erode_raw( VIMask ) throw( VError );
VImage profile( int ) throw( VError );
VImage affine( double, double, double, double, double, double, int, int, int, int ) throw( VError );
VImage align_bands() throw( VError );
double correl( VImage, int, int, int, int, int, int, int&, int& ) throw( VError );
int _find_lroverlap( VImage, int, int, int, int, int, int, int, int&, double&, double&, double&, double& ) throw( VError );
@ -276,8 +273,6 @@ VImage match_linear( VImage, int, int, int, int, int, int, int, int ) throw( VEr
VImage match_linear_search( VImage, int, int, int, int, int, int, int, int, int, int ) throw( VError );
double maxpos_subpel( double& ) throw( VError );
VImage remosaic( char*, char* ) throw( VError );
VImage similarity_area( double, double, double, double, int, int, int, int ) throw( VError );
VImage similarity( double, double, double, double ) throw( VError );
VImage tbmerge( VImage, int, int, int ) throw( VError );
VImage tbmerge1( VImage, int, int, int, int, int, int, int, int, int ) throw( VError );
VImage tbmosaic( VImage, int, int, int, int, int, int, int, int, int ) throw( VError );
@ -312,5 +307,8 @@ VImage moreeq( double ) throw( VError );
VImage notequal( VImage ) throw( VError );
VImage notequal( std::vector<double> ) throw( VError );
VImage notequal( double ) throw( VError );
VImage affine( double, double, double, double, double, double, int, int, int, int ) throw( VError );
VImage similarity_area( double, double, double, double, int, int, int, int ) throw( VError );
VImage similarity( double, double, double, double ) throw( VError );
static VImage video_test( int, int ) throw( VError );
static VImage video_v4l1( char*, int, int, int, int, int, int ) throw( VError );

View File

@ -25,6 +25,7 @@ libcolour_la_SOURCES = \
im_dE00_fromLab.c \
im_dECMC_fromLab.c \
im_dE_fromLab.c \
im_disp2XYZ.c
im_disp2XYZ.c \
im_rad2float.c
INCLUDES = -I${top_srcdir}/include @VIPS_CFLAGS@ @VIPS_INCLUDES@

View File

@ -467,6 +467,25 @@ static im_function LabQ2Lab_desc = {
one_in_one_out /* Arg list */
};
/* Call im_rad2float() via arg vector.
*/
static int
rad2float_vec( im_object *argv )
{
return( im_rad2float( argv[0], argv[1] ) );
}
/* Description of im_LabQ2Lab.
*/
static im_function rad2float_desc = {
"im_rad2float", /* Name */
"convert Radiance packed to float", /* Description */
IM_FN_PIO, /* Flags */
rad2float_vec, /* Dispatch function */
IM_NUMBER( one_in_one_out ), /* Size of arg list */
one_in_one_out /* Arg list */
};
/* Call im_LabQ2LabS() via arg vector.
*/
static int
@ -1000,6 +1019,7 @@ static im_function *colour_list[] = {
&icc_present_desc,
&icc_transform_desc,
&morph_desc,
&rad2float_desc,
&sRGB2XYZ_desc
};

View File

@ -0,0 +1,193 @@
/* Convert Radiance 32bit packed format to float.
* 3/3/09
* - from LabQ2Lab and Radiance sources
*/
/*
This file is part of VIPS.
VIPS is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
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 Lesser 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, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
/*
These files are distributed with VIPS - http://www.vips.ecs.soton.ac.uk
*/
/*
Sections of this file from Greg Ward and Radiance with kind
permission. The Radience copyright notice appears below.
*/
/* ====================================================================
* The Radiance Software License, Version 1.0
*
* Copyright (c) 1990 - 2009 The Regents of the University of California,
* through Lawrence Berkeley National Laboratory. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes Radiance software
* (http://radsite.lbl.gov/)
* developed by the Lawrence Berkeley National Laboratory
* (http://www.lbl.gov/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Radiance," "Lawrence Berkeley National Laboratory"
* and "The Regents of the University of California" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact radiance@radsite.lbl.gov.
*
* 5. Products derived from this software may not be called "Radiance",
* nor may "Radiance" appear in their name, without prior written
* permission of Lawrence Berkeley National Laboratory.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL Lawrence Berkeley National Laboratory OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of Lawrence Berkeley National Laboratory. For more
* information on Lawrence Berkeley National Laboratory, please see
* <http://www.lbl.gov/>.
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif /*HAVE_CONFIG_H*/
#include <vips/intl.h>
#include <stdio.h>
#include <math.h>
#include <vips/vips.h>
#ifdef WITH_DMALLOC
#include <dmalloc.h>
#endif /*WITH_DMALLOC*/
/* Begin copy-paste from Radiance sources.
*/
#define RED 0
#define GRN 1
#define BLU 2
#define CIEX 0 /* or, if input is XYZ... */
#define CIEY 1
#define CIEZ 2
#define EXP 3 /* exponent same for either format */
#define COLXS 128 /* excess used for exponent */
#define WHT 3 /* used for RGBPRIMS type */
#undef BYTE
#define BYTE unsigned char /* 8-bit unsigned integer */
typedef BYTE COLR[4]; /* red, green, blue (or X,Y,Z), exponent */
typedef float COLORV;
typedef COLORV COLOR[3]; /* red, green, blue (or X,Y,Z) */
#define copycolor(c1,c2) ((c1)[0]=(c2)[0],(c1)[1]=(c2)[1],(c1)[2]=(c2)[2])
static void
colr_color(col, clr) /* convert short to float color */
register COLOR col;
register COLR clr;
{
double f;
if (clr[EXP] == 0)
col[RED] = col[GRN] = col[BLU] = 0.0;
else {
f = ldexp(1.0, (int)clr[EXP]-(COLXS+8));
col[RED] = (clr[RED] + 0.5)*f;
col[GRN] = (clr[GRN] + 0.5)*f;
col[BLU] = (clr[BLU] + 0.5)*f;
}
}
/* End copy-paste from Radiance sources.
*/
void
rad2float( COLR *inp, COLOR *outbuf, int n )
{
colr_color(outbuf[0], inp[0]);
while (--n > 0) {
outbuf++; inp++;
if (inp[0][RED] == inp[-1][RED] &&
inp[0][GRN] == inp[-1][GRN] &&
inp[0][BLU] == inp[-1][BLU] &&
inp[0][EXP] == inp[-1][EXP])
copycolor(outbuf[0], outbuf[-1]);
else
colr_color(outbuf[0], inp[0]);
}
}
int
im_rad2float( IMAGE *in, IMAGE *out )
{
/* Must be 4-band uchar.
*/
if( in->Bands != 4 || in->BandFmt != IM_BANDFMT_UCHAR ||
in->Coding != IM_CODING_NONE ) {
im_error( "im_rad2float", "%s",
_( "not a 4-band uchar uncoded image" ) );
return( -1 );
}
if( im_cp_desc( out, in ) )
return( -1 );
out->Bands = 3;
out->BandFmt = IM_BANDFMT_FLOAT;
out->Bbits = im_bits_of_fmt( out->BandFmt );
if( im_wrapone( in, out,
(im_wrapone_fn) rad2float, NULL, NULL ) )
return( -1 );
return( 0 );
}

View File

@ -574,24 +574,6 @@ char *buf;
#define MINRUN 4 /* minimum run length */
static char *
tempbuffer(len) /* get a temporary buffer */
unsigned int len;
{
static char *tempbuf = NULL;
static unsigned tempbuflen = 0;
if (len > tempbuflen) {
if (tempbuflen > 0)
tempbuf = (char *)realloc((void *)tempbuf, len);
else
tempbuf = (char *)malloc(len);
tempbuflen = tempbuf==NULL ? 0 : len;
}
return(tempbuf);
}
static int
oldreadcolrs(scanline, len, fp) /* read in an old colr scanline */
@ -686,54 +668,6 @@ register FILE *fp;
static void
colr_color(col, clr) /* convert short to float color */
register COLOR col;
register COLR clr;
{
double f;
if (clr[EXP] == 0)
col[RED] = col[GRN] = col[BLU] = 0.0;
else {
f = ldexp(1.0, (int)clr[EXP]-(COLXS+8));
col[RED] = (clr[RED] + 0.5)*f;
col[GRN] = (clr[GRN] + 0.5)*f;
col[BLU] = (clr[BLU] + 0.5)*f;
}
}
static int
freadscan(scanline, len, fp) /* read in a scanline */
register COLOR *scanline;
int len;
FILE *fp;
{
register COLR *clrscan;
if ((clrscan = (COLR *)tempbuffer(len*sizeof(COLR))) == NULL)
return(-1);
if (freadcolrs(clrscan, len, fp) < 0)
return(-1);
/* convert scanline */
colr_color(scanline[0], clrscan[0]);
while (--len > 0) {
scanline++; clrscan++;
if (clrscan[0][RED] == clrscan[-1][RED] &&
clrscan[0][GRN] == clrscan[-1][GRN] &&
clrscan[0][BLU] == clrscan[-1][BLU] &&
clrscan[0][EXP] == clrscan[-1][EXP])
copycolor(scanline[0], scanline[-1]);
else
colr_color(scanline[0], clrscan[0]);
}
return(0);
}
/* End copy-paste from Radiance sources.
@ -752,7 +686,7 @@ typedef struct {
double aspect;
RGBPRIMS prims;
COLOR *buf;
COLR *buf;
} Read;
static int
@ -768,11 +702,11 @@ israd( const char *filename )
if( !(fin = fopen( filename, "r" )) )
return( 0 );
strcpy( format, "*" );
strcpy( format, PICFMT );
result = checkheader( fin, format, NULL );
fclose( fin );
return( result );
return( result == 1 );
}
static void
@ -876,8 +810,8 @@ rad2vips_get_header( Read *read, FILE *fin, IMAGE *out )
out->Xsize = scanlen( &rs );
out->Ysize = numscans( &rs );
out->Bands = 3;
out->BandFmt = IM_BANDFMT_FLOAT;
out->Bands = 4;
out->BandFmt = IM_BANDFMT_UCHAR;
out->Bbits = im_bits_of_fmt( out->BandFmt );
out->Coding = IM_CODING_NONE;
@ -947,11 +881,11 @@ rad2vips_get_data( Read *read, FILE *fin, IMAGE *im )
if( im_outcheck( im ) ||
im_setupout( im ) )
return( -1 );
if( !(read->buf = IM_ARRAY( NULL, im->Xsize, COLOR )) )
if( !(read->buf = IM_ARRAY( NULL, im->Xsize, COLR )) )
return( -1 );
for( y = 0; y < im->Ysize; y++ ) {
if( freadscan( read->buf, im->Xsize, fin ) ) {
if( freadcolrs( read->buf, im->Xsize, fin ) ) {
im_error( "rad2vips", "%s", _( "read error" ) );
return( -1 );
}

View File

@ -1,68 +1,5 @@
// this file automatically generated from
// VIPS library 7.14.0-Fri Feb 29 12:02:58 GMT 2008
// im_estpar: estimate transform parms
VDMask VImage::estpar( VImage dst, int order, int ipol, int wrap, double& avg_displ ) throw( VError )
{
VImage src = *this;
VDMask params;
Vargv _vec( "im_estpar" );
_vec.data(0) = src.image();
_vec.data(1) = dst.image();
((im_mask_object*) _vec.data(2))->name = (char*)"noname";
*((int*) _vec.data(3)) = order;
*((int*) _vec.data(4)) = ipol;
*((int*) _vec.data(5)) = wrap;
_vec.call();
params.embed( (DOUBLEMASK *)((im_mask_object*)_vec.data(2))->mask );
avg_displ = *((double*)_vec.data(6));
return( params );
}
// im_transform: transform an image
VImage VImage::transform( VDMask params, int ipol, int wrap ) throw( VError )
{
VImage in = *this;
VImage out;
Vargv _vec( "im_transform" );
_vec.data(0) = in.image();
_vec.data(1) = out.image();
((im_mask_object*) _vec.data(2))->mask = params.mask().dptr;
*((int*) _vec.data(3)) = ipol;
*((int*) _vec.data(4)) = wrap;
_vec.call();
return( out );
}
// im_transform_search: search for a transform
VImage VImage::transform_search( VImage dst, double error, int iterations, int order, int ipol, int wrap, VDMask& out_par, double& act_error ) throw( VError )
{
VImage src = *this;
VImage out;
Vargv _vec( "im_transform_search" );
_vec.data(0) = src.image();
_vec.data(1) = dst.image();
_vec.data(2) = out.image();
*((double*) _vec.data(3)) = error;
*((int*) _vec.data(4)) = iterations;
*((int*) _vec.data(5)) = order;
*((int*) _vec.data(6)) = ipol;
*((int*) _vec.data(7)) = wrap;
((im_mask_object*) _vec.data(8))->name = (char*)"noname";
_vec.call();
out_par.embed( (DOUBLEMASK *)((im_mask_object*)_vec.data(8))->mask );
act_error = *((double*)_vec.data(9));
return( out );
}
// VIPS library 7.17.2-Tue Mar 3 14:42:34 GMT 2009
// im_abs: absolute value
VImage VImage::abs() throw( VError )
{
@ -1792,6 +1729,22 @@ VImage VImage::lab_morph( VDMask greyscale, double L_offset, double L_scale, dou
return( out );
}
// im_rad2float: convert Radiance packed to float
VImage VImage::rad2float() throw( VError )
{
VImage in = *this;
VImage out;
Vargv _vec( "im_rad2float" );
_vec.data(0) = in.image();
_vec.data(1) = out.image();
_vec.call();
out._ref->addref( in._ref );
return( out );
}
// im_sRGB2XYZ: convert sRGB to XYZ
VImage VImage::sRGB2XYZ() throw( VError )
{
@ -2171,20 +2124,6 @@ VImage VImage::copy_set( int Type, double Xres, double Yres, int Xoffset, int Yo
return( output );
}
// im_csv2vips: read a file in csv format
VImage VImage::csv2vips( char* filename ) throw( VError )
{
VImage im;
Vargv _vec( "im_csv2vips" );
_vec.data(0) = (im_object) filename;
_vec.data(1) = im.image();
_vec.call();
return( im );
}
// im_extract_area: extract area
VImage VImage::extract_area( int left, int top, int width, int height ) throw( VError )
{
@ -2409,20 +2348,6 @@ VImage VImage::insert_noexpand( VImage sub, int x, int y ) throw( VError )
return( out );
}
// im_jpeg2vips: convert from jpeg
VImage VImage::jpeg2vips( char* in ) throw( VError )
{
VImage out;
Vargv _vec( "im_jpeg2vips" );
_vec.data(0) = (im_object) in;
_vec.data(1) = out.image();
_vec.call();
return( out );
}
// im_lrjoin: join two images left-right
VImage VImage::lrjoin( VImage in2 ) throw( VError )
{
@ -2441,20 +2366,6 @@ VImage VImage::lrjoin( VImage in2 ) throw( VError )
return( out );
}
// im_magick2vips: load file with libMagick
VImage VImage::magick2vips( char* in ) throw( VError )
{
VImage out;
Vargv _vec( "im_magick2vips" );
_vec.data(0) = (im_object) in;
_vec.data(1) = out.image();
_vec.call();
return( out );
}
// im_mask2vips: convert DOUBLEMASK to VIPS image
VImage VImage::mask2vips( VDMask input ) throw( VError )
{
@ -2502,62 +2413,6 @@ VImage VImage::msb_band( int band ) throw( VError )
return( out );
}
// im_png2vips: convert PNG file to VIPS image
VImage VImage::png2vips( char* in ) throw( VError )
{
VImage out;
Vargv _vec( "im_png2vips" );
_vec.data(0) = (im_object) in;
_vec.data(1) = out.image();
_vec.call();
return( out );
}
// im_exr2vips: convert an OpenEXR file to VIPS
VImage VImage::exr2vips( char* in ) throw( VError )
{
VImage out;
Vargv _vec( "im_exr2vips" );
_vec.data(0) = (im_object) in;
_vec.data(1) = out.image();
_vec.call();
return( out );
}
// im_ppm2vips: read a file in pbm/pgm/ppm format
VImage VImage::ppm2vips( char* filename ) throw( VError )
{
VImage im;
Vargv _vec( "im_ppm2vips" );
_vec.data(0) = (im_object) filename;
_vec.data(1) = im.image();
_vec.call();
return( im );
}
// im_analyze2vips: read a file in analyze format
VImage VImage::analyze2vips( char* filename ) throw( VError )
{
VImage im;
Vargv _vec( "im_analyze2vips" );
_vec.data(0) = (im_object) filename;
_vec.data(1) = im.image();
_vec.call();
return( im );
}
// im_recomb: linear recombination with mask
VImage VImage::recomb( VDMask matrix ) throw( VError )
{
@ -2812,42 +2667,6 @@ VImage VImage::thresh( double threshold ) throw( VError )
return( output );
}
// im_tiff2vips: convert TIFF file to VIPS image
VImage VImage::tiff2vips( char* in ) throw( VError )
{
VImage out;
Vargv _vec( "im_tiff2vips" );
_vec.data(0) = (im_object) in;
_vec.data(1) = out.image();
_vec.call();
return( out );
}
// im_vips2csv: write an image in csv format
void VImage::vips2csv( char* filename ) throw( VError )
{
VImage in = *this;
Vargv _vec( "im_vips2csv" );
_vec.data(0) = in.image();
_vec.data(1) = (im_object) filename;
_vec.call();
}
// im_vips2jpeg: convert to jpeg
void VImage::vips2jpeg( char* out ) throw( VError )
{
VImage in = *this;
Vargv _vec( "im_vips2jpeg" );
_vec.data(0) = in.image();
_vec.data(1) = (im_object) out;
_vec.call();
}
// im_vips2mask: convert VIPS image to DOUBLEMASK
VDMask VImage::vips2mask() throw( VError )
{
@ -2864,50 +2683,6 @@ VDMask VImage::vips2mask() throw( VError )
return( output );
}
// im_vips2mimejpeg: convert to jpeg as mime type on stdout
void VImage::vips2mimejpeg( int qfac ) throw( VError )
{
VImage in = *this;
Vargv _vec( "im_vips2mimejpeg" );
_vec.data(0) = in.image();
*((int*) _vec.data(1)) = qfac;
_vec.call();
}
// im_vips2png: convert VIPS image to PNG file
void VImage::vips2png( char* out ) throw( VError )
{
VImage in = *this;
Vargv _vec( "im_vips2png" );
_vec.data(0) = in.image();
_vec.data(1) = (im_object) out;
_vec.call();
}
// im_vips2ppm: write a file in pbm/pgm/ppm format
void VImage::vips2ppm( char* filename ) throw( VError )
{
VImage im = *this;
Vargv _vec( "im_vips2ppm" );
_vec.data(0) = im.image();
_vec.data(1) = (im_object) filename;
_vec.call();
}
// im_vips2tiff: convert VIPS image to TIFF file
void VImage::vips2tiff( char* out ) throw( VError )
{
VImage in = *this;
Vargv _vec( "im_vips2tiff" );
_vec.data(0) = in.image();
_vec.data(1) = (im_object) out;
_vec.call();
}
// im_wrap: shift image origin, wrapping at sides
VImage VImage::wrap( int x, int y ) throw( VError )
{
@ -3581,6 +3356,184 @@ VImage VImage::zerox( int flag ) throw( VError )
return( out );
}
// im_csv2vips: read a file in csv format
VImage VImage::csv2vips( char* filename ) throw( VError )
{
VImage im;
Vargv _vec( "im_csv2vips" );
_vec.data(0) = (im_object) filename;
_vec.data(1) = im.image();
_vec.call();
return( im );
}
// im_jpeg2vips: convert from jpeg
VImage VImage::jpeg2vips( char* in ) throw( VError )
{
VImage out;
Vargv _vec( "im_jpeg2vips" );
_vec.data(0) = (im_object) in;
_vec.data(1) = out.image();
_vec.call();
return( out );
}
// im_magick2vips: load file with libMagick
VImage VImage::magick2vips( char* in ) throw( VError )
{
VImage out;
Vargv _vec( "im_magick2vips" );
_vec.data(0) = (im_object) in;
_vec.data(1) = out.image();
_vec.call();
return( out );
}
// im_png2vips: convert PNG file to VIPS image
VImage VImage::png2vips( char* in ) throw( VError )
{
VImage out;
Vargv _vec( "im_png2vips" );
_vec.data(0) = (im_object) in;
_vec.data(1) = out.image();
_vec.call();
return( out );
}
// im_exr2vips: convert an OpenEXR file to VIPS
VImage VImage::exr2vips( char* in ) throw( VError )
{
VImage out;
Vargv _vec( "im_exr2vips" );
_vec.data(0) = (im_object) in;
_vec.data(1) = out.image();
_vec.call();
return( out );
}
// im_ppm2vips: read a file in pbm/pgm/ppm format
VImage VImage::ppm2vips( char* filename ) throw( VError )
{
VImage im;
Vargv _vec( "im_ppm2vips" );
_vec.data(0) = (im_object) filename;
_vec.data(1) = im.image();
_vec.call();
return( im );
}
// im_analyze2vips: read a file in analyze format
VImage VImage::analyze2vips( char* filename ) throw( VError )
{
VImage im;
Vargv _vec( "im_analyze2vips" );
_vec.data(0) = (im_object) filename;
_vec.data(1) = im.image();
_vec.call();
return( im );
}
// im_tiff2vips: convert TIFF file to VIPS image
VImage VImage::tiff2vips( char* in ) throw( VError )
{
VImage out;
Vargv _vec( "im_tiff2vips" );
_vec.data(0) = (im_object) in;
_vec.data(1) = out.image();
_vec.call();
return( out );
}
// im_vips2csv: write an image in csv format
void VImage::vips2csv( char* filename ) throw( VError )
{
VImage in = *this;
Vargv _vec( "im_vips2csv" );
_vec.data(0) = in.image();
_vec.data(1) = (im_object) filename;
_vec.call();
}
// im_vips2jpeg: convert to jpeg
void VImage::vips2jpeg( char* out ) throw( VError )
{
VImage in = *this;
Vargv _vec( "im_vips2jpeg" );
_vec.data(0) = in.image();
_vec.data(1) = (im_object) out;
_vec.call();
}
// im_vips2mimejpeg: convert to jpeg as mime type on stdout
void VImage::vips2mimejpeg( int qfac ) throw( VError )
{
VImage in = *this;
Vargv _vec( "im_vips2mimejpeg" );
_vec.data(0) = in.image();
*((int*) _vec.data(1)) = qfac;
_vec.call();
}
// im_vips2png: convert VIPS image to PNG file
void VImage::vips2png( char* out ) throw( VError )
{
VImage in = *this;
Vargv _vec( "im_vips2png" );
_vec.data(0) = in.image();
_vec.data(1) = (im_object) out;
_vec.call();
}
// im_vips2ppm: write a file in pbm/pgm/ppm format
void VImage::vips2ppm( char* filename ) throw( VError )
{
VImage im = *this;
Vargv _vec( "im_vips2ppm" );
_vec.data(0) = im.image();
_vec.data(1) = (im_object) filename;
_vec.call();
}
// im_vips2tiff: convert VIPS image to TIFF file
void VImage::vips2tiff( char* out ) throw( VError )
{
VImage in = *this;
Vargv _vec( "im_vips2tiff" );
_vec.data(0) = in.image();
_vec.data(1) = (im_object) out;
_vec.call();
}
// im_create_fmask: create frequency domain filter mask
VImage VImage::create_fmask( int width, int height, int type, double p1, double p2, double p3, double p4, double p5 ) throw( VError )
{
@ -4474,32 +4427,6 @@ VImage VImage::profile( int direction ) throw( VError )
return( out );
}
// im_affine: affine transform
VImage VImage::affine( double a, double b, double c, double d, double dx, double dy, int x, int y, int w, int h ) throw( VError )
{
VImage in = *this;
VImage out;
Vargv _vec( "im_affine" );
_vec.data(0) = in.image();
_vec.data(1) = out.image();
*((double*) _vec.data(2)) = a;
*((double*) _vec.data(3)) = b;
*((double*) _vec.data(4)) = c;
*((double*) _vec.data(5)) = d;
*((double*) _vec.data(6)) = dx;
*((double*) _vec.data(7)) = dy;
*((int*) _vec.data(8)) = x;
*((int*) _vec.data(9)) = y;
*((int*) _vec.data(10)) = w;
*((int*) _vec.data(11)) = h;
_vec.call();
out._ref->addref( in._ref );
return( out );
}
// im_align_bands: align the bands of an image
VImage VImage::align_bands() throw( VError )
{
@ -4823,50 +4750,6 @@ VImage VImage::remosaic( char* old_str, char* new_str ) throw( VError )
return( out );
}
// im_similarity_area: output area xywh of similarity transformation
VImage VImage::similarity_area( double a, double b, double dx, double dy, int x, int y, int w, int h ) throw( VError )
{
VImage in = *this;
VImage out;
Vargv _vec( "im_similarity_area" );
_vec.data(0) = in.image();
_vec.data(1) = out.image();
*((double*) _vec.data(2)) = a;
*((double*) _vec.data(3)) = b;
*((double*) _vec.data(4)) = dx;
*((double*) _vec.data(5)) = dy;
*((int*) _vec.data(6)) = x;
*((int*) _vec.data(7)) = y;
*((int*) _vec.data(8)) = w;
*((int*) _vec.data(9)) = h;
_vec.call();
out._ref->addref( in._ref );
return( out );
}
// im_similarity: similarity transformation
VImage VImage::similarity( double a, double b, double dx, double dy ) throw( VError )
{
VImage in = *this;
VImage out;
Vargv _vec( "im_similarity" );
_vec.data(0) = in.image();
_vec.data(1) = out.image();
*((double*) _vec.data(2)) = a;
*((double*) _vec.data(3)) = b;
*((double*) _vec.data(4)) = dx;
*((double*) _vec.data(5)) = dy;
_vec.call();
out._ref->addref( in._ref );
return( out );
}
// im_tbmerge: top-bottom merge of in1 and in2
VImage VImage::tbmerge( VImage sec, int dx, int dy, int mwidth ) throw( VError )
{
@ -5496,6 +5379,76 @@ VImage VImage::notequal( double c ) throw( VError )
return( out );
}
// im_affine: affine transform
VImage VImage::affine( double a, double b, double c, double d, double dx, double dy, int x, int y, int w, int h ) throw( VError )
{
VImage in = *this;
VImage out;
Vargv _vec( "im_affine" );
_vec.data(0) = in.image();
_vec.data(1) = out.image();
*((double*) _vec.data(2)) = a;
*((double*) _vec.data(3)) = b;
*((double*) _vec.data(4)) = c;
*((double*) _vec.data(5)) = d;
*((double*) _vec.data(6)) = dx;
*((double*) _vec.data(7)) = dy;
*((int*) _vec.data(8)) = x;
*((int*) _vec.data(9)) = y;
*((int*) _vec.data(10)) = w;
*((int*) _vec.data(11)) = h;
_vec.call();
out._ref->addref( in._ref );
return( out );
}
// im_similarity_area: output area xywh of similarity transformation
VImage VImage::similarity_area( double a, double b, double dx, double dy, int x, int y, int w, int h ) throw( VError )
{
VImage in = *this;
VImage out;
Vargv _vec( "im_similarity_area" );
_vec.data(0) = in.image();
_vec.data(1) = out.image();
*((double*) _vec.data(2)) = a;
*((double*) _vec.data(3)) = b;
*((double*) _vec.data(4)) = dx;
*((double*) _vec.data(5)) = dy;
*((int*) _vec.data(6)) = x;
*((int*) _vec.data(7)) = y;
*((int*) _vec.data(8)) = w;
*((int*) _vec.data(9)) = h;
_vec.call();
out._ref->addref( in._ref );
return( out );
}
// im_similarity: similarity transformation
VImage VImage::similarity( double a, double b, double dx, double dy ) throw( VError )
{
VImage in = *this;
VImage out;
Vargv _vec( "im_similarity" );
_vec.data(0) = in.image();
_vec.data(1) = out.image();
*((double*) _vec.data(2)) = a;
*((double*) _vec.data(3)) = b;
*((double*) _vec.data(4)) = dx;
*((double*) _vec.data(5)) = dy;
_vec.call();
out._ref->addref( in._ref );
return( out );
}
// im_video_test: test video grabber
VImage VImage::video_test( int brightness, int error ) throw( VError )
{

View File

@ -54,6 +54,7 @@ libsrc/colour/derived.c
libsrc/colour/im_disp2XYZ.c
libsrc/colour/im_LabQ2Lab.c
libsrc/colour/im_Lab2LabQ.c
libsrc/colour/im_rad2float.c
libsrc/colour/im_XYZ2disp.c
libsrc/colour/im_lab_morph.c
libsrc/colour/im_dE00_fromLab.c
@ -331,344 +332,12 @@ src/other/glds.c
src/other/sines.c
src/other/cooc.c
src/other/cooc_features.c
vips-7.17.1/contrib/vdump/vdump.c
vips-7.17.1/contrib/vips2dj/vips2ah.c
vips-7.17.1/contrib/vips2dj/vips2dj.c
vips-7.17.1/contrib/mitsub/mitsub.c
vips-7.17.1/libsrc/histograms_lut/im_invertlut.c
vips-7.17.1/libsrc/histograms_lut/hist_dispatch.c
vips-7.17.1/libsrc/histograms_lut/im_project.c
vips-7.17.1/libsrc/histograms_lut/im_hist.c
vips-7.17.1/libsrc/histograms_lut/im_histspec.c
vips-7.17.1/libsrc/histograms_lut/im_stdif.c
vips-7.17.1/libsrc/histograms_lut/im_maplut.c
vips-7.17.1/libsrc/histograms_lut/im_histgr.c
vips-7.17.1/libsrc/histograms_lut/im_identity.c
vips-7.17.1/libsrc/histograms_lut/im_histnD.c
vips-7.17.1/libsrc/histograms_lut/tone.c
vips-7.17.1/libsrc/histograms_lut/im_histplot.c
vips-7.17.1/libsrc/histograms_lut/im_gammacorrect.c
vips-7.17.1/libsrc/histograms_lut/im_heq.c
vips-7.17.1/libsrc/histograms_lut/im_histeq.c
vips-7.17.1/libsrc/histograms_lut/im_lhisteq.c
vips-7.17.1/libsrc/histograms_lut/im_buildlut.c
vips-7.17.1/libsrc/histograms_lut/im_hsp.c
vips-7.17.1/libsrc/mosaicing/im_tbmerge.c
vips-7.17.1/libsrc/mosaicing/im_lrmosaic.c
vips-7.17.1/libsrc/mosaicing/im_chkpair.c
vips-7.17.1/libsrc/mosaicing/global_balance.c
vips-7.17.1/libsrc/mosaicing/im_tbmosaic.c
vips-7.17.1/libsrc/mosaicing/im_improve.c
vips-7.17.1/libsrc/mosaicing/im_avgdxdy.c
vips-7.17.1/libsrc/mosaicing/mosaic1.c
vips-7.17.1/libsrc/mosaicing/im_remosaic.c
vips-7.17.1/libsrc/mosaicing/mosaicing_dispatch.c
vips-7.17.1/libsrc/mosaicing/im_maxpos_subpel.c
vips-7.17.1/libsrc/mosaicing/im_lrcalcon.c
vips-7.17.1/libsrc/mosaicing/im_lrmerge.c
vips-7.17.1/libsrc/mosaicing/im_initialize.c
vips-7.17.1/libsrc/mosaicing/im_tbcalcon.c
vips-7.17.1/libsrc/mosaicing/im_align_bands.c
vips-7.17.1/libsrc/mosaicing/match.c
vips-7.17.1/libsrc/mosaicing/im_clinear.c
vips-7.17.1/libsrc/matrix/im_mattrn.c
vips-7.17.1/libsrc/matrix/im_matcat.c
vips-7.17.1/libsrc/matrix/matalloc.c
vips-7.17.1/libsrc/matrix/matrix_dispatch.c
vips-7.17.1/libsrc/matrix/im_matinv.c
vips-7.17.1/libsrc/matrix/im_matmul.c
vips-7.17.1/libsrc/convolution/im_contrast_surface.c
vips-7.17.1/libsrc/convolution/im_zerox.c
vips-7.17.1/libsrc/convolution/im_rank_image.c
vips-7.17.1/libsrc/convolution/im_phasecor_fft.c
vips-7.17.1/libsrc/convolution/im_compass.c
vips-7.17.1/libsrc/convolution/rw_mask.c
vips-7.17.1/libsrc/convolution/im_resize_linear.c
vips-7.17.1/libsrc/convolution/im_sharpen.c
vips-7.17.1/libsrc/convolution/im_spcor.c
vips-7.17.1/libsrc/convolution/im_shrink.c
vips-7.17.1/libsrc/convolution/im_gaussnoise.c
vips-7.17.1/libsrc/convolution/rotmask.c
vips-7.17.1/libsrc/convolution/im_gradcor.c
vips-7.17.1/libsrc/convolution/im_rank.c
vips-7.17.1/libsrc/convolution/im_mpercent.c
vips-7.17.1/libsrc/convolution/im_convsepf.c
vips-7.17.1/libsrc/convolution/convol_dispatch.c
vips-7.17.1/libsrc/convolution/im_embed.c
vips-7.17.1/libsrc/convolution/im_stretch3.c
vips-7.17.1/libsrc/convolution/im_convsub.c
vips-7.17.1/libsrc/convolution/im_convsep.c
vips-7.17.1/libsrc/convolution/im_convf.c
vips-7.17.1/libsrc/convolution/im_gaussmasks.c
vips-7.17.1/libsrc/convolution/im_fastcor.c
vips-7.17.1/libsrc/convolution/im_conv.c
vips-7.17.1/libsrc/convolution/im_logmasks.c
vips-7.17.1/libsrc/convolution/im_addgnoise.c
vips-7.17.1/libsrc/format/matlab.c
vips-7.17.1/libsrc/format/im_magick2vips.c
vips-7.17.1/libsrc/format/im_vips2csv.c
vips-7.17.1/libsrc/format/im_csv2vips.c
vips-7.17.1/libsrc/format/radiance.c
vips-7.17.1/libsrc/format/format.c
vips-7.17.1/libsrc/format/im_analyze2vips.c
vips-7.17.1/libsrc/format/im_vips2tiff.c
vips-7.17.1/libsrc/format/im_ppm2vips.c
vips-7.17.1/libsrc/format/format_dispatch.c
vips-7.17.1/libsrc/format/im_tile_cache.c
vips-7.17.1/libsrc/format/im_jpeg2vips.c
vips-7.17.1/libsrc/format/im_png2vips.c
vips-7.17.1/libsrc/format/im_vips2ppm.c
vips-7.17.1/libsrc/format/im_vips2png.c
vips-7.17.1/libsrc/format/im_vips2raw.c
vips-7.17.1/libsrc/format/im_vips2jpeg.c
vips-7.17.1/libsrc/format/im_tiff2vips.c
vips-7.17.1/libsrc/format/im_exr2vips.c
vips-7.17.1/libsrc/format/im_raw2vips.c
vips-7.17.1/libsrc/acquire/im_clamp.c
vips-7.17.1/libsrc/other/im_simcontr.c
vips-7.17.1/libsrc/other/im_zone.c
vips-7.17.1/libsrc/other/im_spatres.c
vips-7.17.1/libsrc/other/cooc_funcs.c
vips-7.17.1/libsrc/other/im_benchmark.c
vips-7.17.1/libsrc/other/other_dispatch.c
vips-7.17.1/libsrc/other/glds_funcs.c
vips-7.17.1/libsrc/other/im_meanstd.c
vips-7.17.1/libsrc/other/im_dif_std.c
vips-7.17.1/libsrc/other/im_make_xy.c
vips-7.17.1/libsrc/other/im_eye.c
vips-7.17.1/libsrc/other/im_sines.c
vips-7.17.1/libsrc/other/im_grey.c
vips-7.17.1/libsrc/iofuncs/im_setbox.c
vips-7.17.1/libsrc/iofuncs/rect.c
vips-7.17.1/libsrc/iofuncs/im_open.c
vips-7.17.1/libsrc/iofuncs/im_writeline.c
vips-7.17.1/libsrc/iofuncs/util.c
vips-7.17.1/libsrc/iofuncs/im_iocheck.c
vips-7.17.1/libsrc/iofuncs/im_mapfile.c
vips-7.17.1/libsrc/iofuncs/package.c
vips-7.17.1/libsrc/iofuncs/window.c
vips-7.17.1/libsrc/iofuncs/im_wrapmany.c
vips-7.17.1/libsrc/iofuncs/im_setbuf.c
vips-7.17.1/libsrc/iofuncs/im_open_vips.c
vips-7.17.1/libsrc/iofuncs/meta.c
vips-7.17.1/libsrc/iofuncs/buf.c
vips-7.17.1/libsrc/iofuncs/im_prepare.c
vips-7.17.1/libsrc/iofuncs/im_init_world.c
vips-7.17.1/libsrc/iofuncs/debug.c
vips-7.17.1/libsrc/iofuncs/callback.c
vips-7.17.1/libsrc/iofuncs/im_iterate.c
vips-7.17.1/libsrc/iofuncs/im_cp_desc.c
vips-7.17.1/libsrc/iofuncs/im_unmapfile.c
vips-7.17.1/libsrc/iofuncs/im_close.c
vips-7.17.1/libsrc/iofuncs/im_image.c
vips-7.17.1/libsrc/iofuncs/im_init.c
vips-7.17.1/libsrc/iofuncs/memory.c
vips-7.17.1/libsrc/iofuncs/buffer.c
vips-7.17.1/libsrc/iofuncs/im_render.c
vips-7.17.1/libsrc/iofuncs/time.c
vips-7.17.1/libsrc/iofuncs/im_generate.c
vips-7.17.1/libsrc/iofuncs/im_histlin.c
vips-7.17.1/libsrc/iofuncs/im_header.c
vips-7.17.1/libsrc/iofuncs/threadgroup.c
vips-7.17.1/libsrc/iofuncs/im_guess_prefix.c
vips-7.17.1/libsrc/iofuncs/im_demand_hint.c
vips-7.17.1/libsrc/iofuncs/error.c
vips-7.17.1/libsrc/iofuncs/im_makerw.c
vips-7.17.1/libsrc/iofuncs/im_printdesc.c
vips-7.17.1/libsrc/iofuncs/im_piocheck.c
vips-7.17.1/libsrc/iofuncs/object.c
vips-7.17.1/libsrc/iofuncs/base64.c
vips-7.17.1/libsrc/iofuncs/predicate.c
vips-7.17.1/libsrc/iofuncs/semaphore.c
vips-7.17.1/libsrc/iofuncs/im_binfile.c
vips-7.17.1/libsrc/iofuncs/im_debugim.c
vips-7.17.1/libsrc/iofuncs/im_printlines.c
vips-7.17.1/libsrc/iofuncs/im_partial.c
vips-7.17.1/libsrc/iofuncs/im_wbuffer.c
vips-7.17.1/libsrc/iofuncs/im_setupout.c
vips-7.17.1/libsrc/iofuncs/im_updatehist.c
vips-7.17.1/libsrc/iofuncs/im_bits_of_fmt.c
vips-7.17.1/libsrc/iofuncs/im_initdesc.c
vips-7.17.1/libsrc/iofuncs/error_exit.c
vips-7.17.1/libsrc/iofuncs/im_wraptwo.c
vips-7.17.1/libsrc/iofuncs/dispatch_types.c
vips-7.17.1/libsrc/iofuncs/region.c
vips-7.17.1/libsrc/morphology/im_profile.c
vips-7.17.1/libsrc/morphology/morph_dispatch.c
vips-7.17.1/libsrc/morphology/im_dilate.c
vips-7.17.1/libsrc/morphology/im_cntlines.c
vips-7.17.1/libsrc/morphology/im_erode.c
vips-7.17.1/libsrc/video/video_dispatch.c
vips-7.17.1/libsrc/video/im_video_v4l1.c
vips-7.17.1/libsrc/video/im_video_test.c
vips-7.17.1/libsrc/dummy.c
vips-7.17.1/libsrc/relational/im_ifthenelse.c
vips-7.17.1/libsrc/relational/relational_dispatch.c
vips-7.17.1/libsrc/relational/relational.c
vips-7.17.1/libsrc/relational/im_blend.c
vips-7.17.1/libsrc/cimg/cimg_dispatch.c
vips-7.17.1/libsrc/arithmetic/im_cmulnorm.c
vips-7.17.1/libsrc/arithmetic/im_litecor.c
vips-7.17.1/libsrc/arithmetic/im_logtra.c
vips-7.17.1/libsrc/arithmetic/im_gadd.c
vips-7.17.1/libsrc/arithmetic/im_sign.c
vips-7.17.1/libsrc/arithmetic/im_minpos.c
vips-7.17.1/libsrc/arithmetic/im_maxpos_avg.c
vips-7.17.1/libsrc/arithmetic/im_subtract.c
vips-7.17.1/libsrc/arithmetic/im_max.c
vips-7.17.1/libsrc/arithmetic/im_remainder.c
vips-7.17.1/libsrc/arithmetic/im_gfadd.c
vips-7.17.1/libsrc/arithmetic/im_multiply.c
vips-7.17.1/libsrc/arithmetic/im_linreg.c
vips-7.17.1/libsrc/arithmetic/im_gaddim.c
vips-7.17.1/libsrc/arithmetic/im_abs.c
vips-7.17.1/libsrc/arithmetic/im_ceil.c
vips-7.17.1/libsrc/arithmetic/im_cross_phase.c
vips-7.17.1/libsrc/arithmetic/im_avg.c
vips-7.17.1/libsrc/arithmetic/im_bandmean.c
vips-7.17.1/libsrc/arithmetic/im_add.c
vips-7.17.1/libsrc/arithmetic/im_min.c
vips-7.17.1/libsrc/arithmetic/im_deviate.c
vips-7.17.1/libsrc/arithmetic/im_stats.c
vips-7.17.1/libsrc/arithmetic/im_maxpos_vec.c
vips-7.17.1/libsrc/arithmetic/im_lintra.c
vips-7.17.1/libsrc/arithmetic/im_measure.c
vips-7.17.1/libsrc/arithmetic/im_log10tra.c
vips-7.17.1/libsrc/arithmetic/im_powtra.c
vips-7.17.1/libsrc/arithmetic/im_costra.c
vips-7.17.1/libsrc/arithmetic/im_maxpos.c
vips-7.17.1/libsrc/arithmetic/im_invert.c
vips-7.17.1/libsrc/arithmetic/im_rint.c
vips-7.17.1/libsrc/arithmetic/im_sintra.c
vips-7.17.1/libsrc/arithmetic/arith_dispatch.c
vips-7.17.1/libsrc/arithmetic/im_point_bilinear.c
vips-7.17.1/libsrc/arithmetic/im_expntra.c
vips-7.17.1/libsrc/arithmetic/im_tantra.c
vips-7.17.1/libsrc/arithmetic/im_divide.c
vips-7.17.1/libsrc/arithmetic/im_fav4.c
vips-7.17.1/libsrc/arithmetic/im_floor.c
vips-7.17.1/libsrc/boolean/boolean.c
vips-7.17.1/libsrc/boolean/bool_dispatch.c
vips-7.17.1/libsrc/inplace/im_flood.c
vips-7.17.1/libsrc/inplace/inplace_dispatch.c
vips-7.17.1/libsrc/inplace/im_paintrect.c
vips-7.17.1/libsrc/inplace/smudge_area.c
vips-7.17.1/libsrc/inplace/im_insertplace.c
vips-7.17.1/libsrc/inplace/im_plotmask.c
vips-7.17.1/libsrc/inplace/plot_point.c
vips-7.17.1/libsrc/inplace/im_circle.c
vips-7.17.1/libsrc/inplace/line_draw.c
vips-7.17.1/libsrc/inplace/im_line.c
vips-7.17.1/libsrc/colour/im_dE_fromLab.c
vips-7.17.1/libsrc/colour/im_Lab2LCh.c
vips-7.17.1/libsrc/colour/im_dECMC_fromLab.c
vips-7.17.1/libsrc/colour/im_XYZ2Yxy.c
vips-7.17.1/libsrc/colour/derived.c
vips-7.17.1/libsrc/colour/im_disp2XYZ.c
vips-7.17.1/libsrc/colour/im_LabQ2Lab.c
vips-7.17.1/libsrc/colour/im_Lab2LabQ.c
vips-7.17.1/libsrc/colour/im_XYZ2disp.c
vips-7.17.1/libsrc/colour/im_lab_morph.c
vips-7.17.1/libsrc/colour/im_dE00_fromLab.c
vips-7.17.1/libsrc/colour/im_Lab2XYZ.c
vips-7.17.1/libsrc/colour/colour_dispatch.c
vips-7.17.1/libsrc/colour/colour.c
vips-7.17.1/libsrc/colour/im_LabQ2disp.c
vips-7.17.1/libsrc/colour/im_Yxy2XYZ.c
vips-7.17.1/libsrc/colour/im_XYZ2Lab.c
vips-7.17.1/libsrc/colour/im_LCh2Lab.c
vips-7.17.1/libsrc/colour/im_LabS2LabQ.c
vips-7.17.1/libsrc/colour/im_LabQ2LabS.c
vips-7.17.1/libsrc/colour/im_UCS2LCh.c
vips-7.17.1/libsrc/colour/im_Lab2LabS.c
vips-7.17.1/libsrc/colour/im_icc_transform.c
vips-7.17.1/libsrc/colour/im_LCh2UCS.c
vips-7.17.1/libsrc/colour/im_LabS2Lab.c
vips-7.17.1/libsrc/conversion/im_recomb.c
vips-7.17.1/libsrc/conversion/im_tbjoin.c
vips-7.17.1/libsrc/conversion/im_flipver.c
vips-7.17.1/libsrc/conversion/im_c2rect.c
vips-7.17.1/libsrc/conversion/im_rot90.c
vips-7.17.1/libsrc/conversion/im_c2ps.c
vips-7.17.1/libsrc/conversion/im_rightshift_size.c
vips-7.17.1/libsrc/conversion/im_insert.c
vips-7.17.1/libsrc/conversion/im_c2imag.c
vips-7.17.1/libsrc/conversion/im_falsecolour.c
vips-7.17.1/libsrc/conversion/im_text.c
vips-7.17.1/libsrc/conversion/conver_dispatch.c
vips-7.17.1/libsrc/conversion/im_bandjoin.c
vips-7.17.1/libsrc/conversion/im_slice.c
vips-7.17.1/libsrc/conversion/im_wrap.c
vips-7.17.1/libsrc/conversion/im_rot180.c
vips-7.17.1/libsrc/conversion/im_scale.c
vips-7.17.1/libsrc/conversion/im_black.c
vips-7.17.1/libsrc/conversion/im_c2real.c
vips-7.17.1/libsrc/conversion/im_scaleps.c
vips-7.17.1/libsrc/conversion/im_msb.c
vips-7.17.1/libsrc/conversion/im_ri2c.c
vips-7.17.1/libsrc/conversion/im_print.c
vips-7.17.1/libsrc/conversion/im_system.c
vips-7.17.1/libsrc/conversion/im_c2amph.c
vips-7.17.1/libsrc/conversion/im_bernd.c
vips-7.17.1/libsrc/conversion/im_lrjoin.c
vips-7.17.1/libsrc/conversion/im_copy.c
vips-7.17.1/libsrc/conversion/im_extract.c
vips-7.17.1/libsrc/conversion/im_thresh.c
vips-7.17.1/libsrc/conversion/im_zoom.c
vips-7.17.1/libsrc/conversion/im_clip.c
vips-7.17.1/libsrc/conversion/im_vips2mask.c
vips-7.17.1/libsrc/conversion/im_replicate.c
vips-7.17.1/libsrc/conversion/im_rot270.c
vips-7.17.1/libsrc/conversion/im_grid.c
vips-7.17.1/libsrc/conversion/im_fliphor.c
vips-7.17.1/libsrc/conversion/im_gbandjoin.c
vips-7.17.1/libsrc/conversion/im_subsample.c
vips-7.17.1/libsrc/conversion/im_mask2vips.c
vips-7.17.1/libsrc/resample/im_affine.c
vips-7.17.1/libsrc/resample/transform.c
vips-7.17.1/libsrc/resample/interpolate.c
vips-7.17.1/libsrc/resample/resample_dispatch.c
vips-7.17.1/libsrc/resample/similarity.c
vips-7.17.1/libsrc/freq_filt/im_freq_mask.c
vips-7.17.1/libsrc/freq_filt/im_invfft.c
vips-7.17.1/libsrc/freq_filt/freq_dispatch.c
vips-7.17.1/libsrc/freq_filt/im_disp_ps.c
vips-7.17.1/libsrc/freq_filt/fft_sp.c
vips-7.17.1/libsrc/freq_filt/fmaskcir.c
vips-7.17.1/libsrc/freq_filt/im_fwfft.c
vips-7.17.1/libsrc/freq_filt/im_fractsurf.c
vips-7.17.1/libsrc/freq_filt/im_freqflt.c
vips-7.17.1/libsrc/freq_filt/im_invfftr.c
vips-7.17.1/libsrc/freq_filt/im_rotquad.c
vips-7.17.1/libsrc/freq_filt/fmask4th.c
vips-7.17.1/src/mosaicing/find_mosaic.c
vips-7.17.1/src/mosaicing/mergeup.c
vips-7.17.1/src/other/spatres.c
vips-7.17.1/src/other/squares.c
vips-7.17.1/src/other/simcontr.c
vips-7.17.1/src/other/glds_features.c
vips-7.17.1/src/other/glds.c
vips-7.17.1/src/other/sines.c
vips-7.17.1/src/other/cooc.c
vips-7.17.1/src/other/cooc_features.c
vips-7.17.1/src/iofuncs/binfile.c
vips-7.17.1/src/iofuncs/vips.c
vips-7.17.1/src/iofuncs/debugim.c
vips-7.17.1/src/iofuncs/header.c
vips-7.17.1/src/iofuncs/edvips.c
vips-7.17.1/src/iofuncs/printlines.c
libsrcCC/VDisplay.cc
libsrcCC/VError.cc
libsrcCC/VImage.cc
libsrcCC/vipsc++.cc
libsrcCC/VMask.cc
libsrc/dummy2.cc
vips-7.17.1/libsrc/dummy2.cc
vips-7.17.1/libsrcCC/VMask.cc
vips-7.17.1/libsrcCC/vipsc++.cc
vips-7.17.1/libsrcCC/VError.cc
vips-7.17.1/libsrcCC/VImage.cc
vips-7.17.1/libsrcCC/VDisplay.cc
contrib/vips2dj/vips2dj.h
include/vips/mosaic.h
include/vips/proto.h
@ -714,41 +383,3 @@ libsrc/mosaicing/global_balance.h
libsrc/resample/templates.h
libsrc/video/im_video_v4l1.h
python/vipsCC/VImage.h
vips-7.17.1/contrib/vips2dj/vips2dj.h
vips-7.17.1/include/vips/mosaic.h
vips-7.17.1/include/vips/proto.h
vips-7.17.1/include/vips/VDisplay.h
vips-7.17.1/include/vips/debug.h
vips-7.17.1/include/vips/colour.h
vips-7.17.1/include/vips/region.h
vips-7.17.1/include/vips/meta.h
vips-7.17.1/include/vips/vips.h
vips-7.17.1/include/vips/format.h
vips-7.17.1/include/vips/VError.h
vips-7.17.1/include/vips/transform.h
vips-7.17.1/include/vips/util.h
vips-7.17.1/include/vips/interpolate.h
vips-7.17.1/include/vips/thread.h
vips-7.17.1/include/vips/vipscpp.h
vips-7.17.1/include/vips/r_access.h
vips-7.17.1/include/vips/threadgroup.h
vips-7.17.1/include/vips/object.h
vips-7.17.1/include/vips/version.h
vips-7.17.1/include/vips/VMask.h
vips-7.17.1/include/vips/struct.h
vips-7.17.1/include/vips/internal.h
vips-7.17.1/include/vips/intl.h
vips-7.17.1/include/vips/VImage.h
vips-7.17.1/include/vips/rect.h
vips-7.17.1/include/vips/fmask.h
vips-7.17.1/include/vips/vipsc++.h
vips-7.17.1/include/vips/buf.h
vips-7.17.1/include/vips/semaphore.h
vips-7.17.1/include/vips/dispatch.h
vips-7.17.1/libsrc/mosaicing/merge.h
vips-7.17.1/libsrc/mosaicing/mosaic.h
vips-7.17.1/libsrc/mosaicing/global_balance.h
vips-7.17.1/libsrc/format/dbh.h
vips-7.17.1/libsrc/iofuncs/base64.h
vips-7.17.1/libsrc/cimg/CImg.h
vips-7.17.1/libsrc/resample/templates.h

Binary file not shown.

File diff suppressed because it is too large Load Diff