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!

画像処理_楕円の極座標変換

解決したいこと

現在以下サイトを参考にして、円形に並んでいる物体の極座標変換は行えるようになりました。
https://qiita.com/Kazuhito/items/065fd25d56c0238a1d72
次ステップとして楕円に並んでいる物体(もしくは正面ではなく斜めから撮影した画像)の極座標変換を行いたいと考えております。しかし、ネットを調査してもそれらしきものが見当たりません。ご存知の方教えていただけると助かります。

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

◆円の極座標変換プログラム

def polar(img_canny,enx,eny,ind,outd):
    R = ind + (outd - ind )/2
    h = round(R * 2 * 3.14)
    #極座標変換:https://qiita.com/Kazuhito/items/065fd25d56c0238a1d72
    # キュービック補間 + 外れ値塗りつぶし + 極座標へリニアマッピング
    flags = cv2.INTER_CUBIC + cv2.WARP_FILL_OUTLIERS + cv2.WARP_POLAR_LINEAR
    # 引き数:画像, 変換後サイズ(幅、高さ)、中心座標(X座標、Y座標)、半径、変換フラグ
    linear_polar_image = cv2.warpPolar(img_canny, (outd, h), (enx, eny), outd, flags) 
    #画像の回転:https://note.nkmk.me/python-opencv-numpy-rotate-flip/
    img_rotate_90_clockwise = cv2.rotate(linear_polar_image, cv2.ROTATE_90_CLOCKWISE)

    return img_rotate_90_clockwise,h

自分で試したこと

ネットで調査したが、openCVを使用しての方法が見つからなかった。
以下サイトのように角度補正(射影変換)?してから円の極座標変換の方が楽でしょうか?
https://qiita.com/nrnrk/items/7aecba89ffb02f0b8d12
宜しくお願い致します。

0

1Answer

ものすごく雑に言えば楕円は円を一方向に「押しつぶした」ものなので、円に引き伸ばしてから極座標変換するのが(少なくとも第一段階としては)無難だと思います。
無論処理対象の文字は歪みますが、そもそも元データの条件が悪いので妥協案として適当かと思います。

1Like

Comments

  1. @Chigusa080226

    Questioner

    ご回答ありがとうございます。
    かしこまりました。
    まずはご教授いただいた内容で試してみたいと思います。

Your answer might help someone💌