File size: 1,748 Bytes
36ccd32
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
"""Run the main code for Deep-Barcode-Reader"""

# pylint: disable=E1101
from pathlib import Path
import logging
import asyncio
import click
import cv2


from deep_barcode_reader import __version__
from deep_barcode_reader.logging import config_logger
from deep_barcode_reader.barcode import Wrapper

logger = logging.getLogger(__name__)


@click.command()
@click.version_option(version=__version__)
@click.option(
    "-v",
    "--verbose",
    count=True,
    help="Shorthand for info/debug/warning/error loglevel (-v/-vv/-vvv/-vvvv)",
)
@click.option(
    "-s",
    "--result_path",
    type=str,
    default="output/test.png",
    help="Path to save the result file.",
)
@click.option(
    "-d",
    "--data_path",
    required=True,
    type=click.Path(exists=True),
    help="Path to data file.",
)
@click.option(
    "-m",
    "--method",
    type=click.Choice(["opencv", "zbar", "qrreader"], case_sensitive=False),
    default="opencv",
    help="Path to data file.",
)
@click.option(
    "--model_size",
    type=click.Choice(["n", "s", "m", "l"], case_sensitive=False),
    default="m",
    help="Model size for the barcode reader.",
)
def deep_barcode_reader_cli(
    verbose: int, result_path: str, data_path: Path, method: str, model_size: str
) -> None:
    """It can read different types of barcodes"""
    if verbose == 1:
        log_level = 10
    elif verbose == 2:
        log_level = 20
    elif verbose == 3:
        log_level = 30
    else:
        log_level = 40
    config_logger(log_level)

    reader = Wrapper(model_size=model_size, method=method)
    _ = asyncio.get_event_loop().run_until_complete(
        reader.method_selection(
            image=cv2.imread(str(data_path)), result_path=result_path
        )
    )