Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在通过我的相机佳能 SX-120 IS 拍摄图像。但是当我尝试在 Matlab 中处理这些图像时,会显示“内存不足”错误。我的图像尺寸是 2736x3648x3 uint8 类型。大小为 1.05 MB。如何克服这个问题?是因为图像大小还是图像尺寸?是否有任何 matlab 函数可以减小图像的大小以保持质量不变?
当您将其读入matlab矩阵时,内存中每个图像的大小将为
2736x3648x3 bites = 29942784 bites ~ 30 MB
有时为了处理图像必须从 转换uint8为double,在这种情况下,大小会更大,为 8*30 = 240 MB。如果您有这些图像的数组(或进行大量处理),您可能会耗尽内存。您可以使用函数缩小图像的大小,imresize但图像质量会下降。
uint8
double
imresize
存储在文件中的图像可能已被压缩(这就是为什么我认为它只需要 1.05 MB 的磁盘空间)。考虑通过一次将较少数量的图像读取到内存来批量处理图像。