ListDeconvolve[ker,list]
使用内核 ker,给出 list 的反卷积.
ListDeconvolve
ListDeconvolve[ker,list]
使用内核 ker,给出 list 的反卷积.
更多信息和选项
- ListDeconvolve[ker,list] 中的参数 ker 和 list 可以为任意秩数的实数数组,ker 在任意维数上不能大于 list
- 可以使用以下选项:
-
Method "DampedLS" 使用反卷积方法 Padding "Reversed" 对于超出原始数据的值使用填充 MaxIterations 10 尝试使用的迭代数 - 如果 list 的元素为确切的数,ListDeconvolve 通过在这些数上应用 N 开始.
- 对于可用设置的完整文档,请参见 ImageDeconvolve 参考页.
范例
打开所有单元 关闭所有单元基本范例 (2)
data = ImageData[[image]];
ArrayPlot[blurred = ListConvolve[GaussianMatrix[4], data, 4, 1]]ArrayPlot[ListDeconvolve[GaussianMatrix[4], blurred]]data = ImageData[[image]];ListDeconvolve[GaussianMatrix[{{2, 2, 2}}], data]//Image3D选项 (2)
Method (2)
data = {0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.5, 0.5, 0.5, 0.5, 0, 0, 0, 0, 0, 0, 0, 0};
conv = ListConvolve[ker = GaussianMatrix[{{3}}], data, 4] + 0.02 * RandomReal[NormalDistribution[], Length[data]];
ker = GaussianMatrix[{{3}}];GraphicsRow[ListLinePlot[{#, conv}, PlotRange -> All, AspectRatio -> 1 / 3]& /@ {ListDeconvolve[ker, conv, Method -> {"DampedLS", 0.01}], ListDeconvolve[ker, conv, Method -> {"DampedLS", 0.1}], ListDeconvolve[ker, conv, Method -> {"DampedLS", 0.5}]}, ImageSize -> Large]data = {0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.5, 0.5, 0.5, 0.5, 0, 0, 0, 0, 0, 0, 0, 0};
conv = ListConvolve[ker = GaussianMatrix[{{3}}], data, 4] + 0.02 * RandomReal[NormalDistribution[], Length[data]];
ker = GaussianMatrix[{{3}}];
GraphicsRow[ListLinePlot[{Tooltip[#, "deblurred"], Tooltip[conv, "blurred"]}, PlotRange -> All, AspectRatio -> 1 / 3]& /@ {ListDeconvolve[ker, conv, Method -> {"DampedLS"}], ListDeconvolve[ker, conv, Method -> "Wiener"], ListDeconvolve[ker, conv, Method -> "TotalVariation"]}, ImageSize -> Large]应用 (2)
data = {0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.5, 0.5, 0.5, 0.5, 0, 0, 0, 0, 0, 0, 0, 0};
conv = ListConvolve[ker = GaussianMatrix[{{3}}], data, 4] + 0.02 * RandomReal[NormalDistribution[], Length[data]];
deconv = ListDeconvolve[ker, conv, Method -> "TotalVariation"];
ListLinePlot[{Tooltip[data, "original"], Tooltip[conv, "blurred"], Tooltip[deconv, "deblurred"]}, PlotRange -> {-0.1, 1.2}]ca = CellularAutomaton[150, {{1}, 0}, 30];
ker = BoxMatrix[1] / 9;
blurred = ListConvolve[ker, ca];
restored = ListDeconvolve[ker, blurred, Method -> "RichardsonLucy", MaxIterations -> 50];
ArrayPlot /@ {blurred, restored}属性和关系 (2)
ListDeconvolve 可近似看作是 ListConvolve 的逆:
data = {0., 0., 1., 2., 1., 2., 1., 0., 0., 0.};
ker = {1 / 3, 1 / 3, 1 / 3};
conv = ListConvolve[ker, data, 2]deconv = ListDeconvolve[ker, conv, Method -> "RichardsonLucy"]ImageDeconvolve 可用来使图像变得清晰:
ImageDeconvolve[[image], DiskMatrix[3] / 37]可能存在的问题 (1)
零调整值引起振铃现象——余振伪差(ringing artifact):
data = {0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.5, 0.5, 0.5, 0.5, 0, 0, 0, 0, 0, 0, 0, 0};
conv = ListConvolve[ker = GaussianMatrix[{{3}}], data, 4] + 0.02 * RandomReal[NormalDistribution[], Length[data]];
ker = GaussianMatrix[{{3}}];
ListLinePlot[{ListDeconvolve[ker, conv, Method -> {"Wiener", 0.0}], conv}, PlotRange -> All, AspectRatio -> 1 / 3]巧妙范例 (1)
f = {6, 7, 2, 5, 1};h = {1, 1, 1} / 3.;n = {-0.05, 0.2, 0.1, -0.2, -0.1};g = ListConvolve[h, f, 2] + ntmp = Map[ListDeconvolve[h, g, Method -> "RichardsonLucy", MaxIterations -> #, Padding -> "Periodic"]&, Range[1, 30]];ListLinePlot[Transpose[tmp], PlotStyle -> StandardGray, PlotRange -> All, AspectRatio -> 2 / 3, Epilog -> {PointSize[Medium], {Blue, Point[Thread[{1, tmp[[1]]}]]}, {Red, Point[Thread[{30, f}]]}}]相关指南
-
▪
- 数据变换和平滑 ▪
- 图像滤波和邻域处理 ▪
- 线性和非线性滤波 ▪
- 信号滤波与滤波器设计
文本
Wolfram Research (2010),ListDeconvolve,Wolfram 语言函数,https://reference.wolfram.com/language/ref/ListDeconvolve.html.
CMS
Wolfram 语言. 2010. "ListDeconvolve." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/ListDeconvolve.html.
APA
Wolfram 语言. (2010). ListDeconvolve. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/ListDeconvolve.html 年
BibTeX
@misc{reference.wolfram_2026_listdeconvolve, author="Wolfram Research", title="{ListDeconvolve}", year="2010", howpublished="\url{https://reference.wolfram.com/language/ref/ListDeconvolve.html}", note=[Accessed: 08-August-2026]}
BibLaTeX
@online{reference.wolfram_2026_listdeconvolve, organization={Wolfram Research}, title={ListDeconvolve}, year={2010}, url={https://reference.wolfram.com/language/ref/ListDeconvolve.html}, note=[Accessed: 08-August-2026]}