鬼成像滤波MATLAB程序
时间: 2023-09-28 12:04:12 浏览: 106
MATLAB滤波程序
5星 · 资源好评率100%
鬼成像滤波是一种数字图像处理中的滤波方法,用于去除图像中的噪声和增强图像的细节。下面是一个基于MATLAB的鬼成像滤波程序示例:
```
% 读取图像
img = imread('lena.png');
% 转换为灰度图像
img_gray = rgb2gray(img);
% 添加高斯噪声
img_noise = imnoise(img_gray,'gaussian',0,0.01);
% 显示原图像和噪声图像
subplot(1,2,1),imshow(img_gray),title('Original Image');
subplot(1,2,2),imshow(img_noise),title('Noisy Image');
% 鬼成像滤波
h = fspecial('gaussian',7,7);
img_deghost = deghosting(img_noise,h);
% 显示去除鬼影后的图像
figure,imshow(img_deghost),title('De-Ghosting Image');
% 鬼成像滤波函数
function img_deghost = deghosting(img,h)
img_fft = fft2(img);
h_fft = fft2(h,size(img,1),size(img,2));
img_fft_shift = fftshift(img_fft);
h_fft_shift = fftshift(h_fft);
img_fft_shift_deghost = img_fft_shift ./ h_fft_shift;
img_fft_deghost = ifftshift(img_fft_shift_deghost);
img_deghost = real(ifft2(img_fft_deghost));
end
```
代码中的 `deghosting` 函数是鬼成像滤波的关键部分,它利用傅里叶变换将图像和滤波器转换到频域进行处理。函数中的参数 `h` 是高斯滤波器的核,可以根据需要调整大小和标准差。
阅读全文