用于图像处理的卷积算法

时间:2019-07-09 15:02:59

标签: c++ image opencv image-processing

我想出了将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滤镜通过gui Slider来增加强度,该滑块将x的值赋予任意值,应该执行哪种操作我制作模糊矩阵(求和,相乘...)? (我很想同样的技巧)

  2. 是否有特定的降噪矩阵?

如果您在我的算法上也有建议我的mod,请告诉我! 谢谢!

0 个答案:

没有答案