TrainScannerの紹介とUbuntu 16.10での導入方法
東京メトロ15000系の甲種輸送があったので、車両全体を一枚の写真にしてみた。
こういった編成全体を横長な写真に収めるのはスリットスキャンという特殊な撮影方法を用いる必要がある。
TrainScannerは動画を加工することで、スリットスキャンで撮影したような横長な写真を生成するソフトウェアだ。
スリットスキャンで歪みのない写真を撮影するにはフィルムの送り速度を車両の動きに合わせなければいけないが、TrainScannerはある程度車両が加速してもうまく繋ぎあわせてくれる。
Ubuntu 16.10でTrainScannerを使う
必要なパッケージのインストール
1 |
sudo apt install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev python3-dev python3-pyqt5 python3-numpy |
OpenCVのダウンロードとコンパイル
TrainScannerはPython3で書かれているが、UbuntuのOpenCVパッケージにPython3用のモジュールが含まれておらず自力でソースからコンパイルする必要がある。
OpenCVは http://opencv.org/downloads.html からダウンロードする。
zipを展開し、展開されたディレクトリの中でターミナルを開く。
1 2 3 |
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_PYTHON_SUPPORT=ON . make sudo make install |
TrainScannerをダウンロード
https://github.com/vitroid/TrainScanner
zipをダウンロードしてもいいし、
1 |
git clone https://github.com/vitroid/TrainScanner.git |
としてもいい。
使い方はREADME_ja.mdを参照。
バグ(?)
trainscanner_gui.py
を見る限り、OSの言語判定にはSystemLanguage関数が使用されている。
その関数ではOS固有のコードで言語を判定しており、Mac OS XまたはWindowsでのみ動作する。
SystemLanguageで日本語と判定されれば、日本語用の翻訳ファイルが読み込まれるようだ。
そのためOSの設定に関わらずUbuntuではGUIの言語が必ず英語になる。
QLocaleクラスを使うようにするプルリクエストがマージされたので修正されました。