Chigusa080226
@Chigusa080226

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

Python_極座標変換に関して_変換後の画像の大きさ

解決したいこと

例えばですが時計の画像を極座標変換したとします。
この際に変換後の画像サイズは幅が半径、高さが円周長さになると考えております。
しかし、変換後の数字の大きさにずれが出てしまいます。
形状が歪むことは認識しているのですが、変換後の画像サイズの設定方法が正しいか知りたいです。

大きさのずれは微調整するしかないと思っています。

発生している問題・エラー

極座標変換前後の物体(時計でいうと数字)の大きさのずれが大きい。
形状は歪むものだと認識していますが、できる限り形状のゆがみを抑えたいです。

該当するソースコード

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

自分で試したこと

変換後の画像の大きさを元画像と比較し調整。

0

1Answer

次元を考えてみると(ラジアンは無次元なので)縦の長さの単位は$\theta$ではなく$r\theta$になるかと思います。
従って数字の縦横比を極座標変換後も(おおよそ)保持するためには、数字が書かれている半径を$r$として

r \Delta \theta = \Delta r

が成立するように周方向の刻み幅$\Delta \theta$を決めればよいと思います。
$\Delta r$は大体Cartesianでの画像のピクセルサイズとすれば良い近似になると思います。

0Like

Your answer might help someone💌