5

高解像度の非正方形のオリジナルから (ユーザーによって) トリミングされた、正方形の低解像度の写真があります。低解像度の写真は、サムネイルに縮小されています。正方形バージョンの高解像度コピーを実現するために、同じ方法で元の写真を自動的に (ユーザーの介入は必要なく) 再トリミングしたいと考えています。元のクロッパー座標にアクセスできません。私が持っているのはこの2枚の写真だけです。

私が何を意味するかを説明するために、いくつかの例の画像 (私の Facebook プロフィールから) を以下に示します。

オリジナルの高解像度写真-切り抜いてから縮小した正方形の写真

繰り返しますが、目標は、小さな写真をガイドとして使用して、ソースからより解像度の高い正方形の写真を取得することです。

ソリューションの唯一の制約は次のとおりです。

  1. 一般性: 私はこれをプロフィール写真に使用しているので、顔でのみ機能する場合は完全に受け入れられます! あらゆる種類のランダムな画像に一般化する必要はありません。人の写真から始めるのが最適です。
  2. プラットフォーム: Node を使用していますが、Ruby、Python、Java、または C++ (Node バインディングを使用) でこのプロセスを実行できれば幸いです。ほぼ間違いなく、Heroku または AWS で実行されます。
  3. 速度: かなり高速である必要があります。これを有効にするには、オンラインで実行する必要があります。これは、このアクションを待っているユーザー インターフェイスをブロックすることになるからです。

誰にもアイデアはありますか?私は画像処理についてよく知らないので、どこから始めればよいかわかりません。

編集: 特に Facebook の場合、それほど難しくない解決策があります。元の作物データは、プロフィール画像で利用できます: https://graph.facebook.com/bcherry/profile?fields=pic_crop

これで当面のハードルを乗り越えることができますが、長期的な解決策ではない可能性があるため、以下に示す回答は、より一般的な問題に対して非常に役立ちます.

4

3 に答える 3

1

私のソリューションのJavascript性についてはコメントしませんが、基本的には、元の画像とトリミングされたサイズ変更された画像の間で画像登録を実行しようとしています。

このようなことを行うには、さまざまな方法があります。特定の目的のために、位相相関のようなアプローチから始めます。

編集: ImageMagick を使用して、まさに必要なことを行う素敵なスクリプトを見つけました。NormCrossCorrは、「正規化された相互相関面を計算して、小さな画像が大きな画像内で最もよく一致する場所を見つけます。」

お役に立てれば!

于 2012-08-08T19:40:25.900 に答える
0

ダウンサイジングが平均化によって行われたか、最も近いピクセルによって行われたかは、おそらく非常に重要です。縮小が最も近いピクセルで行われた場合、元の画像のピクセルと縮小/トリミングされた画像のピクセルが対応するピクセル値の一致を探すことができます。画像がロスレス形式で保存されていない限り、一致を非常にあいまいにする必要がありますが、一致する可能性が高いものを特定できれば、トリミングのスケールと位置をすぐに利用できます。

スケーリングの平均化や画像圧縮の損失が大きすぎる場合は、両方の画像にガウス ブラーを適用し、ぼやけた画像の局所的な特徴 (極小値の x、y または原色の最大値。繰り返しますが、一致はあいまいでなければなりません。

于 2012-08-08T19:32:56.260 に答える
0

これには、javascript 以外の何かが必要になります。Pythonでの画像処理について調べてみました。おそらく役立つリンク:

scikits-画像

ピル

画像比較アルゴリズム

機械学習

于 2012-08-08T19:27:44.283 に答える