You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用scikit-image实现图像逆时针方向的极坐标变换

逆时针极坐标变换解决方案

scikit-image的warp_polar函数默认按顺时针方向执行极坐标变换,要实现你需要的逆时针方向变换,最高效的方案是直接对变换后的极坐标结果沿角度维度(水平方向)做翻转,该操作基于numpy数组运算,无额外精度损耗,执行速度极快。

修改后的完整代码

from matplotlib import pyplot as plt
import matplotlib.image as mpimg
import matplotlib.gridspec as gridspec
from skimage.transform import warp_polar
import cv2
import numpy as np

testImg = cv2.cvtColor(mpimg.imread('clock.png'), cv2.COLOR_BGR2GRAY)
pol = warp_polar(testImg, radius=min(testImg.shape)/2)
# 水平翻转极坐标图像,将顺时针角度转为逆时针
pol = np.fliplr(pol)

# 创建子图
gs = gridspec.GridSpec(1, 2)

fig = plt.figure()
ax1 = fig.add_subplot(gs[0, 0]) # 第0行第0列
ax1.imshow(testImg)
ax1.set_title("原始图像")

ax2 = fig.add_subplot(gs[0, 1]) # 第0行第1列
ax2.imshow(pol)
ax2.set_title("逆时针极坐标变换结果")

plt.show()

方案说明

  • warp_polar输出的极坐标图像,行维度对应半径长度,列维度对应角度值,默认按顺时针从0°到360°排列
  • 使用np.fliplr()对极坐标图像做水平翻转,本质是直接反转角度维度的排布顺序,可一步实现顺时针到逆时针的转换,最终得到3、2、1、12、11、10……的预期数字序列
  • 可选替代方案:如果不想修改极坐标输出结果,也可以在执行极坐标变换前对原图做水平翻转,两种方案效果完全一致,可根据使用场景灵活选择

内容的提问来源于stack exchange,提问作者Khashayar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 14:06:03