我試圖計算Python中的3D索貝爾濾波器。我有一個很好的代碼,用於下面的2D圖像。python中的3D sobel算法?
BTW。我的原始圖像是uint8類型。
preSobel = preSobel.astype('int32')
dx = ndimage.sobel(preSobel, 0) # horizontal derivative
dy = ndimage.sobel(preSobel, 1) # vertical derivative
mag = numpy.hypot(dx, dy) # magnitude
mag *= 255.0/numpy.max(mag) # normalize (Q&D)
img[i,:,:]=mag
但是從我的wiki page的瞭解計算2D,我應該成倍的增加了一維索貝爾結果,而不是hypot將:迷茫
反正要到3D,我想我需要計算1D索貝爾在每一個軸上,然後乘以所有,但我不知道...有沒有什麼庫可以更快地計算3d索貝爾?
維基給你準確的3x3x3卷積內核使用,爲什麼不使用它? – Kos
總是從頭開始實施算法以獲得更好的理解。但是如果你想用庫來解決問題,或者比較你的結果,你會發現它已經從scikit實現。請參閱協調慣例下的http://scikit-image.org/docs/dev/user_guide/numpy_images.html。 – SeF