diff --git a/README.md b/README.md index c9fd020..69f06f7 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ It will also install several required python packages, including **venv**, which 2. Clone the repository to this directory: ```sh - git clone ssh://git@strade.fit.vutbr.cz:3022/xlanro00/BP_DP-xlanro00.git + git clone https://strade.fit.vutbr.cz/git/xlanro00/BP_DP-xlanro00.git ``` 3. Go inside the newly created directory: diff --git a/docs/build/.doctrees/environment.pickle b/docs/build/.doctrees/environment.pickle index 9dbf342..1b170b7 100644 Binary files a/docs/build/.doctrees/environment.pickle and b/docs/build/.doctrees/environment.pickle differ diff --git a/docs/build/.doctrees/installation.doctree b/docs/build/.doctrees/installation.doctree index 5d208e9..2f01dd5 100644 Binary files a/docs/build/.doctrees/installation.doctree and b/docs/build/.doctrees/installation.doctree differ diff --git a/docs/build/.doctrees/usage.doctree b/docs/build/.doctrees/usage.doctree index 91e91e7..3bac51c 100644 Binary files a/docs/build/.doctrees/usage.doctree and b/docs/build/.doctrees/usage.doctree differ diff --git a/docs/build/_sources/installation.rst.txt b/docs/build/_sources/installation.rst.txt index 20eec77..ef7aa60 100644 --- a/docs/build/_sources/installation.rst.txt +++ b/docs/build/_sources/installation.rst.txt @@ -42,7 +42,7 @@ It will also install several required python packages, including venv, which is .. code-block:: console - $ git clone ssh://git@strade.fit.vutbr.cz:3022/xlanro00/BP_DP-xlanro00.git + $ git clone https://strade.fit.vutbr.cz/git/xlanro00/BP_DP-xlanro00.git 3. Go inside cloned directory: diff --git a/docs/build/_sources/usage.rst.txt b/docs/build/_sources/usage.rst.txt index b21f1c5..9d0ab41 100644 --- a/docs/build/_sources/usage.rst.txt +++ b/docs/build/_sources/usage.rst.txt @@ -18,8 +18,8 @@ Which will print out the following message. $ usage: main.py [-h] [-m | --mirror | --no-mirror] input_file output_file dpi ([-c | --config config_file preset] | - [filters ...]) [-s | --stl_file p height_line height_base | - --stl_file c height_line height_base curv_rate_x curv_rate_y | + [filters ...]) [-s | --stl p height_line height_base | + --stl c height_line height_base curv_rate_x curv_rate_y | --stl m height_line iter finger_x finger_y finger_z finger_model] [-d | --database database_filename] @@ -37,8 +37,10 @@ Which will print out the following message. -h, --help show this help message and exit -m, --mirror, --no-mirror switch to mirror input image - -s [STL_FILE ...], --stl_file [STL_FILE ...] + -s [STL ...], --stl [STL ...] create stl model from processed image -c CONFIG CONFIG, --config CONFIG CONFIG pair: name of the config file with presets, name of the preset + -d DATABASE, --database DATABASE + switch to store presets in config database diff --git a/docs/build/installation.html b/docs/build/installation.html index 1fc8667..e19f65c 100644 --- a/docs/build/installation.html +++ b/docs/build/installation.html @@ -237,7 +237,7 @@ It will also install several required python packages, including venv, which is
  1. Clone the repository to a suitable directory, for example:

