Python 上传的图像可以通过cv2直接加载吗?
我有一个上传的文件在内存中。我想用cv2操作这个文件。目前,我将文件写入磁盘,然后使用cv2读取它。如何跳过文件的编写,直接用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[
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)