Synopsis
HxImageRep HxConvKernelSeparated (HxImageRep img, HxImageRep kernel, HxImageRep::ResultPrecision resPrec)
Input
HxImageRep img
HxImageRep kernel
ResultPrecision resPrec
Return value
HxImageRep
Description
The function HxConvKernelSeparated convolves the input image with a 1xn filter in every direction (dimension) of the image. The convolution kernel can be either a scalar or vector image. If the kernel is a scalar image, the input image may be a scalar or a vector image. In case of a scalar kernel and an vector input image, the convolution (in every direction) is taken separately for each channel. If both kernel and image are vector images, the pixel dimension should be the same. In the latter case, each channel of the input image is convolved with the corresponding channel of the kernel.
Remarks
Examples
Convolving an image with one 1d kernel in all directions.
#include "HxImageRepGlobalFuncs.h" #include "HxImageRep.h" HxImageRep HxConvKernelSeparatedExample1(HxImageRep img) { img = HxImageAsDouble(img); HxImageRep kernel = HxMakeGaussian1d(3.0, 0, 5.0, 10, -1); img = HxConvKernelSeparated(img, kernel, HxImageRep::DEFAULT_PREC); img = HxContrastStretch(img, 255.0); img = HxImageAsByte(img); return img; } int main(int argc, char* argv[]) { HxImageRep im1 = HxMakeFromFile(argv[1]); im1 = HxConvKernelSeparatedExample1(im1); HxWriteFile(im1, argv[2]); return 0; }
Input image for the HxConvKernelSeparated example.
Output image of the HxConvKernelSeparated example.
In this example we generate a 1d Gaussian kernel, after which the input image in this example code is convolved with the kernel in all directions.
See also
HxConvolution, HxConvGauss2d, HxConvKernelSeparated2d,
Keywords
Filter, Convolution,