\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=.75in, lmargin=.75in, rmargin = .75in}

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

\title{Traitement d'Image - Mesure De Paramètres}
\author{Aubin SIONVILLE}
\date{Télécom St Etienne 2024-2025}

\maketitle

\center

\section*{Post-traitements}

\subsection*{Suppression de petits objets}

Pour supprimer les petits objets, on fait une \underline{ouverture} avec un E.S. de taille plus grande que les objets à supprimer.

\subsection*{Séparation de régions}

Après segmentation, il arrive que des objets fusionnent, on peut vouloir les séparer.

\parspace\parspace

\textbf{1 - Transformation en distance}\\
\textbf{2 - Inverse de la transformation en distance}\\
\textbf{3 - Ligne de partage des eaux}\\
\textbf{4 - Séparation}

\vspace{0.5cm}

\section*{Étiquetage}

On étiquette les régions pour les différencier.

Chaque région est associée à un numéro, on peut ensuite faire des mesures par région.

L'algorithme d'étiquetage est basé sur la recherche de composantes connexes.

(256 est le nombre max d'étiquettes)

\textit{Conseil : aller voir l'exemple du cours page 136}

\begin{lstlisting}
Initialisation :
    Pour n=1 a 256 faire T[n]=n; // Table de correspondance
    k=1;
Boucle principale
    Pour chaque pixel de f tel que f_s[i,j] != 0 faire
        Si les preds de f_s[i,j] sont 0
            f_e[i,j] = k;
            k++;
        Sinon si les preds ont l'etiquette epsilon 
            f_e[i,j]=espilon;
        Sinon
            f_e[i,j] = min{T[f_e[i',j']] | (i',j') dans pred(i,j)};
            mise a jour de T : les etiquettes des preds = etiquette min
\end{lstlisting}

\section*{Mesures}

\subsection*{Mesures statistiques}

On a besoin de $f$ \textbf{et} de $f_e$ pour les moments, l'histogramme...

Une seule passe suffit.

\parspace\parspace

\subsection*{Mesures géométriques}

\begin{multicols}{2}
    \textbf{Aire} : $S(R) = K$ : nombre de pixels de $R$
    
    \textbf{Périmètre} : Voir codage de Freeman
\end{multicols}
\begin{multicols}{2}    
    \textbf{Bounding box} : Rectangle englobant $R$

    \textbf{Diamètre} : Distance max entre 2 points de $R$
\end{multicols}

\textbf{Centre de gravité} : $\displaystyle x_G = \frac{1}{K}\sum_{k=1}^K x_k$ et $\displaystyle y_G = \frac{1}{K}\sum_{k=1}^K y_k$, avec $(x_k, y_k)$ les points de $R$

\parspace\parspace

\subsubsection*{Directions principales d'inertie}

Les directions principales d'inertie sont les vecteurs propres de la matrice d'inertie :

\vspace{-0.5cm}

\[\begin{pmatrix}
    a & c \\
    c & b
\end{pmatrix}\]

\begin{multicols}{3}
    $\displaystyle a = \frac{1}{K}\sum_{k=1}^K (y_k - y_G)^2$
    
    $\displaystyle b = \frac{1}{K}\sum_{k=1}^K (x_k - x_G)^2$
    
    $\displaystyle c = \frac{1}{K}\sum_{k=1}^K (x_k - x_G)(y_k - y_G)$
\end{multicols}
\textbf{Rectangle d'encadrement} : Diamètres suivant les directions principales

\textbf{Diamètre équivalent} : Diamètre du disque de même aire : $\displaystyle D_{eq} = \sqrt{\frac{4S(R)}{\pi}}$

\textbf{Compacité / Circularité} : $\displaystyle \mathrm{Comp}(R) = \frac{4\pi S(R)}{P^2(R)}$, 1 pour un cercle, 0 si découpé ou très allongé
\begin{multicols}{2}
    \textbf{Élongation} : $\displaystyle \mathrm{el}(R) = \frac{L}{l}$\\
    Mesure d'à quel point $R$ est allongé

    \textbf{Rapport de convexité} : $\displaystyle \mathrm{Solidity}(R) = \frac{S(R)}{S(\text{Env.conv}(R))}$\\
\end{multicols}

\subsubsection*{Diamètres de Feret}

\textbf{Sommets antipodaux} : Paires de points d'un polygone ayant des droites d'appui parallèles.

\textbf{Diamètres de Feret} : Distances min et max entre 2 sommets antipodaux de l'enveloppe convexe de $R$

On peut utiliser les diamètres minimum et maximum de Feret.

\parspace\parspace

\subsection*{Codage de Freeman}

Le codage de Freeman est une méthode pour représenter les contours d'une région en utilisant une chaîne de directions. Chaque direction est codée par un entier de 0 à 7, correspondant aux 8 directions possibles dans une grille de pixels (haut, bas, gauche, droite et les 4 diagonales).

\begin{center}
\begin{tabular}{cccc}
5 & 6 & 7 \\
4 &  & 0 \\
3 & 2 & 1 \\
\end{tabular}
\end{center}

Ce codage permet de compresser l'information sur les contours et de faciliter les calculs géométriques comme le périmètre.
\newpage

\end{document}