[解決済み] PythonでWallyを見つけるにはどうしたらいいですか?
質問
恥ずかしながら、この流れに乗ります :-)
インスピレーション Mathematica でWaldoを見つけるにはどうしたらよいでしょうか. とそのフォローアップである RでWaldoを見つける方法 のように、新しいpythonのユーザーとして、これがどのように行われるかを見てみたいと思っています。Rよりもpythonの方が適しているように思いますし、MathematicaやMatlabのようにライセンスについて心配する必要はありません。
下のような例では、明らかに単純にストライプを使うだけではうまくいかないでしょう。このような難しい例に対して、単純なルールベースのアプローチが機能するようにできれば、それは興味深いことです。
正しい答えは、元のスレッドで Gregory Klopper が提唱した Restricted Boltzmann Machine (RBM) のアプローチのような ML 技術を使わなければならないと思うので、 [machine-learning] タグを追加しています。このような pythonで利用可能なRBMのコード がありますが、明らかにそのアプローチには学習データが必要です。
で 2009 IEEE International Workshop on MACHINE LEARNING FOR SIGNAL PROCESSING (MLSP 2009)にて発表されました。 を実行したそうです。 データ解析コンペティションを開催しました。ウォーリーはどこだ? . トレーニングデータはmatlab形式で提供されています。なお、このサイトのリンクは切れていますが、データ(のアプローチのソースと一緒に Sean McLoone とその同僚が行ったアプローチのソースは はこちら (SCMのリンク参照)。手始めの1つの場所のようです。
どのように解決するのですか?
以下は mahotas
from pylab import imshow
import numpy as np
import mahotas
wally = mahotas.imread('DepartmentStore.jpg')
wfloat = wally.astype(float)
r,g,b = wfloat.transpose((2,0,1))
赤、緑、青の各チャンネルに分割します。以下は浮動小数点演算を使った方が良いので、先頭で変換します。
w = wfloat.mean(2)
w
は白チャンネルです。
pattern = np.ones((24,16), float)
for i in xrange(2):
pattern[i::4] = -1
縦軸に+1,+1,-1,-1のパターンを作り上げる。これはウォーリーのシャツです。
v = mahotas.convolve(r-w, pattern)
赤から白を引いた色で畳みます。これでシャツの位置が強く反応するようになります。
mask = (v == v.max())
mask = mahotas.dilate(mask, np.ones((48,24)))
最大値を探して、それが見えるように拡張する。ここで、注目の領域を除いて、画像全体をトーンダウンします。
wally -= .8*wally * ~mask[:,:,None]
imshow(wally)
そして、次のようになります。 !
関連
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] Pythonで2つのリストを連結する方法は?
-
[解決済み] pipでPythonの全パッケージをアップグレードする方法
-
[解決済み] Mathematica でWaldoを見つけるにはどうしたらよいですか.
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】Pythonに三項条件演算子はありますか?
-
[解決済み】2つの辞書を1つの式でマージする(辞書の和をとる)には?)
-
[解決済み] SQLAlchemy: 日付フィールドをフィルタリングする方法は?
-
[解決済み] PySparkでデータフレームのカラムをString型からDouble型に変更する方法は?
-
[解決済み] Pythonの文字列書式をリストで使う
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Mathematica でWaldoを見つけるにはどうしたらよいですか.
-
[解決済み] Pythonです。未束縛のメソッドを束縛する?
-
[解決済み] Python 3でバイナリデータを標準出力に書き込むには?
-
[解決済み] データフレームをソートした後にインデックスを更新する
-
[解決済み] 値で列挙名を取得する [重複]。
-
[解決済み] Cythonのコードを含むPythonパッケージはどのように構成すればよいのでしょうか?
-
[解決済み] tensorflowのCPUのみのインストールでダイナミックライブラリ 'cudart64_101.dll' を読み込めなかった
-
[解決済み] Flaskで非同期タスクを作る
-
[解決済み] Pythonでファイルの読み込みと上書きをする
-
[解決済み] Pythonで画像処理?[クローズド]