我正在查看一些关于使用 Total Variation norm 去噪图像的文章或维基百科。设置为 Rudin Osher Fatemi (ROF) 方案,对应的方程为:
一些来源提到使用 ADMM 优化器来解决这个去噪问题。但我希望有人能够指导我使用一些代码来展示这种方法的实现。MATLAB、Julia 或 Python 中的代码会非常好,只是入门的东西。
谢谢。
我正在查看一些关于使用 Total Variation norm 去噪图像的文章或维基百科。设置为 Rudin Osher Fatemi (ROF) 方案,对应的方程为:
一些来源提到使用 ADMM 优化器来解决这个去噪问题。但我希望有人能够指导我使用一些代码来展示这种方法的实现。MATLAB、Julia 或 Python 中的代码会非常好,只是入门的东西。
谢谢。
问题由下式给出:
其中是列堆叠导数运算符。
在上面我使用了Anisotropic TV Norm。
ADMM 问题将被表述为:
ADMM 将有 3 个步骤:
vX = mC \ (vY + (paramRho * mD.' * (vZ - vU)));
.vZ = ProxL1(mD * vX + vU, paramLambda / paramRho);
.vU = vU + mD * vX - vZ;
.哪里mC = decomposition(mI + paramRho * (mD.' * mD), 'chol');
。
我在 MATLAB 函数中编写了这个解决方案 - SolveProxTvAdmm()
.
我将它与 CVX 的参考文献进行了比较:
完整代码可在我的StackExchange Signal Processing Q75231 GitHub 存储库中找到。
备注:对于去模糊问题,打开一个新问题,我也会发布一个代码。
我自己做了一点,你需要适应。
有一个 Douglas Rachford 自己实现的和一个原始的双重方法,这里在通过压缩传感恢复融合帧结构化信号中实现。
请注意,Clarice Poon(巴斯大学)有一些很好的教程。