我正在尝试使用 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个蓝色值
最佳答案
img = cv2.imread('image.jpg')
返回 numpy array ,这通常是 opencv 用来存储图像的对象类型。 Numpy 数组确实引入了一些开销,导致对象的大小大于数组缓冲区。
要检查缓冲区的大小,您可以调用例如img.nbytes
.
关于python - 在 python 中从图像创建二进制 RGB 值会导致大小错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37138000/