# Generování 3D modelu otisku prstu 1.0 documentation

Hide navigation sidebar
Hide table of contents sidebar
Back to top
Toggle table of contents sidebar

# Generování 3D modelu otisku prstu

This application has been developed as a part of bachelor’s thesis at Brno University of Technology - Faculty of Information Technology. The topic of this thesis was Generating a 3D Fingerprint Model from input fingerprint image.

This application consists of two main parts. The first part of the application uses custom filter library to apply image filters to enhance fingerprint images. This library consists of several filters imported from image processing modules.

The second part uses the processed image to make a 3D model of the fingerprint. The model can then be used to print an accurate representation of human fingerprint using a 3D printer. This model can either be planar, curved or mapped to a finger model.

Note

Project still under active development.

## Contents

- Installation
  - Requirements
  - Getting started
- Filtering images
- Configuration and presets
- Available filters with parameters
- Generating fingerprint models
  - Generating curved fingerprint model
  - Generating planar finger model
  - Mapping fingerprint to existing finger model
- Usage
- Troubleshooting
- src
  - config_parser module
    - `parse_conf()`
    - `parse_params()`
    - `save_preset()`
    - `store_to_db()`
  - filters module
    - `add_margin`
      - `add_margin.apply()`
      - `add_margin.init()`
    - `bilateral`
      - `bilateral.apply()`
    - `bilateral_scikit`
      - `bilateral_scikit.apply()`
    - `binarize`
      - `binarize.apply()`
      - `binarize.init()`
    - `binarize_otsu`
      - `binarize_otsu.apply()`
      - `binarize_otsu.init()`
    - `block_match`
      - `block_match.apply()`
    - `dilate`
      - `dilate.apply()`
    - `erode`
      - `erode.apply()`
    - `farid`
      - `farid.apply()`
    - `gaussian`
      - `gaussian.apply()`
    - `hessian`
      - `hessian.apply()`
    - `img_filter`
    - `invert`
      - `invert.apply()`
    - `median`
      - `median.apply()`
    - `meijering`
      - `meijering.apply()`
    - `nlmeans`
      - `nlmeans.apply()`
    - `sato`
      - `sato.apply()`
    - `scale_values`
      - `scale_values.apply()`
    - `total_variation`
      - `total_variation.apply()`
    - `unsharp_mask_pil`
      - `unsharp_mask_pil.apply()`
    - `unsharp_mask_scikit`
      - `unsharp_mask_scikit.apply()`
  - log module
    - `error_exit()`
    - `print_message()`
  - main module
    - `main.fingerprint_app`
    - `main.__init__()`
    - `main.parse_arguments()`
    - `main.parse_stl()`
    - `main.run_filtering()`
    - `main.get_empty_figure()`
    - `main.mirror_image()`
    - `main.apply_filters()`
    - `main.save_image()`
    - `main.run_stl()`
    - `main.prepare_heightmap()`
    - `main.write_stl_header()`
    - `main.get_ID()`
    - `main.append_faces()`
    - `main.engrave_text()`
    - `main.create_stl_mesh()`
    - `main.create_faces()`
    - `main.make_stl_planar()`
    - `main.make_stl_curved()`
    - `main.make_stl_map()`
    - `main.save_stl()`
  - stl_parser module
    - `stl_parser.stl_parser()`