Simplified test script, fixed readme
This commit is contained in:
61
README.md
61
README.md
@ -64,7 +64,7 @@ Once all the requirements are installed, the program is ready to use. There are
|
||||
|
||||
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
|
||||
python3 src/main.py res/examples/Palec_P4.tif res/examples/Palec_P4_from_shell.png 600 total_variation weight=0.15 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
|
||||
@ -76,7 +76,30 @@ Once all the requirements are installed, the program is ready to use. There are
|
||||
|
||||
There is an option to input the filter series as a preset from json configuration file.
|
||||
|
||||
```diff
|
||||
|
||||
<style>
|
||||
table {
|
||||
width: 100%;
|
||||
}
|
||||
th, td {
|
||||
padding: 10px;
|
||||
font-family: monospace;
|
||||
width: 50%;
|
||||
vertical-align: top;
|
||||
}
|
||||
</style>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>General format</th>
|
||||
<th>Woking example</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<pre><code class="language-json">
|
||||
{
|
||||
"preset": [
|
||||
{
|
||||
@ -94,11 +117,10 @@ There is an option to input the filter series as a preset from json configuratio
|
||||
]
|
||||
...
|
||||
}
|
||||
```
|
||||
|
||||
For example
|
||||
|
||||
```diff
|
||||
</code></pre>
|
||||
</td>
|
||||
<td>
|
||||
<pre><code class="language-json">
|
||||
{
|
||||
"git_example": [
|
||||
{
|
||||
@ -112,7 +134,13 @@ For example
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
</code></pre>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
All the filters used and their parameters are described below.
|
||||
|
||||
@ -186,12 +214,12 @@ First optional parameter is papilar line height, second rate of curvature along
|
||||
|
||||
* General form for curved stl generation
|
||||
```sh
|
||||
python3 src/main.py input_file output_file dpi --config config_file preset --stl height_line height_base curvature_x curvature_y
|
||||
python3 src/main.py input_file output_file dpi --config config_file preset --stl c height_line height_base curvature_x curvature_y
|
||||
```
|
||||
|
||||
* Working example curved stl generation
|
||||
```sh
|
||||
python3 src/main.py res/examples/Palec_P4.tif res/examples/Palec_P4_from_preset.png 600 --config config/config.json git_example --stl 2 10 2 2
|
||||
python3 src/main.py res/examples/Palec_P4.tif res/examples/Palec_P4_from_preset.png 600 --config config/config.json git_example --stl c 2 10 2 2
|
||||
```
|
||||
|
||||
# Generating planar finger model
|
||||
@ -201,21 +229,26 @@ Optional parameters are model base thickness and papilar lines height, they are
|
||||
|
||||
* General form for planar stl generation
|
||||
```sh
|
||||
python3 src/main.py input_file output_file dpi --config config_file preset --stl height_line height_base -p
|
||||
python3 src/main.py input_file output_file dpi --config config_file preset --stl p height_line height_base
|
||||
```
|
||||
|
||||
* Working example planar stl generation
|
||||
```sh
|
||||
python3 src/main.py res/examples/Palec_P4.tif res/examples/Palec_P4_from_preset.png 600 --config config/config.json git_example --stl 2 10 -p
|
||||
python3 src/main.py res/examples/Palec_P4.tif res/examples/Palec_P4_from_preset.png 600 --config config/config.json git_example --stl p 2 10
|
||||
```
|
||||
|
||||
# Mapping to existing finger model
|
||||
|
||||
This section will be added later, (if implemented) mapping of fingerprint to a given finger model.
|
||||
|
||||
* General form for planar stl generation
|
||||
```sh
|
||||
python3 src/main.py input_file output_file dpi --config config_file preset --stl m height_line height_base finger_file
|
||||
```
|
||||
|
||||
# Usage
|
||||
|
||||
usage: main.py [-h] [-m | --mirror | --no-mirror] [-p] input_file output_file dpi ([-c | --config config_file preset] | [filters ...]) [-s | --stl height_line height_base | --stl_file height_line curv_rate_x curv_rate_y]
|
||||
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 | --stl_file m height_line height_base finger_file]
|
||||
|
||||
Program for processing a 2D image into 3D fingerprint.
|
||||
|
||||
@ -232,8 +265,6 @@ options:
|
||||
switch to mirror input image
|
||||
-s [STL_FILE ...], --stl_file [STL_FILE ...]
|
||||
create stl model from processed image
|
||||
-p, --planar, --no-planar
|
||||
make stl shape planar instead of curved one
|
||||
-c CONFIG CONFIG, --config CONFIG CONFIG
|
||||
pair: name of the config file with presets, name of the preset
|
||||
|
||||
|
@ -132,11 +132,11 @@
|
||||
"git_example": [
|
||||
{
|
||||
"name": "total_variation",
|
||||
"weight": 0.01
|
||||
"weight": 0.15
|
||||
},
|
||||
{
|
||||
"name": "median",
|
||||
"ksize": 3
|
||||
"ksize": 5
|
||||
}
|
||||
]
|
||||
}
|
||||
|
58
src/test.sh
58
src/test.sh
@ -24,7 +24,7 @@ config_file=conf/conf.json
|
||||
|
||||
# name of preset in conf. file
|
||||
#presets=("strong" "test-weak" "test-repeat" "test-strong")
|
||||
presets=("ridge" "weak")
|
||||
presets=("ridge")
|
||||
|
||||
# generate stl files and set generation mode {"planar", "curved", "mapped"}
|
||||
generate_stl=true
|
||||
@ -43,46 +43,36 @@ apply_filter() {
|
||||
for in in ${file_arr[@]}
|
||||
do
|
||||
# check that the file exists
|
||||
if test -f "$in"
|
||||
then
|
||||
# append preset name to filename for easier identification, if not generating stl (that would result in very long names)
|
||||
if $generate_stl; then
|
||||
out="${in%%${match1}*}${match1}$format"
|
||||
else
|
||||
out="${in%%${match1}*}_$preset${match1}$format"
|
||||
fi
|
||||
[[ -f "$in" ]] || continue
|
||||
|
||||
# skip stl files and files with preset name in them
|
||||
if [[ $in == *".stl"* ]] || [[ $in == *_* ]]; then
|
||||
((j++))
|
||||
continue
|
||||
fi
|
||||
# skip stl files and files with preset name in them
|
||||
[[ "$in" == *_* ]] && continue
|
||||
[[ "$in" == *".stl" ]] && continue
|
||||
|
||||
((i++))
|
||||
echo -e "|\n|----------------------- File no. $i: $in ------------------------------|\n"
|
||||
((i++))
|
||||
echo -e "|\n|----------------------- File no. $i: $in ------------------------------|\n"
|
||||
|
||||
if $generate_stl; then
|
||||
((i++))
|
||||
if [[ "$generate_stl_mode" = "planar" ]]; then
|
||||
if $generate_stl; then
|
||||
out="${in%%${match1}*}${match1}$format"
|
||||
case "$generate_stl_mode" in
|
||||
"planar")
|
||||
python3 $exec_path $in $out $dpi -c $config_file $1 --stl p $height_line $height_base || break
|
||||
|
||||
elif [[ "$generate_stl" = "curved" ]]; then
|
||||
;;
|
||||
"curved")
|
||||
python3 $exec_path $in $out $dpi -c $config_file $1 --stl c $height_line $height_base $curv_x $curv_y || break
|
||||
|
||||
elif [[ "$generate_stl" = "mapped" ]]; then
|
||||
pass
|
||||
;;
|
||||
"mapped")
|
||||
python3 $exec_path $in $out $dpi -c $config_file $1 --stl m $height_line $height_base $fp_file|| break
|
||||
else
|
||||
;;
|
||||
*)
|
||||
echo "Invalid stl generation mode"
|
||||
break
|
||||
fi
|
||||
else
|
||||
python3 $exec_path $in $out $dpi -c $config_file $1 || break
|
||||
fi
|
||||
else
|
||||
echo "File $file does not exist"
|
||||
fi
|
||||
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
else
|
||||
out="${in%%${match1}*}_$preset${match1}$format"
|
||||
python3 $exec_path $in $out $dpi -c $config_file $1 || break
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user