【发布时间】:2020-12-05 02:40:17
【问题描述】:
我正在使用这个功能
def data_uri_to_cv2_img(uri):
encoded_data = uri.split(',')[1]
nparr = np.frombuffer(base64.b64decode(encoded_data), np.uint8)
img = cv2.imdecode(nparr, cv2.IMREAD_COLOR)
return img
从 base64 编码的字符串开始获取 cv2 图像。我从this stackoverflow answer 获得了代码。
但是,在这种特殊情况下,我得到了一个错误:
src_val = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAEALAAAAAABAAEAAAIBTAA7"
img = data_uri_to_cv2_img(src_val)
cv2.imshow('ay', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
导致此错误的原因:
Traceback (most recent call last): File "playground.py", line 14, in
<module>
cv2.imshow('ay', img) cv2.error: OpenCV(4.4.0) C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-sxpsnzt6\opencv\modules\highgui\src\window.cpp:376:
error: (-215:Assertion failed) size.width>0 && size.height>0 in
function 'cv::imshow'
问题出在哪里?字符串格式是否错误?是因为它编码了一个gif吗?这个功能有限制吗?
【问题讨论】: