中值滤波matlab代码
时间: 2023-10-25 11:07:01 浏览: 120
简单的中值滤波MATLAB代码
5星 · 资源好评率100%
下面是一个简单的中值滤波的Matlab代码示例:
```matlab
function outputImage = medianFilter(inputImage, windowSize)
[rows, cols] = size(inputImage);
padSize = floor(windowSize/2);
paddedImage = padarray(inputImage, [padSize, padSize], 'replicate');
outputImage = zeros(rows, cols);
for i = 1:rows
for j = 1:cols
window = paddedImage(i:i+2*padSize, j:j+2*padSize);
outputImage(i,j) = median(window(:));
end
end
end
```
这个函数接受两个参数:`inputImage` 是输入的图像,`windowSize` 是用于计算中值的窗口大小。函数首先为输入图像添加了适当数量的边界,然后使用嵌套的循环遍历每个像素,并在窗口中计算中值。最后,将计算得到的中值放入输出图像中。
你可以调用这个函数来进行中值滤波,例如:
```matlab
inputImage = imread('input_image.jpg');
windowSize = 3;
outputImage = medianFilter(inputImage, windowSize);
imshow(outputImage);
```
请注意,这仅是一个简单的中值滤波示例,你可以根据需要进行更复杂的改进和优化。
阅读全文