【发布时间】:2019-05-05 13:06:22
【问题描述】:
使用 OpenCV,每当我将图像(来自相机流)以 JPG 格式保存到磁盘时。磁盘上的文件大小(以字节为单位)因预期的 JPEG 质量而异。
但是,无论磁盘上的文件大小如何,每当我读取图像时,内存大小都保持不变。这正常吗?
此外,图像的磁盘和内存大小似乎存在巨大差异。我期望内存大小要小得多,这与磁盘大小有关。
例如
import sys
import cv2
cv2.imwrite('temp.jpg', frame, [int(cv2.IMWRITE_JPEG_QUALITY), 10])
# disk size of temp.jpg is 24kb
image = cv2.imread('temp.jpg')
# memory size is 2.7 mb
cv2.imwrite('temp.jpg', frame, [int(cv2.IMWRITE_JPEG_QUALITY), 90])
# disk size of temp.jpg is 150kb
image = cv2.imread('temp.jpg')
# memory size is still constant at 2.7 mb
这是我计算内存大小的方式:
print("Image byte size :", round(sys.getsizeof(image) / (1024 * 1024), 2), "mb")
【问题讨论】: