Bakalářská práce 2022/2023
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Rostislav Lán 8c97c1ca8d
Updated readme
2 years ago
config Fixed all stl errors, should now work properly. 2 years ago
res Fixed all stl errors, should now work properly. 2 years ago
src Added unfinished basic 3D finger generation. 2 years ago
.gitignore Modified gitignore to allow example imagesand added it... 2 years ago
README.md Updated readme 2 years ago

README.md

About this Project

This project is being developed as a practical part of bachelor's thesis at Brno Universtiy of Technology - Faculty of Information Studies. It is as of now a work in progress, no results guaranteed.

The topic of this thesis is Generating a 3D Fingerprint Model. This application can be used to apply series of image processing filters to a fingerprint image to make it more suitable for conversion to 3D stl model and printing. It also includes the functionality to use generated image as a height map for generating an stl model. This model can either be planar or curved.

Prerequisites

For now this is only viable for ubuntu gnu/linux machines Before cloning repository, you need these to succesfully use the application.

  • python version 3.10 is a requirement might work on earlier python 3 versions

        apt install python3.10
    
  • python graphical modules

        pip install numpy matplotlib pillow
    

Installation

Installation is relatively fast and easy.

  1. Clone the repository

        git clone ssh://git@strade.fit.vutbr.cz:3022/xlanro00/BP_DP-xlanro00.git
    
  2. Prepare an image file containing fingerprint

  3. Run the application

Usage

There are two ways to enter filters

  • manually from command line, list filter names and parameters
        python src/main.py res/test_fp.png res/test_fp_cpy.png 100 gaussian ksize=5 erode dilate sharpen
    
  • manually from preset saved in a json config file, that can be used to create new presets
        python src/main.py res/test_fp.png res/test_fp_cpy.png 100 --config config/config.json default
    

Configuration

There is an option to input the filter series as a preset to json configuration file.

{
    "preset_name": [
        {
        "name": "first_filter_name",
        "first_param_name": first_param_value,
        "second_param_name": second_param_value
        ...
        },
        {
        "name": "second_filter_name",
        ...
        }
    ],
    "another_preset_name": [
        ...
    ]
}

All the filters used and their parameters will be described in documentation.

Comparison

Image before processing the fingerprint and after applying a presets.

Before After

Generated STL lithophane

It is possible to generate 3D printable stl planar model using --stl switch, which requires aditional parameter containing stl filename. Using -p switch makes the model planar. This is not the main goal of the application. Additional parameters with model thickness and papilar lines height will be optional.

Example running

Generated STL finger model

When --stl switch is given without -p, the output model will either be a generated curved finger model, or later (if implemented) a fingerprint mapped to finger model.

Fingerprint mapped to finger model

This section will be added later.

Roadmap

  • Load and store image
  • Apply basic image processing filters
    • Scale the image using given dpi
  • Create filter library with more filters
    • Add more suitable filters to the library
  • Use presets from config files
    • Add the option to save current filter preset to config file
  • Add the option to modify filter parameters
  • Convert the processed image to stl lithophane
  • Add the option to curve the lithophane into the shape of a finger
  • Add the option to map the lithophane on a given finger model
  • Export final model ready for 3D print

Author

Rostislav Lán - xlanro00@stud.fit.vutbr.cz

Supervisor

Ing. Petr Malaník

Project Link: https://strade.fit.vutbr.cz/git/xlanro00/BP_DP-xlanro00