[OpenCV] [Python]使用warpPolar()执行图像的极坐标转换


简介

当您要将图像转换为极坐标时(例如,当您要分析模拟仪表时),这是一条备忘。
下面的示例是一个时钟,但是... ??
m08sf-wztf9.gif

显然,已弃用OpenCV3系列中的linearPolar()和logPolar(),因此我正在使用warpPolar()。

源代码

请参阅以下存储库以获取完整的源代码。
这篇文章包含节选。

<表格>

Kazuhito00 / cv-warpPolar-示例

cv-warpPolar-example是OpenCV中极坐标变换/逆变换的执行示例。


线性转换为极坐标

1
2
3
4
# キュービック補間 + 外れ値塗りつぶし + 極座標へリニアマッピング
flags = cv2.INTER_CUBIC + cv2.WARP_FILL_OUTLIERS + cv2.WARP_POLAR_LINEAR
# 引き数:画像, 変換後サイズ(幅、高さ)、中心座標(X座標、Y座標)、半径、変換フラグ
linear_polar_image = cv2.warpPolar(image, (300, 1000), (480, 270), 220, flags)

01.png arrow2.png 02.png

来自极坐标的逆变换

1
2
3
# 逆変換(リニア)
flags = cv2.INTER_CUBIC + cv2.WARP_FILL_OUTLIERS + cv2.WARP_POLAR_LINEAR + cv2.WARP_INVERSE_MAP
linear_polar_inverse_image = cv2.warpPolar(linear_polar_image, (960, 540), (480, 270), 220, flags)

02.png arrow2.png 04.png

线性转换为对数极坐标

1
2
3
4
# キュービック補間 + 外れ値塗りつぶし + 対数極座標へリニアマッピング
flags = cv2.INTER_CUBIC + cv2.WARP_FILL_OUTLIERS + cv2.WARP_POLAR_LOG
# 引き数:画像, 変換後サイズ(幅、高さ)、中心座標(X座標、Y座標)、半径、変換フラグ
log_polar_image = cv2.warpPolar(image, (300, 1000), (480, 270), 220, flags)

01.png arrow2.png 03.png

来自极坐标的逆变换

1
2
3
# 逆変換(対数)
flags = cv2.INTER_CUBIC + cv2.WARP_FILL_OUTLIERS + cv2.WARP_POLAR_LOG + cv2.WARP_INVERSE_MAP
log_polar_inverse_image = cv2.warpPolar(log_polar_image, (960, 540), (480, 270), 220, flags)

03.png arrow2.png 05.png

参考

OpenCV几何图像转换

或更多。