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

标签 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个蓝色值

最佳答案

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

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

关于python - 在 python 中从图像创建二进制 RGB 值会导致大小错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37138000/

相关文章:

python - cv.smooth() 去哪儿了?我在 cv2 中找不到等效项

c++ - opencv::Mat 来自 vector 的 vector

python - 使用通配符搜索迭代 Redis 哈希键

python - DecisionTreeClassifier 的精确召回曲线下的面积是一个正方形

c++ - 从 Python 调用 C++ API 时 dynamic_cast 失败

python - 如何将 for 循环的结果存储在数据框中并导出到 Excel?

c++ - 这是命名空间问题吗

c++ - OpenCV/C++ 中的优化帮助

python - 导入错误 : cannot import name 'Account' from 'O365' using Office 365 Project

opencv - AndroidStudio中的JavaCV错误java.lang.NoClassDefFoundError:java.lang.ClassNotFoundException:org.bytedeco.javacpp.opencv_core