2

こんにちは、Python イメージング ライブラリを使用して、Web サイトの特定のサイズに画像をトリミングしたいと考えています。問題があります。これらの画像は人の顔を表示するためのものであるため、それらに基づいて自動的にトリミングする必要があります。

顔検出は難しい概念であることはわかっているので、やりたいことに適した face.com API http://developers.face.com/tools/#faces/detectを使用することを考えています。

このデータを使用して、大部分の顔に基づいて選択した領域をトリミングする方法に少しこだわっています。

誰でも助けることができますか?

ジョー

4

2 に答える 2

4

他のオプションの中でも、顔検出を使用してよりスマートなトリミングを行うことができるスマートトリミングの概念を持つPython用のライブラリがあります。それは内部でopencvを使用しますが、あなたはそれから隔離されています。 https://github.com/globocom/thumbor

于 2012-05-23T10:23:20.897 に答える
2

画像から切り取る長方形がある場合は、最初に次のことを試してみてください。

  1. sqrt(2)(オプション) 画像が大きい場合は、長辺よりも大きい寸法で顔の中心に大まかな四角形のトリミングを行います (長方形の場合)。最悪の場合 (45° 回転) でも、重要なものはすべて取得できます。
  2. 顔の向きに基づいて回転します(rough_crop.rotate(math.degrees(math.atan(ydiff/xdiff))、三角のようなものは楽しいです)
  3. 最終的なトリミングを行います。最初のトリミングを行った場合は、顔を中央に配置する必要があります。それ以外の場合は、すべての古い座標を新しい画像に変換 (回転) する必要があります (さらにトリッキー!)。
于 2010-10-13T19:33:13.867 に答える