题目:使用均值滤波器对图像进行滤波。
采用国际标准测试图像Lena。
3*3的均值滤波器定义如下:
c++代码:文章来源:https://www.toymoban.com/news/detail-510852.html
cv::Mat image = cv::imread("Lena.bmp");
cv::Mat src(image.size(),CV_8UC1);
cv::cvtColor(image, src, CV_BGR2GRAY);
cv::Mat dst = src.clone();
double v = 0;
int r = 3;
for (int row = 1; row < dst.rows-1; row++)
{
for (int col = 1; col < dst.cols-1; col++)
{
v = 0;
for (int dy = -1; dy < r - 1; dy++)
{
for (int dx = -1; dx < r - 1; dx++)
{
v = v + dst.at<uchar>(row + dy, col + dx);
}
}
dst.at<uchar>(row, col) = uchar(v / (r*r));
}
}
结果展示:
均值滤波器的特点:
计算均值会将图像中的边缘信息和特征信息模糊掉,丢失很多特征,使得景物的清晰度降低,画面变得模糊。对于高斯噪声,当滤波器的长度足够大时,有非常好的噪声抑制效果。
参考链接:https://github.com/gzr2017/ImageProcessing100Wen/blob/master/Question_01_10/answers_cpp/answer_7.cpp文章来源地址https://www.toymoban.com/news/detail-510852.html
到了这里,关于数字图像处理(七)均值滤波的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!