cv2.imencode如何工作?输出相同形状的两个图像的不同形状

时间:2020-03-18 10:49:44

标签: python opencv

我有两个具有相同形状的图像,并使用cv2.imencode得到了两个具有不同形状的阵列,为什么呢?如何获得相同形状的编码图像?

print(img1.shape)
OUTPUT: (720, 1280, 3)
print(img2.shape)
OUTPUT: (720, 1280, 3)

img1_encoded = cv2.imencode('.png', img1)
img2_encoded = cv2.imencode('.png', img2)

print(img1_encoded)
OUTPUT: (927851, 1)
print(img2_encoded)
OUTPUT: (73513, 1)

1 个答案:

答案 0 :(得分:1)

imencode函数压缩图像并将其存储在已调整大小以适合结果的内存缓冲区中。

img.shape返回图像的尺寸和图像中的通道数,在这种情况下,两个图像都有3个通道,表示它们是彩色图像。

用外行术语来说,图像压缩取决于图像中特定颜色成分的频率。

鉴于您要编码不同的图像,它们将始终具有不同的输出大小。

http://www.libpng.org/pub/png/book/chapter09.html-以下是png压缩工作原理的链接。