This commit is contained in:
John Cupitt 2009-03-30 14:02:06 +00:00
parent 1e5e921575
commit 87ab8c4e40
7 changed files with 27 additions and 13 deletions

View File

@ -4,6 +4,7 @@
- revised manpages
- removed name and "changed" from vipsobject since we don't use them yet
- explicitly link with stdc++ for nohalo etc stuff
- wrap im_gauss_imask_sep in C++/Python
6/3/09 started 7.17.3
- revised nohalo

13
TODO
View File

@ -1,17 +1,8 @@
- writing man page for VipsInterpolate
- wrap im_gauss_mask_line or whatever it's called in C++/Python?
- need man pages for im_affinei, im_affinei_all
- Mention vips --list-classes or whatever in VipsFormat man page
also in VipsInterpolate
WONTFIX for 7.18
================
- try adding "restrict" to im_conv? other interpolators?
- move im_shrink & friends to resample?
match_linear, match_linear_search?

View File

@ -299,6 +299,7 @@ public:
// VIMask build functions
static VIMask gauss( double, double ) throw( VError );
static VIMask gauss_sep( double, double ) throw( VError );
static VIMask log( double, double ) throw( VError );
// VIMask manipulation

View File

@ -30,6 +30,8 @@
* 18/3/09
* - bumped max mask size *40
* - added _sep variant
* 30/3/09
* - set scale in _sep variant, why not
*/
/*
@ -193,6 +195,7 @@ im_gauss_imask_sep( const char *filename, double sigma, double min_amplitude )
INTMASK *im;
INTMASK *im2;
int i;
int sum;
if( !(im = im_gauss_imask( filename, sigma, min_amplitude )) )
return( NULL );
@ -201,8 +204,12 @@ im_gauss_imask_sep( const char *filename, double sigma, double min_amplitude )
return( NULL );
}
for( i = 0; i < im->xsize; i++ )
sum = 0;
for( i = 0; i < im->xsize; i++ ) {
im2->coeff[i] = im->coeff[i + im->xsize * (im->ysize / 2)];
sum += im2->coeff[i];
}
im2->scale = sum;
im_free_imask( im );

View File

@ -464,6 +464,18 @@ VIMask VIMask::gauss( double sig, double minamp ) throw( VError )
return( out );
}
VIMask VIMask::gauss_sep( double sig, double minamp ) throw( VError )
{
VIMask out;
INTMASK *msk;
if( !(msk = im_gauss_imask_sep( "VIMask::gauss", sig, minamp )) )
verror();
out.embed( msk );
return( out );
}
VDMask VDMask::gauss( double sig, double minamp ) throw( VError )
{
VDMask out;

View File

@ -30,6 +30,8 @@ man_MANS = \
im_add_invalidate_callback.3 \
im_addgnoise.3 \
im_affine.3 \
im_affinei.3 \
im_affinei_all.3 \
im_allocate_input_array.3 \
im_amiMSBfirst.3 \
im_analyze2vips.3 \

View File

@ -25,7 +25,7 @@ int im_affinei_all(in, out, interpolate, a, b, c, d, dx, dy)
.B double a, b, c, d, dx, dy;
.SH DESCRIPTION
.B im_affinei()
.B im_affinei(3)
applies an affine transformation on the image held by the IMAGE descriptor
in and puts the result at the location pointed by the IMAGE descriptor out. in
many have any number of bands, be any size, and have any non-complex type.