\documentclass{article}
\usepackage{amssymb, amsmath, geometry, multicol, stmaryrd, cancel, centernot}
\usepackage[table, svgnames, dvipsnames]{xcolor}
\usepackage{makecell, cellspace, caption}
\usepackage[europeanresistors]{circuitikz}
\usepackage[a]{esvect} % voir la doc pour les différents styles
\usepackage{tikz-3dplot}
\usepackage{dsfont}
\usepackage{listings}

\let\overrightarrow\vv


\usetikzlibrary{arrows}
\usetikzlibrary{shapes.geometric}

\newcommand{\independant}{\perp\!\!\!\perp}
\newcommand{\parspace}{\vspace{0.1cm}}
\linespread{1.25}
\geometry{tmargin=.7in, bmargin=.7in, lmargin=.5in, rmargin = .5in}

\begin{document}
\setlength{\parindent}{0mm}

\title{Morphologie Mathématique - Transformations Géodésiques}
\author{Aubin SIONVILLE}
\date{Télécom St Etienne 2024-2025}

\maketitle

\center

\section*{Principe}

Transformation sur une première image (\underline{marqueurs}) puis on force le résultat à être au dessus/en dessous d'une seconde image (\underline{masque}).\\
On n'a pas besoin de choisir un élément structurant, on utilise les images.

\vspace*{0.2cm}

\section*{Transformations géodésiques élémentaires}

Ici, $R$ est l'image masque et $X$ est l'image de marqueurs.

\begin{multicols}{2}
    \subsection*{Dilatation géodésique cond. à $R$ de taille $1$}
    \[\boxed{\delta_R(X) = \delta(X) \cap R}\]
    
    \subsection*{Dilatation géodésique cond. à $R$ de taille $n$}
    \vspace{-0.2cm}
    \textit{Se fait par itérations}
    \vspace{-0.2cm}
    \[\boxed{\delta_R^{(n)}(X) = \delta(\ldots(\delta(X) \cap R)\ldots) \cap R}\]
    
    \subsection*{Dilatation géodésique fonctionnelle}
    \vspace{-0.2cm}
    \textit{Il faut $\boxed{f \leq g}$, f obtenable par transformation \underline{anti-extensive}}
    \vspace{-0.2cm}
    \[\boxed{\delta_g^{(1)}(f) = \min_x \left(\delta^{(1)}(f)(x), g(x)\right)}\]
    
    \columnbreak
    
    \subsection*{Érosion géodésique cond. à $R$ de taille $1$}
    \[\boxed{\varepsilon_R(X) = \varepsilon(X)\cup R}\]
    
    \subsection*{Érosion géodésique cond. à $R$ de taille $n$}
    \vspace{-0.2cm}
    \textit{Se fait par itérations}
    \vspace{-0.2cm}
    \[\boxed{\varepsilon_R^{(n)}(X) = \varepsilon(\ldots(\varepsilon(X) \cup R)\ldots) \cup R}\]
    
    \subsection*{Érosion géodésique fonctionnelle}
    \vspace{-0.2cm}
    \textit{Il faut $\boxed{f \geq g}$, f obtenable par transformation \underline{extensive}}
    \vspace{-0.2cm}
    \[\boxed{\varepsilon_g^{(1)}(f) = \max_x \left(\varepsilon^{(1)}(f)(x), g(x)\right)}\]
\end{multicols}

\vspace*{0.3cm}

\section*{Reconstructions géodésiques}

\textit{Itération de la dilatation/érosion jusqu'à stabilité}

\begin{multicols}{2}
    \subsection*{Reconstruction par dilatation}
    \[\boxed{\begin{cases}
        \delta_R^{(0)}(X) = X\\
        \delta_R^{(n)}(X) = \delta_R^{(1)}(\delta_R^{(n-1)}(X))
    \end{cases}}\]
    Reconstruction du masque $R$ par dilatation du marqueur $X$
    \[\boxed{\mathfrak{R}_R^\delta(X) = \delta_R^{(i)}(X) \text{ où } i = \mathrm{inf}\left\{j \geq 0 \, \Big|\, \delta_R^{(j)}(X) = \delta_R^{(j+1)}(X)\right\}}\]
    
    \columnbreak

    \subsection*{Reconstruction par érosion}
    \[\boxed{\begin{cases}
        \varepsilon_R^{(0)}(X) = X\\
        \varepsilon_R^{(n)}(X) = \varepsilon_R^{(1)}(\varepsilon_R^{(n-1)}(X))
    \end{cases}}\]
    Reconstruction du masque $R$ par érosion du marqueur $X$
    \[\boxed{\mathfrak{R}_R^\varepsilon(X) = \varepsilon_R^{(i)}(X) \text{ où } i = \mathrm{inf}\left\{j \geq 0 \, \Big|\,  \varepsilon_R^{(j)}(X) = \varepsilon_R^{(j+1)}(X)\right\}}\]
\end{multicols}

\newpage

\section*{Applications}

\subsection*{Sélection d'objets}

On peut placer des marqueurs sur les objets à conserver, la reconstruction ne se fera que sur ces objets.

\vspace{0.3cm}

\subsection*{Suppression des objets au bord}

On peut supprimer les objets au bord en faisant $\displaystyle f - \mathfrak{R}^\delta_{f \cap \partial f}(f)$ :\\
On prend comme marqueurs l'intersection entre l'image et le bord pour une reconstruction par dilatation que l'on soustrait à l'image initiale

\vspace{0.3cm}

\subsection*{Bouchage de trous}

Pour boucher les trous, on peut faire une reconstruction par érosion en prenant comme marqueurs tout le support de l'image et comme masque l'image initiale.\\
Les trous touchant le bord subsistent.

\vspace{0.7cm}

\textit{Les ouvertures/fermetures par reconstruction conservent les objets : par exemple l'ouverture par reconstruction ne supprime que les composantes ne pouvant pas contenir l'élément structurant, les autres sont inchangées.}
\begin{multicols}{2}
    \subsection*{Ouverture par reconstruction}
    \[\boxed{\gamma_R^{(n)}(X) = \mathfrak{R}_X^\delta\left[\varepsilon^{(n)}(X)\right]}\]

    \subsection*{Fermeture par reconstruction}
    \[\boxed{\phi_R^{(n)}(X) = \mathfrak{R}_X^\varepsilon\left[\delta^{(n)}(X)\right]}\]
\end{multicols}

\vspace{0.7cm}

\section*{Extrema régionaux}

\textit{Voir fiche Extrema Régionaux}

\end{document}