File size: 3,004 Bytes
a9e25c7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8b4e800
104bfa6
 
 
 
 
 
 
 
 
a9e25c7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
import sys
sys.path.append('.')

import os
import numpy as np
import base64
import json
import io

from PIL import Image, ExifTags
from flask import Flask, request, jsonify
from opyidrecog import getHWID
from opyidrecog import setLicenseKey
from opyidrecog import initSDK
from opyidrecog import processImage

licenseKeyPath = "license.txt"
license = os.environ.get("LICENSE_KEY")

if license is None:
    try:
        with open(licenseKeyPath, 'r') as file:
            license = file.read().strip()
    except IOError as exc:
        print("failed to open license.txt: ", exc.errno)
    print("License Key: ", license)

hwid = getHWID()
print("HWID: ", hwid.decode('utf-8'))

ret = setLicenseKey(license.encode('utf-8'))
print("Set License: ", ret)

ret = initSDK("model".encode('utf-8'))
print("Init: ", ret)

app = Flask(__name__) 


@app.route('/process_image', methods=['POST'])
def process_image():
    base64_image1 = ""
    base64_image2 = ""
    try:
        file1 = request.files['image1']
        base64_image1 = base64.b64encode(file1.read()).decode('utf-8')
    except:
        result = "Failed to open image1"
        response = jsonify({"resultCode": "Error", "result": result})

        response.status_code = 200
        response.headers["Content-Type"] = "application/json; charset=utf-8"
        return response

    try:
        file2 = request.files['image2']
        base64_image2 = base64.b64encode(file2.read()).decode('utf-8')
    except:
        base64_image2 = ""

    result = processImage(base64_image1.encode('utf-8'), base64_image2.encode('utf-8'))

    result_dict = json.loads(result.decode('utf-8'))
    response = jsonify({"resultCode": "Ok", "result": result_dict})

    response.status_code = 200
    response.headers["Content-Type"] = "application/json; charset=utf-8"
    return response

@app.route('/process_image_base64', methods=['POST'])
def process_image_base64():
    base64_image1 = ""
    base64_image2 = ""

    try:
        content = request.get_json()
        base64_image1 = content['image1_base64']
    except:
        result = "Failed to parse base64"
        response = jsonify({"resultCode": "Error", "result": result})

        response.status_code = 200
        response.headers["Content-Type"] = "application/json; charset=utf-8"
        return response

    try:
        content = request.get_json()
        base64_image2 = content['image2_base64']
    except:
        base64_image2 = ""

    image_np = np.asarray(image)
    result = processImage(image_np, image_np.shape[1], image_np.shape[0])

    result = processImage(base64_image1.encode('utf-8'), base64_image2.encode('utf-8'))

    result_dict = json.loads(result.decode('utf-8'))
    response = jsonify({"resultCode": "Ok", "result": result_dict})

    response.status_code = 200
    response.headers["Content-Type"] = "application/json; charset=utf-8"
    return response

if __name__ == '__main__':
    port = int(os.environ.get("PORT", 9000))
    app.run(host='0.0.0.0', port=port)