image - 使用 CV2 读取图像文件(文件存储对象)

标签 image curl flask cv2

我正在通过 curl 将图像发送到 flask 服务器,我正在使用此 curl 命令

curl -F "file=@image.jpg" http://localhost:8000/home

我正在尝试在服务器端使用 CV2 读取文件。

在服务器端,我通过此代码处理图像
@app.route('/home', methods=['POST'])
def home():
    data =request.files['file']
    img = cv2.imread(data)
    fact_resp= model.predict(img)
    return jsonify(fact_resp)

我收到此错误-
img = cv2.imread(data)
TypeError: expected string or Unicode object, FileStorage found

如何在服务器端使用 CV2 读取文件?

谢谢!

最佳答案

我在使用带有 flask 服务器的 opencv 时遇到了类似的问题,首先我将图像保存到磁盘并使用保存的文件路径再次使用 读取该图像cv2.imread()

这是一个示例代码:

data =request.files['file']
filename = secure_filename(file.filename) # save file 
filepath = os.path.join(app.config['imgdir'], filename);
file.save(filepath)
cv2.imread(filepath)

但现在我从 here 得到了更有效的方法通过使用 cv2.imdecode() 从 numpy 数组中读取图像,如下所示:
#read image file string data
filestr = request.files['file'].read()
#convert string data to numpy array
npimg = numpy.fromstring(filestr, numpy.uint8)
# convert numpy array to image
img = cv2.imdecode(npimg, cv2.CV_LOAD_IMAGE_UNCHANGED)

关于image - 使用 CV2 读取图像文件(文件存储对象),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47515243/

相关文章:

android - 通用窗口绘制图形并即时保存图像

angular - 后台图片不显示

css - 部分图像被隐藏,没有溢出

ruby - 与此 curl 请求等效的 Ruby 是什么?

php - 如何在 PHP 中通过 cURL 发送 XML 和其他 post 参数

python - 是否应该保护登录表单免受 CSRF 的影响?

image - 将 PDF 转换为 PNG

python - 使用 pycurl 中断的 S3 上传

javascript - Flask 到 Dygraph - 如何传递数据?

python - 设置 Flask-SQLAlchemy