当输入来自 CGI 时如何在 OpenCV 中读取解析图像

How to read parse image in OpenCV when the input is from CGI

我有一个简单的 HTML 表单将数据发布到我的 Python 脚本。我正在使用的代码如下,但它不起作用:

form = cgi.FieldStorage()
filedata = form['upload']

image = cv2.imdecode(filedata,0)

它给我以下错误:

image undefined, cv2 = , cv2.imdecode = , filedata = FieldStorage('upload', 'ch.png', '\x89PNG\r\n\x1...z\x81\xec\x15\xe0\x00\x00\x00\x00IEND\xaeB`\x82')

: buf is not a numpy array, neither a scalar args = ('buf is not a numpy array, neither a scalar',) message = 'buf is not a numpy array, neither a scalar'

如果不先将其写入磁盘然后再次读取,我将如何处理我上传的图像?

已解决:

我必须先将数据转换为 numpy 数组。

image = cv2.imdecode(numpy.frombuffer(filedata,dtype=numpy.uint8),0)