~ubuntu-branches/ubuntu/trusty/vips/trusty-proposed

« back to all changes in this revision

Viewing changes to libvips/convolution/conv.c

  • Committer: Package Import Robot
  • Author(s): Jay Berkenbilt
  • Date: 2014-03-29 12:29:29 UTC
  • mfrom: (1.1.21) (30.1.16 sid)
  • Revision ID: package-import@ubuntu.com-20140329122929-fvxnaann32ex0gzk
Tags: 7.38.5-2
Enable dh-autoreconf. (Closes: #742872)

Show diffs side-by-side

added added

removed removed

Lines of Context:
62
62
static int
63
63
vips_conv_build( VipsObject *object )
64
64
{
 
65
        VipsObjectClass *class = VIPS_OBJECT_GET_CLASS( object );
65
66
        VipsConvolution *convolution = (VipsConvolution *) object;
66
67
        VipsConv *conv = (VipsConv *) object;
67
68
 
73
74
        if( VIPS_OBJECT_CLASS( vips_conv_parent_class )->build( object ) )
74
75
                return( -1 );
75
76
 
 
77
        /*
 
78
        printf( "vips_conv_build: convolving with:\n" );
 
79
        vips_matrixprint( convolution->M, NULL ); 
 
80
         */
 
81
 
 
82
        if( !(imsk = im_vips2imask( convolution->M, class->nickname )) || 
 
83
                !im_local_imask( convolution->out, imsk ) )
 
84
                return( -1 ); 
 
85
        if( !(dmsk = im_vips2mask( convolution->M, class->nickname )) || 
 
86
                !im_local_dmask( convolution->out, dmsk ) )
 
87
                return( -1 ); 
76
88
 
77
89
        switch( conv->precision ) { 
78
90
        case VIPS_PRECISION_INTEGER:
79
 
                if( !(imsk = im_vips2imask( convolution->M, "im_stats" )) || 
80
 
                        !im_local_imask( convolution->out, imsk ) ||
81
 
                        im_conv( convolution->in, convolution->out, imsk ) )
 
91
                if( im_conv( convolution->in, convolution->out, imsk ) )
82
92
                        return( -1 ); 
83
93
                break;
84
94
 
85
95
        case VIPS_PRECISION_FLOAT:
86
 
                if( !(dmsk = im_vips2mask( convolution->M, "im_stats" )) || 
87
 
                        !im_local_dmask( convolution->out, dmsk ) ||
88
 
                        im_conv_f( convolution->in, convolution->out, dmsk ) )
 
96
                if( im_conv_f( convolution->in, convolution->out, dmsk ) )
89
97
                        return( -1 ); 
90
98
                break;
91
99
 
92
100
        case VIPS_PRECISION_APPROXIMATE:
93
 
                if( !(dmsk = im_vips2mask( convolution->M, "im_stats" )) || 
94
 
                        !im_local_dmask( convolution->out, dmsk ) ||
95
 
                        im_aconv( convolution->in, convolution->out, dmsk, 
96
 
                                conv->layers, conv->cluster ) )
 
101
                if( im_aconv( convolution->in, convolution->out, dmsk, 
 
102
                        conv->layers, conv->cluster ) )
97
103
                        return( -1 ); 
98
104
                break;
99
105