实验三:图像的平滑滤波
创始人
2024-12-26 07:41:46
0

目录

一、实验目的

二、实验原理

1. 空域平滑滤波

2. 椒盐噪声的处理

三、实验内容

四、源程序和结果

(1) 主程序(matlab)

(2) 函数GrayscaleFilter

(3) 函数MeanKernel

(4) 函数MedFilter

五、结果分析

1. 空域平滑滤波

2. 椒盐噪声的处理


 

一、实验目的

  1. 熟练掌握空域平滑滤波的原理、方法及其MATLAB实现。
  2. 分析模板大小对空域平滑滤波的影响,线性和非线性方法对空域平滑滤波增强效果的影响,比较不同滤波器的处理效果,分析其优缺点。

二、实验原理

1. 空域平滑滤波

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

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

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

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

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

2. 椒盐噪声的处理

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

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

三、实验内容

  1. 选择一幅图像,分别选择两种尺寸的算术平均模板进行均值滤波模糊处理,并对不同尺寸的滤波器模板操作后的图像进行比较。
  2. 选择一幅图像,对图像加入椒盐噪声,检验两种滤波模板(3×3平均模板和3×3中值滤波器)对噪声的滤波效果。

四、源程序和结果

(1) 主程序(matlab)

clear;close;   % 读取彩色图片 img = imread('lena.jpg'); grayscale = rgb2gray(img); % 读取灰度图   % 显示原始图片 subplot(2, 2, 1); imshow(grayscale); title('原始图片');   % 1) 分别选择 3×3,7×7,25×25 等平均模板进行均值滤波 filter_sizes = [3, 7, 25]; for i = 1:numel(filter_sizes)     filter_size = MeanKernel(filter_sizes(i));     filtered_grayscale = GrayscaleFilter(grayscale, filter_size);          % 显示滤波后的图片     subplot(2, 2, i+1);     imshow(filtered_grayscale);     title(['均值滤波 ',num2str(filter_sizes(i)), 'x', num2str(filter_sizes(i))]); end   % 2) 对图像加入椒盐噪声 noisy_grayscale = imnoise(grayscale, 'salt & pepper', 0.1);   % 显示加入噪声的图片 figure; subplot(2, 2, 1); imshow(grayscale); title('原始图片');   % 显示加入噪声的图片 subplot(2, 2, 2); imshow(noisy_grayscale); title('添加椒盐噪声');   % 使用3x3平均模板进行滤波 avg_filtered_grayscale = GrayscaleFilter(noisy_grayscale, MeanKernel(3)); subplot(2, 2, 3); imshow(avg_filtered_grayscale); title('图像 3x3 均值滤波');   % 使用3x3中值滤波器进行滤波 med_filtered_grayscale = MedFilter(grayscale);   subplot(2, 2, 4); imshow(med_filtered_grayscale); title('图像 3x3 中值滤波');

(2) 函数GrayscaleFilter

% 功能:输入灰度图和滤波核,输出滤波图像 function filtered_image = GrayscaleFilter(gray_image, filter_kernel)     % 读取行列值     [rows, cols] = size(gray_image);     [krows, kcols] = size(filter_kernel);          % 计算边界填充(零填充)     pad_rows = floor(krows/2);     pad_cols = floor(kcols/2);          padded_image = zeros(rows + 2*pad_rows, cols + 2*pad_cols);     padded_image(pad_rows+1:end-pad_rows, pad_cols+1:end-pad_cols) = gray_image;          % 对图像进行滤波     filtered_image = zeros(rows, cols);          for i = 1:rows         for j = 1:cols             patch = padded_image(i:i+krows-1, j:j+kcols-1);             filtered_image(i, j) = sum(patch(:) .* filter_kernel(:)); % 卷积运算         end     end          % 还原到0~255的灰度像素范围     filtered_image = uint8(filtered_image); end

(3) 函数MeanKernel

function mean_filter = MeanKernel(x)     % 定义均值滤波器     mean_filter = 1/(x*x) * ones(x, x); end

(4) 函数MedFilter

