OpenCv imdecode对HEIC文件返回none



我正在制作调整图像大小的应用程序。对于jpg, png, jpeg格式的图像可以正常工作,但对于heic文件却不能正常工作。

错误:OpenCV(4.4.0) /tmp/pip-req-build-vu_aq9yd/opencv/modules/imgproc/src/color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function 'cvtColor'

代码snipplet

npimg = np.frombuffer(stream.read(), np.uint8)
img = cv2.cvtColor(cv2.imdecode(npimg, cv2.IMREAD_COLOR), cv2.COLOR_BGR2RGB)
h, w = cls.get_dims(img, dpi)
img = cv2.resize(img, (w, h), interpolation=cv2.INTER_AREA)
return Image.fromarray(img).convert("RGB")

我发现的是:

cv2.imdecode(npimg, cv2.IMREAD_COLOR)返回none.

我不知道为什么它不能与heic文件工作。这个问题的解决方案是什么?

注意:

我看过以前类似的问题,但是没有一个适合我。

OpenCV不支持heic文件。来自OpenCV文档:

Currently, the following file formats are supported:
Windows bitmaps - *.bmp, *.dib (always supported)
JPEG files - *.jpeg, *.jpg, *.jpe (see the Note section)
JPEG 2000 files - *.jp2 (see the Note section)
Portable Network Graphics - *.png (see the Note section)
WebP - *.webp (see the Note section)
Portable image format - *.pbm, *.pgm, *.ppm *.pxm, *.pnm (always supported)
PFM files - *.pfm (see the Note section)
Sun rasters - *.sr, *.ras (always supported)
TIFF files - *.tiff, *.tif (see the Note section)
OpenEXR Image files - *.exr (see the Note section)
Radiance HDR - *.hdr, *.pic (always supported)
Raster and Vector geospatial data supported by GDAL (see the Note section)

https://docs.opencv.org/4.5.4/d4/da8/group__imgcodecs.html