2017-10-05 2 views
0

MicroPythonをサポートするマイクロコントローラ用の画像処理ルーチンをいくつか書いています。悪い知らせは、RAMが0.5MBしかないことです。これは、私が256x256のような比較的大きな画像/マトリックスで作業したいのであれば、それをより小さなマトリックス(例えば32x32)の集合として扱い、その上で操作を実行する必要があることを意味します。オリジナル(32x32)サブマトリックスからオリジナル(256x256)マトリックスの最終出力を再構築するという事実を脇に置いて、ディスク(ここではSDカード)からロード/セーブする方法に焦点を当てたい。この小さな行列のうち大きな画像からのものです。マトリックスの一部をRAMにロードする

ここに私の質問があります:私はいくつかの操作(例えば畳み込み)を適用したい256x256のディスクを持っていると仮定すると、その画像を保存する最も便利な方法は何ですか? 32x32のイメージパッチに変換しますか?私はpickleモジュールのMicroPython実装があるのを見ましたが、これは私の問題の良い考えですか?

+1

フラッシュメモリのサイクルは限られているため、私は作業スペースとして広範囲にフラッシュカードを使用しません。 –

+0

それは良い点です。ありがとう! – karl71

答えて

0

あなたの質問には答えが含まれています - もしあなたが32x32タイルで作業する必要があるなら、最高のフォーマットはタイルのシーケンスとしてあなたの大きなイメージを表現するものです(そして例えばタイルを読んでも大きな256x256イメージそれはロケット科学でもなく、MicroPythonでコード化するのはかなり簡単ですが、32x32のタイルはもちろん効率的です)。

画像の形式は正確ではありませんが、pickleモジュールは使用しませんが、画像をrawバイトとして保存し、array.array()オブジェクトに読み込みます(inplace .readinto()操作)。

関連する問題