For those who struggle after me, the answer is CIFilter CIConvolution7X7
You want to input this values in vector which goes to your filter for key kCIInputWeightsKey
/**
A = 12
B = 16
C = 12
D = 4
E = 4
F = 1
*/
// Matrix for pixel color priority
let weightsArr: [CGFloat] = [
A, A, B, B, B, A, A,
A, B, C, C, C, B, A,
B, C, D, E, D, C, B,
B, C, E, F, E, C, B,
B, C, D, E, D, C, B,
A, B, C, C, C, B, A,
A, A, B, B, B, A, A
]
let inputWeights: CIVector = CIVector(values: weightsArr,
count: weightsArr.count)
enter image description here