Я придумал этот код для применения ядра 3x3 к моему образу:
double sum;
for(int i = 1; i < src.rows - 1; i++){
for(int j = 1; j < src.cols - 1; j++)
for (int k = 0; k < 3; k ++) {
sum = 0.0;
dst.at<cv::Vec3b>(i,j)[k] = 0.0;
for(int x = -1; x <= 1; x++){
for(int y = -1; y <=1; y++){
sum += (Kernel_Matrix[y+1][x+1]*src.at<cv::Vec3b>(i - x, j - y)[k]);
}
}
dst.at<cv::Vec3b>(i,j)[k] = cv::saturate_cast<uchar>(sum);
}
}
Теперь у меня есть 2 вопроса:
При чтении https://en.wikipedia.org/wiki/Kernel_(image_processing), существует различная матрица для различных фильтров, скажем, я хочу, чтобы мой фильтр Blur увеличивал интенсивность с помощью графического слайдера, который дает значение от x до любого значения, какой тип операции должен Я делаю для моей матрицы размытия (сделать сумму, умножение ...)?
(Я хотел бы сделать то же самое с резкостью)
существует ли конкретная матрица для шумоподавления?
Если у вас есть какие-либо моды, чтобы предложить мне мой алгоритм, пожалуйста, дайте мне знать!
Спасибо!