matlab均值滤波代码
时间: 2023-10-01 12:07:15 浏览: 35
以下是matlab均值滤波代码的示例:
img = imread('image.jpg'); % 读取图像
img_gray = rgb2gray(img); % 转换为灰度图像
img_filtered = filter2(fspecial('average', [3 3]), img_gray)/255; % 应用 3x3 的均值滤波器
imshow(img_filtered); % 显示处理后的图像
相关问题
MATLAB均值滤波代码
function output = mean_filter(input, window_size)
% Get dimensions of input image
[M, N] = size(input);
% Initialize output image
output = zeros(M, N);
% Calculate padding size based on window size
padding_size = floor(window_size/2);
% Pad the input image with zeros
padded_input = padarray(input, [padding_size, padding_size], 'replicate');
% Perform mean filtering
for i = 1:M
for j = 1:N
% Get the window of the current pixel
window = padded_input(i:i+window_size-1, j:j+window_size-1);
% Calculate the mean of the window
mean_value = mean(window(:));
% Assign the mean value to the output pixel
output(i, j) = mean_value;
end
end
end
编写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);
```
注意:该函数没有进行边缘处理,因此边缘处的像素值可能会受到影响。在实际应用中,可能需要进行边缘处理,例如使用镜像填充等方法。