我想出了将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滤镜通过gui Slider来增加强度,该滑块将x的值赋予任意值,应该执行哪种操作我制作模糊矩阵(求和,相乘...)? (我很想同样的技巧)
是否有特定的降噪矩阵?
如果您在我的算法上也有建议我的mod,请告诉我! 谢谢!