Сверточный алгоритм для обработки изображений - PullRequest
0 голосов
/ 09 июля 2019

Я придумал этот код для применения ядра 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 вопроса:

  1. При чтении https://en.wikipedia.org/wiki/Kernel_(image_processing), существует различная матрица для различных фильтров, скажем, я хочу, чтобы мой фильтр Blur увеличивал интенсивность с помощью графического слайдера, который дает значение от x до любого значения, какой тип операции должен Я делаю для моей матрицы размытия (сделать сумму, умножение ...)? (Я хотел бы сделать то же самое с резкостью)

  2. существует ли конкретная матрица для шумоподавления?

Если у вас есть какие-либо моды, чтобы предложить мне мой алгоритм, пожалуйста, дайте мне знать! Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...