MCPcopy Create free account
hub / github.com/DocsaidLab/MRZScanner / decode

Method decode

mrzscanner/utils.py:56–75  ·  view source on GitHub ↗
(self, encode: List[np.ndarray])

Source from the content-addressed store, hash-verified

54 self.decode_mode = DecodeMode.obj_to_enum(decode_mode)
55
56 def decode(self, encode: List[np.ndarray]) -> List[List[str]]:
57 encode = np.array(encode)
58 if self.decode_mode == DecodeMode.CTC:
59 masks = (encode != np.roll(encode, 1)) & (encode != 0)
60 elif self.decode_mode in [DecodeMode.Default, DecodeMode.Normal]:
61 masks = []
62 for row in encode:
63 eos_index = np.where(row == self.chars_dict["<EOS>"])[0]
64 if eos_index.size > 0:
65 mask = np.zeros_like(row, dtype=bool)
66 mask[:eos_index[0]] = True
67 else:
68 mask = np.ones_like(row, dtype=bool)
69 mask = mask & (row != self.chars_dict["<PAD>"])
70 masks.append(mask)
71
72 chars_list = [''.join([self.chars[idx] for idx in e[m]])
73 for e, m in zip(encode, masks)]
74
75 return chars_list
76
77 def __call__(self, *args, **kwargs) -> List[List[str]]:
78 return self.decode(*args, **kwargs)

Callers 5

__call__Method · 0.95
test_textdecoder_defaultFunction · 0.95
test_textdecoder_no_eosFunction · 0.95
test_textdecoder_ctcFunction · 0.95

Calls

no outgoing calls

Tested by 4

test_textdecoder_defaultFunction · 0.76
test_textdecoder_no_eosFunction · 0.76
test_textdecoder_ctcFunction · 0.76