Quiero transformar en arreglos/imágenes 2D de Python a polar, procese luego y, posteriormente, vuelva a transformarlos en cartesianos. El siguiente es el resultado de ImajeJ Polar Transformer plug-in (utilizado en los círculos concéntricos del código de ejemplo):rápido cartesiano a Polar a cartesiano en Python
El número y disminuye su brillo de las imágenes es bastante grande, así que estaba comprobando si OPENCV tiene un rápido y forma simple de hacer esto.
He leído sobre cv. CartToPolar
y PolarToCart
pero no pude usarlo. Entiendo mejor el LogPolar
donde la entrada y la salida son matrices, y donde puede establecer el centro, la interpolación y la inversión (es decir, CV_WARP_INVERSE_MAP
). ¿Hay alguna manera de usar CartToPolar/PolarToCart de manera similar?
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()
Esto es para una tomografía computarizada (TC) de flujo de trabajo, donde los anillos de los artefactos se pueden filtrar más fácil si aparecen como líneas.
Muchas gracias mucho! De hecho, 'LinearPolar' hace lo que dice. Lamentablemente, al usar 'import cv' no estaba disponible, pero probé' from opencv import cv' y luego 'cv.cvLinearPolar' y funciona. Los próximos días intentaré su rendimiento en grandes conjuntos de datos. ¡Gracias! – Papado
genial. Me pregunto por qué no es visible. Trataré de presentar un informe de error. –
http://code.opencv.org/issues/1729 –