Python

SfMで作成された巨大な点群の鳥瞰視点画像を作成する

車載のセンサーの観測情報つかってSfMをおこない環境地図を作成することがある。 この環境地図はかなり大きいサイズになり、点群は専用のViewerが必要になるため、他の人に気軽に共有して見てもらうみたいなことができないのが面倒だと思っている。 ここでは…

MVTecADのデータをPyTorchから利用するためのデータセットクラスを開発した

MVTecADという製品検査における異常検知用のデータが公開されている。それほど扱うのが難しいデータではないが、かといってデータセットクラスの実装にはそれなりに時間がかかる。 ということでこのデータを扱うためのPyTorchのDatasetクラスを開発して公開…

np.isin()について

概要 np.where()を使って特定の条件を満たす項目を抜き出す処理は良く行う。 今回はその発展として、複数の値に一致する項目を抜き出してきたいという状況を考える。 そのような状況では、np.isin()を使えばよいという話。 詳細 具体的には以下のようなフル…

OpenCVでconvexHullで穴埋めされた領域を取り出す

概要 Opencvで輪郭を取得して、更に凸包領域を取り出すのはとても簡単にできる。 以下の公式のとおりである。 領域(輪郭)の特徴 — OpenCV-Python Tutorials 1 documentation ところで、この凸包領域と元の輪郭の間にある凹み領域を入手したくなったので、入…

np.uniqueの結果をカウントで並びかえる

np.uniqueを使うと、配列の中の重複する要素を一つにしてくれる(関数名からもわかるぐらい単純な動作) これだけでも十分なんだけど、要素の数をキーにして並び変えたいと思うことがあるはず。 shellならば以下でできる。 $ cat $FILE | uniq -c | sort -n …

css changes not synced for heroku django based app on virtualbox shared folder.

概要 virtualbox上でherokuのアプリを作っていたのだが、共有フォルダにソースを置いてホストOS上からCSSをいじるとなぜかうまく反映されないため困った。 Webサーバを再起動したりキャッシュっぽいファイルを手当たり次第に消したりしてみたが、いっこうに…

pylruをマルチスレッドで使うと「KeyError:」が発生する

githubにissueがないのでここに書く。 以下のような2スレッドで同時にlrucacheに書き込むとエラーが起きる。 test.py import pylru import threading import random cache = pylru.lrucache(1024) def f(): while True: key = 'key %s' % (random.randint(1,…

pythonのsftpserverを試す

pythonで書いているバッチのテスト用にsftpサーバを簡単に立ち上げたかった。 探してみるとちょうどよいsftpseverというものを見つけたので使い方を含めてメモ。 GitHub - rspivak/sftpserver: A simple single-threaded SFTP server gist.github.com

leapmotionでキー入力がしたいのでプロトタイプを作ってみた

勢いでleapmotionを新宿のヨドバシカメラで買ってきてしまった。 実は前々からジェスチャーで文字入力をやってみたかった。環境 Ubuntu 14.04.4 LTS Leap_Motion_SDK_Linux_2.3.1 どのような入力を実現するか手の指を一本折り曲げた状態で手を左右上下前後に…

OpenCVとWebカメラで動画像処理を始める。

やりたいこと ビリヤードのテーブル上のたまの動きを撮影して、自動的にスコアをつけたり、あとで試合の運びを確認できるようにしたい。 そのために、opencvで動画を解析するのが今回の目的。 * 動作環境: Ubuntu 14.04.2 LTS * Webカメラ: logicool c920t…

CentOSでpymilterをインストールしたメモ(2)

以下のエントリの続き CentOSでpymilterをインストールしたメモ - いわゆる備忘録持ってきたpymilterのは以下にはサンプル(sample.py)が含まれている。 それを簡単に書き換えて使ってみる 設定 sample.pyを書き換える # A simple milter. # Author: Stuart D…

pythonのデコレータを勉強するためにmemoizedにlruとtimeout機能を追加してみた

Pythonのデコレータって面白い。 メモ化(Memoization)も簡単に、そして美しく実現できる。何かDBにアクセスして得られる結果をメモ化でキャッシュして、アプリケーションの動作を高速化したりできるだろう。ただ無尽蔵に引数と結果の組み合わせをキャッシ…

ディレクトリ内のソースコードの行数を再帰的にカウントする

ふと自分が書いたソースコードが今何行か知りたい時ってある。 ちょっと自己満足に浸りたい。そんな時だ。ひとつのファイルの行数をカウントするのは簡単。 wcコマンドを実行すればいいだけだ。 $ wc -l testfs.py 130 testfs.py ところがwcには再帰的にディ…

PythonFuseを使ってみた。

Fuseって面白いツールだと思う。簡単にファイルシステムに機能を追加できるのだから。 そしてこのライブラリはCは当然だけど、RubyやらPythonからも使える。今回はPythonを使ってFuseを使ってみた。 OS: Ubuntu 13.04 インストールするもの python-fuse ソ…