一、相关背景
一个项目,需要用Python读取.heic和.heif的图像。但是目前opencv不支持。震惊,opencv作为最专业知名的开源图像处理工具,居然不支持这种在ios和mac上广泛存在的图像格式。
有关这个编解码算法的可以自己查一下,大体上是诺基亚的专利,压缩效果好于jpeg (50%),被苹果付费使用了(还是买断了不知道)。
二、解决方案
https://stackoverflow.com/questions/54395735/how-to-work-with-heic-image-file-types-in-python
解决方案有好几个,但是这里面直说其中最简单的一个
借助pillow的一个插件包,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
三、结论
- 我也是第一次知道这个图像格式,因为常年安卓,接触不到这个格式的图像。并且这个格式的图像在大部分软件上发出来以后都会被自动转码。
- OpenCV居然不支持这是最搞笑的,这也算不上小众格式,OpenCV居然不支持