python randon变换
时间: 2023-07-07 07:15:42 浏览: 140
在Python中,可以使用SciPy库中的`radon`函数进行Radon变换。以下是示例代码:
```python
import numpy as np
from scipy import ndimage
from scipy import signal
from scipy import misc
from scipy import fftpack
from scipy import io
from scipy import interpolate
from scipy import optimize
from scipy import signal
from skimage.transform import radon, iradon
# 读取图像
image = misc.ascent()
# 进行Radon变换
theta = np.linspace(0., 180., max(image.shape), endpoint=False)
sinogram = radon(image, theta=theta, circle=True)
# 逆变换得到重建图像
reconstruction_fbp = iradon(sinogram, theta=theta, circle=True)
# 显示结果
import matplotlib.pyplot as plt
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(8, 4.5))
ax1.set_title("Original")
ax1.imshow(image, cmap=plt.cm.Greys_r)
ax2.set_title("Reconstruction\nFiltered back projection")
ax2.imshow(reconstruction_fbp, cmap=plt.cm.Greys_r)
plt.show()
```
首先,使用`misc.ascent()`函数读取一个示例图像。然后使用`skimage.transform.radon`函数进行Radon变换,其中`theta`参数指定投影角度。最后,使用`skimage.transform.iradon`函数进行逆变换,得到重建的图像。
阅读全文