Для вычисления сглаживания, например, среднее значение вычисляется для ближайших пикселей. Какое и сколько пикселей задано этим ядром. Ядро также содержит информацию о взвешивании пикселей.
Ядро чаще всего представлено в виде матрицы (и в этом случае также), которая центрируется на каждом пикселе, который является средним для caluclated. Калуцировка выглядит так в псевдо-C++-коде.
for(int i=0;i<src.rows;i++){
for (int j=0;j<src.cols;j++){
dst[i][j]=0;
for(int kernal_i=0;i<kernal.rows;i++){
for (int kernal_j=0;j<kernal.cols;j++){
dst[i-kernal.rows+kernal_i][j-kernal.cols+kernal_j]+=
src[i-kernal.rows+kernal_i][j-kernal.cols+kernal_j]*
kernal[kernal_i][kernal_j];
}
}
}
}
varible упоминается как MAX_KERNAL_LENGTH
просто самый большой размер матрицы, создающей одно такое ядро.
Это ядро линейного фильтра. Взгляните на цифровую обработку сигнала – Andrew