タグ

algorithmとtipsに関するlepton9のブックマーク (5)

  • 風景から歩行者を消す手軽な方法 | 配電盤

    固定したカメラで撮った動画で、画素ごとに時間について平均を取れば、(適当な速度で)動くものを消せます。Mathematicaだとこんな感じです。(参照:フリーソフトウェアを使う方法) Export["result.jpg", Image[Mean[Map[ImageData, Import["movie.mov", "ImageList"]]]]] おまけ:フレームの平均を計算していく過程(最初の5秒を30秒で) 詳細:風景から歩行者が消えていく様子(リアルタイム版) 追記:画質的には平均ではなく中央値や最頻値を使った方がいいかもしれませんが、「手軽」ではなくなります。「平均でもできるんだ」という「手軽」さの実例だと理解していただければと思います。 中央値:MeanをMedianに置き換えるだけで試せますが、計算時間・消費メモリともに増大します。平均なら約90秒で終わるこの動画(1280x

    風景から歩行者を消す手軽な方法 | 配電盤
  • Game Mechanic Explorer

    A collection of concrete examples for various game mechanics, algorithms, and effects. The examples are all implemented in JavaScript using the Phaser game framework, but the concepts and methods are general and can be adapted to any engine. Think of it as pseudocode. Each section contains several different examples that progress in sequence from a very basic implementation to a more advanced impl

    Game Mechanic Explorer
  • 配列のランダマイズ、出来ますか?(後編)

    前回のエントリ、配列のランダマイズ、出来ますか?(前編)の続きです。 前回のエントリの最後では、次のようなコードを提示し、どこが問題なのかの疑問を提起しました。 // 配列の初期化 var a = []; for(var i = 0; i < 1000; i++) { a[i] = i; } function swap(s, d) { var t = a[s]; a[s] = a[d]; a[d] = t; } // ランダマイズ、その2 for(var i = 0; i < a.length; i++) { swap(i, (Math.random() * a.length) | 0); } ランダマイズのコードの厄介なところは、1回2回実行したところで問題がわからない点で、このプログラムもぱっと見た感じではきちんとランダマイズされているように見えます。ではどうやって問題があるかを判断す

  • ループ回数で見るLINQの遅延評価 - ひろぐ

    LINQには、遅延評価によるイテレーターのループを最小限に行う仕組みが提供されていますが、 全てのメソッドにおいて遅延評価がされるわけではありません。 ToList、Any、Count、First、Singleなどの、 型変換するメソッドや、要素を詳細に判断する必要があるメソッドは、 だいたいその時点で何らかのシーケンスが生成されます。 どのタイミングでシーケンスが生成されるか(ループが発生するか)を正しく理解しないと、 無駄なループにより逆に時間がかかってしまうことがあります。 いくつか例を挙げて、ループの回数を見てみようと思います。 例)100件の要素に対し、2回Whereを行う場合 1回目のWhereで50件に絞り込まれ、2回目のWhereで10件に絞り込まれると仮定します。 var hoge = Array.Where(Func1) .Where(Func2); この時、Where

    ループ回数で見るLINQの遅延評価 - ひろぐ
  • http://japan.internet.com/developer/20060124/26.html

  • 1