# 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 ```sh sudo apt install python3.10 ``` * virtualenv for virtual enviroment creation ```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. 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 * You will need to enter the virtual enviroment every time you want to use the application. ```sh source .venv/bin/activate ``` Once all the requirements are installed, the program is ready to use. There are two ways to enter the filters: 1. manually list filter names and parameters from command line ```sh python3 src/main.py res/examples/Palec_P4.tif res/examples/Palec_P4.png 600 denoise_tv_chambolle iterations=1 weight=0.2 median ksize=5 ``` 2. from preset saved in a json config file, that can be used to tune and modify existing presetrs, or create new ones ```sh python3 src/main.py res/examples/Palec_P4.tif res/examples/Palec_P4_from_preset.png 600 --config config/config.json git_example ``` # Configuration and presets There is an option to input the filter series as a preset from json configuration file. ```diff { "preset": [ { "name": "filter_name", "parameter": value, "parameter": value }, { "name": "filter_name", "parameter": value } ], "preset": [ ... ] ... } ``` For example ```diff { "git_example": [ { "name": "denoise_tv_chambolle", "weight": 0.01, "iterations": 1 }, { "name": "median", "ksize": 3 } ] } ``` All the filters used and their parameters are described below. ## Available filters with parameters -median blur -ksize - kernel size (int) -gaussian blur -ksize - Gaussian kernel size (int) -sigmaX - Kernel deviation in X direction (float) -sigmaY - Kernel deviation in Y direction (float) -bilateral blur -d - ? (int) -sigmaColor - ? (int) -sigmaSpace - ? (int) -denoise -h - ? (int) -tWS - template window size (int) -sWs - search window size (int) -denoise_bilateral -sigmaColor - ? (int) -sigmaSpace - ? (int) -iterations - ? (int) -denoise_tv_chambolle -weight - ? (float) -iterations - ? (int) -sharpen -kernel - ? (numpy.matrix) -unsharp mask -strength - ? (float) -ksize - kernel size (int) -unsharp mask scikit -radius - ? (int) -amount - ? (float) -morph -kernel - ? (numpy.matrix) -iterations - ? (int) -op - opencv MORPH operation (MORPH_OPEN, MORPH_CLOSE, MORPH_DILATE, MORPH_ERODE) -anchor - ? (tuple) # Comparison Image before processing the fingerprint and after applying a presets.
Before | After |
---|