Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 烧瓶:类型错误:预期Ptr<;cv::UMat>;对于参数';%s';_Python_Image_Opencv_Flask_Upload - Fatal编程技术网

Python 烧瓶:类型错误:预期Ptr<;cv::UMat>;对于参数';%s';

Python 烧瓶:类型错误:预期Ptr<;cv::UMat>;对于参数';%s';,python,image,opencv,flask,upload,Python,Image,Opencv,Flask,Upload,我正在通过html上传一个img,并在打开的简历中处理它并显示图像。我在upload\u file.py中有arg解析器。因此,我直接以python3 upload_file.py--listofargs的形式运行应用程序 template.html 它是如何工作的? 我直接以python3 upload\u file.py--listofargs的形式运行flask应用程序,而不使用flask run命令 当我点击colorize时,我得到了上面的错误内部服务器错误 如何修复错误,以便通过ht

我正在通过html上传一个
img
,并在打开的简历中处理它并显示图像。我在
upload\u file.py
中有
arg解析器。因此,我直接以python3 upload_file.py--listofargs的形式运行应用程序

template.html

它是如何工作的?

  • 我直接以
    python3 upload\u file.py--listofargs
    的形式运行flask应用程序,而不使用
    flask run
    命令

  • 当我点击colorize时,我得到了上面的错误
    内部服务器错误


  • 如何修复错误,以便通过
    html
    正确读取上传的
    img
    ,并通过flask显示
    opencv img

    在Python3中,您可以这样做:

    将numpy导入为np
    进口cv2
    从io导入字节io?不需要吗?
    def handle_data():
    img=request.form['file']
    image=cv2.imdecode(np.frombuffer(BytesIO(img.read(),np.uint8),cv2.IMREAD_不变)
    cv2.imshow(“原创”,图片)#你为什么需要这个?
    返回render_template('template.html',image=image)#不要忘记引号?
    
    这将使您能够自己处理html呈现[我不是这方面的专家-但如果其他人能够提供帮助,我将把它纳入这个答案中。]


    让我知道这是否适用于您

    提供完整的错误消息,包括回溯也就是说,不确定通过在服务器端调用
    cv2.imshow
    可以实现什么(该函数需要在执行它的机器上使用GUI),更不用说在没有
    cv2.waitKey
    的情况下了。我还假设
    request.form['file']
    不包含原始像素数据,而是一个编码图像(在这种情况下,您需要先对其进行
    cv2.imdecode
    解码)。是的,您不能通过Flask发送numpy数组。首先在其上使用
    cv2.imdecode()
    ,然后可以显示它
    <html>
    <form action="{{ url_for('handle_data') }}" method="post">
        <input type="file" id="imageInput" name="file" enctype="multipart/form-data">
            <ul class="list-group list-group-flush">
               <li class="list-group-item">
                   <button type="submit"  class="btn btn-primary">Colorize</button>
                </li>
            </ul>
    </form>
    <img src = {{image}}>
    </html>
    
    from flask import Flask, render_template, request
    import cv2
    from flask import jsonify
    import argparse
    import numpy as np
    
    
    app = Flask(__name__)
    
    @app.route('/', methods=['POST','GET'])
    def index():
       return render_template('template.html')
    @app.route('/handle_data', methods=['POST','GET'])
    def handle_data():
       img = request.form['file']
       image = np.array(img)
       cv2.imshow("Original", image)
       return render_template(template.html, image = image)