Как работает cv2.imencode? Вывести разные формы двух изображений одинаковой формы - PullRequest
0 голосов
/ 18 марта 2020

У меня есть два изображения одинаковой формы и с использованием 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 Ответ

1 голос
/ 18 марта 2020

Функция imencode сжимает изображение и сохраняет его в буфере памяти, размер которого изменяется в соответствии с результатом.

img.shape возвращает размеры изображения и количество каналов в изображении, в этом В случае, если оба ваших изображения имеют 3 канала, указывающие, что они являются цветными изображениями.

С точки зрения непрофессионалов, сжатие изображения зависит от частоты конкретного цветового компонента в изображении.

Учитывая, что вы кодируя разные изображения, они всегда будут иметь разный выходной размер.

http://www.libpng.org/pub/png/book/chapter09.html - вот ссылка на то, как работает сжатие png.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...