Estándar de codificación de imágenes HEIF: Python lee imágenes HEIF

1. Antecedentes relevantes

Informe de errores de OCR de paleta en línea y descubrió que opencv leyó el informe de errores de imagen heic para conocer el formato de codificación heif

2. ¿Qué es HEIF?

El nombre completo de HEIF: Formato de archivo de imagen de alta eficiencia . Es un formato contenedor que se utiliza para almacenar imágenes individuales o secuencias de imágenes. El estándar HEIF incluye una variedad de formatos multimedia, como audio, vídeo y texto de tiempo. Y puede almacenar secuencias de imágenes compuestas de imágenes con diferentes métodos de codificación.

Para obtener más detalles, consulte https://en.wikipedia.org/wiki/High_Efficiency_Image_File_Format

En resumen, HEIF es un nuevo contenedor que puede almacenar diversos datos multimedia.

3. Múltiples sufijos variantes de HEIF

Existen muchas variantes de formatos basados ​​en HEIF, como el formato de imagen .heic tomado por el iPhone. Además, también existen .avci, .avif y otros formatos.

Estos diferentes nombres de sufijos son solo para describir el método de codificación utilizado por la imagen o secuencia de imágenes.

  • .heic indica que el códec utilizado es un códec relacionado con HEVC. Si es una sola imagen, es el algoritmo de codificación intracuadro del cuadro I de HEVC. Si es una secuencia de imágenes, es el algoritmo de codificación de video HEVC .
  • .avci indica que el algoritmo de codificación está relacionado con AVC
  • .avif indica que el algoritmo de codificación está relacionado con AV1

4. ¿Por qué opencv no es compatible con HEIF?

Compatibilidad con el formato HEIF en OpenCV · Número 14534 · opencv/opencv (github.com)

  • Es posible que HEIF no contenga una imagen, por lo que no se puede leer directamente con imread. Porque el objetivo de imread es leer una imagen.
    Insertar descripción de la imagen aquí

Apéndice, solución para opencv que no puede leer heif

https://stackoverflow.com/questions/54395735/how-to-work-with-heic-image-file-types-in-python

Hay varias soluciones, pero aquí tienes la más sencilla.

Con la ayuda de un paquete enchufable de almohada,pillow-heif

'''
需要安装pip3 install pillow-heif
'''

from PIL import Image
from pillow_heif import register_heif_opener

register_heif_opener()

image = Image.open('image.heic') # RGB, not BGR

Supongo que te gusta

Origin blog.csdn.net/qq_29007291/article/details/127576444
Recomendado
Clasificación