コード例 #1
0
def sample_pipe():
    ac = Aadhaar_Card(config);
    flag_mask = 0
    r = request.get_json(force=True)  #force=True #content type application/json
    requestid=uuid.uuid4();
    temp_name = "temp/"+str(requestid)+".png" 
 
    image = r['doc_b64'] # raw data with base64 encoding
    decoded_data = base64.b64decode(image)
    np_data = np.fromstring(decoded_data,np.uint8)
    img = cv2.imdecode(np_data,cv2.IMREAD_UNCHANGED)
    cv2.imwrite(temp_name,img)
    aadhaar_list = ac.extract(temp_name)
    content_type = 'application/json'
    headers = {'content-type': content_type}
    
    if len(aadhaar_list) == 0 and r['brut']:
        mode_executed = "BRUT-OCR-MASKING"
        write = "temp/"+"temp_"+str(requestid)+".png" 
        mask_status = ac.mask_nums(temp_name, write)
        delete_file(temp_name)
        img_bytes = to_image_string(write)
        delete_file(write)
        #convert byte to string
        encoded_string = img_bytes.decode("utf-8")
        return Response(response=jsonpickle.encode({'doc_b64_masked':encoded_string, 'is_masked': True,'mode_executed' : mode_executed}), status=200, mimetype="application/json", headers=headers)
        
    if len(aadhaar_list) == 0 and not r['brut']:
        mode_executed = "OCR-MASKING"
        return Response(response=jsonpickle.encode({'doc_b64_masked':'None', 'is_masked': False, 'error':'Unable to find aadhaar number','mode_executed' : mode_executed}), status=200, mimetype="application/json", headers=headers)
        
    if len(aadhaar_list) > 0 :
        mode_executed = "OCR-MASKING"
        # for masking first 8 digits from the number
        ori_aadhaar_list = aadhaar_list
        aadhaar_list = list(map(lambda x: x[:8] , aadhaar_list)) # Comment out this incase you want to mask entire aadhaar
        write = "temp/temp_masked"+str(requestid)+".png"
        flag_mask = ac.mask_image(temp_name, write, aadhaar_list)
        delete_file(temp_name)
        img_bytes = to_image_string(write)
        delete_file(write)
        #convert byte to string
        encoded_string = img_bytes.decode("utf-8")
        valid_aadhaar_list = list(filter(lambda x: (ac.validate(x) == 1) , ori_aadhaar_list))
        return Response(response=jsonpickle.encode({'doc_b64_masked':encoded_string, 'is_masked': True,'mode_executed' : mode_executed, 'aadhaar_list':ori_aadhaar_list, 'valid_aadhaar_list':valid_aadhaar_list}), status=200, mimetype="application/json", headers=headers)
コード例 #2
0
def ocr():
    ac = Aadhaar_Card(config);
    requestid=uuid.uuid4();
    temp_name = "temp/"+str(requestid)+".png" 
    r = request.get_json(force=True)  #force=True #content type application/json
    
    image = r['doc_b64'] # raw data with base64 encoding
    
    decoded_data = base64.b64decode(image)
    np_data = np.fromstring(decoded_data,np.uint8)
    
    img = cv2.imdecode(np_data,cv2.IMREAD_UNCHANGED)
    cv2.imwrite(temp_name,img)
    content_type = 'application/json'
    headers = {'content-type': content_type}
    try:
        #print("Extracting Addhar")
        #print(ac.uuid);
        aadhar=ac.extract(temp_name)
        delete_file(temp_name)
        return Response(response=jsonpickle.encode({'aadhaar_list':aadhar}), status=200, mimetype="application/json", headers=headers)
    except Exception as e:
        print(e)
        return Response(response=jsonpickle.encode({'aadhaar_list':''}), status=200, mimetype="application/json", headers=headers)