【发布时间】:2021-10-20 15:19:48
【问题描述】:
我正在开发应用程序来调整图像大小。它适用于 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'
代码片段
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) 返回无。
我无法弄清楚为什么它不能使用 heic 文件。 有什么办法可以解决这个问题?
注意:
我看过之前的类似问题,但没有一个对我有用。
【问题讨论】:
-
您可以使用基于 ImageMagick 的
wand在 Python 中读取 HEIC 文件。另见stackoverflow.com/a/54558699/2836621 -
感谢您的参考。