私はPythonの2次元配列/画像を極座標に変換し、その後にプロセスに変換し、その後それらをデカルトに戻したいと考えています。画像の数と暗くなるが非常に大きいので、私はOpenCVのが速いとを有しているかどうかをチェックし速いデカルトから極座標へのデカルト
:以下は、(サンプルコードの同心円上で使用される)ImajeJ Polar Transformerプラグインからの結果でありますこれを行う簡単な方法。
私はcvについて読んでいます。 CartToPolar
とPolarToCart
ですが、使用できませんでした。 LogPolar
は入力と出力が配列で、中心、補間、反転を設定できる場所がよく分かります(CV_WARP_INVERSE_MAP
)。 CartToPolar/PolarToCartを同様の方法で使用する方法はありますか?
import numpy as np
import cv
#sample 2D array that featues concentric circles
circlesArr = np.ndarray((512,512),dtype=np.float32)
for i in range(10,600,10): cv.Circle(circlesArr,(256,256),i-10,np.random.randint(60,500),thickness=4)
#logpolar
lp = np.ndarray((512,512),dtype=np.float32)
cv.LogPolar(circlesArr,lp,(256,256),100,cv.CV_WARP_FILL_OUTLIERS)
#logpolar Inverse
lpinv = np.ndarray((512,512),dtype=np.float32)
cv.LogPolar(lp,lpinv,(256,256),100, cv.CV_WARP_INVERSE_MAP + cv.CV_WARP_FILL_OUTLIERS)
#display images
from scipy.misc import toimage
toimage(lp, mode="L").show()
toimage(lpinv, mode="L").show()
これは、トーン(CT)ワークフローのためのもので、リングアーチファクトを線として表示すると簡単に除外できます。
は、非常にありがとうございました!実際、「LinearPolar」は、それが言うことを行います。残念なことに 'import cv'を使用すると利用できませんでしたが、' opencv import cv'から 'cv.cvLinearPolar'を試してみました。次の日は、大規模なデータセットでパフォーマンスを試してみましょう。ありがとうございました! – Papado
cool。なぜそれが見えないのだろうか?私はバグレポートを提出しようとします。 –
http://code.opencv.org/issues/1729 –