Python

matplotlibで動的に描画する時はdraw_idle

matplotlibで動的に描画する時はdraw_idleを使おう。 draw_idle(*args, **kwargs)[source] Request a widget redraw once control returns to the GUI event loop. Even if multiple calls to draw_idle occur before control returns to the GUI event loop…

wxPythonで自作ダイアログを表示

wxPythonでファイルダイアログ - メグタンの何でもブログ の続き wxformbuilderでオリジナルダイアログを作成 wxformbuilderでFormsの左から3番目のDialogを追加 その下にLayoutの左端wxBoxSizerを追加 このwxBoxSizerの中に自由にボタンとかテキストボック…

pythonでgray16画像ファイルを読み込む方法

open3dでカラー画像と奥行き画像からポイントクラウドデータを作成する時に、RGB画像ファイルと16bitUINTグレー画像の読み込みが必要となる。 open3dには標準でこの読込み関数が定義されている。 import open3d as o3d source_color = o3d.io.read_image("..…

wxPythonでファイルダイアログ

wxPythonで長時間実行されるタスク中にGUIの応答性を維持する方法 - メグタンの何でもブログ の続き wxPythonでファイルダイアログを開く Openダイアログ def m_menuOpenOnMenuSelection( self, event ): wildcard = "Python source (*.py)|*.py|" \ "Compil…

wxPythonで長時間実行されるタスク中にGUIの応答性を維持する方法

wxpythonのwx.CallLater - メグタンの何でもブログ の続き 画面のボタンはStartとAbortの2つになってます。 長時間実行されるタスク中にGUIの応答性を維持する CPUを使い続ける計算等でメインスレッドを占有すると、ウインドウが固まってしまい操作性が阻害…

wxpythonのwx.CallLater

wxpythonのwx.CallAfter - メグタンの何でもブログ の続き ディレイを入れて実行するwx.CallLater wx.CallLaterでは指定したms後に処理を行うことができる。 自身の中で繰り返しリスタートする事でwx.Timerの様に定期実行ができる。 メインスレッド(UIスレッ…

wxpythonのwx.CallAfter

wxpythonのwx.Timer - メグタンの何でもブログ の続き 他のスレッドからGUI操作する時の wx.CallAfter wx.CallAfterは処理をメインスレッド(GUIスレッド)のキューに登録して実行してくれる関数です。 他のスレッドからGUIの部品操作を行う時に使用する事が出…

wxpythonのwx.Timer

wxpythonのMatplotlibにラバーバンドを表示する - メグタンの何でもブログ の続き GUIで一定周期で処理を繰り返したい時にはwx.Timerが便利 GUI上で一定周期で点滅表示とかを行いたい時にはメインスレッド(UIスレッド)で動くwx.Timerが便利 手書きで追加し…

wxpythonのMatplotlibにラバーバンドを表示する

wxpythonでmatplotlibの表示(高速化) - メグタンの何でもブログ の続き マウスでラバーバンドを表示してmatplotlibの領域を選択したい時 matplotlibにはRectangleSelectorがあるのでそれを利用すると良い。 from matplotlib.widgets import RectangleSelect…

wxpythonでmatplotlibの表示(高速化)

wxpythonでmatplotlibのクリック座標取得 - メグタンの何でもブログ の続き Matplotlibの表示データが多い時に表示の負荷を減らす方法 import matplotlib as mpl mpl.rcParams['path.simplify_threshold'] = 1.0 デフォルトでは1/9が設定されている。 値は0.…

wxpythonでmatplotlibのクリック座標取得

wxpythonでmatplotlibのポイント座標取得 - メグタンの何でもブログ の続き wxpythonでmatplotlibのイベント処理 Matplotlibのイベントには次のようなものがある。 Event name class Description 'button_press_event' MouseEvent mouse button is pressed '…

wxpythonでmatplotlibのポイント座標取得

wxPythonで3Dチャートを表示 - メグタンの何でもブログ の続き wxpythonのデスクトップアプリ上に表示したmatplotlibグラフの座標読み取り pick_eventを設定 self.fig, self.ax = plt.subplots() self.fig.canvas.mpl_connect('pick_event', self.on_pick) …

wxPythonで3Dチャートを表示

wxPythonでMatplotlibを使う - メグタンの何でもブログ の続き Matplotlibで3Dグラフ表示 3Dのグラフを描画する時には 次の様に変える。 self.fig, self.ax = plt.subplots(subplot_kw={"projection": "3d"}) 表示データは例えばこんな感じ def SampleData…

wxPythonでMatplotlibを使う

wxFormBuilderでデスクトップアプリ作成の基礎 - メグタンの何でもブログの続き 起動用mainファイル main.py # -*- coding: utf-8 -*- import wx import win32gui import ctypes import o3dMain class MyApp(wx.App): def OnInit(self): frame = o3dMain.o3d…

wxFormBuilderでデスクトップアプリ作成の基礎

SpyderとwxFormBuilderを使ってPythonデスクトップアプリ作成の基礎メモ 1. まずはSpyderで新規プロジェクトを作成 Spyderを起動して[プロジェクト]-[新規プロジェクト]でプロジェクトのフォルダーを作る 2. wxFormBuilderでNew_Projectを作成 wxFormBuilder…

Pythonでデスクトップアプリを作成しよう

Pythonでデスクトップアプリを作成する場合のメモ 基本的なところは省略。 あまり書かれていない事の覚書中心 ①AnacondaでPython環境を一気にインストール www.anaconda.com Anaconda Navigatorに追加しておきたい channels: conda-forge(必須) おまけ ope…

fast.ai で deep learning を勉強しよう(7)Lesson 3: Planet Amazon dataset

Lesson3 では、Kaggle のデータセットを使ってマルチラベルについて学びます。 以下は Planet Amazon dataset の部分を抜き出した内容に簡単な解説を付けたものです。 Windows10 Python3.7.1 fastai 1.0.57 Pytorch1.2.0 (py3.7_cuda100_cudnn7_1) cudatoolk…

fast.ai で deep learning を勉強しよう(6)Colaboratory

メモリーを多く積んだGPUボードを持っていない時にはクラウドで勉強した方が現実的です。 Google の無料 Jupyter 環境である Colaboratory で fastai を実行する方法です。 Accessing Colab Configuring your notebook instance Saving your notebook Saving…

fast.ai で deep learning を勉強しよう(5)Performance Tips and Tricks

fast.ai を WindowsPC で勉強する時の環境整備の話です。 Windows10 Python3.7.1 fastai 1.0.57 Pytorch1.2.0 (py3.7_cuda100_cudnn7_1) cudatoolkit10.0.130 cudnn7.6.0 画像読込の高速化 libjpeg-turbo のインストール Pillow-SIMD のインストール バイナ…

fast.ai で deep learning を勉強しよう(4)準備の補足

Anacondaの使い方がだいぶ変わってきているので、Win10へのインストール方法を再度メモ。 CUDA のインストールに関しては 「fast.ai で deep learning を勉強しよう(1)準備」を参照。 fastaiの仮想環境のJupyterを直接起動するショートカット作成方法を追…

fast.ai で deep learning を勉強しよう(3)Lesson 2: Teddy bear detector

Lesson2では、まずGoogle画像検索を使用して、トレーニング用の画像を集めることから始めます。流れとしては次のようになります。 Google Chrome で画像を検索し、表示されてた画像のURLを書き出したファイルを作成。 そのファイルに書かれた画像をダウンロ…

fast.ai で deep learning を勉強しよう(2)Lesson 1: Image classification

Practical Deep Learning for Coders, v3 のサイトで Deep Learning を勉強しましょう。 いきなり実践ですから、Deep Learning について用語とイメージぐらいは掴んでおいてから取り組んだ方が良いと思います。用語の意味とか内容に関して分からなくても、説…

fast.ai で deep learning を勉強しよう(1)準備

Practical Deep Learning for Coders, v3 のサイトで Deep Learning を勉強しましょう。 fast.aiとは 環境構築: Win10 Anaconda インストール GPUを使用する場合 fastai用仮想環境の作成 (option)Anaconda に Proxy設定が必要な時 仮想環境作成(ベースか…

Polyphonyって何だろう(6)使用例:FIRフィルター

Python で書いた関数を Verilog HDL に変換する高位合成コンパイラである Polyphony を使ってみたいと思います。固定小数点の掛け算もできるようになったので、FIRフィルターを記述して、pythonなので、グラフ表示で機能確認をしてみたいと思います。 FIRフ…

Polyphonyって何だろう(5)使用例:固定小数点掛け算

Python で書いた関数を Verilog HDL に変換する高位合成コンパイラである Polyphony を使ってみたいと思います。今回は固定小数点の掛け算を書いてみたいと思います。前回と同じく @pure を使って python でアルゴリズムの検証を行います。 固定小数点掛け算…

Polyphonyって何だろう(4)使用例:CORDIC with @pure & unroll

Python で書いた関数を Verilog HDL に変換する高位合成コンパイラである Polyphony を使ってみたいと思います。 今回はコンパイル時に python の計算値を埋め込むための @pure デコレーターと、コンパイルの最適化指示の unroll を使用した CORDIC を高位合…

Polyphonyって何だろう(3)使用例:フィボナッチ LFSR

Python で書いた関数を Verilog HDL に変換する高位合成コンパイラである Polyphony を使ってみたいと思います。前回はクラス表記で port を指定しましたが、今回はもっと簡単に関数表記で port はお任せでフィボナッチ LFSRのアルゴリズムを Verilog に変換…

Veriloggenって何だろう(8)Thread 高位合成

Verilog HDL を生成するための記述を python で行うことで FPGA 回路の生成を楽にする為のライブラリー Veriloggen を使ってみたいと思います。今回は高位合成のThreadの使用例を書きます。 高位合成 Thread によるフィボナッチ数列生成 実行結果 参照

Polyphonyって何だろう(2)使用例:フィボナッチ数列

Python で書いた関数を Verilog HDL に変換する高位合成コンパイラである Polyphony を使ってみたいと思います。実際に動かした方が分かりやすいと思うので、早速フィボナッチ数列を出力する回路を合成したいと思います。計算が必要な回路合成には高位合成は…

Polyphonyって何だろう(1)インストール

Python で書いた関数を Verilog HDL に変換する高位合成コンパイラである Polyphony を使ってみたいと思います。Veriloggen が Verilog を python で生成し、高位合成がおまけ的なのに対して、Polyphony は、python で動く関数を verlilog に変換するソフト…