Mathematicaは知りません。。。残念な。しかし、私はほとんどの場合、上記の答えが好きです。
それでも、縞模様だけに頼って答えを収集することには大きな欠陥があります(個人的には1つの手動調整で問題はありません)。彼らが時々シャツのパターンを壊すことを示す例(ここでは Brett Championによってリストされています)が提示されています。したがって、それはより複雑なパターンになります。
空間関係とともに、形状IDと色のアプローチを試します。顔認識と同様に、特定の比率で幾何学的パターンを探すことができます。注意点は、通常、これらの形状の1つ以上が隠れていることです。
画像のホワイトバランスを取得し、画像の赤と赤のバランスを赤にします。Waldoは常に同じ値/色相であると思いますが、画像はスキャンからのものであるか、不良コピーである可能性があります。次に、常にWaldoの実際の色の配列を参照してください:赤、白、ダークブラウン、ブルー、ピーチ、{靴の色}。
シャツのパターンと、ウォルドを定義するパンツ、メガネ、髪、顔、靴、帽子があります。また、画像の他の人に比べて、ウォーリーはやせっぽちです。
だから、この写真で人の身長を取得するためにランダムな人を見つけてください。画像内のランダムなポイントでの束の平均の高さを測定します(単純な輪郭ではかなりの数の個人が生成されます)。それぞれが互いに標準偏差内にない場合、それらは今のところ無視されます。高さの平均を画像の高さと比較します。比率が大きすぎる場合(例、1:2、1:4、または同様に近い)、再試行してください。これを10(?)回実行して、サンプルがすべてかなり接近していることを確認し、標準偏差の範囲外の平均を除外します。Mathematicaで可能ですか?
これはあなたのWaldoサイズです。また、細いので、5:1または6:1(または何でも)ht:wdを探しています。ただし、これでは不十分です。Waldoが部分的に非表示になっている場合、高さが変わる可能性があります。だから、あなたは〜2:1の赤白のブロックを探しています。しかし、より多くの指標が必要です。
- ウォルドはメガネを持っています。赤白の上0.5:1の2つの円を検索します。
- 青パンツ。赤白の端と彼の足までの距離の間の任意の距離内で同じ幅にある任意の量の青。彼はシャツを短く着ているので、足が近すぎないことに注意してください。
- 帽子。頭頂部の2倍までの距離で赤白。髪が黒く、おそらく眼鏡が必要です。
- 長袖。メインの赤白からある角度で赤白。
- 黒髪。
- 靴の色。色がわかりません。
それらのどれでも適用できます。これらは、写真の中の類似の人物に対する否定的なチェックでもあります。たとえば、#2は赤白のエプロン(靴に近すぎる)の着用を否定し、#5は明るい色の髪を排除します。また、形状はこれらの各テストの1つの指標にすぎません。。。指定された距離内の色のみで良好な結果が得られます。
これにより、処理する領域が絞り込まれます。
これらの結果を格納する領域の集合を生成しますする必要があり、それにワルドを持っています。他のすべてのエリアを除外し(たとえば、エリアごとに、平均的な人のサイズの2倍の大きさの円を選択)、@ Heikeがレイアウトしたプロセスを実行して、赤以外のすべてを削除します。
これをコーディングする方法について何か考えはありますか?
編集:
これをコード化する方法についての考え。。。Waldo赤以外のすべての領域を除外し、赤い領域をスケルトン化し、それらを1つのポイントに切り詰めます。ウォルド髪の茶色、ウォルドパンツの青、ウォルド靴の色についても同じようにします。Waldoの肌の色を除外し、輪郭を見つけます。
次に、赤以外のすべての赤の領域を(大量に)拡張してから、スケルトン化して剪定します。この部分は、可能なウォルド中心点のリストを提供します。これは、他のすべてのWaldoカラーセクションと比較するマーカーになります。
ここから、(拡張された領域ではなく)スケルトンの赤い領域を使用して、各領域の線を数えます。正しい数(4つですよね)があれば、これは確かに可能な領域です。そうでない場合、私はそれを除外するだけだと思います(Waldoのセンターなので...まだ彼の帽子かもしれません)。
次に、上に顔の形、上にヘアポイント、下にパンツポイント、下に靴ポイントなどがあるかどうかを確認します。
まだコードはありません-まだドキュメントを読んでいます。