点扩散函数matlab程序
时间: 2023-08-03 09:06:58 浏览: 149
以下是一个简单的 MATLAB 点扩散函数程序,可以用于对图像进行平滑处理:
```
function output = point_spread_function(input, sigma)
% Point Spread Function (PSF) for image smoothing
% input: input image
% sigma: standard deviation of Gaussian distribution
% output: smoothed image
% Define PSF
psf = fspecial('gaussian', 2 * ceil(3 * sigma) + 1, sigma);
% Apply convolution
output = imfilter(input, psf, 'conv', 'replicate');
end
```
在程序中,我们使用 `fspecial` 函数来定义一个高斯分布的 PSF,然后通过 `imfilter` 函数对输入图像进行卷积操作,从而得到平滑后的输出图像。其中 `'replicate'` 参数表示对图像边缘进行镜像复制以避免边缘像素的影响。
使用该程序时,只需要将输入图像和高斯分布的标准差作为参数传入即可。例如:
```
input_image = imread('input.jpg');
sigma = 2;
output_image = point_spread_function(input_image, sigma);
imshow(output_image);
```
这里我们假设输入图像为 `input.jpg`,标准差为 2,输出图像将显示在 MATLAB 图像窗口中。
阅读全文