Python 2d dizilerinde/resimlerinde polarize dönüştürmek, sonra işlemek ve sonra bunları kartezyen haline dönüştürmek istiyorum. Görüntülerinhızlı Kartezyen Kutupsal için Kartezyen Python
numarası ve kararır oldukça büyük yüzden OpenCV hızlı olup olmadığını ve kontrol ediyordu: Aşağıdaki (örnek kod konsantrik daireler üzerinde kullanılır) ImajeJ Polar Transformer eklentisinden sonucudur Bunu yapmanın basit yolu.
Cv hakkında okurum. CartToPolar
ve PolarToCart
ancak onu kullanamadım. Girdi ve çıktının dizildiği ve merkez, enterpolasyon ve inversiyon ayarlayabileceğiniz (yani CV_WARP_INVERSE_MAP
) LogPolar
'u daha iyi anlarım. CartToPolar/PolarToCart'ı benzer bir şekilde kullanmanın bir yolu var mı?
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()
Bu tomografi içindir (BT) iş akışı onlar çizgiler olarak görünür eğer halkalar eserler daha kolay filtre edilebilir nerede. CV kaynak kodunun, bir LinearPolar
sayılı belgeden bahsedildiği belirtilmektedir.
çok çok teşekkür ederiz! Doğrusu, 'LinearPolar' dediği şeyi yapar. Ne yazık ki 'import cv' kullanarak kullanılamıyordu, ama ben opencv import cv'den sonra' cv.cvLinearPolar' denedim ve çalıştım. Sonraki günlerde büyük veri setlerinde performansını deneyeceğim. Teşekkür ederim! – Papado
havalı. neden görünür değil acaba? Bir hata raporu doldurmayı deneyeceğim. –
http://code.opencv.org/issues/1729 –