Pythonって蛇らしいぞ!!

目次
[1] Python + Matplotlibでアニメにトライ
[2] Python + OpenCVでアーーソブ
[3] 逆引きPython標準ライブラリ




[1] Python + Matplotlibでアニメにトライ

(2019/06 半ば)

 Matplotlibでアニメが作れると知ってトライ。参考サイトは、https://water2litter.net/rum/post/python_matplotlib_animation_ArtistAnimation/

   wzMaximaで正弦波の自己相関のグラフを出してgif化した。正弦波をずらすという動きがあるとわかりやすい。視覚化って大事だね。うむうむ。 

 Python 3.6 アニメ化するのにImageMaficのインストールが必要らしいがpillowで動作した。

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation

fig = plt.figure()
plt.grid()
x = np.linspace(-2*np.pi, 2*np.pi, 201)
ims = []
y2 = np.sin(x )
im2 = plt.plot(x,y2,'black')
for i in range(100):
y = np.sin(x - float(i)/15.0) # 右へ
im = plt.plot(x,y,'b')
y3 = np.sin(x)*np.sin(x - float(i)/15.0)
im3 = plt.plot(x,y3,'r')
im3 = im + im2 + im3 # 合成
ims.append(im3)

ani = animation.ArtistAnimation(fig, ims, interval=50)

plt.show() # これを実行するとアニメーションが表示される。

ani.save('animation_test.gif', writer='pillow')
# pillowと書いたらgifが出来た!! Terminalでエラーなし 1回動作のgifだった

  元はani.save('animation_test.gif', writer='imagemagick') だった。ただ、動作はするが1回で止まる。繰り返さない。なんででっかね。知りませぬ。Reloadで動くけど。
     赤いグラフの周期積分は略。グラフにsin(x), sin(x -θ)とか書くのはそのうち。気が向いたらね。

 wxMaximaよりも速い。wxMaximaは動作するまで計算していて。数秒ではなく数十秒かかったし。これはPython利用だな、今後は。

[2] Python + OpenCVでアーーソブ
 OpenCV3.*をインストールした時にC++, Java, PythonのSamplesが出来ていた。そこでPythonのSamplesを動かしてみた。その前にPythonでOpenCVを使えるようにするのだが、それは数年前は個別にインストールしていたが最近はAnacondaを使う。インストール方法は検索すればOK・・・・ なんちて。
****samples/python/   ここにたくさんのCodeが有りまして。ただ、Demo.pyを起動すればここの例題は動作を見ることができる。全部が動作するかは試してないがたくさん動作するぞ(笑)
私のPC環境ではDemo.pyをクリックすると次のような画面が出るでした。



  左にズラズラと並んでいるの、クリックして右上のRunボタンを押すと動く。この中でdeconvolutionというのが秀逸だ。こんなことができるのだね、って感じ。
 

 
  こういうボケ写真が次のように!!  ま~、ちょ~ビックリするぐらいに鮮鋭になったわけではないが画像処理としてこういう機能もあると知る。
 これの理屈に関しては次のようなサイトがあった。



http://www.sic.shibaura-it.ac.jp/~yaoki/gazoeng/gazoeng2008-02.pdf

 画像光学系のある特性によってボケたとすれば、その特性の逆の特性を利用すれば元に戻る!!  というタイヘンにざっくりした理解を私はしました。つまり、詳細は理解してませぬ(´・ω・`)
 Demo.py では、Wiener deconvolution という用語がある。ま~そこらから検索していけば理屈の解説サイトを探す事はできるかも・・・・だが、今の所はスッキリ・シャッキリと元の画像に戻すレベルには達していないのかも知れない(有料アプリであるかどうか知らないし)
 OpenCVの画像処理ライブラリは動作の理屈も理解しようとするとタイヘンに勉強しなければならないであろう。便利な機能がライブラリとして提供されて、108の煩悩を持つ凡庸な私はブラックボックスを使うって事でお茶を濁して(笑) 

[3] 逆引きPython標準ライブラリ

 大津・田中 インプレス2018年 
 これは逆引きという機能はないんじゃ・・・・・って感じ。出版社サイトからソースコードはダウンロード出来る。ま~遅々としてテヘテヘしつつ復習・学習をすればよいがなって感じ。エラー処理、例外に関しては皆無。
 ダウンロードした例題だけではなく解説にあるコードも試すといい。ダウンロードした例題はVScodeでクリックするだけで動作するようにしているが、学習のためには写経が大事だ(笑) 
 学習にはPythonをインタラクティブで使うのもいいし、自分で書いてファイル保存するのもいい。オレはファイル保存するけどね。VScodeで。
 ただ、いろいろと基礎的な解説はあるのだが例えば, set, ってどういうシーンで使うのか。要するにオレとしては用途が分からない。
 これこれ、こういうものがあります・・・・・というのと、これはこういう風に使いますってのと両方欲しいところだが、ま~実際に何か作りつつ実践しつつ築いていくものなのであろう・・・・・プログラマー目指すなら・・・・おら違う(笑)

 

 

 


▲このページのトップへ