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!

画像を引き延ばす際のエラー

解決したいこと

画像のリサイズに関して、楕円を円に修正するプログラムを書いています。
以下プログラムのように楕円を描画(実際はpyside2で描画)し、
それが円になるように画像を引き延ばすというものになります。

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

以下プログラム例で行くと円にするためには元画像を横に35広げればいいと考えていました。
h(255)-w(220)=35
h:楕円の縦
w:楕円の横

しかし、元画像を横に105で引き延ばさないと円にならなかった。
なぜ3倍の値を用いて画像をリサイズしないといけないのか分かりません。

ご回答の程宜しくお願い致します。

該当するソースコード

#楕円の中心座標
#実際のプログラムにはユーザーが描画したデータを入れる
x = 292
y = 247

#楕円の横と縦の値
#実際のプログラムにはユーザーが描画したデータを入れる
w = 220
h = 255

#楕円描画仮:cv2.ellipse(img, ((中心座標), (横, 縦), 角度), (色),線の太さ)
cv2.ellipse(img, ((x, y), (w, h), 0), (0, 0, 255),1)

#元画像の大きさ確認
imgh, imgw, imgc = img.shape

#円になるように画像の横幅を変更 元画像の横幅+楕円の縦と横の差
imgw = imgw + (h-w)

#サイズの変更:なぜか105広げないと円にならなかった。。。
#size = ((imgw),480) << これだと円にならない
size = ((640+105),480)

img_resize = cv2.resize(img,   # 画像データを指定
                        size   # リサイズ後のサイズを指定                    
                        )

自分で試したこと

ここに問題・エラーに対して試したことを記載してください。
ネットで調査したが、答えにたどり着けなかった。

0

1Answer

幅640の画像を35引き伸ばしても楕円の部分だけ変形するわけではなく、余白の部分も均等に伸びます。楕円の幅は画像の幅のおよそ1/3なので、画像を引き伸ばした長さの1/3程度しか伸びません。

0Like

Comments

  1. @Chigusa080226

    Questioner

    なるほど!!
    ありがとうございます。
    助かりました!

Your answer might help someone💌