python用openCVのインストール@Centos7

python2.7でopenCVのインストールをしてみる。
OSはCentos7

コマンドは下記
%yum install opencv-python

実行してみる。入力データの各画素値をダンプするテスト。
ちなみに入力するデータは→

拡大するとこんな感じ↓の5×5ピクセル画像。

■実行結果
[[[255 255 255]
[255 255 255]
[ 0 0 0]
[255 255 255]
[255 255 255]]

[[255 255 255]
[255 255 255]
[ 0 0 0]
[255 255 255]
[255 255 255]]

[[ 0 0 0]
[ 0 0 0]
[ 0 0 0]
[ 0 0 0]
[ 0 0 0]]

[[255 255 255]
[255 255 255]
[ 0 0 0]
[255 255 255]
[255 255 255]]

[[255 255 255]
[255 255 255]
[ 0 0 0]
[255 255 255]
[255 255 255]]]

255:白、0:黒
横走査を下から上に向かって行っている様子が分かる。

ブラウン運動のシミュレーション可視化

以前ここで試した単純な粒子の中に大きいサイズの粒子を放り込む。周囲から無数の粒子がぶつかりランダムに動くブラウン運動のような動きをみることができる。

■結果
ブラウン運動の可視化

brownian motion simulation visualization by python and openGL

pyOpenGLを使って分子動力学を可視化

以前ここで試したmatplotlibを使った簡単な分子動力学計算の可視化処理ですが、描画が遅いのでOpenGLを使って書き直してみた。python用にはPyOpenGLのパッケージが用意されている。結果だがとても速い!

■結果をgifアニメに落としたものが↓。
gifアニメだと実際の描画より遅いので感動が伝わりにくい。。。
openGLを使った可視化

pythonでopenGLを試す

先日matplotlibを使った簡単な分子動力学の可視化を試したが非常に描画が遅い。ググってみるとどうもmatplotlibはプロッティングの遅さに定評があるらしい。

そんなわけで違う方法での可視化を試す。
試してみるのはopenGL。python用にはpyOpenGLというパッケージが用意されている。当方の環境centos7では下記コマンドで導入が出来た。

%easy_install PyOpenGL

■実行結果
pyopenglのテスト

UbuntuのPythonでpyQtGraphをインストール

作業メモ
まずはUbuntuにてeasy_installをpipをインストール

easy_installのインストール
$ sudo apt-get install python-setuptools

pipのインストール
$ sudo apt-get install python-pip

pipを使ってpyQtGraphをインストール
$ sudo pip install pyqtgraph

分子動力学による粒子のシミュレーション

粒子の動きを分子動力学で計算しmatplotlibで可視化してみる。
ただし各粒子間には相互作用は働かないシンプルな系として考える。
速度の計算はベルレ法(参考)。

各粒子はお互いが見えていないので、初速のまま真っ直ぐに飛び続ける。境界を越えたら反対側へ。

実行の結果は下記。
Molecular dynamics simulation sample

オンラインでのgif圧縮

matplotlibで生成したgifをwebへアップする際に、
少しでもgifファイルサイズを小さくするため下記サイトを使ってみた。

https://compressor.io/

結果は下記。余白が多いようなgifアニメは結構圧縮が効く様子。
930KB -> 530KB

matplotlibでランダムウォーク

ランダムウォークをmatplotlibで表示してみた。
各粒子の動作は乱数で上下左右に動くように設定。
マシンが非力なせいか、粒子数を増やすとgif作成にやたら時間がかかる。

実行した結果が下記。
random work at matplotlib by python

random work sample by python and matplotlib.

cygwinでmatplotlibとscipyを使えるようにする

↓こちらのサイトを参考に、そのままの手順でできました。
http://ssmn0621.blogspot.jp/2016/03/cygwinnumpyscipymatplotlib.html

■pipのインストール
%easy_install-2.7 pip

■scipyのインストール
%pip install scipy

■matplotlibのインストール
%easy_install-2.7 matplotlib==2.0.0

■実行テスト
setenv DISPLAY :0.0 #DISPLAY設定
run xwin -multiwindow -noclipboard #xを起動
python rect.py

■実行結果
matplotlibで描画した長方形図形

■rect.pyの中身は↓

※easy_install , pip
共にpython用外部ライブラリのパッケージ管理ツール
easy_installの方が古いらしく、pipはこれらを置き換える
 目的で開発されている。

任意の数のランダムなxy座標を生成する

リスト形式でappendしてやることで、指定数を追加できる。
xyzならappendで追加する要素を3つにすればOK