Update app.py
Browse files
app.py
CHANGED
@@ -2,6 +2,7 @@ from fastapi import FastAPI , File , UploadFile , Form
|
|
2 |
from datetime import datetime
|
3 |
from pydantic import BaseModel
|
4 |
import mrzscanner
|
|
|
5 |
import json
|
6 |
import uvicorn
|
7 |
from mrz.checker.td1 import TD1CodeChecker
|
@@ -63,13 +64,20 @@ def check(lines):
|
|
63 |
|
64 |
import cv2
|
65 |
|
66 |
-
def get_info(scanner,img):
|
67 |
|
68 |
s=""
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
73 |
results = scanner.decodeMat(img_np)
|
74 |
|
75 |
lst1=[]
|
@@ -169,19 +177,50 @@ class encodedImage(BaseModel):
|
|
169 |
|
170 |
|
171 |
@app.post('/')
|
172 |
-
async def _file_upload(img:
|
173 |
-
UploadFile = File(...)):
|
174 |
|
175 |
-
|
176 |
-
|
177 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
178 |
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
183 |
if lst:
|
184 |
-
|
185 |
final_lst=extract_result(lst)
|
186 |
json_file=return_df(final_lst)
|
187 |
success=False
|
@@ -219,7 +258,6 @@ def func():
|
|
219 |
def main(img):
|
220 |
# set license.
|
221 |
mrzscanner.initLicense("DLS2eyJoYW5kc2hha2VDb2RlIjoiMTAxNjIyNjAzLVRYbEVaWE5yZEc5d1VISnZhbDlrYkhJIiwib3JnYW5pemF0aW9uSUQiOiIxMDE2MjI2MDMiLCJjaGVja0NvZGUiOjE4ODA3MzYyNzN9")
|
222 |
-
|
223 |
#mrzscanner.initLicense("DLS2eyJoYW5kc2hha2VDb2RlIjoiMjAwMDAxLTE2NDk4Mjk3OTI2MzUiLCJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSIsInNlc3Npb25QYXNzd29yZCI6IndTcGR6Vm05WDJrcEQ5YUoifQ==")
|
224 |
scanner = mrzscanner.createInstance()
|
225 |
scanner.loadModel(mrzscanner.get_model_path())
|
|
|
2 |
from datetime import datetime
|
3 |
from pydantic import BaseModel
|
4 |
import mrzscanner
|
5 |
+
import PIL
|
6 |
import json
|
7 |
import uvicorn
|
8 |
from mrz.checker.td1 import TD1CodeChecker
|
|
|
64 |
|
65 |
import cv2
|
66 |
|
67 |
+
def get_info(scanner,img,file_type):
|
68 |
|
69 |
s=""
|
70 |
+
if file_type=="image":
|
71 |
+
image_np=np.frombuffer(img,dtype=np.uint8)
|
72 |
+
img_np=cv2.imdecode(image_np,cv2.IMREAD_COLOR)
|
73 |
+
elif file_type=="pdf":
|
74 |
+
img_np = np.array(img)
|
75 |
+
else:
|
76 |
+
img_np = np.array(img)
|
77 |
+
|
78 |
+
|
79 |
+
|
80 |
+
|
81 |
results = scanner.decodeMat(img_np)
|
82 |
|
83 |
lst1=[]
|
|
|
177 |
|
178 |
|
179 |
@app.post('/')
|
180 |
+
async def _file_upload(img:UploadFile = File(...)):
|
|
|
181 |
|
182 |
+
file_type=""
|
183 |
+
if "pdf" in img.filename:
|
184 |
+
|
185 |
+
|
186 |
+
file_type="pdf"
|
187 |
+
import pypdfium2 as pdfium
|
188 |
+
img1 = await img.read() # <-- Important!
|
189 |
+
pdf = pdfium.PdfDocument(img1)
|
190 |
+
|
191 |
+
for x in range(len(pdf)):
|
192 |
+
page = pdf.get_page(x)
|
193 |
+
pil_image = page.render_to(pdfium.BitmapConv.pil_image,)
|
194 |
+
pil_image.filename = f"{uuid.uuid4()}.jpg"
|
195 |
+
mrzscanner.initLicense("DLS2eyJoYW5kc2hha2VDb2RlIjoiMTAxNjIyNjAzLVRYbEVaWE5yZEc5d1VISnZhbDlrYkhJIiwib3JnYW5pemF0aW9uSUQiOiIxMDE2MjI2MDMiLCJjaGVja0NvZGUiOjE4ODA3MzYyNzN9")
|
196 |
|
197 |
+
# mrzscanner.initLicense("DLS2eyJoYW5kc2hha2VDb2RlIjoiMjAwMDAxLTE2NDk4Mjk3OTI2MzUiLCJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSIsInNlc3Npb25QYXNzd29yZCI6IndTcGR6Vm05WDJrcEQ5YUoifQ==")
|
198 |
+
scanner = mrzscanner.createInstance()
|
199 |
+
scanner.loadModel(mrzscanner.get_model_path())
|
200 |
+
lst=get_info(scanner, pil_image,file_type)
|
201 |
+
if lst:
|
202 |
+
break
|
203 |
+
|
204 |
+
|
205 |
+
else:
|
206 |
+
file_type="image"
|
207 |
+
img.filename = f"{uuid.uuid4()}.jpg"
|
208 |
+
|
209 |
+
contents = await img.read() # <-- Important!
|
210 |
+
|
211 |
+
mrzscanner.initLicense("DLS2eyJoYW5kc2hha2VDb2RlIjoiMTAxNjIyNjAzLVRYbEVaWE5yZEc5d1VISnZhbDlrYkhJIiwib3JnYW5pemF0aW9uSUQiOiIxMDE2MjI2MDMiLCJjaGVja0NvZGUiOjE4ODA3MzYyNzN9")
|
212 |
+
|
213 |
+
# mrzscanner.initLicense("DLS2eyJoYW5kc2hha2VDb2RlIjoiMjAwMDAxLTE2NDk4Mjk3OTI2MzUiLCJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSIsInNlc3Npb25QYXNzd29yZCI6IndTcGR6Vm05WDJrcEQ5YUoifQ==")
|
214 |
+
scanner = mrzscanner.createInstance()
|
215 |
+
scanner.loadModel(mrzscanner.get_model_path())
|
216 |
+
|
217 |
+
lst=get_info(scanner, contents,file_type)
|
218 |
+
|
219 |
+
|
220 |
+
|
221 |
+
|
222 |
if lst:
|
223 |
+
|
224 |
final_lst=extract_result(lst)
|
225 |
json_file=return_df(final_lst)
|
226 |
success=False
|
|
|
258 |
def main(img):
|
259 |
# set license.
|
260 |
mrzscanner.initLicense("DLS2eyJoYW5kc2hha2VDb2RlIjoiMTAxNjIyNjAzLVRYbEVaWE5yZEc5d1VISnZhbDlrYkhJIiwib3JnYW5pemF0aW9uSUQiOiIxMDE2MjI2MDMiLCJjaGVja0NvZGUiOjE4ODA3MzYyNzN9")
|
|
|
261 |
#mrzscanner.initLicense("DLS2eyJoYW5kc2hha2VDb2RlIjoiMjAwMDAxLTE2NDk4Mjk3OTI2MzUiLCJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSIsInNlc3Npb25QYXNzd29yZCI6IndTcGR6Vm05WDJrcEQ5YUoifQ==")
|
262 |
scanner = mrzscanner.createInstance()
|
263 |
scanner.loadModel(mrzscanner.get_model_path())
|