我通过相机Canon SX - 120 IS拍摄图像。但是当我尝试在Matlab中处理这些图像时,会显示“内存不足”错误。我的图像尺寸为2736x3648x3 uint8类型。大小为1.05 MB。如何克服这个问题?是由于图像大小还是图像尺寸?是否有任何matlab功能可以减小图像的大小,保持质量不变?
答案 0 :(得分:1)
当你将它读入matlab矩阵时,每个图像在内存中的大小将是
2736x3648x3 bites = 29942784 bites ~ 30 MB
有时为了处理图像必须从uint8
转换为double
,在这种情况下,尺寸将更大,为8 * 30 = 240 MB。
如果您有这些图像的数组(或进行大量处理),则可能会耗尽内存。您可以使用imresize
功能缩小图像尺寸,但图像质量会丢失。
存储在文件中的图像可能已被压缩(这就是为什么我认为它只需要1.05 MB的磁盘)。考虑通过一次向内存中读取较少数量的图像来批量处理图像。