python如何用笛卡尔_在Python中快速笛卡尔到Polar到笛卡儿

最新版本的opencv支持函数cv2.linearPolar。

这可能是另一个不涉及使用opencv的解决方案:

def polar2cart(r, theta, center):

x = r * np.cos(theta) + center[0]

y = r * np.sin(theta) + center[1]

return x, y

def img2polar(img, center, final_radius, initial_radius = None, phase_width = 3000):

if initial_radius is None:

initial_radius = 0

theta , R = np.meshgrid(np.linspace(0, 2*np.pi, phase_width),

np.arange(initial_radius, final_radius))

Xcart, Ycart = polar2cart(R, theta, center)

Xcart = Xcart.astype(int)

Ycart = Ycart.astype(int)

if img.ndim ==3:

polar_img = img[Ycart,Xcart,:]

polar_img = np.reshape(polar_img,(final_radius-initial_radius,phase_width,3))

else:

polar_img = img[Ycart,Xcart]

polar_img = np.reshape(polar_img,(final_radius-initial_radius,phase_width))

return polar_img

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值