特許の出願を行いました。

14-5. ジーンズ写真の「台形補正」と「丈の取得」

やること

次の写真から「わたり幅」「股上」「股下」を測定してみます。

それぞれの長さはこの部分です。画像にA4用紙を含めることによって絶対値が取得できます。

※「定義が違うぞ」というコメントを頂戴しています。次回はもう少しがんばります。

実行環境

WinPython3.6をおすすめしています。

WinPython - Browse /WinPython_3.6/3.6.7.0 at SourceForge.net
Portable Scientific Python 2/3 32/64bit Distribution for Windows

参考にさせていただいたサイト

本当にありがとうございます。

OpenCVを使って画像の射影変換をしてみるwithPython - Qiita
# はじめに ( 上記の記事を作成するにあ...
OpenCVを使ってマウスイベント(手動)でテニスコート領域を選択できるようにする - Qiita
#やりたいこと ↓の画像のようにテニスコート領域をマウスイベントで選択できるようにします。 具体的には、コート隅の4点をクリックすることで、テニスコート領域を作成します。 テニスボールの着弾点などを記録できるようにしようとしてます...

第1段階(台形補正)

プログラム実行すると画像が立ち上がります。A4用紙の四隅を「コ」の字の順でクリックします。

A4用紙が認識されました。

すると、A4用紙がキレイな長方形になるように補正され、新しい画像が立ち上がります。

第2段階(長さの取得)

試しに、A4用紙の長辺の長さを取得してみます。2ヶ所クリックします。

pointlist[0] = (156, 425)
pointlist[1] = (156, 630)
長さ:297.41 mm

正解値は297.0mmですから、誤差はほとんどありません。1ピクセルを争う卓越したクリック技術です。

「わたり幅」「股上」「股下」の順で測定してみます。

pointlist[2] = (426, 679)
pointlist[3] = (214, 670)
長さ:308.36 mm
pointlist[6] = (290, 674)
pointlist[7] = (267, 896)
長さ:324.34 mm
pointlist[4] = (346, 80)
pointlist[5] = (290, 673)
長さ:865.58 mm

取得できました。

ちなみに、よこ画像にも対応しています。(たて・よこは自動検出してくれます)

pointlist[0] = (656, 350)
pointlist[1] = (659, 567)
長さ:317.2 mm
pointlist[4] = (658, 489)
pointlist[5] = (886, 510)
長さ:334.66 mm
pointlist[2] = (79, 439)
pointlist[3] = (658, 489)
長さ:849.42 mm

わずかなクリック位置の違いによって異なる値が出るのはお許しを。

タイトルとURLをコピーしました