小编Pap*_*ado的帖子

在Python中快速笛卡尔到Polar到笛卡儿

我想将Python 2d数组/图像转换为极性,然后处理,然后将它们转换回笛卡尔.以下是ImajeJ Polar Transformer插件的结果(用于示例代码的同心圆):

在此输入图像描述

图像的数量和颜色非常大,所以我正在检查openCV是否有一种快速而简单的方法来执行此操作.

我读到了关于cv.CartToPolarPolarToCart但我没有使用它.我更清楚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()
Run Code Online (Sandbox Code Playgroud)

这适用于层析成像(CT)工作流程,如果环形工件显示为线条,则可以更容易地过滤掉环形工件.

python opencv numpy image-processing

7
推荐指数
2
解决办法
1万
查看次数

标签 统计

image-processing ×1

numpy ×1

opencv ×1

python ×1