📜  如何在 MATLAB 中对 RGB 图像应用中值滤波器?

📅  最后修改于: 2022-05-13 01:54:27.842000             🧑  作者: Mango

如何在 MATLAB 中对 RGB 图像应用中值滤波器?

按定义过滤是通过在小区域上应用某种方法或算法并将该算法扩展到图像的所有区域来增强或修改图像的过程。由于我们将这些方法应用于一个区域,因此过滤被归类为相邻操作。

过滤器本质上是一个值矩阵,当悬停在图像中我们感兴趣的区域上时,根据应用的过滤器类型,通过数学计算给出新值。中值滤波器是一种流行且广泛使用的滤波器。

中值滤波器的优点

  • 保留锋利的边缘。
  • 去除椒盐噪声,即去除图像中存在尖峰噪声的实例。

中值滤波器的缺点

  • 分析分析是困难的。没有错误传播。

在本文中,我们将讨论如何在 MATLAB 中为 RGB 图像应用中值滤波器。

方法 :

  • 阅读 RGB 图像。
  • 使用 medfilt3(I,[mnp]) 命令将中值滤波器应用于 RGB 图像 I 的每个通道,邻域大小为 m×n×p。
  • 将两个图像一起显示以进行比较。

例子:

Matlab
% Matlab Code for implementing
% a Median Filter on an RGB Image. 
% Reading the Image 
I = imread('GFG.jpeg');
  
% Creating figure window for input image
figure 
  
% Displaying the input image
imshow(I);
  
% Applying the median filter on the image 
J = medfilt3(I,[3,3,3]);
  
% Creating figure window for output image
figure 
  
% Displaying the output image 
imshow(J);


输出:

图 1:输入图像

图 2:输出图像

代码说明:

  • I = imread('GFG.jpeg');此行读取图像
  • 显示(一);此行在图形窗口中显示输入图像 I
  • J = medfilt3(I,[3,3,3]);这条线在三个维度上应用了 3-D 图像 I 的中值滤波。 J 中的每个输出体素包含 I 中相应体素周围 3×3×3 邻域中的中值。(体素是像素的 3D 等效项)
  • 显示(J);此行在另一个图形窗口中显示输出图像 J。
  • 这种方法也可以应用于各种其他 RGB 图像,并且可以通过改变体素的不同邻域大小来切换,以根据我们选择的邻域大小来观察结果的差异。