PILを用いた、ホモグラフィ変換の実装例を紹介します。EngineのPython環境でも実行が可能です。ちなみに、PILもNumpyもC言語ベースなので、Pythonにしては軽快に動作します。他の四角形の形に当てはめるよう変換する処理のこと」をホモグラフィ変換と言います。ある対象物を斜めから撮影した画像から、その対象物を真正面から見た場合の画像へと変換する処理などで用いられます。lnc.詳細は、こちらの資料にて丁寧に解説されています。回転まで対応できますが、台形には対応できません。原理/実装はとても似ています。行列計算ライブラリNumpyと、画像処理ライブラリPillow(PIL)をインストールします。GAE上での制約を満たすよう、各ライブラリは少し古いものを指定しています(17/12/07現在)。PILでも動作すると思います。以下の条件を満たす変換処理を実装します。「切り取り範囲」と「変換後」、共に四角の座標を用いて指定。「変換後」の座標指定には0以上の値のみ許容。画像はRGB/グレースケールどちらでも可。-*-"""ホモグラフィ変換のモジュール以下の2点から、指定した切り出し範囲の描画内容を引き伸ばした画像を生成する。変換後の画像サイズは、移動先の各座標にて囲まれる領域がちょうど収まるサイズとする。ホモグラフィ変換に必要な切り出し座標・変換先座標のパラメータを生成。いずれの切り出し座標にも通じる、変換後の座標との関係を示す数式(行列)を求めるイメージ。出力する画像サイズを計算する。変換後の画像がすっぽりと収まるサイズへと変換する。オーダーの画像処理で、数十ms程度高速にはなる。変換元を変換先に対応づけるホモグラフィ行列を求める。線形法計算のための行列を作る。数百pxオーダーの画像(スマホから投稿されるようなサイズ感)なら短いと数msで処理ができるので、業務で使い得るスコアかと。ちなみに、元画像サイズの差が、そのまま処理時間に比例して影響するようです。下処理も含め、ホモグラフィ変換自体は簡単に使えます。Pythonの自力ホモグラフィ変換の実装例も調べて試しました。素直に1pxずつ計算してみると、計算時間が実用に耐え得るものではなかったです。PILのImage.transformは偉大。内包する個別データへのアクセスは遅いということ。単純なlistよりも遅いです。向き、不向きがあるのですね。ちなみに、直近アプリ作るのに使ってるFusetoolsというプロトタイピングツールでの、ホモグラフィ変換の必要パラメータを集めるための実装例をこちらに記載していたりします。Ito@naosk8はじめまして。エンジニアリングと犬猫が平等に好きな器用貧乏です。他の業種や役職の人と話すのも好きで、大志だけは常に携帯してます。現在は、妻の留学に帯同してアメリカ生活中です。専攻の計量経済学を拠り所に、最近は機械学習を実用化したアプリ作りに没頭してます。upLoginユーザーは見つかりませんでした。