Numpy 为什么npy文件的大小和jpg、png图像相比如此之大
大家好,我只是想尝试一下,如果我们将图像保存到npy文件中,那么它的大小一定会变小,但事实并非如此。实际上,图像的大小会变大20倍,在某些情况下,5 MB图像会转换为100 MB。npy文件。有人知道这一点的原因吗?我尝试搜索相同的,但大多数答案是。npy格式的读取速度非常快图像文件,我知道,所以我的想法保存图像文件为.npy是错误的,但为什么呢 这是我用来测试我的假设的代码文件Numpy 为什么npy文件的大小和jpg、png图像相比如此之大,numpy,cv2,Numpy,Cv2,大家好,我只是想尝试一下,如果我们将图像保存到npy文件中,那么它的大小一定会变小,但事实并非如此。实际上,图像的大小会变大20倍,在某些情况下,5 MB图像会转换为100 MB。npy文件。有人知道这一点的原因吗?我尝试搜索相同的,但大多数答案是。npy格式的读取速度非常快图像文件,我知道,所以我的想法保存图像文件为.npy是错误的,但为什么呢 这是我用来测试我的假设的代码文件 import cv2 import numpy as np from time import time w,h
import cv2
import numpy as np
from time import time
w,h = 200,200
data = []
def makeData(var):
img = cv2.imread(f'{var}.jpg')
print(img.shape)
print(img.nbytes / 1024 / 1024)
print('resize_img')
resize_img = cv2.resize(img,(w,h))
print(resize_img.shape)
print(resize_img.nbytes / 1024 / 1024)
print('save to npy file')
return resize_img
#np.save(f'{var}.npy',np.array(img))
#np.save(f'{var}_resize.npy',np.array(resize_img))
#cv2.imwrite(f'{var}_resize.jpg',resize_img)
def readImgData(var):
img = cv2.imread(f'{var}.jpg')
print(img.shape)
def readNPYData(var):
data = np.load("data.npy", allow_pickle=True)
print('Length of data',len(data))
varList = ['a','b','c','d','e']
t1 = time()
for var in varList:
#resize_img = makeData(var)
#data.append(resize_img)
readImgData(var)
t2 = time()
print('Time Taken to read Image Data is,',t2-t1)
t1 = time()
for var in varList:
readNPYData(var)
t2 = time()
print('Time Taken to read NPY Data is,',t2-t1)
#np.save('data.npy',data)
像jpg和png这样的图像格式是压缩的。Npy文件未压缩。查看npz中的压缩numpy文件。好的,我想是Jpeg,png和其他格式已经进行了压缩,但将其转换为numpy确实加快了阅读速度,但增加了大小“机器学习中没有人关心大小LOL”@jakub谢谢我刚刚用compressed进行了检查,结果肯定从90MB提高到45MB,但这比5Mb原始图像大小更糟糕