示例#1
0
def image():
    if request.method == 'GET':
        response = make_response(
            render_template('upload.html')
        )
        return response

    if request.method == 'POST':
        if request.form.get('_auth_token') != auth_token:
            response = make_response(
                json.dumps("Token is not valid"), 401
            )
            response.headers['Content-Type'] = 'application/json'
            return response

        image_file = request.files.get('justimage', None)
        if image_file and allowed_file(image_file.filename):
            filename = secure_filename(image_file.filename)
            image_file_path = os.path.join(IMAGE_FOLDER, filename)
            image_file.save(image_file_path)

        temperature_file = request.files.get('temperature', None)
        if temperature_file and allowed_file(temperature_file.filename):
            filename = secure_filename(temperature_file.filename)
            temperature_path = os.path.join(TRAIN_FOLDER, filename)
            image_file.save(temperature_path)

        rate = request.form.get('rate')
        if not rate:
            rate = 2.5

        upload_result = {
            "result": "success",
            "rate": int(rate),
            "image_file": image_file.filename if image_file else None,
            "temperature_file": temperature_file.filename if temperature_file else None,
            "result": None
        }
        if image_file or temperature_file:
            res = fr.face_recognizer(image_file_path, int(rate))
            if not res:
                upload_result['result'] = {"predicted_rate": "no face found"}
            else:
                predicted_rate =lr.linear_regressor(res, int(rate))
                upload_result['result'] = {"predicted_rate": predicted_rate}

        return jsonify(upload_result)
def image():
    if request.method == 'GET':
        response = make_response(
            render_template('upload.html')
        )
        return response

    if request.method == 'POST':
        if request.form.get('_auth_token') != auth_token:
            response = make_response(
                json.dumps("Token is not valid"), 401
            )
            response.headers['Content-Type'] = 'application/json'
            return response

        image_file_url = request.form.get('justimage', None)
        image_file_path = None
        if image_file_url and allowed_file(image_file_url):
            h = httplib2.Http('.cache')
            response, content = h.request(image_file_url, "GET")

            ext = image_file_url.rsplit('.', 1)[1]

            if response.status == '200' or '304':
                filename="image." + ext
                # filename = secure_filename(image_file.filename)
                image_file_path = os.path.join(IMAGE_FOLDER, filename)
                with open(image_file_path, 'wb') as f:
                    f.write(content)
                #image_file.save(image_file_path)

        temp_file_url = request.form.get('temperature', None)

        if temp_file_url and allowed_file(temp_file_url):
            h = httplib2.Http('.cache')
            response, content = h.request(temp_file_url, "GET")

            filename = "temp.bin"
            temperature_path = os.path.join(TRAIN_FOLDER, filename)
            with open(temperature_path, 'wb') as f:
                    f.write(content)

        rate = request.form.get('rate')

        if rate:
            has_user_rate = True
        else:
            has_user_rate = False
            rate = 2.5

        upload_result = {
            "result": "success",
            "rate": rate,
            "image_file": image_file_url if image_file_url else None,
            "temperature_file": temp_file_url if temp_file_url else None,
            "result": dict()
        }
        if image_file_url or temp_file_url:
            try:
                result, res = fr.face_recognizer(image_file_path, int(rate))
                if result:
                   predicted_rate =lr.linear_regressor(res, int(rate))
                   upload_result['result'] = {"how_other_user_say": predicted_rate}
                else:
                   upload_result['result'] = {"how_other_user_say": "no face found"}
            except:
                pass
            if image_file_path:
                thermal_rate = tg.thermal_grader(image_file_path, ext)
                upload_result['result']['thermal_rate'] = thermal_rate if thermal_rate else 2.5
                upload_result['result']['images'] = {
                    "orig": '/pic/image.'+ext,
                    "base": '/pic/base.'+ext,
                    "point1": '/pic/point1.'+ext,
                    "point2": '/pic/point2.'+ext
                }
                print upload_result
            else:
                upload_result['result']['error'] = "Can not get image from link"
                print "Error"

        return jsonify(upload_result)