0
numpy或scipy是否包含一個與n維「梯度」fn相反的函數?n維numpy.gradient的逆
E.g.如果「圖像」包含二維矩陣,然後我想一個函數inv_gradient該行爲如下:
(gx, gy) = numpy.gradient(image)
constant_vector_0 = image[0,:] - inv_gradient(gx, gy)[0,:]
constant_vector_1 = image[:,0] - inv_gradient(gx, gy)[:,0]
image == inv_gradient(gx, gy) + tile(constant_vector_0,(shape(image)[0],1)) + transpose(tile(constant_vector_1,(shape(image)[1],1)))
原始圖像不是不唯一嗎?例如,拍攝任何能夠提供這些漸變的圖像並向其中添加常量。在矢量微積分中,無論如何,只能對保守的矢量場真正做到這一點,並且通常在積分中有未確定的函數。真正的圖像絕對不是產生保守梯度的標量場(僅考慮邊緣不連續性),可能不支持這種反演過程。 – ely 2012-04-22 21:27:59
我不明白爲什麼一個真實的圖像不是標量場 - 你不能把標量場作爲由無限網格零點包圍的圖像嗎?這個漸變應該有零捲曲。我將編輯該問題以允許沿每個軸添加一個常量向量。 – bshanks 2012-04-22 21:38:13
我知道的一種方法是如果你認爲它是諧波,重構圖像的研究。基本上,您可以根據梯度計算拉普拉斯算子,並且在假設拉普拉斯算子爲零的情況下可以解出原始圖像的未知數。這絕不是一個簡單的優化問題,並且結果通常不好,因爲幾乎沒有真實世界的圖像甚至大致諧波。可能還有其他的識別假設,例如最小化的總變差等,但SciPy爲這些複雜的重構內置了一個非常值得懷疑的假設。 – ely 2012-04-22 21:40:23