Contents

convolutionRGB5X5()

Applies a convolution 5 x 5 filter to the RGB components of an image.

Declaration

class func convolutionRGB5X5() -> any CIFilter & CIConvolution

Return Value

This method applies a 5 x 5 convolution to the RGB components image. The effect uses a 5 x 5 area surrounding an input pixel, the pixel itself, and those within a distance of two pixels horizontally and vertically. The effect repeats this for every pixel within the image. The work area is then combined with the weight property vector to produce the processed image. This filter differs from the convolution5X5() filter, which processes all of the color components including the alpha component.

Discussion

The convolution-RGB 5 x 5 filter uses the following properties:

inputImage

A CIImage containing the image to process.

weights

A CIVector representing the convolution kernel.

bias

A float representing the value that’s added to each output pixel.

The following code creates a filter that applies an unsharp kernel to the input image:

func convolutionRGB5X5(inputImage: CIImage) -> CIImage {
    let convolutionFilter = CIFilter.convolutionRGB5X5()
    convolutionFilter.inputImage = inputImage
    let blur: [CGFloat] = [
         1, 1, 1, 1, 1,
         1, 1, 1, 1, 1,
         1, 1, 1, 1, 1,
         1, 1, 1, 1, 1,
         1, 1, 1, 1, 1,
    ].map { $0/25.0 }
    let kernel = CIVector(values: blur, count: 25)
    convolutionFilter.weights = kernel
    convolutionFilter.bias = 0
    return convolutionFilter.outputImage!
}

[Image]

See Also

Filters