73
74
if( VIPS_OBJECT_CLASS( vips_conv_parent_class )->build( object ) )
78
printf( "vips_conv_build: convolving with:\n" );
79
vips_matrixprint( convolution->M, NULL );
82
if( !(imsk = im_vips2imask( convolution->M, class->nickname )) ||
83
!im_local_imask( convolution->out, imsk ) )
85
if( !(dmsk = im_vips2mask( convolution->M, class->nickname )) ||
86
!im_local_dmask( convolution->out, dmsk ) )
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 ) )
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 ) )
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 ) )