在python中从图像创建二进制RGB值会导致错误的大小

时间:2016-05-10 12:03:22

标签: python opencv

我正在尝试使用OpenCV从python中的图像中提取红色,绿色和蓝色的二进制值。该图片的大小为224x224。我将这些值分开:

img = cv2.imread('image.jpg')
img = cv2.resize(img, (224, 224))
b,g,r = cv2.split(img)

但是当我用print(sys.getsizeof(r))打印出一个颜色值的大小时,我得到50288的结果,即使224x244应该是50176.

必须有一些开销,有谁知道我如何获得50176像素的值?

我想将分类器的图像值存储为二进制文件,如下所示: 1字节分类器+ 50176红色值+ 50176绿色值+ 50176蓝色值

1 个答案:

答案 0 :(得分:1)

img = cv2.imread('image.jpg')返回numpy array,这通常是opencv用于存储图像的对象类型。 Numpy数组确实引入了一些开销,导致对象的大小比数组缓冲区大。

要检查缓冲区的大小,可以调用例如img.nbytes