我想在Python中使用总变化,但是我找不到一个现有的实现。
假设我有一个具有有限元素的数组,那么使用NumPy的实现是否简单地如下:
import numpy as np
a = np.array([...], dtype=float)
tv = np.sum(np.abs(np.diff(a)))我主要怀疑的是如何计算所有分区之间的tv上界,如果仅仅是绝对差之和就足以满足有限的浮点数数组的要求。
编辑:我的输入数组表示一个分段线性函数,因此,完整分区集上的上确界实际上是连续点之间绝对差的总和。
发布于 2021-08-23 21:18:12
是的,这是正确的。
我想你被维基百科页面的总变化上的模糊定义搞糊涂了。请看一下维基百科网页的全变异去噪上更实用的定义。
对于实际的代码(偶数Python)实现,请参见例如total_variation(),尽管这是针对一个或多个(2D,颜色)图像,因此TV是为行和列计算的,然后将它们相加在一起。
https://stackoverflow.com/questions/68884407
复制相似问题