2017-10-05 71 views
0

我正在为支持MicroPython的微控制器编写一些图像处理例程。坏消息是它只有0.5 MB的RAM。这意味着如果我想使用像256x256这样的相对较大的图像/矩阵,我需要将它视为一组较小的矩阵(例如32x32)并对它们执行操作。撇开从其(32x32)子矩阵重构矩阵(256x256)矩阵的最终输出的事实,我想专注于如何从磁盘加载/保存到磁盘(在这种情况下是SD卡)这些较小的矩阵来自一个大的图像。将部分矩阵加载到RAM中

鉴于介绍,这里是我的问题:假设我有一个256x256的磁盘,我想应用一些操作(例如卷积),什么是最方便的方式来存储该图像,因此很容易加载它到32x32图像补丁?我已经看到了pickle模块的MicroPython实现,这对我的问题是一个好主意吗?

+1

闪存周期是有限的,我不会广泛使用闪存卡作为工作空间。 –

+0

这是一个很好的观点。谢谢! – karl71

回答

0

对不起,但你的问题包含答案 - 如果你需要使用32x32的瓷砖,最好的格式是代表你的大图像作为一系列的瓷砖(例如不是一个大的256x256图像,虽然阅读瓷砖而且它也不是火箭科学,在MicroPython中编码应该相当简单,当然32x32瓷砖效率更高)。你不描述你的图像的确切格式,但我不会使用pickle模块,但将图像存储为原始字节并将它们加载到array.array()对象中(使用inplace.readinto()操作)。