% 功能:3*3中值滤波器滤波 function filtered_image = MedFilter(gray_image) [m, n] = size(gray_image); filtered_image = gray_image; for i = 2:m-1     for j = 2:n-1         % 获取3x3邻域内的像素值         neighborhood = gray_image(i-1:i+1, j-1:j+1);         % 计算邻域内像素值的中值作为当前像素值         filtered_image(i, j) = median(neighborhood(:));     end end

五、结果分析

1. 空域平滑滤波

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

6db1412e857a43cda01cc4459c4dacdf.jpeg

图一 均值滤波

2. 椒盐噪声的处理

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

2db3cdbc3ac642c29189e82a884e5e98.jpeg

图二 椒盐噪声处理

 

相关内容

热门资讯

重大通报,金花房卡如何购买西游... 西游联盟房卡更多详情添加微:33549083、 2、在商城页面中选择房卡选项。 3、根...
IA解析/牛牛房卡官网皇豪互娱... 皇豪互娱是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:【3329006910】或QQ:332900...
正版授权!牛牛充值房卡超游联盟... 您好!微信超游联盟大厅链接获取房卡可以通过以下几种方式购买: 1.微信渠道:(超游联盟)大厅介绍:...
头条推荐!金花微信链接市场价格... 头条推荐!金花微信链接市场价格表九酷大厅/随意玩/房卡是在哪里买的九酷大厅/随意玩是一款非常受欢迎的...
科技实测!微信金花房卡怎么弄海... 微信游戏中心:海贝之城房卡在哪里买打开微信,添加客服微信【88355042】,进入游戏中心或相关小程...
正规平台有哪些,牛牛房卡制作链... 豌豆互娱是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:【3329006910】或QQ:332900...
正规平台有哪些,牛牛房卡代理海... 您好!微信海航大厅大厅链接获取房卡可以通过以下几种方式购买: 1.微信渠道:(海航大厅)大厅介绍:...
我来教你/如何购买金花房卡神盾... 微信游戏中心:神盾大厅/新天道房卡在哪里买打开微信,添加客服微信【88355042】,进入游戏中心或...
我来教你/斗牛房卡充值新天道/... 今 日消息,新天道/皇豪互娱房卡添加微信33549083 苹果今日发布了 iOS 16.1 正式版更...
玩家攻略,金花房卡批发价卡丁互... 玩家攻略,金花房卡批发价卡丁互娱/正规房卡找谁买卡丁互娱是一款非常受欢迎的游戏,咨询房/卡添加微信:...
IA解析/牛牛房卡游戏代理海米... 微信游戏中心:海米大厅房卡在哪里买打开微信,添加客服微信【88355042】,进入游戏中心或相关小程...
玩家攻略,怎么买斗牛房卡朱雀大... 微信游戏中心:朱雀大厅房卡在哪里买打开微信,添加客服微信【88355042】,进入游戏中心或相关小程...
推荐一款!牛牛房卡制作链接海星... 海星大厅房卡更多详情添加微:33549083、 2、在商城页面中选择房卡选项。 3、根...
头条推荐!金花房卡如何购买超游... 头条推荐!金花房卡如何购买超游联盟/房卡购买房间怎么开超游联盟是一款非常受欢迎的游戏,咨询房/卡添加...
我来教你/如何购买金花房卡老神... 微信游戏中心:老神兽/皇豪互众房卡在哪里买打开微信,添加客服微信【88355042】,进入游戏中心或...
正版授权!牛牛房卡出售海豚大厅... 正版授权!牛牛房卡出售海豚大厅/房卡购买房间怎么开Sa9Ix苹果iPhone 17手机即将进入量产阶...
重大通报,如何购买金花房卡龙马... 您好!微信龙马大厅大厅链接获取房卡可以通过以下几种方式购买: 1.微信渠道:(龙马大厅)大厅介绍:...
科技实测!金花房卡官网烛龙大厅... 烛龙大厅/新道游房卡更多详情添加微:33549083、 2、在商城页面中选择房卡选项。 ...
我来教你/金花微信链接市场价格... 我来教你/金花微信链接市场价格表天酷大厅/房卡在哪里购买天酷大厅是一款非常受欢迎的游戏,咨询房/卡添...
ia实测“金花房卡从哪里购买/... 皇豪互娱是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:86909166许多玩家在游戏中会购买房卡来...