【发布时间】:2017-12-01 02:42:58
【问题描述】:
我是图像分析方面的新手(使用 Python),我想对我的数据(CT 扫描)应用richardson_lucy 反卷积(来自 skimage)。出于这个原因,我通过特定的软件估计了“体素数”中的 PSF。它的值大约是6.73体素,但我不知道如何将它用作函数中的参数。
函数使用PSF参数作为ndarray,所以我是这样尝试的:
from skimage import io
from pylab import array
img = io.imread ("Slice1.tif")
import skimage.restoration as rst
PSF = array (6.7)
img_dbl = rst.richardson_lucy (img, PSF, iterations=10)
它显示了这个错误:IndexError: too many indices for array
在 CT 扫描中,两种不同材料之间的模糊可以与高斯 PSF 相关联。如果您有更多去模糊的技巧(可能比 RL 更好),请写出来。
谁能帮帮我。
【问题讨论】:
-
忘记 PIL,您应该使用
skimage.io.imread打开图像。 AFAIK PIL 使用另一种与 opencv 或 skimage 不兼容的图像表示。 -
谢谢@PauloScardine,我改了。但是,它给了我同样的错误信息。
-
您确定您使用的是灰度图像吗?在调用
richardson_lucy之前尝试img = color.rgb2gray(img) -
图像已经是灰度的。无论如何我都试图转换它,但结果总是一样的。
-
你确定 psf 可以是一维数组吗?像
np.ones((5, 5)) * 6.7这样的东西怎么样 - 猜不到了。
标签: python image-processing blur deconvolution