matlab点扩散函数代码
时间: 2024-10-08 14:20:48 浏览: 26
matlab开发-广域荧光显微镜点扩散函数
在MATLAB中,点扩散函数(Point Spread Function,PSF)通常用于模拟光学系统中的图像模糊效果。以下是一个简单的例子,展示如何生成一个二维的高斯点扩散函数:
```matlab
% 设置PSF参数
sigma = 2; % 高斯标准差,越小则模糊程度越少
dx = dy = 1; % 每个像素的尺寸,假设单位为像素
% 创建一个全零矩阵作为PSF的基础
[rows, cols] = size(dx);
psf = zeros(rows, cols);
% 计算并填充高斯分布
for i = -round(sigma):round(sigma)
for j = -round(sigma):round(sigma)
psf(i+rows/2, j+cols/2) = exp(-((i^2 + j^2)/(2*sigma^2)));
end
end
% 将PSF归一化到总和为1,以便于后续操作
psf = psf / sum(psf(:));
% 可视化PSF
imshow(psf, 'InitialMagnification', 'fit')
colorbar
```
在这个代码中,`sigma`决定了PSF的宽度,数值越大,模糊的效果越明显。你可以通过修改`sigma`值来调整模糊的程度。
阅读全文