# About this Project This project is being developed as a practical part of bachelor's thesis at Brno University of Technology - Faculty of Information Technology. It is as of now a work in progress. The topic of this thesis is Generating a 3D Fingerprint Model from input fingerprint image. 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. The second part of the project includes the functionality to use generated image as a height map for generating 3D model in stl format. This model can either be planar, curved or mapped. # Prerequisites For now this is only viable for ubuntu gnu/linux machines. It should however be possible to run it in WSL and virtual machines of most linux distributions. 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 ```sh sudo apt install python3.10 ``` * virtualenv package for virtual enviroment creation, other packages are installed automatically later ```sh pip install virtualenv ``` # Installation 1. Go to a suitable installation folder, for example Documents: ```sh cd /home/username/Documents ``` 2. Clone the repository to a suitable directory, for example: ```sh git clone ssh://git@strade.fit.vutbr.cz:3022/xlanro00/BP_DP-xlanro00.git ``` 3. Go inside cloned directory: ```sh cd BP_DP-xlanro00 ``` 4. Create and enter the virtual enviroment: ```sh virtualenv .venv && source .venv/bin/activate ``` 5. Install required python modules from requirements.txt: ```sh pip install -r requirements.txt ``` 6. Now, you can run the application, as an example there is a file in res/examples called Palec_P4.tif. This is shown in the section below. # Filtering images Once all the requirements are installed, the application is ready to use. * You will need to enter the virtual enviroment every time you want to use the application. ```sh source .venv/bin/activate ``` * The application requires input and output filenames including path from the root project directory, dpi and filter list. ```sh python3 src/main.py input_file output_file dpi filters ``` There are two ways to enter the filters: 1. manually list all filter names and their parameters on the command line: ```sh python3 src/main.py res/examples/Palec_P4.tif res/examples/Palec_P4_from_cline.png 600 total_variation weight=0.15 median ksize=5 ``` 2. load them from preset in a JSON configuration file, that can be used to tune and modify existing presets, or create new ones: ```sh python3 src/main.py res/examples/Palec_P4.tif res/examples/Palec_P4_from_preset.png 600 --config conf/conf.json git_example ``` # Configuration and presets There is an option to input the filter series as a preset from JSON configuration file. To avoid accidental loss of information caused by modifying presets that have been used to generate stl files, these presets are stored inside a JSON file db.json. This file serves as a simple database for storing presets, stored presets are modified by adding generated hash of all the filters in that preset.
General format | Woking example |
---|---|
|
|
Before | After |
---|