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.

341 lines
18 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!doctype html>
<html class="no-js" lang="en">
<head><meta charset="utf-8"/>
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="color-scheme" content="light dark"><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Usage" href="usage.html" /><link rel="prev" title="Available filters with parameters" href="filter_list.html" />
<!-- Generated with Sphinx 6.2.1 and Furo 2023.03.27 -->
<title>Generating fingerprint models - Generování 3D modelu otisku prstu 1.0 documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=fad236701ea90a88636c2a8c73b44ae642ed2a53" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e" />
<style>
body {
--color-code-background: #f8f8f8;
--color-code-foreground: black;
}
@media not print {
body[data-theme="dark"] {
--color-code-background: #202020;
--color-code-foreground: #d0d0d0;
}
@media (prefers-color-scheme: dark) {
body:not([data-theme="light"]) {
--color-code-background: #202020;
--color-code-foreground: #d0d0d0;
}
}
}
</style></head>
<body>
<script>
document.body.dataset.theme = localStorage.getItem("theme") || "auto";
</script>
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
<symbol id="svg-toc" viewBox="0 0 24 24">
<title>Contents</title>
<svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 1024 1024">
<path d="M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM115.4 518.9L271.7 642c5.8 4.6 14.4.5 14.4-6.9V388.9c0-7.4-8.5-11.5-14.4-6.9L115.4 505.1a8.74 8.74 0 0 0 0 13.8z"/>
</svg>
</symbol>
<symbol id="svg-menu" viewBox="0 0 24 24">
<title>Menu</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather-menu">
<line x1="3" y1="12" x2="21" y2="12"></line>
<line x1="3" y1="6" x2="21" y2="6"></line>
<line x1="3" y1="18" x2="21" y2="18"></line>
</svg>
</symbol>
<symbol id="svg-arrow-right" viewBox="0 0 24 24">
<title>Expand</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather-chevron-right">
<polyline points="9 18 15 12 9 6"></polyline>
</svg>
</symbol>
<symbol id="svg-sun" viewBox="0 0 24 24">
<title>Light mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="feather-sun">
<circle cx="12" cy="12" r="5"></circle>
<line x1="12" y1="1" x2="12" y2="3"></line>
<line x1="12" y1="21" x2="12" y2="23"></line>
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
<line x1="1" y1="12" x2="3" y2="12"></line>
<line x1="21" y1="12" x2="23" y2="12"></line>
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
</svg>
</symbol>
<symbol id="svg-moon" viewBox="0 0 24 24">
<title>Dark mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-moon">
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
<path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z" />
</svg>
</symbol>
<symbol id="svg-sun-half" viewBox="0 0 24 24">
<title>Auto light/dark mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-shadow">
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
<circle cx="12" cy="12" r="9" />
<path d="M13 12h5" />
<path d="M13 15h4" />
<path d="M13 18h1" />
<path d="M13 9h4" />
<path d="M13 6h1" />
</svg>
</symbol>
</svg>
<input type="checkbox" class="sidebar-toggle" name="__navigation" id="__navigation">
<input type="checkbox" class="sidebar-toggle" name="__toc" id="__toc">
<label class="overlay sidebar-overlay" for="__navigation">
<div class="visually-hidden">Hide navigation sidebar</div>
</label>
<label class="overlay toc-overlay" for="__toc">
<div class="visually-hidden">Hide table of contents sidebar</div>
</label>
<div class="page">
<header class="mobile-header">
<div class="header-left">
<label class="nav-overlay-icon" for="__navigation">
<div class="visually-hidden">Toggle site navigation sidebar</div>
<i class="icon"><svg><use href="#svg-menu"></use></svg></i>
</label>
</div>
<div class="header-center">
<a href="index.html"><div class="brand">Generování 3D modelu otisku prstu 1.0 documentation</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
<button class="theme-toggle">
<div class="visually-hidden">Toggle Light / Dark / Auto color theme</div>
<svg class="theme-icon-when-auto"><use href="#svg-sun-half"></use></svg>
<svg class="theme-icon-when-dark"><use href="#svg-moon"></use></svg>
<svg class="theme-icon-when-light"><use href="#svg-sun"></use></svg>
</button>
</div>
<label class="toc-overlay-icon toc-header-icon" for="__toc">
<div class="visually-hidden">Toggle table of contents sidebar</div>
<i class="icon"><svg><use href="#svg-toc"></use></svg></i>
</label>
</div>
</header>
<aside class="sidebar-drawer">
<div class="sidebar-container">
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
<span class="sidebar-brand-text">Generování 3D modelu otisku prstu 1.0 documentation</span>
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
<input type="hidden" name="check_keywords" value="yes">
<input type="hidden" name="area" value="default">
</form>
<div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="filtering.html">Filtering images</a></li>
<li class="toctree-l1"><a class="reference internal" href="config.html">Configuration and presets</a></li>
<li class="toctree-l1"><a class="reference internal" href="filter_list.html">Available filters with parameters</a></li>
<li class="toctree-l1 current current-page"><a class="current reference internal" href="#">Generating fingerprint models</a></li>
<li class="toctree-l1"><a class="reference internal" href="usage.html">Usage</a></li>
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="modules.html">src</a><input class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" role="switch" type="checkbox"/><label for="toctree-checkbox-1"><div class="visually-hidden">Toggle child pages in navigation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="config_parser.html">config_parser module</a></li>
<li class="toctree-l2"><a class="reference internal" href="filters.html">filters module</a></li>
<li class="toctree-l2"><a class="reference internal" href="log.html">log module</a></li>
<li class="toctree-l2"><a class="reference internal" href="main.html">main module</a></li>
<li class="toctree-l2"><a class="reference internal" href="stl_parser.html">stl_parser module</a></li>
</ul>
</li>
</ul>
</div>
</div>
</div>
</div>
</aside>
<div class="main">
<div class="content">
<div class="article-container">
<a href="#" class="back-to-top muted-link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12z"></path>
</svg>
<span>Back to top</span>
</a>
<div class="content-icon-container">
<div class="theme-toggle-container theme-toggle-content">
<button class="theme-toggle">
<div class="visually-hidden">Toggle Light / Dark / Auto color theme</div>
<svg class="theme-icon-when-auto"><use href="#svg-sun-half"></use></svg>
<svg class="theme-icon-when-dark"><use href="#svg-moon"></use></svg>
<svg class="theme-icon-when-light"><use href="#svg-sun"></use></svg>
</button>
</div>
<label class="toc-overlay-icon toc-content-icon" for="__toc">
<div class="visually-hidden">Toggle table of contents sidebar</div>
<i class="icon"><svg><use href="#svg-toc"></use></svg></i>
</label>
</div>
<article role="main">
<section id="generating-fingerprint-models">
<h1>Generating fingerprint models<a class="headerlink" href="#generating-fingerprint-models" title="Permalink to this heading">#</a></h1>
<section id="generating-curved-fingerprint-model">
<h2>Generating curved fingerprint model<a class="headerlink" href="#generating-curved-fingerprint-model" title="Permalink to this heading">#</a></h2>
<p>It is possible to generate stl model using the <cite>stl</cite> switch. This requires more parameters, first of which is the type of generated fingerprint.</p>
<p>If the mode is set to <cite>c</cite>, the output model will be a curved finger model, with optional parameters following the filename controlling its shape.</p>
<p>First optional parameter is papilar line height <cite>height_line</cite>, second is thickness of the model <cite>height_base</cite>,
third the rate of curvature along x axis <cite>curv_rate_x</cite> and the third is the rate of curvature along y axis <cite>curv_rate_y</cite>.</p>
<ul class="simple">
<li><p>General form for curved stl generation:</p></li>
</ul>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>python3<span class="w"> </span>src/main.py<span class="w"> </span>input_file<span class="w"> </span>output_file<span class="w"> </span>dpi<span class="w"> </span>--config<span class="w"> </span>config_file<span class="w"> </span>preset<span class="w"> </span>--stl<span class="w"> </span>c<span class="w"> </span>height_line<span class="w"> </span>height_base<span class="w"> </span>curvature_x<span class="w"> </span>curvature_y
</pre></div>
</div>
<ul class="simple">
<li><p>Working example curved stl generation:</p></li>
</ul>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>python3<span class="w"> </span>src/main.py<span class="w"> </span>res/examples/Palec_P4.tif<span class="w"> </span>res/examples/Palec_P4_from_preset.png<span class="w"> </span><span class="m">600</span><span class="w"> </span>--config<span class="w"> </span>conf/conf.json<span class="w"> </span>new_ridge<span class="w"> </span>--stl<span class="w"> </span>c<span class="w"> </span><span class="m">2</span><span class="w"> </span><span class="m">10</span><span class="w"> </span><span class="m">2</span><span class="w"> </span><span class="m">2</span>
</pre></div>
</div>
</section>
<section id="generating-planar-finger-model">
<h2>Generating planar finger model<a class="headerlink" href="#generating-planar-finger-model" title="Permalink to this heading">#</a></h2>
<p>Using <cite>p</cite> mode makes the generated fingerprint model flat.
Optional parameters are height of the papilar lines and base thickness.</p>
<ul class="simple">
<li><p>General command form for planar stl generation:</p></li>
</ul>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>python3<span class="w"> </span>src/main.py<span class="w"> </span>input_file<span class="w"> </span>output_file<span class="w"> </span>dpi<span class="w"> </span>--config<span class="w"> </span>config_file<span class="w"> </span>preset<span class="w"> </span>--stl<span class="w"> </span>p<span class="w"> </span>height_line<span class="w"> </span>height_base
</pre></div>
</div>
<ul class="simple">
<li><p>Working example of planar stl generation:</p></li>
</ul>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ python3 src/main.py res/examples/Palec_P4.tif res/examples/Palec_P4_from_preset.png 600 --config conf/conf.json new_ridge --stl p 2 10
</pre></div>
</div>
</section>
<section id="mapping-fingerprint-to-existing-finger-model">
<h2>Mapping fingerprint to existing finger model<a class="headerlink" href="#mapping-fingerprint-to-existing-finger-model" title="Permalink to this heading">#</a></h2>
<p>Using <cite>m</cite> mode modifies the preexisting finger model to contain fingerprint.
First optional parameter is papilar line height <cite>height_line</cite>, second is the number of iterations <cite>iter</cite> to make the finger mesh denser. Higher number of itertions results in denser finger mesh and better result.
The next three parameters are axis offsets for the finger, <cite>finger_x</cite>, <cite>finger_y</cite>, <cite>finger_z</cite>.
These control the location of the finger. They need to be set only if the user wants to move core of the print closer to the center of the finger model. The last parameter <cite>finger_model</cite> allows the user to choose custom finger model.</p>
<ul class="simple">
<li><p>General command form for mapped stl generation</p></li>
</ul>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>python3<span class="w"> </span>src/main.py<span class="w"> </span>input_file<span class="w"> </span>output_file<span class="w"> </span>dpi<span class="w"> </span>--config<span class="w"> </span>config_file<span class="w"> </span>preset<span class="w"> </span>--stl<span class="w"> </span>m<span class="w"> </span>height_line<span class="w"> </span>iter<span class="w"> </span>finger_x<span class="w"> </span>finger_y<span class="w"> </span>finger_z<span class="w"> </span>finger_model
</pre></div>
</div>
<ul class="simple">
<li><p>Working example of finger mapping</p></li>
</ul>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>python3<span class="w"> </span>src/main.py<span class="w"> </span>res/examples/Palec_P4.tif<span class="w"> </span>res/examples/Palec_P4.png<span class="w"> </span><span class="m">600</span><span class="w"> </span>--config<span class="w"> </span>conf/conf.json<span class="w"> </span>new_ridge<span class="w"> </span>--stl<span class="w"> </span>m<span class="w"> </span><span class="m">0</span>.2<span class="w"> </span><span class="m">2</span><span class="w"> </span><span class="m">0</span><span class="w"> </span><span class="m">0</span><span class="w"> </span><span class="m">0</span><span class="w"> </span>res/finger_backup/finger.stl
</pre></div>
</div>
</section>
</section>
</article>
</div>
<footer>
<div class="related-pages">
<a class="next-page" href="usage.html">
<div class="page-info">
<div class="context">
<span>Next</span>
</div>
<div class="title">Usage</div>
</div>
<svg class="furo-related-icon"><use href="#svg-arrow-right"></use></svg>
</a>
<a class="prev-page" href="filter_list.html">
<svg class="furo-related-icon"><use href="#svg-arrow-right"></use></svg>
<div class="page-info">
<div class="context">
<span>Previous</span>
</div>
<div class="title">Available filters with parameters</div>
</div>
</a>
</div>
<div class="bottom-of-page">
<div class="left-details">
<div class="copyright">
Copyright &#169; 2023, xlanro00
</div>
Made with <a href="https://www.sphinx-doc.org/">Sphinx</a> and <a class="muted-link" href="https://pradyunsg.me">@pradyunsg</a>'s
<a href="https://github.com/pradyunsg/furo">Furo</a>
</div>
<div class="right-details">
</div>
</div>
</footer>
</div>
<aside class="toc-drawer">
<div class="toc-sticky toc-scroll">
<div class="toc-title-container">
<span class="toc-title">
On this page
</span>
</div>
<div class="toc-tree-container">
<div class="toc-tree">
<ul>
<li><a class="reference internal" href="#">Generating fingerprint models</a><ul>
<li><a class="reference internal" href="#generating-curved-fingerprint-model">Generating curved fingerprint model</a></li>
<li><a class="reference internal" href="#generating-planar-finger-model">Generating planar finger model</a></li>
<li><a class="reference internal" href="#mapping-fingerprint-to-existing-finger-model">Mapping fingerprint to existing finger model</a></li>
</ul>
</li>
</ul>
</div>
</div>
</div>
</aside>
</div>
</div><script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/sphinx_highlight.js"></script>
<script src="_static/scripts/furo.js"></script>
</body>
</html>