实验三:图像的平滑滤波

打印 上一主题 下一主题

主题 1726|帖子 1726|积分 5178

目录
一、实验目的
二、实验原理
1. 空域平滑滤波
2. 椒盐噪声的处置惩罚
三、实验内容
四、源程序和结果
(1) 主程序(matlab)
(2) 函数GrayscaleFilter
(3) 函数MeanKernel
(4) 函数MedFilter
五、结果分析
1. 空域平滑滤波
2. 椒盐噪声的处置惩罚

 
一、实验目的

   

  • 熟练把握空域平滑滤波的原理、方法及其MATLAB实现。
  • 分析模板大小对空域平滑滤波的影响,线性和非线性方法对空域平滑滤波增强结果的影响,比较不同滤波器的处置惩罚结果,分析其优缺点。
  二、实验原理

1. 空域平滑滤波
        空域平滑滤波是一种基本的图像处置惩罚技术,旨在降低图像中的噪声并模糊图像细节。其原理是基于图像中像素值的局部匀称化或加权匀称化来实现。

        具体来说,平滑滤波器在图像上滑动,对每个像素四周邻域内的像素举行匀称操作。这通常涉及将滤波器覆盖的像素值举行加权匀称,得到一个新的像素值来代替原始像素值。匀称操作有助于消除高频噪声,并使图像变得更加平滑。

        在该实验中,用到的平滑滤波器为均值滤波器。

        均值滤波器是一种常见的空域平滑滤波器,用于图像处置惩罚中的噪声克制和平滑处置惩罚。其原理是在图像中滑动一个固定大小的滤波窗口,对窗口中的像素值举行匀称操作,用匀称值替代中心像素的值,适用于去除轻度噪声和平滑图像。

        一般来说,对同一幅图像举行均值滤波器处置惩罚,尺寸越大的均值滤波器处置惩罚后的图像越模糊,设置分辨不出图像内容。但是,对于包含大量噪声或细节的图像,均值滤波器可能会导致图像过度模糊,因为它匀称化了整个邻域内的像素。

2. 椒盐噪声的处置惩罚
        对于包含大量噪声或细节的图像,比如含有“椒盐噪声”的图像,往往会采用中值滤波器。中值滤波器是一种非线性滤波器,在图像处置惩罚中常用于去除椒盐噪声或斑点噪声。与均值滤波器不同,中值滤波器不是对图像像素举行加权匀称,而是将图像地区内像素值排序后选取中间值(中值)作为当前像素的新值。

        虽然中值滤波器在处置惩罚去除椒盐噪声上有上风,但是,中值滤波器的处置惩罚速率较慢,特别是在处置惩罚大尺寸窗口或高分辨率图像时。别的,对于高斯噪声等连续性噪声,中值滤波器的去噪结果可能不如均值滤波器等线性滤波器。

三、实验内容

   

  • 选择一幅图像,分别选择两种尺寸的算术匀称模板举行均值滤波模糊处置惩罚,并对不同尺寸的滤波器模板操作后的图像举行比较。
  • 选择一幅图像,对图像加入椒盐噪声,检验两种滤波模板(3×3匀称模板和3×3中值滤波器)对噪声的滤波结果。
  四、源程序和结果

