MATLAB编写均值滤波的函数
时间: 2023-06-10 14:07:58 浏览: 68
可以使用以下代码编写一个基于邻域的均值滤波器函数:
```matlab
function outputImg = meanFilter(inputImg, windowSize)
% inputImg: 输入图像
% windowSize: 邻域大小
% outputImg: 输出图像
% 获得输入图像的尺寸
[height, width] = size(inputImg);
% 对邻域大小进行处理,保证其为奇数
if mod(windowSize,2) == 0
windowSize = windowSize + 1;
end
% 初始化输出图像
outputImg = zeros(height,width);
% 对每个像素点进行均值滤波
halfWindow = floor(windowSize/2);
for i = halfWindow+1:height-halfWindow
for j = halfWindow+1:width-halfWindow
window = inputImg(i-halfWindow:i+halfWindow, j-halfWindow:j+halfWindow);
outputImg(i,j) = mean(window(:));
end
end
end
```
使用方法:
```matlab
% 读取图像
inputImg = imread('input.jpg');
% 对图像进行均值滤波
outputImg = meanFilter(inputImg, 5);
% 显示输出图像
imshow(outputImg);
```
其中,`inputImg` 是待处理的输入图像,`windowSize` 是邻域大小,`outputImg` 是处理后的输出图像。此处使用的是基于邻域的均值滤波器,对于每个像素点,取其周围邻域内的像素值的均值作为输出。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)