-
$ git clone ssh://git@strade.fit.vutbr.cz:3022/xlanro00/BP_DP-xlanro00.git
+
$ git clone https://strade.fit.vutbr.cz/git/xlanro00/BP_DP-xlanro00.git
 
    diff --git a/docs/build/searchindex.js b/docs/build/searchindex.js index db70b83..6d504ce 100644 --- a/docs/build/searchindex.js +++ b/docs/build/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["config", "config_parser", "filter_list", "filtering", "filters", "generation", "index", "installation", "log", "main", "modules", "stl_parser", "troubleshooting", "usage"], "filenames": ["config.rst", "config_parser.rst", "filter_list.rst", "filtering.rst", "filters.rst", "generation.rst", "index.rst", "installation.rst", "log.rst", "main.rst", "modules.rst", "stl_parser.rst", "troubleshooting.rst", "usage.rst"], "titles": ["Configuration and presets", "config_parser module", "Available filters with parameters", "Filtering images", "filters module", "Generating fingerprint models", "Generov\u00e1n\u00ed 3D modelu otisku prstu", "Installation", "log module", "main module", "src", "stl_parser module", "Troubleshooting", "Usage"], "terms": {"There": [0, 3], "i": [0, 1, 2, 3, 4, 5, 7, 9, 12], "an": [0, 2, 6, 9, 12], "option": [0, 5, 13], "input": [0, 3, 6, 9, 12, 13], "filter": [0, 1, 6, 9, 10, 12, 13], "seri": 0, "from": [0, 1, 3, 4, 6, 7, 9, 12, 13], "json": [0, 3, 5], "file": [0, 1, 3, 9, 11, 12, 13], "here": 0, "ar": [0, 1, 3, 5, 7, 12], "store": [0, 1, 9], "readi": [0, 3], "us": [0, 2, 3, 4, 5, 6, 7, 9, 13], "whenev": 0, "need": [0, 3, 5, 7, 9], "you": [0, 3, 7, 12, 13], "can": [0, 3, 6, 13], "usehow": 0, "mani": 0, "long": [0, 9], "like": 0, "output": [0, 3, 5, 9, 13], "It": [0, 5, 7], "therefor": 0, "highli": 0, "recommend": 0, "check": [0, 9, 12, 13], "after": 0, "everi": [0, 3], "chang": [0, 12], "exampl": [0, 3, 5, 7], "abov": 0, "list": [0, 1, 2, 3, 9, 13], "bellow": [0, 3, 7], "along": [0, 5], "gener": [0, 1, 6, 9, 12], "form": [0, 5, 13], "format": 0, "work": [0, 5, 7], "name": [0, 1, 3, 12, 13], "filter_nam": 0, "paramet": [0, 1, 3, 4, 5, 6, 9, 12, 13], "valu": [0, 1, 2, 4, 9, 13], "git_exampl": 0, "denoise_tv_chambol": [0, 4], "weight": [0, 2, 3], "0": [0, 3, 5, 9], "01": 0, "iter": [0, 5, 9, 13], "1": 0, "median": [0, 2, 3, 4, 6, 10], "ksize": [0, 2, 3], "3": [0, 7], "To": [0, 7], "avoid": 0, "accident": 0, "loss": 0, "inform": [0, 6], "caus": 0, "modifi": [0, 3, 5], "have": [0, 12], "been": [0, 6, 7], "stl": [0, 5, 9, 11, 12, 13], "insid": [0, 7], "db": 0, "thi": [0, 4, 5, 6, 7, 9, 13], "serv": [0, 9], "simpl": 0, "databas": [0, 1, 13], "ad": [0, 2, 9], "hash": [0, 9], "all": [0, 2, 3, 4, 7, 9], "also": [0, 7, 9], "save": [0, 1, 9], "current": [0, 2, 9], "command": [0, 1, 3, 5, 9, 11, 12], "line": [0, 1, 3, 4, 5, 9, 12], "set": [0, 1, 5, 7], "d": [0, 13], "switch": [0, 5, 13], "": [0, 6, 13], "new": [0, 3], "parse_conf": [1, 6, 10], "preset_nam": 1, "param": [1, 4, 8], "config_fil": [1, 5, 13], "pars": [1, 9, 11], "configur": [1, 3, 6], "one": [1, 4, 9], "wa": [1, 6], "specifi": 1, "preset": [1, 3, 5, 6, 12, 13], "load": [1, 3, 12], "dictionari": 1, "path": [1, 3, 13], "config": [1, 3, 5, 12, 13], "parse_param": [1, 6, 10], "none": [1, 9], "These": [1, 5], "later": [1, 7, 9], "default": 1, "method": 1, "appli": [1, 4, 6, 9, 10], "save_preset": [1, 6, 10], "store_to_db": [1, 6, 10], "overview": 2, "implement": [2, 4], "descript": 2, "below": 2, "blur": [2, 4], "int": 2, "kernel": [2, 4], "size": 2, "determin": 2, "how": [2, 7], "larg": 2, "area": 2, "process": [2, 6, 9, 12, 13], "gaussian": [2, 4, 6, 10], "sigma": [2, 4], "standart": 2, "deviat": 2, "further": 2, "pixel": [2, 4], "bilater": [2, 4, 6, 10], "diamet": 2, "neighborhood": 2, "sigmacolor": 2, "differ": 2, "color": [2, 4, 9], "sigmaspac": 2, "bilateral_scikit": [2, 4, 6, 10], "float": 2, "nlmean": [2, 4, 6, 10], "non": [2, 4], "local": [2, 4], "mean": [2, 4], "patch_siz": 2, "patch": 2, "denois": [2, 4], "patch_dist": 2, "distanc": [2, 4], "where": 2, "search": 2, "h": [2, 13], "cut": 2, "off": [2, 7], "higher": [2, 5], "more": [2, 5], "smooth": 2, "imag": [2, 4, 6, 9, 12, 13], "total_vari": [2, 3, 4, 6, 10], "much": [2, 4], "block_match": [2, 4, 6, 10], "unsharp_mask_scikit": [2, 4, 6, 10], "radiu": [2, 4], "amount": [2, 4], "strength": [2, 4], "unsharp": [2, 4], "mask": [2, 4], "farid": [2, 4, 6, 10], "meijer": [2, 4, 6, 10], "sato": [2, 4, 6, 10], "hessian": [2, 4, 6, 10], "invert": [2, 4, 6, 10], "scale_valu": [2, 4, 6, 10], "binar": [2, 4, 6, 10], "threshold": 2, "differenti": 2, "binarize_otsu": [2, 4, 6, 10], "add_margin": [2, 4, 6, 10], "margin": [2, 4], "number": [2, 5], "add": [2, 4, 9], "side": [2, 12], "newli": 2, "erod": [2, 4, 6, 10], "numpi": [2, 9], "matrix": 2, "shape": [2, 5], "dilat": [2, 4, 6, 10], "onc": 3, "requir": [3, 5, 6, 12], "instal": [3, 6], "applic": [1, 3, 4, 6, 7, 8, 9], "fingerprint": [1, 3, 6, 9, 12, 13], "sampl": 3, "locat": [3, 5], "re": [3, 5, 12], "its": [3, 5, 7, 12], "palec_p4": [3, 5], "tif": [3, 5, 12], "enter": [3, 7], "virtual": [3, 7], "enviro": [3, 7], "time": 3, "want": [3, 5, 12], "sourc": [3, 7], "venv": [3, 7], "bin": [3, 7], "activ": [3, 6, 7], "The": [3, 5, 6, 7, 12], "filenam": [3, 5, 9, 12], "includ": [3, 7, 12], "root": 3, "project": [3, 6, 9], "directori": [3, 7], "dpi": [3, 5, 12, 13], "shown": 3, "python3": [3, 5, 7, 13], "src": [3, 5, 6, 13], "main": [3, 5, 6, 10, 11, 12, 13], "py": [3, 5, 11, 12, 13], "input_fil": [3, 5, 12, 13], "output_fil": [3, 5, 12, 13], "two": [3, 6], "wai": 3, "manual": 3, "palec_p4_from_clin": 3, "png": [3, 5], "600": [3, 5], "15": 3, "5": 3, "them": 3, "tune": 3, "exist": [3, 6, 12], "creat": [3, 7, 9, 13], "ones": 3, "palec_p4_from_preset": [3, 5], "conf": [3, 5], "brief": [], "librari": [4, 6, 9, 12], "author": [], "xlanro00": 7, "class": [4, 9], "img": 4, "base": [4, 5, 9, 12], "img_filt": [4, 6, 10], "init": [4, 6, 10], "opencv": [4, 9], "skimag": 4, "denoise_bilater": 4, "averag": 4, "similar": 4, "preserv": 4, "edg": 4, "while": 4, "remov": 4, "unwant": 4, "nois": 4, "slower": 4, "than": [4, 12], "otsu": 4, "_": 4, "block": 4, "match": 4, "bm3d": 4, "veri": 4, "slow": 4, "should": [4, 7, 9, 12], "onli": [4, 5, 7, 12], "small": 4, "morpholog": 4, "oper": 4, "eros": 4, "find": 4, "scikit": 4, "easier": 4, "version": [4, 7], "object": 4, "parent": 4, "bitwise_not": 4, "over": [4, 9], "limit": 4, "5x5": 4, "continu": 4, "ridg": 4, "exctract": 4, "scale": [4, 9], "entir": 4, "rang": [4, 12], "data": [4, 9], "type": [4, 5], "height": [4, 5, 9, 12], "issu": 4, "perform": 4, "total": 4, "variat": 4, "techniqu": 4, "origin": [4, 9], "chambol": 4, "paper": 4, "fine": 4, "detail": 4, "unsharp_mask_pil": [4, 6, 10], "pil": 4, "subtract": 4, "regul": 4, "better": [4, 5], "result": [4, 5], "possibl": [5, 7], "first": [5, 6, 12], "which": [5, 7, 9, 13], "If": [5, 9], "mode": [5, 9, 12], "c": [5, 9, 12, 13], "follow": [5, 12, 13], "control": 5, "papilar": [5, 9], "height_lin": [5, 13], "second": [5, 6], "thick": [5, 12], "height_bas": [5, 13], "third": 5, "rate": 5, "curvatur": 5, "x": 5, "axi": 5, "curv_rate_x": [5, 13], "y": 5, "curv_rate_i": [5, 13], "curvature_x": 5, "curvature_i": 5, "2": 5, "10": [5, 7], "p": [5, 12, 13], "make": [5, 6], "flat": 5, "m": [5, 12, 13], "preexist": 5, "contain": [5, 9], "mesh": [5, 9], "denser": 5, "itert": 5, "last": 5, "three": 5, "offset": [5, 9], "finger_x": [5, 12, 13], "finger_i": [5, 12, 13], "finger_z": [5, 12, 13], "thei": 5, "user": 5, "move": 5, "core": 5, "print": [5, 6, 8, 9, 11, 13], "closer": 5, "center": 5, "ha": [6, 7, 9], "develop": 6, "part": 6, "bachelor": 6, "thesi": 6, "brno": 6, "univers": 6, "technologi": 6, "faculti": 6, "topic": 6, "model": [1, 6, 9, 12, 13], "consist": 6, "custom": [5, 6], "enhanc": 6, "sever": [6, 7], "import": 6, "modul": [6, 7, 10], "accur": 6, "represent": 6, "human": 6, "printer": 6, "either": 6, "planar": [6, 12], "curv": [6, 9, 12], "map": [6, 9, 12], "finger": [6, 9, 12], "still": 6, "under": 6, "get": [6, 9], "start": 6, "avail": 6, "usag": 6, "troubleshoot": 6, "config_pars": [6, 10], "log": [6, 10], "error_exit": [6, 8, 10], "print_messag": [6, 8, 10], "fingerprint_app": [6, 9, 10], "__init__": [6, 9, 10], "parse_argu": [6, 9, 10], "parse_stl": [6, 9, 10], "run_filt": [6, 9, 10], "get_empty_figur": [6, 9, 10], "mirror_imag": [6, 9, 10], "apply_filt": [6, 9, 10], "save_imag": [6, 9, 10], "run_stl": [6, 9, 10], "prepare_heightmap": [6, 9, 10], "write_stl_head": [6, 9, 10], "get_id": [6, 9, 10], "append_fac": [6, 9, 10], "engrave_text": [6, 9, 10], "create_stl_mesh": [6, 9, 10], "create_fac": [6, 9, 10], "make_stl_planar": [6, 9, 10], "make_stl_curv": [6, 9, 10], "make_stl_map": [6, 9, 10], "save_stl": [6, 9, 10], "stl_parser": [6, 10], "test": 7, "ubuntu": 7, "gnu": 7, "linux": 7, "machin": 7, "howev": 7, "most": 7, "distribut": 7, "wsl": 7, "succesfulli": 7, "python": 7, "might": 7, "earlier": 7, "sudo": 7, "apt": 7, "virtualenv": 7, "packag": 7, "creation": 7, "other": [7, 12], "automat": 7, "pip": 7, "compon": 7, "document": 7, "go": 7, "suitabl": 7, "folder": 7, "cd": 7, "home": 7, "usernam": 7, "clone": 7, "repositori": 7, "git": 7, "ssh": 7, "strade": 7, "fit": [7, 9], "vutbr": 7, "cz": 7, "3022": 7, "bp_dp": 7, "txt": 7, "r": 7, "now": 7, "run": [7, 11], "do": 7, "listedin": 7, "section": 7, "function": [8, 9], "error_messag": 8, "given": [8, 9], "error": [8, 12], "messag": [8, 12, 13], "exit": [8, 13], "arg": 8, "kwarg": 8, "stderr": 8, "argument": [9, 11, 12, 13], "argpars": 9, "read": 9, "arrai": 9, "uint8": 9, "grayscal": 9, "call": 9, "return": 9, "empti": 9, "figur": 9, "ax": 9, "dimens": 9, "mirror": [9, 13], "we": [], "posit": [12, 13], "In": [9, 12], "case": 9, "were": 9, "pass": 9, "fig": 9, "render": 9, "heightmap": 9, "255": 9, "Then": 9, "comput": 9, "valid": 9, "prepar": 9, "meshgrid": 9, "point": 9, "coordin": 9, "write": 9, "string": 9, "header": [9, 11], "80": 9, "byte": 9, "so": 9, "shorten": 9, "too": 9, "warn": 9, "truncat": 9, "uniqu": 9, "id": 9, "backsid": 9, "md5": 9, "face": 9, "indic": 9, "engrav": 9, "text": 9, "back": 9, "fill": 9, "draw": 9, "bottom_vert_arr": 9, "bottom": 9, "vertex": 9, "top_vert_arr": 9, "top": 9, "vertic": 9, "vector": 9, "append": 9, "depth": 12, "surfac": 9, "final": 9, "util": 11, "preformat": 11, "solut": 12, "probabl": 12, "forgot": 12, "some": 12, "palec_p14": 12, "doe": 12, "again": 12, "found": 12, "present": 12, "select": 12, "correct": [9, 12], "undefined_filt": 12, "One": 12, "defin": 12, "unrecogn": 12, "must": 12, "less": 12, "plate": 12, "when": [12, 13], "cast": 12, "thckness": 12, "otherwis": 12, "would": 12, "hole": 12, "cannot": 12, "neg": 12, "order": 12, "both": 12, "ani": 12, "outsid": 12, "noth": 12, "try": 12, "doubt": 13, "alwai": 13, "help": 13, "out": 13, "stl_file": 13, "database_filenam": 13, "program": 13, "2d": 13, "3d": [1, 13], "scanner": 13, "filter_name1": 13, "param1": 13, "param2": 13, "filter_name2": 13, "show": 13, "pair": 13, "parser": 1, "cancel": 9, "implicit": 9, "choos": [5, 9], "code": 9, "z": 9, "new_ridg": [3, 5], "next": 5, "finger_model": [5, 13], "allow": 5, "finger_backup": 5}, "objects": {"": [[1, 0, 0, "-", "config_parser"], [4, 0, 0, "-", "filters"], [8, 0, 0, "-", "log"]], "config_parser": [[1, 1, 1, "", "parse_conf"], [1, 1, 1, "", "parse_params"], [1, 1, 1, "", "save_preset"], [1, 1, 1, "", "store_to_db"]], "filters": [[4, 2, 1, "", "add_margin"], [4, 2, 1, "", "bilateral"], [4, 2, 1, "", "bilateral_scikit"], [4, 2, 1, "", "binarize"], [4, 2, 1, "", "binarize_otsu"], [4, 2, 1, "", "block_match"], [4, 2, 1, "", "dilate"], [4, 2, 1, "", "erode"], [4, 2, 1, "", "farid"], [4, 2, 1, "", "gaussian"], [4, 2, 1, "", "hessian"], [4, 2, 1, "", "img_filter"], [4, 2, 1, "", "invert"], [4, 2, 1, "", "median"], [4, 2, 1, "", "meijering"], [4, 2, 1, "", "nlmeans"], [4, 2, 1, "", "sato"], [4, 2, 1, "", "scale_values"], [4, 2, 1, "", "total_variation"], [4, 2, 1, "", "unsharp_mask_pil"], [4, 2, 1, "", "unsharp_mask_scikit"]], "filters.add_margin": [[4, 3, 1, "", "apply"], [4, 3, 1, "", "init"]], "filters.bilateral": [[4, 3, 1, "", "apply"]], "filters.bilateral_scikit": [[4, 3, 1, "", "apply"]], "filters.binarize": [[4, 3, 1, "", "apply"], [4, 3, 1, "", "init"]], "filters.binarize_otsu": [[4, 3, 1, "", "apply"], [4, 3, 1, "", "init"]], "filters.block_match": [[4, 3, 1, "", "apply"]], "filters.dilate": [[4, 3, 1, "", "apply"]], "filters.erode": [[4, 3, 1, "", "apply"]], "filters.farid": [[4, 3, 1, "", "apply"]], "filters.gaussian": [[4, 3, 1, "", "apply"]], "filters.hessian": [[4, 3, 1, "", "apply"]], "filters.invert": [[4, 3, 1, "", "apply"]], "filters.median": [[4, 3, 1, "", "apply"]], "filters.meijering": [[4, 3, 1, "", "apply"]], "filters.nlmeans": [[4, 3, 1, "", "apply"]], "filters.sato": [[4, 3, 1, "", "apply"]], "filters.scale_values": [[4, 3, 1, "", "apply"]], "filters.total_variation": [[4, 3, 1, "", "apply"]], "filters.unsharp_mask_pil": [[4, 3, 1, "", "apply"]], "filters.unsharp_mask_scikit": [[4, 3, 1, "", "apply"]], "log": [[8, 1, 1, "", "error_exit"], [8, 1, 1, "", "print_message"]], "main": [[9, 1, 1, "", "__init__"], [9, 1, 1, "", "append_faces"], [9, 1, 1, "", "apply_filters"], [9, 1, 1, "", "create_faces"], [9, 1, 1, "", "create_stl_mesh"], [9, 1, 1, "", "engrave_text"], [9, 2, 1, "", "fingerprint_app"], [9, 1, 1, "", "get_ID"], [9, 1, 1, "", "get_empty_figure"], [9, 1, 1, "", "make_stl_curved"], [9, 1, 1, "", "make_stl_map"], [9, 1, 1, "", "make_stl_planar"], [9, 1, 1, "", "mirror_image"], [9, 1, 1, "", "parse_arguments"], [9, 1, 1, "", "parse_stl"], [9, 1, 1, "", "prepare_heightmap"], [9, 1, 1, "", "run_filtering"], [9, 1, 1, "", "run_stl"], [9, 1, 1, "", "save_image"], [9, 1, 1, "", "save_stl"], [9, 1, 1, "", "write_stl_header"]], "stl_parser": [[11, 1, 1, "", "stl_parser"]]}, "objtypes": {"0": "py:module", "1": "py:function", "2": "py:class", "3": "py:method"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"], "2": ["py", "class", "Python class"], "3": ["py", "method", "Python method"]}, "titleterms": {"configur": 0, "preset": 0, "config_pars": 1, "modul": [1, 4, 8, 9, 11], "avail": 2, "filter": [2, 3, 4], "paramet": 2, "imag": 3, "gener": 5, "fingerprint": 5, "model": 5, "curv": 5, "planar": 5, "finger": 5, "map": 5, "exist": 5, "generov\u00e1n\u00ed": 6, "3d": 6, "modelu": 6, "otisku": 6, "prstu": 6, "content": 6, "instal": 7, "requir": 7, "get": 7, "start": 7, "log": 8, "main": 9, "src": 10, "stl_parser": 11, "troubleshoot": 12, "usag": 13}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 57}, "alltitles": {"Configuration and presets": [[0, "configuration-and-presets"]], "Available filters with parameters": [[2, "available-filters-with-parameters"]], "Generov\u00e1n\u00ed 3D modelu otisku prstu": [[6, "generovani-3d-modelu-otisku-prstu"]], "Contents": [[6, "contents"]], "Installation": [[7, "installation"]], "Requirements": [[7, "requirements"]], "Getting started": [[7, "getting-started"]], "src": [[10, "src"]], "Troubleshooting": [[12, "troubleshooting"]], "config_parser module": [[1, "module-config_parser"]], "filters module": [[4, "module-filters"]], "log module": [[8, "module-log"]], "main module": [[9, "main-module"]], "stl_parser module": [[11, "stl-parser-module"]], "Filtering images": [[3, "filtering-images"]], "Generating fingerprint models": [[5, "generating-fingerprint-models"]], "Generating curved fingerprint model": [[5, "generating-curved-fingerprint-model"]], "Generating planar finger model": [[5, "generating-planar-finger-model"]], "Mapping fingerprint to existing finger model": [[5, "mapping-fingerprint-to-existing-finger-model"]], "Usage": [[13, "usage"]]}, "indexentries": {}}) \ No newline at end of file +Search.setIndex({"docnames": ["config", "config_parser", "filter_list", "filtering", "filters", "generation", "index", "installation", "log", "main", "modules", "stl_parser", "troubleshooting", "usage"], "filenames": ["config.rst", "config_parser.rst", "filter_list.rst", "filtering.rst", "filters.rst", "generation.rst", "index.rst", "installation.rst", "log.rst", "main.rst", "modules.rst", "stl_parser.rst", "troubleshooting.rst", "usage.rst"], "titles": ["Configuration and presets", "config_parser module", "Available filters with parameters", "Filtering images", "filters module", "Generating fingerprint models", "Generov\u00e1n\u00ed 3D modelu otisku prstu", "Installation", "log module", "main module", "src", "stl_parser module", "Troubleshooting", "Usage"], "terms": {"There": [0, 3], "i": [0, 1, 2, 3, 4, 5, 7, 9, 12], "an": [0, 2, 6, 9, 12], "option": [0, 5, 13], "input": [0, 3, 6, 9, 12, 13], "filter": [0, 1, 6, 9, 10, 12, 13], "seri": 0, "from": [0, 1, 3, 4, 6, 7, 9, 12, 13], "json": [0, 3, 5], "file": [0, 1, 3, 9, 11, 12, 13], "here": 0, "ar": [0, 1, 3, 5, 7, 12], "store": [0, 1, 9, 13], "readi": [0, 3], "us": [0, 2, 3, 4, 5, 6, 7, 9, 13], "whenev": 0, "need": [0, 3, 5, 7, 9], "you": [0, 3, 7, 12, 13], "can": [0, 3, 6, 13], "usehow": 0, "mani": 0, "long": [0, 9], "like": 0, "output": [0, 3, 5, 9, 13], "It": [0, 5, 7], "therefor": 0, "highli": 0, "recommend": 0, "check": [0, 9, 12, 13], "after": 0, "everi": [0, 3], "chang": [0, 12], "exampl": [0, 3, 5, 7], "abov": 0, "list": [0, 1, 2, 3, 9, 13], "bellow": [0, 3, 7], "along": [0, 5], "gener": [0, 1, 6, 9, 12], "form": [0, 5, 13], "format": 0, "work": [0, 5, 7], "name": [0, 1, 3, 12, 13], "filter_nam": 0, "paramet": [0, 1, 3, 4, 5, 6, 9, 12, 13], "valu": [0, 1, 2, 4, 9, 13], "git_exampl": 0, "denoise_tv_chambol": [0, 4], "weight": [0, 2, 3], "0": [0, 3, 5, 9], "01": 0, "iter": [0, 5, 9, 13], "1": 0, "median": [0, 2, 3, 4, 6, 10], "ksize": [0, 2, 3], "3": [0, 7], "To": [0, 7], "avoid": 0, "accident": 0, "loss": 0, "inform": [0, 6], "caus": 0, "modifi": [0, 3, 5], "have": [0, 12], "been": [0, 6, 7], "stl": [0, 5, 9, 11, 12, 13], "insid": [0, 7], "db": 0, "thi": [0, 4, 5, 6, 7, 9, 13], "serv": [0, 9], "simpl": 0, "databas": [0, 1, 13], "ad": [0, 2, 9], "hash": [0, 9], "all": [0, 2, 3, 4, 7, 9], "also": [0, 7, 9], "save": [0, 1, 9], "current": [0, 2, 9], "command": [0, 1, 3, 5, 9, 11, 12], "line": [0, 1, 3, 4, 5, 9, 12], "set": [0, 1, 5, 7], "d": [0, 13], "switch": [0, 5, 13], "": [0, 6, 13], "new": [0, 3], "parse_conf": [1, 6, 10], "preset_nam": 1, "param": [1, 4, 8], "config_fil": [1, 5, 13], "pars": [1, 9, 11], "configur": [1, 3, 6], "one": [1, 4, 9], "wa": [1, 6], "specifi": 1, "preset": [1, 3, 5, 6, 12, 13], "load": [1, 3, 12], "dictionari": 1, "path": [1, 3, 13], "config": [1, 3, 5, 12, 13], "parse_param": [1, 6, 10], "none": [1, 9], "These": [1, 5], "later": [1, 7, 9], "default": 1, "method": 1, "appli": [1, 4, 6, 9, 10], "save_preset": [1, 6, 10], "store_to_db": [1, 6, 10], "overview": 2, "implement": [2, 4], "descript": 2, "below": 2, "blur": [2, 4], "int": 2, "kernel": [2, 4], "size": 2, "determin": 2, "how": [2, 7], "larg": 2, "area": 2, "process": [2, 6, 9, 12, 13], "gaussian": [2, 4, 6, 10], "sigma": [2, 4], "standart": 2, "deviat": 2, "further": 2, "pixel": [2, 4], "bilater": [2, 4, 6, 10], "diamet": 2, "neighborhood": 2, "sigmacolor": 2, "differ": 2, "color": [2, 4, 9], "sigmaspac": 2, "bilateral_scikit": [2, 4, 6, 10], "float": 2, "nlmean": [2, 4, 6, 10], "non": [2, 4], "local": [2, 4], "mean": [2, 4], "patch_siz": 2, "patch": 2, "denois": [2, 4], "patch_dist": 2, "distanc": [2, 4], "where": 2, "search": 2, "h": [2, 13], "cut": 2, "off": [2, 7], "higher": [2, 5], "more": [2, 5], "smooth": 2, "imag": [2, 4, 6, 9, 12, 13], "total_vari": [2, 3, 4, 6, 10], "much": [2, 4], "block_match": [2, 4, 6, 10], "unsharp_mask_scikit": [2, 4, 6, 10], "radiu": [2, 4], "amount": [2, 4], "strength": [2, 4], "unsharp": [2, 4], "mask": [2, 4], "farid": [2, 4, 6, 10], "meijer": [2, 4, 6, 10], "sato": [2, 4, 6, 10], "hessian": [2, 4, 6, 10], "invert": [2, 4, 6, 10], "scale_valu": [2, 4, 6, 10], "binar": [2, 4, 6, 10], "threshold": 2, "differenti": 2, "binarize_otsu": [2, 4, 6, 10], "add_margin": [2, 4, 6, 10], "margin": [2, 4], "number": [2, 5], "add": [2, 4, 9], "side": [2, 12], "newli": 2, "erod": [2, 4, 6, 10], "numpi": [2, 9], "matrix": 2, "shape": [2, 5], "dilat": [2, 4, 6, 10], "onc": 3, "requir": [3, 5, 6, 12], "instal": [3, 6], "applic": [1, 3, 4, 6, 7, 8, 9], "fingerprint": [1, 3, 6, 9, 12, 13], "sampl": 3, "locat": [3, 5], "re": [3, 5, 12], "its": [3, 5, 7, 12], "palec_p4": [3, 5], "tif": [3, 5, 12], "enter": [3, 7], "virtual": [3, 7], "enviro": [3, 7], "time": 3, "want": [3, 5, 12], "sourc": [3, 7], "venv": [3, 7], "bin": [3, 7], "activ": [3, 6, 7], "The": [3, 5, 6, 7, 12], "filenam": [3, 5, 9, 12], "includ": [3, 7, 12], "root": 3, "project": [3, 6, 9], "directori": [3, 7], "dpi": [3, 5, 12, 13], "shown": 3, "python3": [3, 5, 7, 13], "src": [3, 5, 6, 13], "main": [3, 5, 6, 10, 11, 12, 13], "py": [3, 5, 11, 12, 13], "input_fil": [3, 5, 12, 13], "output_fil": [3, 5, 12, 13], "two": [3, 6], "wai": 3, "manual": 3, "palec_p4_from_clin": 3, "png": [3, 5], "600": [3, 5], "15": 3, "5": 3, "them": 3, "tune": 3, "exist": [3, 6, 12], "creat": [3, 7, 9, 13], "ones": 3, "palec_p4_from_preset": [3, 5], "conf": [3, 5], "brief": [], "librari": [4, 6, 9, 12], "author": [], "xlanro00": 7, "class": [4, 9], "img": 4, "base": [4, 5, 9, 12], "img_filt": [4, 6, 10], "init": [4, 6, 10], "opencv": [4, 9], "skimag": 4, "denoise_bilater": 4, "averag": 4, "similar": 4, "preserv": 4, "edg": 4, "while": 4, "remov": 4, "unwant": 4, "nois": 4, "slower": 4, "than": [4, 12], "otsu": 4, "_": 4, "block": 4, "match": 4, "bm3d": 4, "veri": 4, "slow": 4, "should": [4, 7, 9, 12], "onli": [4, 5, 7, 12], "small": 4, "morpholog": 4, "oper": 4, "eros": 4, "find": 4, "scikit": 4, "easier": 4, "version": [4, 7], "object": 4, "parent": 4, "bitwise_not": 4, "over": [4, 9], "limit": 4, "5x5": 4, "continu": 4, "ridg": 4, "exctract": 4, "scale": [4, 9], "entir": 4, "rang": [4, 12], "data": [4, 9], "type": [4, 5], "height": [4, 5, 9, 12], "issu": 4, "perform": 4, "total": 4, "variat": 4, "techniqu": 4, "origin": [4, 9], "chambol": 4, "paper": 4, "fine": 4, "detail": 4, "unsharp_mask_pil": [4, 6, 10], "pil": 4, "subtract": 4, "regul": 4, "better": [4, 5], "result": [4, 5], "possibl": [5, 7], "first": [5, 6, 12], "which": [5, 7, 9, 13], "If": [5, 9], "mode": [5, 9, 12], "c": [5, 9, 12, 13], "follow": [5, 12, 13], "control": 5, "papilar": [5, 9], "height_lin": [5, 13], "second": [5, 6], "thick": [5, 12], "height_bas": [5, 13], "third": 5, "rate": 5, "curvatur": 5, "x": 5, "axi": 5, "curv_rate_x": [5, 13], "y": 5, "curv_rate_i": [5, 13], "curvature_x": 5, "curvature_i": 5, "2": 5, "10": [5, 7], "p": [5, 12, 13], "make": [5, 6], "flat": 5, "m": [5, 12, 13], "preexist": 5, "contain": [5, 9], "mesh": [5, 9], "denser": 5, "itert": 5, "last": 5, "three": 5, "offset": [5, 9], "finger_x": [5, 12, 13], "finger_i": [5, 12, 13], "finger_z": [5, 12, 13], "thei": 5, "user": 5, "move": 5, "core": 5, "print": [5, 6, 8, 9, 11, 13], "closer": 5, "center": 5, "ha": [6, 7, 9], "develop": 6, "part": 6, "bachelor": 6, "thesi": 6, "brno": 6, "univers": 6, "technologi": 6, "faculti": 6, "topic": 6, "model": [1, 6, 9, 12, 13], "consist": 6, "custom": [5, 6], "enhanc": 6, "sever": [6, 7], "import": 6, "modul": [6, 7, 10], "accur": 6, "represent": 6, "human": 6, "printer": 6, "either": 6, "planar": [6, 12], "curv": [6, 9, 12], "map": [6, 9, 12], "finger": [6, 9, 12], "still": 6, "under": 6, "get": [6, 9], "start": 6, "avail": 6, "usag": 6, "troubleshoot": 6, "config_pars": [6, 10], "log": [6, 10], "error_exit": [6, 8, 10], "print_messag": [6, 8, 10], "fingerprint_app": [6, 9, 10], "__init__": [6, 9, 10], "parse_argu": [6, 9, 10], "parse_stl": [6, 9, 10], "run_filt": [6, 9, 10], "get_empty_figur": [6, 9, 10], "mirror_imag": [6, 9, 10], "apply_filt": [6, 9, 10], "save_imag": [6, 9, 10], "run_stl": [6, 9, 10], "prepare_heightmap": [6, 9, 10], "write_stl_head": [6, 9, 10], "get_id": [6, 9, 10], "append_fac": [6, 9, 10], "engrave_text": [6, 9, 10], "create_stl_mesh": [6, 9, 10], "create_fac": [6, 9, 10], "make_stl_planar": [6, 9, 10], "make_stl_curv": [6, 9, 10], "make_stl_map": [6, 9, 10], "save_stl": [6, 9, 10], "stl_parser": [6, 10], "test": 7, "ubuntu": 7, "gnu": 7, "linux": 7, "machin": 7, "howev": 7, "most": 7, "distribut": 7, "wsl": 7, "succesfulli": 7, "python": 7, "might": 7, "earlier": 7, "sudo": 7, "apt": 7, "virtualenv": 7, "packag": 7, "creation": 7, "other": [7, 12], "automat": 7, "pip": 7, "compon": 7, "document": 7, "go": 7, "suitabl": 7, "folder": 7, "cd": 7, "home": 7, "usernam": 7, "clone": 7, "repositori": 7, "git": 7, "ssh": [], "strade": 7, "fit": [7, 9], "vutbr": 7, "cz": 7, "3022": [], "bp_dp": 7, "txt": 7, "r": 7, "now": 7, "run": [7, 11], "do": 7, "listedin": 7, "section": 7, "function": [8, 9], "error_messag": 8, "given": [8, 9], "error": [8, 12], "messag": [8, 12, 13], "exit": [8, 13], "arg": 8, "kwarg": 8, "stderr": 8, "argument": [9, 11, 12, 13], "argpars": 9, "read": 9, "arrai": 9, "uint8": 9, "grayscal": 9, "call": 9, "return": 9, "empti": 9, "figur": 9, "ax": 9, "dimens": 9, "mirror": [9, 13], "we": [], "posit": [12, 13], "In": [9, 12], "case": 9, "were": 9, "pass": 9, "fig": 9, "render": 9, "heightmap": 9, "255": 9, "Then": 9, "comput": 9, "valid": 9, "prepar": 9, "meshgrid": 9, "point": 9, "coordin": 9, "write": 9, "string": 9, "header": [9, 11], "80": 9, "byte": 9, "so": 9, "shorten": 9, "too": 9, "warn": 9, "truncat": 9, "uniqu": 9, "id": 9, "backsid": 9, "md5": 9, "face": 9, "indic": 9, "engrav": 9, "text": 9, "back": 9, "fill": 9, "draw": 9, "bottom_vert_arr": 9, "bottom": 9, "vertex": 9, "top_vert_arr": 9, "top": 9, "vertic": 9, "vector": 9, "append": 9, "depth": 12, "surfac": 9, "final": 9, "util": 11, "preformat": 11, "solut": 12, "probabl": 12, "forgot": 12, "some": 12, "palec_p14": 12, "doe": 12, "again": 12, "found": 12, "present": 12, "select": 12, "correct": [9, 12], "undefined_filt": 12, "One": 12, "defin": 12, "unrecogn": 12, "must": 12, "less": 12, "plate": 12, "when": [12, 13], "cast": 12, "thckness": 12, "otherwis": 12, "would": 12, "hole": 12, "cannot": 12, "neg": 12, "order": 12, "both": 12, "ani": 12, "outsid": 12, "noth": 12, "try": 12, "doubt": 13, "alwai": 13, "help": 13, "out": 13, "stl_file": [], "database_filenam": 13, "program": 13, "2d": 13, "3d": [1, 13], "scanner": 13, "filter_name1": 13, "param1": 13, "param2": 13, "filter_name2": 13, "show": 13, "pair": 13, "parser": 1, "cancel": 9, "implicit": 9, "choos": [5, 9], "code": 9, "z": 9, "new_ridg": [3, 5], "next": 5, "finger_model": [5, 13], "allow": 5, "finger_backup": 5, "http": 7}, "objects": {"": [[1, 0, 0, "-", "config_parser"], [4, 0, 0, "-", "filters"], [8, 0, 0, "-", "log"]], "config_parser": [[1, 1, 1, "", "parse_conf"], [1, 1, 1, "", "parse_params"], [1, 1, 1, "", "save_preset"], [1, 1, 1, "", "store_to_db"]], "filters": [[4, 2, 1, "", "add_margin"], [4, 2, 1, "", "bilateral"], [4, 2, 1, "", "bilateral_scikit"], [4, 2, 1, "", "binarize"], [4, 2, 1, "", "binarize_otsu"], [4, 2, 1, "", "block_match"], [4, 2, 1, "", "dilate"], [4, 2, 1, "", "erode"], [4, 2, 1, "", "farid"], [4, 2, 1, "", "gaussian"], [4, 2, 1, "", "hessian"], [4, 2, 1, "", "img_filter"], [4, 2, 1, "", "invert"], [4, 2, 1, "", "median"], [4, 2, 1, "", "meijering"], [4, 2, 1, "", "nlmeans"], [4, 2, 1, "", "sato"], [4, 2, 1, "", "scale_values"], [4, 2, 1, "", "total_variation"], [4, 2, 1, "", "unsharp_mask_pil"], [4, 2, 1, "", "unsharp_mask_scikit"]], "filters.add_margin": [[4, 3, 1, "", "apply"], [4, 3, 1, "", "init"]], "filters.bilateral": [[4, 3, 1, "", "apply"]], "filters.bilateral_scikit": [[4, 3, 1, "", "apply"]], "filters.binarize": [[4, 3, 1, "", "apply"], [4, 3, 1, "", "init"]], "filters.binarize_otsu": [[4, 3, 1, "", "apply"], [4, 3, 1, "", "init"]], "filters.block_match": [[4, 3, 1, "", "apply"]], "filters.dilate": [[4, 3, 1, "", "apply"]], "filters.erode": [[4, 3, 1, "", "apply"]], "filters.farid": [[4, 3, 1, "", "apply"]], "filters.gaussian": [[4, 3, 1, "", "apply"]], "filters.hessian": [[4, 3, 1, "", "apply"]], "filters.invert": [[4, 3, 1, "", "apply"]], "filters.median": [[4, 3, 1, "", "apply"]], "filters.meijering": [[4, 3, 1, "", "apply"]], "filters.nlmeans": [[4, 3, 1, "", "apply"]], "filters.sato": [[4, 3, 1, "", "apply"]], "filters.scale_values": [[4, 3, 1, "", "apply"]], "filters.total_variation": [[4, 3, 1, "", "apply"]], "filters.unsharp_mask_pil": [[4, 3, 1, "", "apply"]], "filters.unsharp_mask_scikit": [[4, 3, 1, "", "apply"]], "log": [[8, 1, 1, "", "error_exit"], [8, 1, 1, "", "print_message"]], "main": [[9, 1, 1, "", "__init__"], [9, 1, 1, "", "append_faces"], [9, 1, 1, "", "apply_filters"], [9, 1, 1, "", "create_faces"], [9, 1, 1, "", "create_stl_mesh"], [9, 1, 1, "", "engrave_text"], [9, 2, 1, "", "fingerprint_app"], [9, 1, 1, "", "get_ID"], [9, 1, 1, "", "get_empty_figure"], [9, 1, 1, "", "make_stl_curved"], [9, 1, 1, "", "make_stl_map"], [9, 1, 1, "", "make_stl_planar"], [9, 1, 1, "", "mirror_image"], [9, 1, 1, "", "parse_arguments"], [9, 1, 1, "", "parse_stl"], [9, 1, 1, "", "prepare_heightmap"], [9, 1, 1, "", "run_filtering"], [9, 1, 1, "", "run_stl"], [9, 1, 1, "", "save_image"], [9, 1, 1, "", "save_stl"], [9, 1, 1, "", "write_stl_header"]], "stl_parser": [[11, 1, 1, "", "stl_parser"]]}, "objtypes": {"0": "py:module", "1": "py:function", "2": "py:class", "3": "py:method"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"], "2": ["py", "class", "Python class"], "3": ["py", "method", "Python method"]}, "titleterms": {"configur": 0, "preset": 0, "config_pars": 1, "modul": [1, 4, 8, 9, 11], "avail": 2, "filter": [2, 3, 4], "paramet": 2, "imag": 3, "gener": 5, "fingerprint": 5, "model": 5, "curv": 5, "planar": 5, "finger": 5, "map": 5, "exist": 5, "generov\u00e1n\u00ed": 6, "3d": 6, "modelu": 6, "otisku": 6, "prstu": 6, "content": 6, "instal": 7, "requir": 7, "get": 7, "start": 7, "log": 8, "main": 9, "src": 10, "stl_parser": 11, "troubleshoot": 12, "usag": 13}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 57}, "alltitles": {"Configuration and presets": [[0, "configuration-and-presets"]], "Available filters with parameters": [[2, "available-filters-with-parameters"]], "Generov\u00e1n\u00ed 3D modelu otisku prstu": [[6, "generovani-3d-modelu-otisku-prstu"]], "Contents": [[6, "contents"]], "src": [[10, "src"]], "Troubleshooting": [[12, "troubleshooting"]], "config_parser module": [[1, "module-config_parser"]], "filters module": [[4, "module-filters"]], "log module": [[8, "module-log"]], "main module": [[9, "main-module"]], "stl_parser module": [[11, "stl-parser-module"]], "Filtering images": [[3, "filtering-images"]], "Generating fingerprint models": [[5, "generating-fingerprint-models"]], "Generating curved fingerprint model": [[5, "generating-curved-fingerprint-model"]], "Generating planar finger model": [[5, "generating-planar-finger-model"]], "Mapping fingerprint to existing finger model": [[5, "mapping-fingerprint-to-existing-finger-model"]], "Installation": [[7, "installation"]], "Requirements": [[7, "requirements"]], "Getting started": [[7, "getting-started"]], "Usage": [[13, "usage"]]}, "indexentries": {}}) \ No newline at end of file diff --git a/docs/build/usage.html b/docs/build/usage.html index bcc044d..7a9a97c 100644 --- a/docs/build/usage.html +++ b/docs/build/usage.html @@ -213,8 +213,8 @@

    Which will print out the following message.

    $ usage: main.py [-h] [-m | --mirror | --no-mirror] input_file
     output_file dpi ([-c | --config config_file preset] |
    -[filters ...]) [-s | --stl_file p height_line height_base |
    ---stl_file c height_line height_base curv_rate_x curv_rate_y |
    +[filters ...]) [-s | --stl p height_line height_base |
    +--stl c height_line height_base curv_rate_x curv_rate_y |
     --stl m height_line iter finger_x finger_y finger_z finger_model]
     [-d | --database database_filename]
     
    @@ -232,11 +232,13 @@
     -h, --help            show this help message and exit
     -m, --mirror, --no-mirror
                             switch to mirror input image
    --s [STL_FILE ...], --stl_file [STL_FILE ...]
    +-s [STL ...], --stl [STL ...]
                             create stl model from processed image
     -c CONFIG CONFIG, --config CONFIG CONFIG
                             pair: name of the config file with presets,
                             name of the preset
    +-d DATABASE,       --database DATABASE
    +                        switch to store presets in config database
     
    diff --git a/docs/source/installation.rst b/docs/source/installation.rst index 20eec77..ef7aa60 100644 --- a/docs/source/installation.rst +++ b/docs/source/installation.rst @@ -42,7 +42,7 @@ It will also install several required python packages, including venv, which is .. code-block:: console - $ git clone ssh://git@strade.fit.vutbr.cz:3022/xlanro00/BP_DP-xlanro00.git + $ git clone https://strade.fit.vutbr.cz/git/xlanro00/BP_DP-xlanro00.git 3. Go inside cloned directory: