鉴于“记忆”命令的输出,这可能是一个问题由于缺乏可用的RAM的机器上。如果我们看一下内存使用,我们可以看到机器分配12 GB总16 GB的其他程序,和4 GB, MATLAB可以使用,它已经使用约2.6 GB。这使得一个相对较小的剩余1.4 GB的内存了MATLAB计算和数据存储。
有几个方法来解决这个问题:
- 关闭所有其他程序上运行的机器,不需要图像采集和分析过程。这将释放内存,MATLAB可以利用。
- 你可以“储备”一些内存使用MATLAB的预分配矩阵,最终将存储图像。在程序的开始,你可以分配一个零的矩阵大小一样的图像,然后您可以覆盖这个矩阵的图像捕获时传入的图像数据。例如,如果你正在等待一个1920 x1080 RGB图像,使用分配矩阵
> > 0 (1920、1080、3)
只要有足够的可用内存的程序来分配这个矩阵的零,你永远不会删除这个矩阵,实际上,MATLAB将保留足够的内存来存储传入的图像数据。
- 明确的变量从MATLAB工作区,并没有被用于图像采集和分析,这将增加可用内存。
- 减少内存工作区中所使用的变量可能通过使用最小的数据类型。例如,使用矩阵的数据类型双单而不是默认的数据类型。
- 在你的机器上安装更多的RAM或使用安装了更多的物理RAM的机器,如果你需要其他项目同时运行。