MATLAB内置函数实现 自适应中值滤波 图像复原
时间: 2023-09-22 09:12:22 浏览: 125
MATLAB内置函数实现自适应中值滤波的步骤如下:
1. 读入待处理的图像。
2. 将图像转换成灰度图像。
3. 使用MATLAB内置函数medfilt2对灰度图像进行中值滤波。
4. 使用MATLAB内置函数imsubtract计算原始图像与中值滤波后的图像之间的差异图像。
5. 使用MATLAB内置函数imadd将差异图像添加到中值滤波后的图像中,得到复原后的图像。
下面是MATLAB代码实现:
```matlab
% 读入待处理的图像
originalImage = imread('lena.jpg');
% 将图像转换成灰度图像
grayImage = rgb2gray(originalImage);
% 中值滤波
medianFiltered = medfilt2(grayImage);
% 计算差异图像
diffImage = imsubtract(grayImage, medianFiltered);
% 将差异图像添加到中值滤波后的图像中,得到复原后的图像
restoredImage = imadd(medianFiltered, diffImage);
% 显示原始图像、中值滤波后的图像、复原后的图像
figure;
subplot(1,3,1); imshow(originalImage); title('Original Image');
subplot(1,3,2); imshow(medianFiltered); title('Median Filtered Image');
subplot(1,3,3); imshow(restoredImage); title('Restored Image');
```
上述代码中,使用了MATLAB内置函数rgb2gray将彩色图像转换成灰度图像,使用了MATLAB内置函数medfilt2进行中值滤波,使用了MATLAB内置函数imsubtract计算图像之间的差异,使用了MATLAB内置函数imadd将差异图像添加到中值滤波后的图像中。最后,将原始图像、中值滤波后的图像和复原后的图像在一个窗口中显示出来。
阅读全文