convolution9Vertical()
Applies a convolution-9 vertical filter to the RGBA components of an image.
Declaration
class func convolution9Vertical() -> any CIFilter & CIConvolutionReturn Value
The modified image.
Discussion
This method applies a 1 x 9 convolution filter to the RGBA components of an image. The effect uses a 1 x 9 area surrounding an input pixel, the pixel itself, and those within a distance of 4 pixels vertically. The effect repeats this for every pixel within the image. Unlike the convolution filters, which use square matrices, this filter can only produce effects along a vertical axis. You can combine this filter with the convolution9Horizontal() to apply separable 9 x 9 convolutions.
The convolution-9-vertical filter uses the following properties:
biasA
floatrepresenting the value that’s added to each output pixel as a NSNumber.weightsA CIVector representing the convolution kernel.
inputImageAn image with the type CIImage.
The following code creates a filter that detects edges in the input image:
func convolution9Vertical(inputImage: CIImage) -> CIImage? {
let convolutionFilter = CIFilter.convolution9Vertical()
convolutionFilter.inputImage = inputImage
convolutionFilter.inputImage = inputImage
let weights: [CGFloat] = [1, 1, 1, 1, 1, 1, 1, 1, 1].map { $0/9.0 }
let kernel = CIVector(values: weights, count: 9)
convolutionFilter.weights = kernel
convolutionFilter.bias = 0.0
return convolutionFilter.outputImage!
}[Image]