PSF点扩散函数 python代码
时间: 2023-07-23 08:08:44 浏览: 671
点扩散函数(PSF)
4星 · 用户满意度95%
在Python中,可以使用SciPy库来创建和处理PSF点扩散函数。下面是一个简单的示例代码,用于创建一个二维高斯PSF:
```python
import numpy as np
from scipy.signal import convolve2d
def gaussian_psf(size, sigma):
"""Create a 2D Gaussian point spread function (PSF)"""
x = np.arange(-size // 2 + 1, size // 2 + 1)
y = np.arange(-size // 2 + 1, size // 2 + 1)
xx, yy = np.meshgrid(x, y)
kernel = np.exp(-0.5 * (np.square(xx) + np.square(yy)) / np.square(sigma))
return kernel / np.sum(kernel)
# Create a 2D Gaussian PSF with size=11 and sigma=2.0
psf = gaussian_psf(11, 2.0)
# Display the PSF
print(psf)
# Convolve the PSF with an image
image_convolved = convolve2d(image, psf, mode='same')
```
上述代码中的`gaussian_psf`函数用于创建一个二维高斯PSF,其中`size`参数指定了PSF的大小,`sigma`参数则控制了PSF的形状。返回的`kernel`数组即为所创建的PSF,它被归一化为总和为1。
最后,可以使用SciPy库中的`convolve2d`函数将所创建的PSF与一张图像进行卷积,从而模拟成像系统的模糊效应。
阅读全文