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

Python 当输入来自CGI时,如何在OpenCV中读取解析图像,python,opencv,numpy,post,cgi,Python,Opencv,Numpy,Post,Cgi,我有一个简单的HTML表单将数据发布到我的Python脚本中。我正在使用的代码如下,但它不起作用: form = cgi.FieldStorage() filedata = form['upload'] image = cv2.imdecode(filedata,0) 它给了我以下错误: 图像未定义,cv2=, cv2.imdecode=,文件数据= FieldStorage('upload','ch.png',', '\x89PNG\r\n\x1…z\x81\xec\x15\xe0\x00

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

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

image = cv2.imdecode(filedata,0)
它给了我以下错误:

图像未定义,cv2=, cv2.imdecode=,文件数据= FieldStorage('upload','ch.png',', '\x89PNG\r\n\x1…z\x81\xec\x15\xe0\x00\x00\x00\x00IEND\xaeB`\x82')

:buf不是numpy数组,也不是 标量 args=('buf不是numpy数组,也不是标量',) message='buf不是numpy数组,也不是标量'

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

解决:

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

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

错误消息有点击中它——您需要将numpy数组而不是FieldStorage实例传递给
imdecode