(1) 主程序(matlab)
  1. clear;close;
  2. % 读取彩色图片
  3. img = imread('lena.jpg');
  4. grayscale = rgb2gray(img); % 读取灰度图
  5. % 显示原始图片
  6. subplot(2, 2, 1);
  7. imshow(grayscale);
  8. title('原始图片');
  9. % 1) 分别选择 3×3,7×7,25×25 等平均模板进行均值滤波
  10. filter_sizes = [3, 7, 25];
  11. for i = 1:numel(filter_sizes)
  12.     filter_size = MeanKernel(filter_sizes(i));
  13.     filtered_grayscale = GrayscaleFilter(grayscale, filter_size);
  14.    
  15.     % 显示滤波后的图片
  16.     subplot(2, 2, i+1);
  17.     imshow(filtered_grayscale);
  18.     title(['均值滤波 ',num2str(filter_sizes(i)), 'x', num2str(filter_sizes(i))]);
  19. end
  20. % 2) 对图像加入椒盐噪声
  21. noisy_grayscale = imnoise(grayscale, 'salt & pepper', 0.1);
  22. % 显示加入噪声的图片
  23. figure;
  24. subplot(2, 2, 1);
  25. imshow(grayscale);
  26. title('原始图片');
  27. % 显示加入噪声的图片
  28. subplot(2, 2, 2);
  29. imshow(noisy_grayscale);
  30. title('添加椒盐噪声');
  31. % 使用3x3平均模板进行滤波
  32. avg_filtered_grayscale = GrayscaleFilter(noisy_grayscale, MeanKernel(3));
  33. subplot(2, 2, 3);
  34. imshow(avg_filtered_grayscale);
  35. title('图像 3x3 均值滤波');
  36. % 使用3x3中值滤波器进行滤波
  37. med_filtered_grayscale = MedFilter(grayscale);
  38. subplot(2, 2, 4);
  39. imshow(med_filtered_grayscale);
  40. title('图像 3x3 中值滤波');
复制代码
(2) 函数GrayscaleFilter
  1. % 功能:输入灰度图和滤波核,输出滤波图像
  2. function filtered_image = GrayscaleFilter(gray_image, filter_kernel)
  3.     % 读取行列值
  4.     [rows, cols] = size(gray_image);
  5.     [krows, kcols] = size(filter_kernel);
  6.    
  7.     % 计算边界填充(零填充)
  8.     pad_rows = floor(krows/2);
  9.     pad_cols = floor(kcols/2);
  10.    
  11.     padded_image = zeros(rows + 2*pad_rows, cols + 2*pad_cols);
  12.     padded_image(pad_rows+1:end-pad_rows, pad_cols+1:end-pad_cols) = gray_image;
  13.    
  14.     % 对图像进行滤波
  15.     filtered_image = zeros(rows, cols);
  16.    
  17.     for i = 1:rows
  18.         for j = 1:cols
  19.             patch = padded_image(i:i+krows-1, j:j+kcols-1);
  20.             filtered_image(i, j) = sum(patch(:) .* filter_kernel(:)); % 卷积运算
  21.         end
  22.     end
  23.    
  24.     % 还原到0~255的灰度像素范围
  25.     filtered_image = uint8(filtered_image);
  26. end
复制代码
(3) 函数MeanKernel
  1. function mean_filter = MeanKernel(x)
  2.     % 定义均值滤波器
  3.     mean_filter = 1/(x*x) * ones(x, x);
  4. end
复制代码
(4) 函数MedFilter
  1. % 功能:3*3中值滤波器滤波
  2. function filtered_image = MedFilter(gray_image)
  3. [m, n] = size(gray_image);
  4. filtered_image = gray_image;
  5. for i = 2:m-1
  6.     for j = 2:n-1
  7.         % 获取3x3邻域内的像素值
  8.         neighborhood = gray_image(i-1:i+1, j-1:j+1);
  9.         % 计算邻域内像素值的中值作为当前像素值
  10.         filtered_image(i, j) = median(neighborhood(:));
  11.     end
  12. end
复制代码
五、结果分析

1. 空域平滑滤波
        如图一所示,均值滤波器滤波后的图像会变模糊,且会滤波核的大小的增大而变得更模糊。

图一 均值滤波

2. 椒盐噪声的处置惩罚
        如图二所示,布满椒盐噪声的图片整幅图像充满了黑白点。对于这类噪声的处置惩罚,使用均值滤波器滤波后的图像,得益于均值滤波器的模糊结果,黑白点确实没那么显着突出了,但是结果照旧不尽人意,一方面噪声又没完全剔除,另一方面原本图像的细节也被模糊了。而观察中值滤波后的图像,可以惊奇的发现,滤波后的图像基本上和原图一样,看不出什么差异出来。由此空间,中值滤波器对椒盐噪声的剔除有奇效,非常适合这种场景。

图二 椒盐噪声处置惩罚

 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

惊落一身雪

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表