Skip to main content

Convolution

Convolution operations including blur, sharpen, and edge detection.

Function Mapping

libvips CDart BindingPipeline MethodPipelineSpec
vips_gaussblur()apiBindings.gaussblur()pipeline.blur()spec.blur()
vips_sharpen()apiBindings.sharpen()pipeline.sharpen()spec.sharpen()
vips_sobel()apiBindings.sobel()pipeline.sobel()spec.sobel()
vips_canny()apiBindings.canny()pipeline.canny()spec.canny()
vips_conv()convolutionBindings.conv()--
vips_conva()convolutionBindings.conva()--
vips_convsep()convolutionBindings.convsep()--
vips_compass()convolutionBindings.compass()--

gaussblur

Apply Gaussian blur.

C API

int vips_gaussblur(VipsImage *in, VipsImage **out, double sigma, ...);

Dart Binding

int gaussblur(
Pointer<VipsImage> in1,
Pointer<Pointer<VipsImage>> out,
double sigma,
);

Pipeline API

// Gaussian blur with sigma (higher = more blur)
pipeline.blur(2.0)
// or
pipeline.gaussianBlur(2.0)

Parameters:

  • sigma - Standard deviation of Gaussian (1.5-2.0 for light blur, 5+ for strong blur)

sharpen

Sharpen an image.

C API

int vips_sharpen(VipsImage *in, VipsImage **out, ...);

Dart Binding

int sharpen(
Pointer<VipsImage> in1,
Pointer<Pointer<VipsImage>> out,
);

Pipeline API

pipeline.sharpen()

sobel

Sobel edge detection.

C API

int vips_sobel(VipsImage *in, VipsImage **out, ...);

Dart Binding

int sobel(
Pointer<VipsImage> in1,
Pointer<Pointer<VipsImage>> out,
);

canny

Canny edge detection.

C API

int vips_canny(VipsImage *in, VipsImage **out, ...);

Dart Binding

int canny(
Pointer<VipsImage> in1,
Pointer<Pointer<VipsImage>> out,
);

conv

General convolution with a kernel.

C API

int vips_conv(VipsImage *in, VipsImage **out, VipsImage *mask, ...);

Dart Binding

int conv(
Pointer<VipsImage> in1,
Pointer<Pointer<VipsImage>> out,
Pointer<VipsImage> mask,
);

Example - Custom blur kernel:

// Create a 3x3 blur kernel
final kernel = createBindings.black(3, 3);
// Set kernel values...
convolutionBindings.conv(input, output, kernel);