Python 上传的图像可以通过cv2直接加载吗?

Python 上传的图像可以通过cv2直接加载吗?,python,opencv,flask,Python,Opencv,Flask,我有一个上传的文件在内存中。我想用cv2操作这个文件。目前,我将文件写入磁盘,然后使用cv2读取它。如何跳过文件的编写,直接用cv2加载 file = request.files['file'] # if file and allowed_file(file.filename): # save file filename = secure_filename(file.filename) file_path = os.path.join(dressrank.config[

我有一个上传的文件在内存中。我想用cv2操作这个文件。目前,我将文件写入磁盘,然后使用cv2读取它。如何跳过文件的编写,直接用cv2加载

file = request.files['file']
# if file and allowed_file(file.filename):

# save file            
filename = secure_filename(file.filename)
file_path = os.path.join(dressrank.config['SHOW_IMG_FOLDER'], filename);
file.save(file_path)
img_path = file_path

# COLOR FATURE EXTRACTION
img = read_img(img_path)
img =img_resize(img, 500)

使用上传的数据构建一个numpy数组。使用cv2解码此阵列

img = cv2.imdecode(numpy.fromstring(request.files['file'].read(), numpy.uint8), cv2.IMREAD_UNCHANGED)



另请参见:

如果使用BaseHTTPRequestHandler,应首先创建
字段存储
表单:

fm = cgi.FieldStorage(fp=self.rfile, headers=self.headers, environ={'REQUEST_METHOD':'POST'})
然后:

另外,请注意,
fromstring
已被弃用,这就是为什么我要用
fromsbuffer
更新davidism的答案

if "file" in fm:            
    image = cv2.imdecode(np.frombuffer(fm['file'].file.read(), np.uint8), cv2.IMREAD_UNCHANGED)