matlab均值滤波代码
时间: 2023-07-03 07:13:52 浏览: 46
以下是 MATLAB 中进行均值滤波的代码示例:
```matlab
% 读入图像
img = imread('lena.png');
% 定义滤波器大小
filter_size = 3;
% 均值滤波
filtered_img = imfilter(img, ones(filter_size) / filter_size^2);
% 显示原图和处理后的图像
subplot(1, 2, 1);
imshow(img);
title('Original Image');
subplot(1, 2, 2);
imshow(filtered_img);
title('Filtered Image');
```
在这个示例中,我们使用 `imread` 函数读取名为 `lena.png` 的图像,然后定义了一个大小为 `3` 的滤波器。接着,我们使用 `imfilter` 函数对图像进行均值滤波。最后,我们使用 `subplot` 和 `imshow` 函数在同一窗口中显示原图和处理后的图像。
相关问题
编写matlab均值滤波代码
下面是一个简单的 MATLAB 均值滤波函数的代码:
```matlab
function filtered_img = mean_filter(img, kernel_size)
% img: 待滤波的图像
% kernel_size: 滤波核大小
% filtered_img: 滤波后的图像
% 定义均值滤波核
kernel = ones(kernel_size) / (kernel_size^2);
% 对图像进行均值滤波
filtered_img = conv2(img, kernel, 'same');
end
```
该函数使用 `conv2` 函数实现卷积操作,'same' 表示输出大小与输入大小相同。使用该函数时,只需要传入待滤波的图像和滤波核大小即可。例如:
```matlab
img = imread('example.jpg');
filtered_img = mean_filter(img, 3); % 使用 3x3 的滤波核进行均值滤波
imshow(filtered_img);
```
注意:该函数没有进行边缘处理,因此边缘处的像素值可能会受到影响。在实际应用中,可能需要进行边缘处理,例如使用镜像填充等方法。
matlab均值滤波和中值滤波代码
我可以回答关于matlab均值滤波和中值滤波代码的问题。以下是matlab均值滤波的代码示例:
```Matlab
img = imread('image.jpg'); % 读入图像
img_noise = imnoise(img, 'salt & pepper', 0.02); % 添加噪声
h = fspecial('average', [3 3]); % 设置均值滤波卷积核
img_filtered = imfilter(img_noise, h); % 进行均值滤波
imshow(img_filtered);
```
以下是matlab中值滤波的代码示例:
```Matlab
img = imread('image.jpg'); % 读入图像
img_noise = imnoise(img, 'salt & pepper', 0.02); % 添加噪声
img_filtered = medfilt2(img_noise, [3 3]); % 进行中值滤波
imshow(img_filtered);
```
其中,`imread()`函数用于读入图像,`imnoise()`函数用于添加噪声,`fspecial()`函数用于创建均值滤波卷积核,`imfilter()`函数用于进行均值滤波,`medfilt2()`函数用于进行中值滤波。
阅读全文