Report cleaning.
[master-thesis.git] / rapport / main.tex
index 82c0cc1..e4f83b2 100644 (file)
@@ -10,6 +10,8 @@
 \usepackage{amssymb, amsmath, amsthm}
 \usepackage[title,titletoc,toc]{appendix}
 
+\usepackage[french,onelanguage,vlined,linesnumbered]{algorithm2e}
+
 \usepackage{framed}
 \usepackage{graphicx}
 \usepackage{caption}
@@ -19,7 +21,6 @@
 \usepackage{upquote} 
 \usepackage{color}
 \usepackage[usenames,dvipsnames]{xcolor}
-\usepackage{epstopdf}
 \usepackage{fancyhdr}
 \usepackage{courier}
 \usepackage{pifont}
 \lstset{framextopmargin=50pt,frame=bottomline}
 \definecolor{matlabCommentColor}{RGB}{0, 100, 0} % Green
 \definecolor{matlabStringColor}{RGB}{204, 34, 34} % Red
-\lstset{language=Matlab,%
-    breaklines=true,%
-    morekeywords={matlab2tikz},
-    keywordstyle=\color{blue},%
-    morekeywords=[2]{1}, keywordstyle=[2]{\color{black}},
-    identifierstyle=\color{black},%
-    stringstyle=\color{matlabStringColor},
-    commentstyle=\color{matlabCommentColor},
-    showstringspaces=false,%without this there will be a symbol in the places where there is a space
-    numbers=left,%
-    numberstyle={\tiny \color{black}},% size of the numbers
-    numbersep=9pt, % this defines how far the numbers are from the text
-    emph=[1]{for,end,break},emphstyle=[1]\color{red}, %some words to emphasis
-    %emph=[2]{word1,word2}, emphstyle=[2]{style},    
+
+
+\lstdefinelanguage{FSharp}%
+{morekeywords={let, new, match, with, rec, open, module, namespace, type, of, member, % 
+and, for, while, true, false, in, do, begin, end, fun, function, return, yield, try, %
+mutable, if, then, else, cloud, async, static, use, abstract, interface, inherit, finally },
+  otherkeywords={ let!, return!, do!, yield!, use!, var, from, select, where, order, byte, bool, int, string },
+  keywordstyle=\color{blue}\bfseries,
+  sensitive=true,
+  basicstyle=\ttfamily,
+        breaklines=true,
+  xleftmargin=\parindent,
+  aboveskip=\bigskipamount,
+        tabsize=4,
+  morecomment=[l][\color{OliveGreen}]{///},
+  morecomment=[l][\color{OliveGreen}]{//},
+  morecomment=[s][\color{OliveGreen}]{{(*}{*)}},
+  morestring=[b]",
+  showstringspaces=false,
+  literate={`}{\`}1,
+  stringstyle=\color{red},
 }
 
+\definecolor{light-gray}{gray}{0.7}
+
+\lstdefinestyle{fsharp}{
+  rulecolor = \color{light-gray},
+  frameround = tttt,
+  numbers = left, 
+  numbersep = 8pt, 
+  frame = single, 
+  language = FSharp, 
+  basicstyle = \ttfamily\footnotesize,
+  framexleftmargin = 15pt,
+  framextopmargin = 3pt}
+  
+\lstdefinestyle{tt}{
+  rulecolor = \color{light-gray},
+  frameround = tttt,
+  numbersep = 8pt, 
+  frame = single, 
+  basicstyle = \ttfamily\footnotesize,
+  framexleftmargin = 5pt,
+  framextopmargin = 3pt}
+
 \newcommand{\mli}[1]{\mathit{#1}} % Multi-letter identifier.
 
 \renewcommand{\appendixtocname}{Annexes} 
 
+\urldef{\parasitemiasource}\url{http://private.gburri.org/CHUV/Parasitemia-1.0.7-source.zip}
+\urldef{\parasitemiaexe}\url{http://private.gburri.org/CHUV/Parasitemia-1.0.7.zip}
+\urldef{\parasitemiasetup}\url{http://private.gburri.org/CHUV/Parasitemia-1.0.0.7-Setup.exe}
+\urldef{\imagesmesures}\url{http://private.gburri.org/CHUV/Images-mesures.zip}
+
 \pagestyle{fancy}
 \fancyfoot[CE,CO]{}
 \fancyfoot[LE,RO]{\thepage}
 \Large
 Master of Science HES-SO in Engineering \\
 \large
-Technologie de l'information et de la communication
+Technologies industrielles (TIN) % Technologie de l'information et de la communication (TIC)
 
 
 \vspace{1cm}
@@ -82,7 +117,7 @@ Technologie de l'information et de la communication
 \includegraphics[width=4cm]{logos/mse_logo.jpg}
 
 
-\vspace{8cm}
+\vspace{7cm}
 
 \large
 Février 2016 - Révision n°1
@@ -90,7 +125,7 @@ Février 2016 - Révision n°1
 \vspace{2cm}
 \normalsize
 Auteur : Grégory \textsc{Burri}\\
-Prof. responsables : Michel \textsc{Kocher}, \textsc{Olivier Hüsser}
+Sous la direction de Prof. Michel \textsc{Kocher} de la \emph{HEIG-VD} et Prof. \textsc{Olivier Hüsser} de la \emph{HE-Arc}
 
 \vspace{2cm}
 Master of Science HES-SO in  Engineering\\
@@ -115,7 +150,7 @@ Accepté par la HES-SO//Master (Suisse, Lausanne) sur proposition de M. Kocher.
 
 \vspace{0.5cm}
 \noindent
-Prof. Michel Kocher, conseiller du projet d'approfondissement\\
+Prof. Michel Kocher et Prof. Olivier Hüsser, conseillers de travail de master\\
 Dr. Philippe Thévenaz, expert principal
 
 \vspace{1cm}
@@ -126,10 +161,10 @@ Lausanne, le
 \vspace{1cm}
 
 \noindent
-\setlength{\tabcolsep}{30pt}
-\begin{tabular}{ l l }
-  Prof. Michel Kocher. & Prof.\\
-  Conseiller & Responsable de la filière
+\setlength{\tabcolsep}{20pt}
+\begin{tabular}{ l l }
+  Prof. Michel Kocher. & Prof Olivier Hüsser & Prof.\\
+  Conseiller & Conseiller & Responsable de la filière
 \end{tabular}
 
 \newpage
@@ -141,7 +176,7 @@ Lausanne, le
 \begin{center}
 \textbf{Résumé}
 \end{center}
-Cet article a pour but la description et la mise en oeuvre d'une méthode automatique permettant l'établissement de la parasitémie de la malaria d'un patient à partir d'une ou plusieurs images microscopiques d'un frottis sanguin.
+Ce papier présente une méthode automatique permettant l'établissement de la parasitémie d'un patient infecté par la malaria. Cette méthode se base sur une ou plusieurs images numériques microscopiques d'un frottis sanguin dont une coloration \emph{Giemsa} a été appliquée. Une implémentation est proposée sous la forme d'un logiciel graphique pouvant être facilement déployé sur n'importe quel ordinateur tournant sous Windows~7 ou une version supérieure.
 
 \vspace{5cm}
 
@@ -149,7 +184,7 @@ Cet article a pour but la description et la mise en oeuvre d'une méthode automa
 \begin{center}
 \textbf{Mots-clefs}
 \end{center}
-\og{}malaria\fg{}, \og{}paludisme\fg{}, \og{}parasitémie\fg{}, \og{}taux d'infection\fg{}, \og{}logiciel\fg{}
+\og{}malaria\fg{}, \og{}paludisme\fg{}, \og{}parasitémie\fg{}, \og{}taux d'infection\fg{}, \og{}traitement d'images\fg{}, \og{}logiciel\fg{}
 \newpage
 
 
@@ -169,660 +204,1147 @@ Cet article a pour but la description et la mise en oeuvre d'une méthode automa
 
 % TODO: Future dans l'intro?
 
-Le but de ce projet est d'établir une méthode complète et non-supervisée afin de dénombrer les erythrocytes et de les classer en deux catégories de cellules à savoir les saines et les infectées. Celle ci sera ensuite implémentée sous la forme d'un logiciel qui puisse être facilement utilisé par une personne avec un minimum de connaissance en informatique.
-
-Cette réalisation est faite en partenariat avec le laboratoire de parasitologie du CHUV 
-
-Images 100x
-Images 50x
-
-CHUV
-
-\subection{Parasitémie de la malaria}
-
-% Parlé du cycle de développement, à quel stade de développement on compte les rbc infecté, etc..
-
+L'objectif de ce projet est d'établir une méthode complète et non-supervisée afin de dénombrer les érythrocytes et de les classer en deux catégories de cellules, à savoir les saines et les infectées. Celle-ci est ensuite implémentée sous la forme d'un logiciel qui puisse être facilement utilisé par une personne ayant peu de connaissances en informatique. La méthode développée est finalement comparée à deux autres : \emph{Ma et al.}\cite{ma2010} et \emph{C. Di Ruberto et al.}\cite{di-ruberto2001}. D'autres approches telles que \emph{Purwar et al.}\cite{purwar2011} et \emph{Shoelson}\cite{shoelson2015} sont également discutées à la section~\ref{discussions}.
 
-\subsection{Images}
+Cette réalisation est faite en partenariat avec le Dr. Guy Prod'hom de l'institut de microbiologie du \emph{CHUV} à Lausanne. La méthode actuellement utilisée au \emph{CHUV} pour ce type d'infection est le comptage manuel à partir de l'analyse au microscope d'un frottis sanguin. Cette méthode est longue dans le cas d'un dénombrement exhaustif des cellules ou, si une approximation de la densité des érythrocytes est faite, donne des résultats inexacts. De plus, elle nécessite un personnel hautement qualifié.
 
-Les images initiales correspondent à des photographies de sang infecté agrandies 100 fois. Une \emph{coloration de May-Grünwald Giemsa} est utilisée afin de faire ressortir les parasites avec une teinte particulière. Les éléments principaux composant les images sont : les globules rouges (figure~\ref{fig:medical-globules-rouges}), les globules blancs (figure~\ref{fig:medical-globules-blancs}), les plaquettes (figure~\ref{fig:medical-plaquettes}) et les différentes formes du parasite (figure~\ref{fig:medical-plasmodium}).
+Les images à disposition correspondent à des photographies de sang infecté agrandies 50 fois. Chaque image comprend entre 500 et 700 érythrocytes. Une \emph{coloration de May-Grünwald Giemsa} est utilisée afin de faire ressortir les parasites avec une teinte particulière. Les éléments principaux composant les images sont : les érythrocytes (figure~\ref{fig:medical-globules-rouges}), les leucocytes (figure~\ref{fig:medical-globules-blancs}), les thrombocytes (figure~\ref{fig:medical-plaquettes}) et les différents stades de \emph{Plasmodium} (figure~\ref{fig:medical-plasmodium}).
 
 \begin{figure}[htbp]
        \centering
        \begin{subfigure}[t]{0.3\textwidth}
-               \includegraphics[width=\linewidth]{img/medical_globules_rouges.jpg}
-               \caption{Globules rouges (\emph{érythrocyte})}
+               \includegraphics[width=\linewidth]{figures/medical_globules_rouges.jpg}
+               \caption{Érythrocyte (globule rouge).}
                \label{fig:medical-globules-rouges}
        \end{subfigure} 
        ~
        \begin{subfigure}[t]{0.3\textwidth}
-               \includegraphics[width=\linewidth]{img/medical_globules_blancs.jpg}
-               \caption{Globules blancs (\emph{leucocyte})}
+               \includegraphics[width=\linewidth]{figures/medical_globules_blancs.jpg}
+               \caption{Leucocyte (globule blanc).}
                \label{fig:medical-globules-blancs}
        \end{subfigure}
        ~       
        \begin{subfigure}[t]{0.3\textwidth}
-               \includegraphics[width=\linewidth]{img/medical_plaquettes.jpg}
-               \caption{Plaquette (\emph{thrombocyte})}
+               \includegraphics[width=\linewidth]{figures/medical_plaquettes.jpg}
+               \caption{Thrombocyte (plaquette).}
                \label{fig:medical-plaquettes}
        \end{subfigure}
-       \caption{Les éléments principaux composant le sang}
+       \caption{Les éléments principaux composant le sang.}
        \label{fig:medical-elements-sang}
 \end{figure}
 
-Dans le cycle de vie du parasite \emph{Plasmodium}, responsable de la malaria, celui-ci passe par une étape d'alimentation active (trophozoïte) où il va se loger à l'intérieur des globules rouges. Puis il va subir la schizogonie (reproduction asexuée) et va se développer en schizonte. Ces étapes sont montrées par la figure~\ref{fig:medical-plasmodium}. 
-
-Notre but est de dénombrer les globules rouges sains ainsi que ceux infectés par des trophozoïtes immatures en début de croissance, comme montré par la figure~\ref{fig:medical-plasmodium_1}.
+Dans le cycle de vie du parasite \emph{Plasmodium}, responsable de la malaria, celui-ci passe par une étape d'alimentation active (trophozoïte) où il va se loger à l'intérieur des érythrocytes. Puis il va subir la schizogonie (reproduction asexuée) et va se développer en schizonte. Ces étapes sont montrées par la figure~\ref{fig:medical-plasmodium}. 
 
 \begin{figure}[htbp]
        \centering
        \begin{subfigure}[t]{0.2\textwidth}
-               \includegraphics[width=\linewidth]{img/medical_plasmodium_1.jpg}
-               \caption{Trophozoïte immature (anneau)}
+               \includegraphics[width=\linewidth]{figures/medical_plasmodium_1.jpg}
+               \caption{Trophozoïte immature (anneau).}
                \label{fig:medical-plasmodium_1}
        \end{subfigure} 
        ~
        \begin{subfigure}[t]{0.2\textwidth}
-               \includegraphics[width=\linewidth]{img/medical_plasmodium_2.jpg}
-               \caption{Maturation du trophozoïte}
+               \includegraphics[width=\linewidth]{figures/medical_plasmodium_2.jpg}
+               \caption{Maturation du trophozoïte.}
                \label{fig:medical-plasmodium_2}
        \end{subfigure}
        ~       
        \begin{subfigure}[t]{0.2\textwidth}
-               \includegraphics[width=\linewidth]{img/medical_plasmodium_3.jpg}
-               \caption{Trophozoïte mature}
+               \includegraphics[width=\linewidth]{figures/medical_plasmodium_3.jpg}
+               \caption{Trophozoïte mature.}
                \label{fig:medical-plasmodium_3}
        \end{subfigure}
        ~       
        \begin{subfigure}[t]{0.2\textwidth}
-               \includegraphics[width=\linewidth]{img/medical_plasmodium_4.jpg}
-               \caption{Schizonte}
+               \includegraphics[width=\linewidth]{figures/medical_plasmodium_4.jpg}
+               \caption{Schizonte.}
                \label{fig:medical-plasmodium_4}
        \end{subfigure}
-       \caption{Les différents stades de l'infection d'un globule rouge}
+       \caption{Les différents stades de l'infection d'un érythrocyte.}
        \label{fig:medical-plasmodium}
 \end{figure}
 
+%\subsection{Parasitémie de la malaria}
+
+L'objectif est de dénombrer les érythrocytes sains ainsi que ceux infectés par des trophozoïtes immatures en début de croissance, comme montré par la figure~\ref{fig:medical-plasmodium_1}. Ce stade est appelé \emph{ring stage} car les parasites ont une forme d'anneau. Cet anneau, montré en détail par la figure~\ref{fig:noyau-cytoplasme}, comprend un noyau ainsi qu'un cytoplasme l'entourant.
 
-\section{Outils utilisés}
+La parasitémie est établie en pourcentage comme étant le rapport entre nombre d'érythrocytes infectés et le nombre total d'érythrocytes. Le groupe d'experts \emph{UK NEQAS} (\emph{United Kingdom National External Quality Assessment Service}) recommande de considérer un minimum de 1000 érythrocytes. Le \emph{CDC} (\emph{Centers for Disease Control and Prevention}) recommande quant à lui au moins 500 érythrocytes si la parasitémie est supérieure à 10~\% et au moins 2000 érythrocytes si la parasitémie est inférieure à 0.1~\%.
 
-Cette section aborde brièvement la description des différents outils morphologiques ainsi que les logiciels qui ont permis de mettre en pratique le processus.
+\begin{figure}[htbp]
+       \centering
+       \includegraphics[width=0.5\linewidth]{figures/RBC_noyau_cytoplasme.pdf}
+       \caption{Détail des deux parties constituantes d'un trophozoïte immature.}
+       \label{fig:noyau-cytoplasme}
+\end{figure}
 
+Certains artefacts comme des débris ou des plaquettes peuvent venir se superposer aux érythrocytes et être confondus avec des parasites. Ces cas peuvent être relativement fréquents et altérer significativement la parasitémie s'ils sont comptés comme étant des cas positifs d'infection. La figure~\ref{fig:RBC-artefact} montre quelques exemples de faux positifs potentiels.
 
-\subsection{Outils morphologiques}
+\begin{figure}[htbp]
+       \centering
+       \begin{subfigure}[t]{0.2\textwidth}
+               \includegraphics[width=\linewidth]{figures/RBC-plaquette.jpg}
+%              \caption{Thrombocyte.}
+               \label{fig:RBC-artefact-plaquette}
+       \end{subfigure} 
+       ~
+       \begin{subfigure}[t]{0.2\textwidth}
+               \includegraphics[width=\linewidth]{figures/RBC-debris-1.jpg}
+%              \caption{Débris.}
+               \label{fig:RBC-artefact-debris-1}
+       \end{subfigure}
+       ~       
+       \begin{subfigure}[t]{0.2\textwidth}
+               \includegraphics[width=\linewidth]{figures/RBC-debris-2.jpg}
+%              \caption{Débris.}
+               \label{fig:RBC-artefact-debris-2}
+       \end{subfigure}
+       ~       
+       \begin{subfigure}[t]{0.2\textwidth}
+               \includegraphics[width=\linewidth]{figures/RBC-debris-3.jpg}
+%              \caption{Débris.}
+               \label{fig:RBC-artefact-debris-3}
+       \end{subfigure}
+       \caption{Exemple d'artefacts se superposant à des érythrocytes.}
+       \label{fig:RBC-artefact}
+\end{figure}
 
-Une grande partie du processus décrit dans ce document s'appuie sur la morphologie mathématique\footnote{Georges Matheron et Jean Serra - 1964}\cite{Talbot-Morphologie}\cite{Manzanera-Morphologie}, ici appliquée au traitement d'images.
 
-Nous passons en revue un certain nombre d'opérateurs qui sont utilisés dans le processus. Pour chacun d'entre eux, nous donnons une brève explication, une définition formelle et la fonction correspondante utilisée dans \emph{MATLAB}.
 
+\section{Aperçu du processus}
 
-\subsubsection{Définitions de base}
+La figure~\ref{fig:processusComplet} montre le processus complet du traitement d'une image de frottis sanguin. Celui-ci peut-être divisé en trois groupes de traitement : la segmentation des érythrocytes, la segmentation des parasites et finalement la classification des cellules.
 
-Nous définissions tout d'abord l'image $E$ comme étant un sous-ensemble à deux dimensions de $\mathbb{Z}$ puis $B$ comme un sous-ensemble de $E$ que nous nommons \emph{élément structurant}. $B_x$ correspond à $B$ translaté de $x$ dont $x$ appartient à $E$. $\breve{B}$ est l'élément symétrique de $B$, si l'élément $B$ est symétrique,  alors $\breve{B} = B$.
+\begin{figure}[htbp]
+       \centering
+       \includegraphics[width=0.9\linewidth]{figures/schema_processus_2.pdf}
+       \caption{Le processus complet.}
+       \label{fig:processusComplet}
+\end{figure}
 
-{\setlength{\abovedisplayskip}{0pt}
-\begin{flalign*}
-       E &= \mathbb{Z}^2 & \\
-       B_x &= \{ b + x \mid b \in B \} & \\
-       \breve{B} &= \{ -b \mid b \in B \} &
-\end{flalign*}
+Dans le premier groupe, l'on va chercher à construire des ellipses qui correspondent le mieux aux bords des érythrocytes. Cela est réalisé à partir de la composante verte (voir figure~\ref{fig:image-source-green}) pour laquelle les érythrocytes ont un meilleur contraste avec le fond que les autres composantes. Pour ce faire, une estimation du rayon moyen est réalisée par granulométrie à l'aide d'une succession d'ouvertures par aire. La construction des ellipses utilise les pixels des bords des érythrocytes ainsi que son gradient. La méthode \emph{RANSAC} permet de créer un grand nombre d'ellipses candidates auxquelles un score est attribué. Finalement les ellipses sont élaguées en supprimant celles chevauchées par d'autres ellipses dont le score est supérieur.
 
-\subsubsection{Dilatation et érosion}
+Dans le deuxième groupe, les zones colorées et sombres vont être extraites en comparant les valeurs d'intensité de l'image avec la moyenne d'intensité des éléments de l'avant-plan. Ces zones sombres correspondent aux leucocytes, aux plaquettes et à certains débris. Une fermeture morphologique, dont la taille de l'élément structurant est calculée en fonction du rayon moyen, va permettre de mettre en évidence le cytoplasme des parasites. Les noyaux sont, quant à eux, mis en évidence à l'aide d'une fermeture par aire. La composante rouge de l'image est ici utilisée car présentant les parasites avec un meilleur contraste que les autres composantes (voir figure~\ref{fig:image-source-red}).
 
-La dilatation est définie comme la somme de \emph{Minkowski} et nommée $\delta$. L'érosion est nommée $\epsilon$.
+Le troisième groupe correspond à la mise en commun des informations du premier et du deuxième groupe afin de définir les érythrocytes et de les classer. La parasitémie est alors établie en calculant le rapport entre la population d'érythrocytes infectés et la population saine.
 
-{\setlength{\abovedisplayskip}{0pt}
-\begin{flalign*}
-       \delta_B(X) &= X \oplus B = \{ x \mid \breve{B}_x \cap{X} \neq \emptyset \} &\\
-       \epsilon_B(X) &= X \ominus B = \{x \mid B_x \subset X \} &
-\end{flalign*}
+\begin{figure}[htbp]
+       \centering
+       \begin{subfigure}[t]{0.4\textwidth}
+               \includegraphics[width=\linewidth]{figures/image-source-RGB.jpg}
+               \caption{Image originale.}
+               \label{fig:image-source-RGB}
+       \end{subfigure} 
+       ~
+       \begin{subfigure}[t]{0.4\textwidth}
+               \includegraphics[width=\linewidth]{figures/image-source-red.jpg}
+               \caption{Composante rouge, les parasites sont bien contrastés.}
+               \label{fig:image-source-red}
+       \end{subfigure} 
+       ~
+       \begin{subfigure}[t]{0.4\textwidth}
+               \includegraphics[width=\linewidth]{figures/image-source-green.jpg}
+               \caption{Composante verte, les érythrocytes sont bien contrastés.}
+               \label{fig:image-source-green}
+       \end{subfigure} 
+       ~
+       \begin{subfigure}[t]{0.4\textwidth}
+               \includegraphics[width=\linewidth]{figures/image-source-blue.jpg}
+               \caption{Composante bleue, non-utilisée.}
+               \label{fig:image-source-blue}
+       \end{subfigure} 
+       ~
+       \caption{Les différentes composantes de l'image.}
+       \label{fig:image-source}
+\end{figure}
 
-Les deux fonctions \emph{MATLAB} associées sont \texttt{mmdil} et \texttt{mmero}.
 
+\section{Détail de la méthode}
 
-\subsubsection{Ouverture et fermeture}
+Les filtres gaussiens appliqués initialement vont permettre de supprimer une partie du bruit haute-fréquence. L'écart type de chaque filtre est choisi en fonction de la taille des objets. La taille d'un érythrocyte est d'environ 8~\textmu{m} et la taille d'un parasite d'environ 2.5~\textmu{m}. Des écarts types de 0.22~\textmu{m} et 0.15~\textmu{m} sont choisis pour la segmentation des érythrocytes respectivement la segmentation des parasites.
 
-L'ouverture et la fermeture sont définies à partir de dilatation et d'érosion et sont nommées $\gamma$, respectivement $\phi$.
+Il est également important de supprimer, avant le traitement, la partie d'intensité plus élevée se trouvant au centre des érythrocytes (visible sur la figure~\ref{fig:medical-globules-rouges}), sans quoi les ouvertures (par aire ou morphologiques) faites pendant la granulométrie ne s'appliqueraient qu'à une partie de la cellule. De plus, cette particularité gêne également lors de la recherche des bords.
 
-{\setlength{\abovedisplayskip}{0pt}
-\begin{flalign*}
-       \gamma_B(X) &= X \circ B = \delta_B (\epsilon_B (X)) &\\
-       \phi_B(X) &= X \bullet B = \epsilon_B (\delta_B (X)) &
-\end{flalign*}
+Cela est fait en réalisant une ouverture par aire dont la surface est calculée à partir d'un rayon estimé sur la base de la résolution de l'image. Si, après la granulométrie, cette ouverture n'est pas suffisante (le rayon trouvé est supérieur à celui estimé via la résolution), alors une deuxième ouverture par aire est réalisée.
 
-Les deux fonctions \emph{MATLAB} associées sont \texttt{mmopen} et \texttt{mmclose}.
+Une fois que le rayon a été estimé par granulométrie sur la composante verte, une ouverture par aire est également appliquée à l'image qui sera utilisée pour la détection des parasites et qui est issue de la composante rouge.
 
 
-\subsubsection{Ouverture et fermeture par aire}
+\subsection{Identification des érythrocytes}
+\label{identification-erythrocytes}
 
-L'ouverture et la fermeture par aire sont nommées $\gamma_{\lambda{}B}$ et $\phi_{\lambda{}B}$. Ces opérateurs permettent de raboter les bosses, respectivement de combler les trous ayant une aire égale ou inférieure à $\lambda$ et dont chaque élément est connexe à au moins un autre par l'élément structurant $B$.
+Le but de cette étape est d'identifier les érythrocytes. Le profil de ceux-ci est un disque biconcave et apparait de manière plus ou moins déformée sur les photographies, comme on peut le voir à la figure~\ref{fig:image-source-RGB}. Ces déformations leur font prendre une forme plus ou moins elliptique dont le rapport entre le grand axe et le petit axe n'excède pas 1.6 ($\pm 23~\%$ d'un rayon moyen).
 
-La figure~\ref{fig:fermeture-par-aire} illustre cela en montrant une vue en deux dimensions de deux fermetures ayant pour valeur $\lambda_1$ et $\lambda_2$.
+Le résultat de cette recherche sera une liste d'ellipses pouvant se recouvrir partiellement. Les ellipses sont décrites par les paramètres montrés par la figure~\ref{fig:ellipse-parametres}.
 
 \begin{figure}[htbp]
        \centering
-       \includegraphics[width=0.5\linewidth]{img/schema_fermeture_par_aire.eps}
-       \caption{Vue en deux dimensions de deux fermetures par aire ayant des valeurs de $\lambda$ différentes}
-       \label{fig:fermeture-par-aire}
+       \includegraphics[width=0.5\linewidth]{figures/ellipse-parametres.pdf}
+       \caption{Paramètre d'une ellipse, $\alpha \in [0, \pi[$ est l'angle d'inclinaison du grand axe $a$, $a \geqslant b$ > 0.}
+       \label{fig:ellipse-parametres}
 \end{figure}
 
-Les deux fonctions \emph{MATLAB} associées sont \texttt{mmareaopen} et \texttt{mmareaclose}.
-
 
-\subsubsection{Reconstruction par dilatation}
+\subsubsection{Granulométrie}
+\label{granulometrie}
 
-Une reconstruction par dilatation est réalisée sur une image $G$ à partir d'un marqueur $F$ et d'un élément structurant $B$. Elle consiste à l'application successive de dilatations sur $F$ à l'aide de $B$ en ne gardant que les éléments appartenant à $G$ jusqu'à idempotence.
+L'objectif est de déterminer le rayon moyen des érythrocytes. Pour ce faire nous allons appliquer une série d'ouvertures par aire et calculer les différences des sommes des intensités de chaque pixel entre chaque ouverture. Chaque aire est calculée comme étant celle d'un cercle de rayon donné. Les rayons des aires vont être compris autour d'un rayon estimé à partir de la résolution donnée initialement. Les bornes inférieures et supérieures correspondent au rayon estimé minoré de 50~\% respectivement au rayon estimé majoré de 50~\%.
 
-{\setlength{\abovedisplayskip}{0pt}
-\begin{flalign*}
-       F_0 &= F &\\
-       F_{n+1} &= (F_n \oplus B) \cap G &
-\end{flalign*}
+L'ouverture nécessite ici que les érythrocytes aient un niveau d'intensité plus élevé que le fond. Pour que cela soit le cas, nous travaillons sur le négatif de la composante verte. L'intensité des érythrocytes est toujours plus faible que celle du fond, et cela pour toutes les images qui ont été étudiées.
 
-La fonction \emph{MATLAB} associée est \texttt{mminfrec}.
+Deux autres approches ont également été essayées : l'ouverture morphologique par un élément structurant en forme de disque et par un élément structurant de forme octogonale. Un des problèmes de ces deux approches est qu'elles ont tendance à sous-estimer légèrement le rayon moyen dans le cas d'éléments elliptiques. La figure~\ref{fig:granulometrie-ellipse-cercle-closing-comparaison} montre à gauche le résultat d'une granulométrie par aire (le cercle et l'ellipse ont la même aire) et à droite le résultat d'une granulométrie morphologique. Le rayon $r$ est plus proche de la moyenne entre les deux rayons de l'ellipse $a$ et $b$ que le rayon $r'$. Il est à noter que dans cet exemple $a = 2b$ et que donc $r = \sqrt{2}b = 1.41b$ ce qui n'est pas très éloigné de la moyenne $(a+b)/2 = (2+1)/2 = 1.5$.
 
+\begin{figure}[htbp]
+       \centering
+       \begin{subfigure}[t]{0.4\textwidth}
+               \includegraphics[width=\linewidth]{figures/granulometrie-ellipse-cercle-closing-area.pdf}
+               \caption{Cercle dont la surface est égale à celle de l'ellipse.}
+               \label{fig:granulometrie-ellipse-cercle-closing-area}
+       \end{subfigure} 
+       ~
+       \begin{subfigure}[t]{0.4\textwidth}
+               \includegraphics[width=\linewidth]{figures/granulometrie-ellipse-cercle-closing-morpho.pdf}
+               \caption{Cercle dont \emph{r} est égal au petit rayon \emph{a} de l'ellipse.}
+               \label{fig:granulometrie-ellipse-cercle-closing-morpho}
+       \end{subfigure} 
+       \caption{Comparaison du rayon d'un cercle trouvé par une ouverture par aire d'une ellipse (à gauche) avec celui trouvé par une ouverture morphologique (à droite).}
+       \label{fig:granulometrie-ellipse-cercle-closing-comparaison}
+\end{figure}
 
-\subsubsection{Ligne de partage des eaux}
+Un autre problème de la granulométrie à l'aide d'ouvertures morphologiques utilisant un disque comme élément structurant est sa complexité algorithmique quadratique en fonction du rayon du disque. La figure~\ref{fig:temps-morpho-cercle} montre un exemple de progression du temps de calcul en fonction du rayon. Une solution à ce problème est l'utilisation d'une approximation du cercle, l'octogone, qui peut être décomposé en quatre sous-éléments. L'associativité de l'érosion ou de la dilatation, montrée par l'équation~\ref{eq:dilatation-associatif}, permet la décomposition d'une dilatation ($e_{1} \oplus e_{2}$ où l'opérateur $\oplus$ est l'addition de Minkowski) en plusieurs dilatations successives ($\oplus~e_{1}$ puis $\oplus~e_{2}$). Cela permet de réduire la complexité algorithmique et ainsi de gagner du temps.
 
-La ligne de partage des eaux (\emph{watersheds} en anglais) consiste à considérer une image comme une surface en trois dimensions où les valeurs d'intensité correspondent à des hauteurs puis à remplir progressivement les creux avec de l'eau jusqu'à que toute l'image soit entièrement remplie. Lorsque deux bassins se rejoignent pendant la montée des eaux, une digue est construite. L'ensemble des digues représente alors le résultat final.
+{\setlength{\abovedisplayskip}{0pt}
+\begin{flalign} \label{eq:dilatation-associatif}
+       f' = f \oplus (e_{1} \oplus e_{2}) = (f \oplus e_{1}) \oplus e_{2} &
+\end{flalign}
 
-Dans notre cas, nous utilisons des marqueurs pour définir à partir de quels creux l'eau est injectée.
+Le détail de la décomposition d'un élément structurant de forme octogonale en quatre segments est montré ci-après. L'angle des segments en diagonal est de 45°.
 
-La fonction \emph{MATLAB} associée est \texttt{mmcwatershed}.
+{\setlength{\abovedisplayskip}{0pt}
+\begin{flalign*}
+       \includegraphics{figures/morpho/ligne-horizontale.pdf} \oplus \includegraphics{figures/morpho/ligne-diagonal-1.pdf} &= \includegraphics{figures/morpho/losange.pdf} \\
+       \includegraphics{figures/morpho/losange.pdf} \oplus \includegraphics{figures/morpho/ligne-diagonal-2.pdf} &= \includegraphics{figures/morpho/hexagone.pdf} \\
+       \includegraphics{figures/morpho/hexagone.pdf} \oplus \includegraphics{figures/morpho/ligne-verticale.pdf} &= \includegraphics{figures/morpho/octagon.pdf}
+\end{flalign*}
 
+La bibliothèque de traitement d'images utilisée ici, \emph{OpenCV}, ne réalise pas, à priori, cette optimisation lorsque l'élément structurant peut être décomposé. De ce fait, le temps de calcul, montré par la figure~\ref{fig:spectre-granulométrique-morpho-octogone}, ne se différencie pas de l'utilisation d'un disque. De plus, l'octogone produit un spectre granulométrique (figure~\ref{fig:spectre-granulométrique-morpho-octogone}) moins harmonieux que pour les deux autres granulométries.
 
-\subsubsection{Maximaux régionaux}
+Concernant les mesures du temps de calcul avec des images réelles, l'on constate que l'ouverture par aire est beaucoup plus rapide (8.4~s, figure~\ref{fig:temps-aire}) que l'ouverture morphologique (54~s, figures~\ref{fig:spectre-granulométrique-morpho-cercle} et~\ref{fig:spectre-granulométrique-morpho-octogone}). La première ouverture par aire, pour le premier rayon, prend un peu moins de 5~s, puis environ 100~ms pour les suivantes. Cela s'explique par la recherche initiale des minima puis par l'agrandissement de ceux-ci jusqu'à l'aire correspondant au premier rayon. Le détail de cet algorithme se trouve à la section~\ref{algo-ouverture-aire}.
 
-Les maximaux régionaux d'une image sont définis comme suit. La première ligne correspond à la définition de la connectivité des éléments de $M$. $B$ est un élément structurant.
+Il faut remarquer que le spectre granulométrique par aire comporte un deuxième sommet au rayon 44 qui correspond à certains amas de cellules. Il est nécessaire d'éviter de traiter des images comprenant trop de cellules se touchant. En pratique, ce cas ne survient pas car l'image est alors trop peu lisible pour être exploitée.
 
-{\setlength{\abovedisplayskip}{0pt}
-\begin{flalign*}
-       \begin{cases}
-               \forall p \in M & \text{si } f(p) = t, \quad \exists p' \in M, \quad p' \neq p, \quad p' \in (p \oplus B) \\
-               \forall p \in (M \oplus B) \setminus M & \text{si } f(p) < t 
-       \end{cases}&&
-\end{flalign*}
-La fonction \emph{MATLAB} associée est \texttt{mmregmax}. La figure \ref{fig:regmax_sample} montre un exemple d'application de cette fonction à l'aide d'un élément structurant carré de taille 5.
+\begin{figure}[htbp]
+       \centering      
+       \begin{subfigure}[t]{0.48\textwidth}
+               \includegraphics[width=1\linewidth]{figures/Granulometry-pattern-spectrum-area.pdf}
+               \caption{Spectre granulométrique d'une succession d'ouvertures par aire.}
+               \label{fig:spectre-granulométrique-aire}
+       \end{subfigure}
+       ~
+       \begin{subfigure}[t]{0.48\textwidth}
+               \includegraphics[width=1\linewidth]{figures/Granulometry-time-area.pdf}
+               \caption{Temps en milliseconde pour chaque ouverture. Temps total : 8.4~s.}
+               \label{fig:temps-aire}
+       \end{subfigure}
+       \caption{Spectre granulométrique et temps en milliseconde pour chacune des ouvertures par aire. L'image utilisée est montrée à la figure~\ref{fig:exemple-granulometrie}.}
+       \label{fig:Granulometry-area}
+\end{figure}
 
 \begin{figure}[htbp]
        \centering
-       \begin{subfigure}[b]{0.38\textwidth}
-               \includegraphics[width=\linewidth]{img/regmax_sample.eps}
-               \caption{Image à laquelle est appliquée la fonction \texttt{mmregmax}. Les pixels noires valent zéro}
-               \label{fig:regmax_sample_original}
-       \end{subfigure} 
+       \begin{subfigure}[t]{0.48\textwidth}
+               \includegraphics[width=1\linewidth]{figures/Granulometry-pattern-spectrum-morpho-circle.pdf}
+               \caption{Spectre granulométrique d'une succession d'ouvertures morphologiques avec un disque.}
+               \label{fig:spectre-granulométrique-morpho-cercle}
+       \end{subfigure}
        ~
-       \begin{subfigure}[b]{0.15\textwidth}
-               \includegraphics[width=\linewidth]{img/regmax_sample_se.eps}
-               \caption{L'élément structurant : un carré de taille 5 symétrique}
-               \label{fig:regmax_sample_se}
+       \begin{subfigure}[t]{0.48\textwidth}
+               \includegraphics[width=1\linewidth]{figures/Granulometry-time-morpho-circle.pdf}
+               \caption{Temps en milliseconde pour chaque ouverture. Temps total : 54~s.}
+               \label{fig:temps-morpho-cercle}
        \end{subfigure}
-       ~       
-       \begin{subfigure}[b]{0.38\textwidth}
-               \includegraphics[width=\linewidth]{img/regmax_sample_result.eps}
-               \caption{Le résultat de l'application de \texttt{mmregmax}. Les pixels noires valent zéro}
-               \label{fig:regmax_sample_result}
+       \caption{Spectre granulométrique et temps en milliseconde pour chacune des ouvertures morphologiques avec un disque comme élément structurant. L'image utilisée est montrée à la figure~\ref{fig:exemple-granulometrie}.}
+       \label{fig:Granulometry-morpho-circle}
+\end{figure}
+
+\begin{figure}[htbp]
+       \centering
+       \begin{subfigure}[t]{0.48\textwidth}
+               \includegraphics[width=1\linewidth]{figures/Granulometry-pattern-spectrum-morpho-octagon.pdf}
+               \caption{Spectre granulométrique d'une succession d'ouvertures morphologiques avec un octogone.}
+               \label{fig:spectre-granulométrique-morpho-octogone}
+       \end{subfigure}
+       ~
+       \begin{subfigure}[t]{0.48\textwidth}
+               \includegraphics[width=1\linewidth]{figures/Granulometry-time-morpho-octagon.pdf}
+               \caption{Temps en milliseconde pour chaque ouverture. Temps total : 54~s.}
+               \label{fig:temps-morpho-octogone}
        \end{subfigure}
-       \caption{Exemple d'application de la fonction \texttt{mmregmax}. Les deux pixels de valeur 5 forment une zone connexe : celle-ci est écartée car la dilaté du pixel de valeur 8 par l'élément structurant contient un des pixels de valeur 5}
-       \label{fig:regmax_sample}
+       \caption{Spectre granulométrique et temps en milliseconde pour chacune des ouvertures morphologiques avec un octogone comme élément structurant. L'image utilisée est montrée à la figure~\ref{fig:exemple-granulometrie}.}
+       \label{fig:Granulometry-morpho-octagon}
 \end{figure}
 
-\subsection{Outils logiciels}
+\begin{figure}[htbp]
+       \centering
+       \includegraphics[width=0.8\linewidth]{figures/exemple-granulometrie.jpg}
+       \caption{Image de résolution 2592~\texttimes~1944 contenant environ 700 érythrocytes, qui a été utilisée pour le calcul de la granulométrie montré aux figures \ref{fig:Granulometry-area}, \ref{fig:Granulometry-morpho-circle} et \ref{fig:Granulometry-morpho-octagon}.}
+       \label{fig:exemple-granulometrie}
+\end{figure}
 
-L'implémentation est réalisée à l'aide de \emph{MATLAB 2015a}. Les différentes fonctions morphologiques (préfixées par \texttt{mm}) proviennent de la bibliothèque nommée \emph{SDC Morphology Toolbox for MATLAB}\footnote{\url{http://mmorph.com/}}.
+À partir du rayon moyen trouvé par granulométrie et des caractéristiques des érythrocytes énoncées à la section~\ref{identification-erythrocytes}, les rayons minimum et maximum sont définis comme étant $rayon_{moyen} (1 + 0.23)$ et $rayon_{moyen} (1 - 0.23)$.
 
 
-\section{Approche générale}
+\subsubsection{Recherche des bords des érythrocytes et calcul du gradient associé}
 
-Le processus complet est illustré par la figure \ref{fig:processusComplet}. Les différents chiffres correspondent aux étapes décrites ci-après. Il y a deux phases principales : le traitement des éléments colorés (étapes 1 à 3) et la segmentation des globules rouges (étapes 4 et 5).
+La construction d'ellipses nécessite la connaissance au préalable des bords des érythrocytes ainsi que du gradient associé. Cela est réalisé à l'aide d'une procédure s'apparentant au filtre de Canny.
 
-La première étape (\ding{192}) consiste à détecter les éléments qui ont été colorés comprenant les parasites, les globules blancs et les plaquettes. Les parasites peuvent se trouver à l'extérieur de cellules, par exemple groupés sous la forme de schizontes.
+Le gradient est défini comme étant deux composantes $g_x$ et $g_y$ en chaque point correspondant aux dérivées partielles par rapport à $x$ et par rapport à $y$ d'une image $f$, comme montré par l'équation~\ref{eq:composantes-gradient}.
 
-Les deuxième et troisième étapes (\ding{193} et \ding{194}) consistent à chercher et à extraire les globules blancs, respectivement les schizontes.
+{\setlength{\abovedisplayskip}{0pt}
+\begin{flalign} \label{eq:composantes-gradient}
+       \nabla f = \begin{pmatrix}g_x \\ g_y \end{pmatrix} = \begin{pmatrix}\partial f / \partial x \\ \partial f / \partial y \end{pmatrix}
+\end{flalign}
 
-La quatrième étape (\ding{195}) va segmenter les globules rouges.
+Le filtre de Sobel permet d'obtenir une bonne approximation de ces deux composantes en appliquant deux convolutions avec les deux noyaux montrés à l'équation~\ref{eq:sobel-noyaux}. Une application sur une image réelle est montrée à la figure~\ref{fig:gradient}.
 
-La cinquième étape (\ding{196}) consiste à reconstruire les globules rouges parasités à partir des parasites marqués de la première étape (\ding{192}) et de la segmentation de la quatrième étape (\ding{195}) .
+{\setlength{\abovedisplayskip}{0pt}
+\begin{flalign} \label{eq:sobel-noyaux}
+       K_x = \begin{pmatrix}-1 & 0 & 1 \\ -2 & 0 & 2 \\ -1 & 0 & 1 \end{pmatrix}, \quad K_y = K_x^\top = \begin{pmatrix}-1 & -2 & -1 \\ 0 & 0 & 0 \\ 1 & 2 & 1 \end{pmatrix}
+\end{flalign}
 
-La sixième et dernière étape va compter le nombre de globules rouges total et de globules rouges infectés afin de calculer le rapport entre ces deux valeurs.
+La norme euclidienne en chaque point est obtenue par l'équation~\ref{eq:gradient-norme}. La méthode de Otsu est ensuite appliquée afin de calculer un seuil qui sera utilisé pour la définition des bords par hystérèse. 
+
+{\setlength{\abovedisplayskip}{0pt}
+\begin{flalign} \label{eq:gradient-norme}
+       M(x, y) = \| \nabla f \| = \sqrt{g_x^2 + g_y^2}
+\end{flalign}
 
 \begin{figure}[htbp]
        \centering
-       \includegraphics[width=1\linewidth]{img/schema_processus.eps}
-       \caption{Le processus complet.}
-       \label{fig:processusComplet}
+       \begin{subfigure}[t]{0.4\textwidth}
+               \includegraphics[width=1\linewidth]{figures/gradient-exemple.jpg}
+       \end{subfigure}
+       ~
+       \begin{subfigure}[t]{0.4\textwidth}
+               \includegraphics[width=1\linewidth,interpolate=false]{figures/gradient-exemple.pdf}
+       \end{subfigure}
+       \caption{Une cellule dont le gradient de la partie jaune est montré à droite sous la forme d'un champ de vecteurs. Les bords sont également représentés.}
+       \label{fig:gradient}
 \end{figure}
 
-
-\section{Détail du processus}
-
-Le processus est actuellement réalisé sur des images réduites de 40~\% à l'aide d'une interpolation bicubique par rapport à la taille originale afin d'augmenter la vitesse de l'ensemble du processus. La taille des images traitées après réduction est de 1167 x 1556. Voir la figure \ref{fig:imgRGB}. 
-
-La qualité du résultat final n'est pas très affectée par la diminution de la taille des images : sur l'ensemble des douze images présentées à la section~\ref{resultats}, nous obtenons un taux d'erreur moyen de 17.9~\% pour les images originales contre 18.2~\% pour les images réduites. Le taux mesuré de référence est de 16.9 \%. Le temps moyen est de 485~s pour les images originales contre 78~s pour les images réduites.
+Afin de ne garder que les crêtes, un algorithme de suppression des non-maxima est appliqué. Celui-ci est illustré par la figure~\ref{fig:non-maximum-suppression-schema} et va, pour chaque élément de la norme, le comparer à ses voisins en définissant l'orientation de l'arête du bord comme étant la droite perpendiculaire au gradient. Pour chaque côté de l'arête, une interpolation est calculée entre les deux éléments les plus proches de la droite ayant la même direction que la valeur du gradient de l'élément traité et passant par celui-ci. Par exemple, par rapport à la figure~\ref{fig:non-maximum-suppression-schema}, la valeur des voisins du haut est calculée comme étant $\psi = n_1 \cdot (1 - v_x/v_y) + n_2 \cdot v_x/v_y$ et celle des voisins du bas comme étant $\omega = n_4 \cdot (1 - v_x/v_y) + n_3 \cdot v_x/v_y$ où $v_x$ et $v_y$ sont les composantes du gradient au point traité $e$. Si la norme de $e$ est strictement plus grande que les valeurs $\psi$ et $\omega$, alors celui-ci sera défini comme étant un maximum. La figure~\ref{fig:nms} montre la valeur de la norme ainsi que les maxima mis en évidence.
 
 \begin{figure}[htbp]
        \centering
-       \includegraphics[width=0.8\linewidth]{img/imgRGB.png}
-       \caption{Image originale en entrée ($\mli{imgRGB}$)}
-       \label{fig:imgRGB}
+       \begin{subfigure}[t]{0.35\textwidth}
+               \includegraphics[width=1\linewidth,interpolate=false]{figures/non-maximum-suppression-schema.pdf}
+               \caption{Les voisins ($n_1$, $n_2$, $n_3$, $n_4$) de $e$ qui vont être utilisés pour déterminer si $e$ est un maximum.}
+               \label{fig:non-maximum-suppression-schema}
+       \end{subfigure}
+       ~
+       \begin{subfigure}[t]{0.35\textwidth}
+               \includegraphics[width=1\linewidth,interpolate=false]{figures/nms.png}
+               \caption{Le résultat de l'application de la suppression des non-maxima. Les maxima sont mis en évidence en blanc et la norme du gradient est montrée avec des niveaux d'intensité de gris.}
+               \label{fig:nms}
+       \end{subfigure}
+       \caption{Suppression des non-maxima.}
+       \label{fig:non-maximum-suppression}
 \end{figure}
 
-Tout au long de cette description nous lions certains résultats d'opération à des noms de variables issues du code \emph{MATLAB} (fourni en annexe). Ceci afin de pouvoir facilement retrouver le détail de ces opérations dans le code et de faciliter le suivi de l'enchaînement des opérations.
+Le résultat obtenu par l'étape précédente, la suppression des non-maxima, va prendre en compte tous les bords et ceci indépendamment de la norme du gradient (inclinaison de la pente). Il est nécessaire maintenant de ne retenir que les bords les plus pertinents. Pour ce faire une recherche par hystérèse est appliquée en ne gardant, dans un premier temps, que les éléments dont la norme est supérieure au seuil obtenu précédemment par la méthode de Otsu majoré d'un pourcentage (par exemple 10~\%). Puis, dans un second temps, nous y ajoutons récursivement tous les éléments 8-connexes dont la norme est supérieure au seuil.
 
-\subsection{Détection des parasites}
-\label{detection-parasites}
+Finalement, les zones 8-connexes dont la surface est supérieure à un facteur du rayon moyen sont supprimées afin d'éliminer les bords de faible longueur qui ne correspondent, en général, pas aux bords des érythrocytes.
 
-Cette opération a pour but de marquer les éléments colorés qui correspondent aux parasites, schizontes et globules blancs. Nous utilisons ici les composantes \emph{teinte} et \emph{saturation} de l'image.
+Le résultat de cette étape est la matrice de vecteurs définissant le gradient, dont les éléments ne faisant pas partie du bord sont mis à zéro (vecteur nul).
 
-\subsubsection{Filtrage préliminaire}
+%\subsubsection{Recherche des bords des érythrocytes}
 
-Il est nécessaire, pour la suite du traitement, d'avoir les intensités les plus élevées pour les éléments colorés pour les deux composantes \emph{teinte} et \emph{valeur}. Pour se faire nous allons utiliser le négatif des deux composantes. De plus la composante \emph{teinte} est translatée de $100 / 255$ (141°) afin que les différents éléments de l'image, à savoir le fond, les cellules et les parties colorées, ne soient pas proches des valeurs extrêmes, voir l'histogramme montré par la figure \ref{fig:histogram_imgH}. $\mli{imgRGB} \rightarrow (\mli{imgH}, \mli{imgS})$.
+\subsubsection{Construction d'ellipses}
 
-Les histogrammes des deux images $\mli{imgH}$ et $\mli{imgS}$ sont montrés par les figures \ref{fig:histogram_imgH} et \ref{fig:histogram_imgS}. L'histogramme de la teinte montre un premier sommet vers 80 correspondant au fond et un deuxième sommet vers 88 correspondant aux cellules, Les éléments colorés se trouvent aux environs de 120. L'histogramme de la saturation montre un premier sommet vers 128 correspondant aux cellules et un deuxième sommet vers 150 correspondant au fond : les éléments colorés se trouvent aux environs de 200.
+Une méthode proche de la méthode RANSAC (\emph{RANdom SAmple Consensus}) est appliquée à la matrice résultant de l'étape précédente. Cela consiste à faire glisser une fenêtre à travers la matrice et à tirer aléatoirement, un certain nombre de fois, trois points éloignés les uns des autres. À l'aide du gradient de deux des trois points, il est éventuellement possible de construire une ellipse unique. Les ellipses ainsi construites sont alors ajoutées à l'ensemble des ellipses. Une fois la matrice entièrement traversée par la fenêtre, un score est attribué à chacune des ellipses en fonction de sa proximité aux autres ellipses. Finalement, les ellipses dont le score est trop faible, ou qui se trouvent trop proches d'une ellipse ayant un score plus élevé, sont supprimées.
 
-\begin{figure}[htbp]
-       \centering
-       \includegraphics[width=0.8\linewidth]{img/histogram_imgH.eps}
-       \caption{Histogramme de la teinte ($\mli{imgH}$)}
-       \label{fig:histogram_imgH}
-\end{figure}
+La taille de la fenêtre glissante est un carré dont la longueur des côtés correspond à deux fois le rayon maximum (voir section~\ref{granulometrie}). La fenêtre va balayer toute la matrice de gauche à droite et de haut en bas. Un incrément d'un quart sa dimension a été choisi. Pour chaque position un certain nombre de tirages de triplets de points valides parmi les vecteurs non-nuls est effectué. Ce nombre est égal à un coefficient multipliant le nombre courant d'éléments du bord. Celui-ci à été ajusté comme valant 6~\%. Un triplet valide correspond à trois points éloignés les uns des autres d'au moins une fraction du rayon moyen (par exemple la moitié) et avec lesquels il est possible de construire une ellipse dont les deux rayons se trouvent entre le rayon minimum et le rayon maximum.
 
 \begin{figure}[htbp]
        \centering
-       \includegraphics[width=0.8\linewidth]{img/histogram_imgS.eps}
-       \caption{Histogramme de la saturation ($\mli{imgS}$)}
-       \label{fig:histogram_imgS}
+       \begin{subfigure}[t]{0.3\textwidth}
+               \includegraphics[width=1\linewidth]{figures/ellipses/cellule-bords-deformes.jpg}
+       \end{subfigure}
+       ~
+       \begin{subfigure}[t]{0.3\textwidth}
+               \includegraphics[width=1\linewidth]{figures/ellipses/cellule-bords-deformes-bords.png}
+       \end{subfigure}
+       \caption{Une cellule présentant un contour déformé fournit moins de triplets avec lesquels il est possible de construire une ellipse. La résultat de la recherche d'ellipses pour cette cellule est montré au centre de la figure~\ref{fig:exemple-ellipses-4}.}
+       \label{fig:cellule-bords-deformes}
 \end{figure}
 
-Afin de gommer le bruit et de rendre le fond plus homogène, un filtre médian 5 x 5 puis une fermeture par aire de 1000 sont appliqués à $\mli{imgH}$ et $\mli{imgS}$. $\mli{imgH} \rightarrow \mli{imgFiltered\{1\}}, \mli{imgS} \rightarrow \mli{imgFiltered\{2\}}$. Les figures \ref{fig:imgHFiltered} et \ref{fig:imgSFiltered} montrent les composantes \emph{teinte} et \emph{saturation} après filtrage.
+La densité de points valides dans la fenêtre à un endroit donné dépend de la qualité des bords. Ainsi, une cellule dont l'aspect s'éloigne d'une ellipse (comme montré à la figure~\ref{fig:cellule-bords-deformes}) produira moins de triplets valides. De ce fait il est nécessaire de fixer une limite du nombre de tirages dans le cas où les 6~\% de triplets valides sont difficiles voire impossibles à atteindre. Cette limite est fixée à 400~\% du nombre de vecteurs non-nuls.
 
 \begin{figure}[htbp]
        \centering
-       \includegraphics[width=0.8\linewidth]{img/imgHFiltered.jpg}
-       \caption{Composante \emph{teinte} après filtrage ($\mli{imgFiltered\{1\}}$) représentée en fausse couleur}
-       \label{fig:imgHFiltered}
+       \includegraphics[width=0.5\linewidth]{figures/construction-ellipse.pdf}
+       \caption{Le triplet de point $p_1$, $p_2$ et $p_3$ ainsi que les deux vecteurs du gradient $v_1$ et $v_2$ permettent possiblement la construction d'une ellipse. $d_1$ et $d_2$ sont les droites, tangentes à l'ellipse, perpendiculaires à $v_1$ respectivement $v_2$ et passant par les points associés.}
+       \label{fig:construction-ellipse}
 \end{figure}
 
+À partir de chaque triplet de points et des deux vecteurs du gradient des deux premiers points, une ellipse va tenter d'être construite (comme montrer par la figure~\ref{fig:construction-ellipse}). Tout d'abord il faut s'assurer que les deux vecteurs $v_1$ et $v_2$ pointent bien dans le bon sens, c'est-à-dire vers le centre de l'ellipse. Pour cela il faut vérifier que les sens de rotation de $p_1$ et $p_2$ donnés par $v_1$ et $v_2$ par rapport au pivot $p_0$ soient différents et que l'angle formé entre les deux droites $d_1$ et $d_2$ soit strictement inférieur à $\pi$. La figure~\ref{fig:construction-ellipse-vecteurs-valides} illustre ces différents cas.
+
 \begin{figure}[htbp]
        \centering
-       \includegraphics[width=0.8\linewidth]{img/imgSFiltered.jpg}
-       \caption{Composante \emph{saturation} après filtrage ($\mli{imgFiltered\{2\}}$) représentée en fausse couleur}
-       \label{fig:imgSFiltered}
+       \begin{subfigure}[t]{0.3\textwidth}
+               \includegraphics[width=1\linewidth]{figures/ellipses/construction-ellipse-vecteurs-valides-3.pdf}
+               \caption{Triplet invalide : sens contraire des vecteurs par rapport à $p_0$.}
+               \label{fig:construction-ellipse-vecteurs-valides-3}
+       \end{subfigure}
+       ~
+       \begin{subfigure}[t]{0.3\textwidth}
+               \includegraphics[width=1\linewidth]{figures/ellipses/construction-ellipse-vecteurs-valides-2.pdf}
+               \caption{Triplet invalide : $\alpha \geqslant \pi$.}
+               \label{fig:construction-ellipse-vecteurs-valides-2}
+       \end{subfigure}
+       ~
+       \begin{subfigure}[t]{0.3\textwidth}
+               \includegraphics[width=1\linewidth]{figures/ellipses/construction-ellipse-vecteurs-valides-1.pdf}
+               \caption{Triplet valide : $\alpha < \pi$.}
+               \label{fig:construction-ellipse-vecteurs-valides-1}
+       \end{subfigure}
+       \caption{Cas de triplets valides et invalides.}
+       \label{fig:construction-ellipse-vecteurs-valides}
 \end{figure}
 
+Tout d'abord le point $p_0$ est calculé comme montré par les équations~\ref{eq:p0-debut} à~\ref{eq:p0-fin}. Si $m_1 = m_2$ (les droite $d_1$ et $d_2$ sont parallèles), alors $p_0$ est défini comme étant le point à l'infini. Si les conditions de la figure~\ref{fig:construction-ellipse-vecteurs-valides-1} sont respectées, alors une conique est construite à partir des quatre points $p_0$, $p_1$, $p_2$ et $p_3$. Si cette conique est une ellipse valide, alors elle est ajoutée à l'ensemble des ellipses.
 
-\subsubsection{Granulométrie}
-
-L'objectif ici est de déterminer le rayon moyen des globules rouges (souvent abrégé \emph{RBC} pour \emph{red blood cell}). Pour ce faire, nous réalisons une succession de fermetures à l'aide d'un élément structurant de forme octogonale sur la composante \emph{saturation} ($\mli{imgFiltered\{2\}}$). Il est à noter que les globules rouges ont une intensité moindre que le fond (voir la figure~\ref{fig:imgSFiltered}) : c'est pour cela que nous utilisons une fermeture et non une ouverture.  Nous évitons ici un élément structurant ayant la forme d'un disque pour des raisons de performance, une fermeture avec ce dernier demandant d'effectuer beaucoup plus de calculs. Une ouverture par aire de 1000 est appliquée au préalable sur la composante \emph{saturation} afin de niveler l'intensité des cellules.
+{\setlength{\abovedisplayskip}{0pt}
+\begin{flalign}
+       \label{eq:p0-debut}
+       m_1 &= -v_{1_x} / v_{1_y} \\
+       m_2 &= -v_{2_x} / v_{2_y} \\
+       b_1 &= -m_1 p_{1_x} + p_{1_y} \\
+       b_2 &= -m_2 p_{2_x} + p_{2_y} \\
+       d_1(x) &= y = m_1 x + b_1 \\
+       d_2(x) &= y = m_2 x + b_2 \\    
+       p_{0_x} &= -(b_1 - b_2) / (m_1 - m_2) \\         
+       p_{0_y} &= -(m_2 b_1 - m_1 b_2) / (m_1 - m_2) \label{eq:p0-fin}
+\end{flalign}
+
+La construction d'une ellipse est décrite ci-après. Dans le repère projectif $\{\upsilon_0, \upsilon_1, \upsilon_2, \upsilon_3\}$ lié à la conique, $\upsilon_0 = \begin{pmatrix}1 & p_{0_x} & p_{0_y}\end{pmatrix}, \; \upsilon_1 = \begin{pmatrix}1 & p_{1_x} & p_{1_y}\end{pmatrix}, \; \upsilon_2 = \begin{pmatrix}1 & p_{2_x} & p_{2_y}\end{pmatrix}, \; \upsilon_3 = \begin{pmatrix}1 & p_{3_x} & p_{3_y}\end{pmatrix}$. Si $p_0$ est à l'infini alors $\upsilon_0 = \begin{pmatrix}0 & * & *\end{pmatrix}$. L'équation de la conique est la suivante : 
 
-\begin{sloppypar} % Pour éviter que certaines formules inline débordent dans la marge.
-Nous partons d'un rayon initial de 1 pour arriver à un rayon maximal de $\mli{width}(\mli{imgRGB}) / 35$. Le rayon maximal est défini en fonction de la largeur de l'image, ce qui permet de ne pas être dépendant de sa résolution. À chaque itération une fermeture est effectuée suivi du calcul du volume relatif de l'image : $\mli{volume}(\mli{imgClosed}) \rightarrow A, 1 - A / \mli{volImg} \rightarrow N$ où $\mli{volImg}$ est le volume de $\mli{imgFiltered\{2\}}$. La différence de volume (spectre granulométrique) est calculée pour chaque itération $i$ comme suit : $\lvert N_{i + 1} - N_i \rvert$.
-\end{sloppypar}
+{\setlength{\abovedisplayskip}{0pt}
+\begin{flalign}
+       T^2 &= X Y \\
+       S &= \begin{pmatrix}1 & 0 & 0 \\ 0 & 0 & -1/2   \\ 0 & -1/2 & 0\end{pmatrix}
+\end{flalign}
 
-Nous définissons le rayon moyen des globules rouges ($\mli{RBCRadius}$) comme étant le rayon de l'élément structurant correspondant à la valeur maximale parmi le spectre granulométrique. Le rayon moyen du noyau des parasites est impossible à extraire des différences de volume : nous le calculons comme étant un cinquième de la taille des globules rouges : $\mli{RBCRadius} / 5 \rightarrow \mli{nucleiRadius}$. La figure \ref{fig:patternSpectrum} montre le graphique d'un spectre granulométrique. Dans ce cas $\mli{RBCRadius}$ est égal à 35 et $\mli{nucleiRadius}$ à 7.
+Changement de repère projectif par la matrice de passage $P$ ($3 \times 3$) :
 
-\begin{figure}[htbp]
-       \centering
-       \includegraphics[width=0.8\linewidth]{img/pattern_spectrum_granulometry.eps}
-       \caption{Spectre granulométrique}
-       \label{fig:patternSpectrum}
-\end{figure}
-
-\subsubsection{Segmentation des éléments colorés}
+{\setlength{\abovedisplayskip}{0pt}
+\begin{flalign}
+       P &= \begin{pmatrix}
+               det(\upsilon_3, \upsilon_1, \upsilon_2) \, \upsilon_0 \\
+               det(\upsilon_0, \upsilon_3, \upsilon_2) \, \upsilon_1 \\
+               det(\upsilon_0, \upsilon_1, \upsilon_3) \, \upsilon_2
+               \end{pmatrix}
+\end{flalign}
 
-Afin d'identifier les éléments colorés, une recherche des maximaux régionaux est réalisée sur les deux composantes \emph{teinte} et \emph{saturation} à l'aide d'un élément structurant octogonal de rayon $\mli{RBCRadius}$. Les deux résultats sont ensuite dilatés de $\mli{nucleiRadius}$ puis combinés avec une intersection.
+Matrice de la conique dans le repère projectif de référence :
 
 {\setlength{\abovedisplayskip}{0pt}
-\begin{flalign*}
-   \mli{M\{1\}} &= \mli{regmax}(\mli{imgFiltered\{1\}}, \mli{RBCRadius}) &\\
-   \mli{M\{2\}} &= \mli{regmax}(\mli{imgFiltered\{2\}}, \mli{RBCRadius}) &\\
-   \mli{MHS} &= (\mli{M\{1\}} \oplus \mli{nucleiRadius}) \cap (\mli{M\{2\}} \oplus \mli{nucleiRadius}) &
-\end{flalign*}
+\begin{flalign}
+       \begin{pmatrix} A & B & D \\ B & C & E \\ D & E & F\end{pmatrix} &= P \cdot S^{-1} \cdot P^\top
+\end{flalign}
 
-Nous allons ensuite seuiller les deux composantes puis combiner les résultats avec une intersection. Le seuil de chaque image, $\mli{{\mu}H}$ et ${\mu}S$, est déterminé comme étant la moyenne des valeurs de l'image désignée par le masque $\mli{MHS}$.
+Le centre est défini comme suit :
 
 {\setlength{\abovedisplayskip}{0pt}
-\begin{flalign*}
-       \mli{MHS}_{vol} &= \displaystyle\sum_{p \in \mli{MHS}}p &\\
-       \mli{{\mu}H} &= \frac{\displaystyle\sum_{p \in \mli{MHS}} H(p)}{\mli{MHS}_{vol}} & où~H &= \mli{imgFiltered\{1\}} &\\
-       \mli{{\mu}S} &= \frac{\displaystyle\sum_{p \in \mli{MHS}} S(p)}{\mli{MHS}_{vol}} & où~S &= \mli{imgFiltered\{2\}} &
-\end{flalign*}
+\begin{flalign}
+       (\alpha, \; \beta) = (B/A, \; D/A)
+\end{flalign}
 
-La teinte et la saturation sont seuillées à l'aide des valeurs $\mli{{\mu}H}$, respectivement $\mli{{\mu}S}$. Nous obtenons alors les images $\mli{TH}$ et $\mli{TS}$ que nous combinons comme suit pour obtenir $\mli{THS}$. L'ouverture par aire permet d'éliminer les toutes petites traces qui représentent dans la majorité des cas du bruit. La figure \ref{fig:THS} montre $\mli{THS}$ en blanc imprimé sur l'image d'entrée.
+Les tailles des deux rayons sont données par $1/\sqrt{\lambda}$ et $1/\sqrt{\mu}$ où $\lambda$ et $\mu$ sont les valeurs propres de la matrice $Q$. Les vecteurs propres de $Q$ donnent les directions des deux axes de l'ellipse. La matrice $Q$ est calculée comme suit :
 
 {\setlength{\abovedisplayskip}{0pt}
-\begin{flalign*}
-       \mli{THS} &= \gamma_{10}(\mli{TH} \cap \mli{TS}) &
-\end{flalign*}
+\begin{flalign}
+       Ã &= E^2 - C F + (B F - E D) \alpha + (C D - B E) \beta \\
+       Q &= Ã^{-1} \begin{pmatrix}A F - D^2 & B D - A E \\
+                                                 B D - A E & A C - B^2\end{pmatrix}
+\end{flalign}
 
-\begin{figure}[htbp]
-       \centering
-       \includegraphics[width=0.8\linewidth]{img/THS.jpg}
-       \caption{Les éléments colorés mis en évidence ($\mli{THS}$)}
-       \label{fig:THS}
-\end{figure}
 
+\subsubsection{Calcul du score des ellipses}
 
-\subsection{Détection des globules blancs}
+Un score va être attribué à chaque ellipse en fonction de sa proximité aux autres ellipses. Pour chaque ellipse on calcule un score montré par l'équation~\ref{eq:ellipse-score}. En pratique, un arbre k-d~\cite[p.~99-105]{computational-geometry2008} est utilisé pour localiser les voisins proches afin d'éviter une complexité algorithmique en $O(n^2)$.
 
-Cette opération utilise l'image de marquage des éléments colorés ($\mli{THS}$) ainsi que la taille des globules rouges ($\mli{RBCRadius}$). Les globules blancs sont tout d'abord marqués à l'aide d'une érosion utilisant un élément structurant octogonal dont la taille correspond à 50 \% de celle des globules rouges ($0.5 \cdot \mli{RBCRadius}$). Puis une reconstruction par dilatation des éléments colorés en utilisant le marqueur précédent permet de ne garder que les globules blancs.
+{\setlength{\abovedisplayskip}{0pt}
+\begin{flalign}
+       \label{eq:ellipse-score}
+       s(e) &= \sum_{\substack{e' \in E \\ e' \neq e }} \left( \frac{2 \; aire_{intersection}(e, e')}{aire(e) + aire(e')} \right)^n
+\end{flalign}
 
-Finalement nous lissons le résultat en réalisant une fermeture suivie d'une ouverture afin de fermer les petits trous qui pourraient rester. Le résultat est appelé $\mli{WBC}$ et est montré par la figure \ref{fig:WBC}.
+Où $E$ est l'ensemble des ellipses, $aire(e) = a \, b \, \pi$. La fonction $aire_{intersection}(e, e')$ donne la surface de l'intersection entre deux ellipses $e$ et $e'$. Ce calcul n'est pas trivial, une approximation numérique est donnée par \emph{Hughes et Mohcine}~\cite{hughes2011}. Chaque terme de l'addition est un nombre compris entre 0 et 1. L'exposant $n$ est un nombre plus grand ou égal à 1. Plus celui-ci est grand, moins les voisins éloignés vont avoir de l'influence. En pratique, une bonne convergence a été observée avec $n$ valant 20. Un exemple pratique est montré à la figure~\ref{fig:ellipses-chevauchement}.
 
 \begin{figure}[htbp]
        \centering
-       \includegraphics[width=0.8\linewidth]{img/WBC.jpg}
-       \caption{Le gradient des globules blancs imprimé sur l'image originale ($\mli{WBC}$)}
-       \label{fig:WBC}
+       \includegraphics[width=0.35\linewidth]{figures/ellipses/ellipses-chevauchement.pdf}
+       \caption{Exemple de calcul de score pour trois ellipses. Les scores indiqués ne sont pas des calculs exacts mais permettent de se faire une idée du fonctionnement de l'algorithme. On peut voir que toutes les ellipses se touchent et donc contribuent aux scores des autres. $e_2$ possède le plus de surface en commun avec les autres ellipses : elle a, dans ce cas, le score le plus élevé.}
+       \label{fig:ellipses-chevauchement}
 \end{figure}
 
+\subsubsection{Élagage des ellipses}
 
-\subsection{Détection des schizontes}
-
-Pour détecter les schizontes, nous utilisons l'image de marquage des éléments colorés ($\mli{THS}$) ainsi que la taille des globules rouges ($\mli{RBCRadius}$). Nous allons ici plus loin que l'article et créons un graphe non-orienté dont les arcs représentent une \emph{distance de Hausdorff} égale ou plus petite à 1.3 fois le rayon des globules rouges entre deux sous-ensembles. Nous cherchons alors les sous-ensembles connexes de plus de $n$ éléments et les marquons comme étant des schizontes. Dans notre cas $n$ est égal à 6. Il est important de ne pas utiliser un nombre trop bas car des cellules poly-infectées pourraient être considérées comme des schizontes : la figure \ref{fig:poly-et-schizonte} illustre cela.
 
 \begin{figure}[htbp]
        \centering
-       \begin{subfigure}[t]{0.3\textwidth}
-               \includegraphics[width=\linewidth]{img/poly-infected_cell.jpg}
-               \caption{Globule rouge poly-infecté, quatre sous-ensembles}
-               \label{fig:regmax_sample_original}
-       \end{subfigure} 
+       \begin{subfigure}[t]{0.45\textwidth}
+               \includegraphics[width=1\linewidth]{figures/ellipses/exemple-1-green-filtered.jpg}
+               \caption{Image initiale pour la recherche d'ellipses. Composante verte floutée dont le centre clair des érythrocytes a été ouvert.}
+               \label{fig:exemple-ellipses-1}
+       \end{subfigure}
        ~
-       \begin{subfigure}[t]{0.3\textwidth}
-               \includegraphics[width=\linewidth]{img/schizonte.jpg}
-               \caption{Un schizonte, sept sous-ensembles}
-               \label{fig:schizonte}
+       \begin{subfigure}[t]{0.45\textwidth}
+               \includegraphics[width=1\linewidth]{figures/ellipses/exemple-2-edges.png}
+               \caption{Bords des cellules : éléments pour lesquels le gradient est non-nul.}
+               \label{fig:exemple-ellipses-2}
+       \end{subfigure}
+       ~
+       \begin{subfigure}[t]{0.45\textwidth}
+               \includegraphics[width=1\linewidth]{figures/ellipses/exemple-3-all-ellipses.jpg}
+               \caption{L'ensemble des ellipses accumulées dessinées sur l'image initiale.}
+               \label{fig:exemple-ellipses-3}
        \end{subfigure}
-       \caption{Comparaison entre le nombre de sous-ensembles d'une cellule poly-infectée et d'un schizonte}
-       \label{fig:poly-et-schizonte}
+       ~
+       \begin{subfigure}[t]{0.45\textwidth}
+               \includegraphics[width=1\linewidth]{figures/ellipses/exemple-4-ellipses.jpg}
+               \caption{Le résultat final après élagage. Il est à noter que toutes les ellipses ne correspondent pas forcément à des érythrocytes.}
+               \label{fig:exemple-ellipses-4}
+       \end{subfigure}
+       \caption{Aperçu du processus de recherche d'érythrocytes par ajustement d'ellipses. Le gradient n'est pas représenté.}
+       \label{fig:exemple-ellipses}
 \end{figure}
 
-Pour savoir si deux sous-ensembles, $A$ et $B$, sont à une \emph{distance de Hausdorff} égale ou plus petite que $k$, il faut que $B \subseteq A \oplus \mli{SE_k}$ et que $A \subseteq B \oplus \mli{SE_k}$ où $\mli{SE_k}$ est un élément structurant ayant la forme d'un disque de diamètre $k$.
 
-\subsection{Segmentation des globules rouges}
-\label{segmentation-globules-rouges}
+L'ensemble des ellipses peut ressembler à ce qui est montré à la figure~\ref{fig:exemple-ellipses-3}. La dernière étape dans l'identification des érythrocytes consiste à ne garder que les ellipses qui ont un score pertinent. Un seuil est fixé en fonction du rayon moyen : $0.07 \; rayon_{moyen}$, toutes les ellipses ayant un score plus bas que ce nombre sont éliminées. Ce seuil dépend du rayon car le nombre d'ellipses construites pour une cellule donnée dépend de son périmètre qui, lui-même, dépend linéairement du rayon moyen.
 
-Le but ici est de séparer les globules rouges : nous utilisons l'image initiale ($\mli{imgRGB}$), le rayon des globules rouges ($\mli{RBCRadius}$), les globules blancs ($\mli{WBC}$) et les schizontes ($\mli{schizonts}$). Pour ce faire nous utilisons dans un premier temps une segmentation par ligne de partage des eaux à l'aide d'une transformée en distance. Nous séparons ensuite les segments en deux groupes, un groupe dont chaque élément représente une unique cellule et un autre groupe dont chaque élément représente un composé de cellules. Les cellules des éléments composés sont ensuite séparées : le résultat est uni aux cellules uniques et les éléments touchant les bords sont enlevés afin d'obtenir le résultat final.
+Les ellipses dont le centre est trop proche d'ellipses ayant un score plus élevé sont supprimées. Cette distance minimum est choisie comme étant un tiers du petit rayon de l'ellipse ayant le score le plus élevé.
 
-Durant le processus, nous avons besoin de définir le rayon minimum d'un globule rouge ainsi que son aire. Le rayon minimum est défini comme étant 75~\% du rayon nominal, comme montré ci-dessous.
+Les étapes de la recherche d'ellipses sont illustrées par la figure~\ref{fig:exemple-ellipses}.
 
-{\setlength{\abovedisplayskip}{0pt}
-\begin{flalign*}
-       \mli{RBCRadiusMin} &= \lfloor 0.75 \cdot \mli{RBCRadius} \rfloor &\\
-       \mli{RBCRadiusMinArea} &= \pi \cdot \mli{RBCRadiusMin}^2 &
-\end{flalign*}
 
+\subsection{Segmentation des parasites}
 
-\subsubsection{Filtrage préliminaire}
+Cette étape va permettre d'identifier trois types d'éléments : les zones colorées sombres (figure~\ref{fig:exemple-dark-stain}), les noyaux des parasites et leur cytoplasme (incluant le noyau) comme montré à la figure~\ref{fig:noyau-cytoplasme}. Les zones colorées sombres correspondent aux leucocytes, thrombocytes, throphozoïtes, gametocytes, schizontes, etc.
 
-Nous utilisons ici la composante verte de l'image à laquelle nous appliquons une ouverture par aire avec une zone de taille $\mli{RBCRadiusMinArea}$. Les globules blancs ($\mli{WBC}$) ainsi que les schizontes ($\mli{schizonts}$) sont \og{}soustraits\fg{} de l'image : le résultat est nommé $\mli{grayFlat}$ comme montré par la figure~\ref{fig:segmentation-grayflat}.
 
-{\setlength{\abovedisplayskip}{0pt}
-\begin{flalign*}
-       \mli{grayFlat} &= \gamma_{\mli{RBCRadiusMinArea}}(\mli{green}(\mli{imgRGB})) \setminus \mli{WBC} \setminus \mli{schizonts} &
-\end{flalign*}
+\subsubsection{Extraction des zones colorées sombres}
+
+L'histogramme de l'image filtrée est calculé puis séparé en deux classes à l'aide de la méthode de Otsu. Les deux moyennes, $m_1$ et $m_2$, de ces deux classes correspondent au fond respectivement aux érythrocytes, pour autant que les éléments sombres ne soient pas sur-représentés. Sont considérés comme zones colorées sombres les éléments qui ont un niveau d'intensité plus faible que $s$, où $s = m_2 - \Delta$ et $\Delta = f \; (m_1 - m_2)$. Ceci est montré à la figure~\ref{fig:profile-zones-colorees-sombres}. $f$ est un facteur permettant de régler la sensibilité de détection des zones sombres et a été choisi comme valant 1. La figure~\ref{fig:exemple-dark-stain} montre un exemple de segmentation d'un leucocyte.
+
+Il est important, pour que les deux classes résultant de la méthode de Otsu correspondent bien aux érythrocytes et au fond, que les éléments sombres ne soient pas sur-représentés. Il a été observé que cela n'est jamais le cas dans les images $50\times$ ou $100\times$ étudiées. Par contre, si cette méthode est appliquée à une petite portion d'une image contenant beaucoup d'éléments sombres, par exemple des leucocytes, alors les zones sombres ne pourront pas être segmentées correctement.
 
-La figure~\ref{fig:segmentation-histogramme-grayflat} montre l'histogramme de $\mli{grayFlat}$. Un \emph{seuillage d'Otsu} lui est appliqué suivi d'une ouverture par un disque de rayon $\mli{RBCRadiusMin}$ afin d'adoucir les contours et d'enlever tous les éléments plus petits qu'un globule rouge.
 
 \begin{figure}[htbp]
        \centering
-       \includegraphics[width=0.8\linewidth]{img/segmentation_input_grayflat.jpg}
-       \caption{Composante verte dont l'intensité des cellules a été homogénéisée à l'aide d'une ouverture par aire. Les globules blancs et les schizontes ont été peints en blanc ($\mli{grayFlat}$)}
-       \label{fig:segmentation-grayflat}
+       \includegraphics[width=0.45\linewidth]{figures/parasite/profile-zones-colorees-sombres.pdf}
+       \caption{Profil d'intensité du fond ($m_1$) et de l'avant-plan : érythrocytes ($m_2$) et éléments sombres ($m_2 - \Delta$).}
+       \label{fig:profile-zones-colorees-sombres}
 \end{figure}
 
 \begin{figure}[htbp]
        \centering
-       \includegraphics[width=0.8\linewidth]{img/histogram_segmentation_grayFlat.eps}
-       \caption{Histogramme de la composante verte de $\mli{imgRGB}$ après l'application d'une ouverture par aire et de la \og{}suppression\fg{} des globules blancs et des schizontes}
-       \label{fig:segmentation-histogramme-grayflat}
+       \begin{subfigure}[t]{0.3\textwidth}
+               \includegraphics[width=1\linewidth]{figures/parasite/exemple-dark-stain-0.jpg}
+               \caption{Image originale.}
+%              \label{}
+       \end{subfigure}
+       ~
+       \begin{subfigure}[t]{0.3\textwidth}
+               \includegraphics[width=1\linewidth]{figures/parasite/exemple-dark-stain-1.jpg}
+               \caption{Composante rouge filtrée : filtre gaussien + ouverture par aire.}
+%              \label{}
+       \end{subfigure}
+       ~
+       \begin{subfigure}[t]{0.3\textwidth}
+               \includegraphics[width=1\linewidth]{figures/parasite/exemple-dark-stain-2.png}
+               \caption{Segmentation des zones colorées sombres.}
+%              \label{}
+       \end{subfigure}
+       \caption{Exemple de la segmentation d'une zone colorée sombre, ici un leucocyte.}
+       \label{fig:exemple-dark-stain}
 \end{figure}
 
 
-\subsubsection{Calcul des distances et ligne de partage des eaux}
+\subsubsection{Segmentation des cytoplasmes}
+
+Le cytoplasme est le contenu du parasite entourant le noyau, qui se trouve à l'intérieur de sa membrane. La figure~\ref{fig:noyau-cytoplasme} montre ces éléments. La segmentation du cytoplasme va consister à appliquer une fermeture morphologique avec un disque comme élément structurant. Ce dernier aura un diamètre correspondant à l'épaisseur du cytoplasme. Cette épaisseur a été mesurée comme valant un cinquième du rayon moyen des érythrocytes.
+
+L'image est ensuite multipliée par l'inverse d'un facteur de sensibilité et soustraite au résultat de la fermeture. L'image ainsi obtenue est seuillée à zéro. Un exemple est montré à la figure~\ref{fig:exemple-segmentation-cytoplasme}. L'équation correspondante est la suivante :
+
+{\setlength{\abovedisplayskip}{0pt}
+\begin{flalign}
+       \label{eq:segmentation-cytoplasmes}
+       \mli{Cytoplasmes} = \phi_{SE}(f) - (1 / \mli{sensibilité_{cytoplasme}}) \; f \geqslant 0
+\end{flalign}
+
+Où $f$ est l'image, $\phi_{SE}$ la fermeture morphologique par un élément structurant $SE$ et $\mli{sensibilité_{cytoplasme}}$ une valeur comprise entre 0 et 1. Cette valeur a été ajustée à 0.96.
 
-Après le seuillage des globules rouges, certaines régions comprennent deux ou plusieurs globules rouges qu'il faut séparer. Pour ce faire nous appliquons une transformée en distance (\texttt{mmdist}) qui permet de donner une distance à chaque pixel blanc. Cette distance correspond à la plus courte distance euclidienne entre le pixel blanc et un pixel noir. Nous cherchons ensuite les maximaux régionaux de l'image en distance en utilisant un élément structurant octogonal dont le rayon est la moitié de $\mli{RBCRadius}$. Une dilatée d'un disque de rayon $\mli{RBCRadius} / 7$ est alors appliquée aux maximaux pour fusionner d'éventuelles zones très proches. L'algorithme de recherche de la ligne de partage des eaux est appliqué au négatif des distances en utilisant les maximaux dilatés comme marqueurs. Finalement l'intersection entre le négatif de la ligne de partage des eaux et de $\mli{thresholdOpened}$ correspond au résultat. La figure~\ref{fig:segmentation-watershed} montre les étapes de ce processus.
 
 \begin{figure}[htbp]
        \centering
-       \begin{subfigure}[t]{0.3\textwidth}
-               \includegraphics[width=\linewidth]{img/segmentation_watershed_1.jpg}
-               \caption{Image binaire initiale ($\mli{thresholdOpened}$)}
-               \label{fig:segmentation-watershed-1}
-       \end{subfigure} 
+       \begin{subfigure}[t]{0.25\textwidth}
+               \includegraphics[width=1\linewidth]{figures/parasite/exemple-original.jpg}
+               \caption{Image originale.}
+%              \label{}
+       \end{subfigure}
        ~
-       \begin{subfigure}[t]{0.3\textwidth}
-               \includegraphics[width=\linewidth]{img/segmentation_watershed_2.jpg}
-               \caption{Superposition de trois images : les distances, les maximaux et sa dilaté}
-               \label{fig:segmentation-watershed-3}
+       \begin{subfigure}[t]{0.25\textwidth}
+               \includegraphics[width=1\linewidth]{figures/parasite/exemple-red.jpg}
+               \caption{Composante rouge.}
+%              \label{}
        \end{subfigure}
-       ~       
-       \begin{subfigure}[t]{0.3\textwidth}
-               \includegraphics[width=\linewidth]{img/segmentation_watershed_3.jpg}
-               \caption{Image après découpe de l'image initiale avec le résultat de la ligne de partage des eaux}
-               \label{fig:segmentation-watershed-3}
+       ~
+       \begin{subfigure}[t]{0.25\textwidth}
+               \includegraphics[width=1\linewidth]{figures/parasite/exemple-red-filtered.jpg}
+               \caption{Composante rouge filtrée : filtre gaussien puis ouverture par aire.}
+%              \label{}
+       \end{subfigure}
+       ~
+       \begin{subfigure}[t]{0.25\textwidth}
+               \includegraphics[width=1\linewidth]{figures/parasite/exemple-noyaux.png}
+               \caption{Noyaux du parasite.}
+               \label{fig:exemple-segmentation-noyau}
+       \end{subfigure}
+       ~
+       \begin{subfigure}[t]{0.25\textwidth}
+               \includegraphics[width=1\linewidth]{figures/parasite/exemple-cytoplasme.png}
+               \caption{Cytoplasme du parasite.}
+               \label{fig:exemple-segmentation-cytoplasme}
        \end{subfigure}
-       \caption{Wastershed par transformé en distance}
-       \label{fig:segmentation-watershed}
+       \caption{Exemple de segmentation d'un parasite.}
+       \label{fig:exemple-segmentation-parasite}
 \end{figure}
 
+\subsubsection{Segmentation des noyaux}
 
-\subsubsection{Identification et traitement des cellules composées}
+La segmentation des noyaux est réalisée grâce à une fermeture par aire. La surface d'un parasite correspond à environ 1~\% de la surface d'un érythrocyte, celle-ci étant calculée à partir du rayon moyen : $\mli{noyau_{surface}} = 0.01 * \pi * \mli{rayon}_{\mli{moyen}}^2$.
+
+De la même manière que pour la segmentation des cytoplasmes, l'image est multipliée par l'inverse d'un facteur de sensibilité et soustraite au résultat de la fermeture par aire. L'image est ensuite seuillée à zéro. Un exemple est montré à la figure~\ref{fig:exemple-segmentation-noyau}. L'équation correspondante est la suivante :
+
+{\setlength{\abovedisplayskip}{0pt}
+\begin{flalign}
+       \label{eq:segmentation-cytoplasmes}
+       \mli{Noyaux} = \phi_{\lambda}(f) - (1 / \mli{sensibilité_{noyau}}) \; f \geqslant 0
+\end{flalign}
 
-Afin d'identifier les zones composées de plusieurs cellules nous calculons le rapport grand-axe / petit-axe pour chacune des zones : si le rapport d'une zone est plus grand ou égal à 1.3, alors la zone est définie comme étant composée.
+Où $f$ est l'image, $\phi_{\lambda}$ la fermeture par aire de surface $\lambda$ et $\mli{sensibilité_{noyau}}$ une valeur comprise entre 0 et 1. Cette valeur a été ajustée à 0.92.
 
-La figure~\ref{fig:segmentation-composites} montre le processus de séparation d'une zone composée de plusieurs cellules : ce processus est décrit ci-après.
 
-Une ouverture à l'aide d'un disque de rayon $\mli{RBCRadiusMin}$ est appliquée à $\mli{gray}$ en utilisant les zones composées comme masque. Le résultat est montré par la figure \ref{fig:segmentation-composites-3}. Un gradient morphologique suivi d'une binarisation sont réalisés pour obtenir l'image de la figure \ref{fig:segmentation-composites-4}. Les trous d'une aire plus petite ou égale à la moitié de $\mli{RBCRadiusMinArea}$ sont remplis avec une ouverture par aire puis un amincissement est appliqué. Nous remplissons ensuite les trous de l'amincissement et mettons à zéro les pixels marqués par celui-ci. Nous érodons le résultat afin d'éviter que les cellules composées ne touchent les cellules uniques lors de l'union qui aura lieu après. Finalement une ouverture par aire de valeur $\mli{RBCRadiusMinArea} / 5$ est effectuée pour enlever d'éventuels artefacts, comme montré par la figure~\ref{fig:soustraction-thinning}.
+\subsection{Classification des cellules}
+
+À partir des résultats des deux précédentes étapes, c'est-à-dire les ellipses représentant les érythrocytes ainsi que les marqueurs des parasites et des éléments colorés sombres, cette dernière étape va classifier chaque ellipse en trois classes : \emph{érythrocyte sain}, \emph{érythrocyte infecté} et \emph{objet particulier}. Certaines ellipses peuvent être amenées à être supprimées si elle ne correspondent pas à certains critères.
+
+\subsubsection{Attribution des pixels aux ellipses}
+
+Dans un premier temps, les ellipses qui touchent les bords sont supprimées. Les pixels au sein des ellipses sont attribués à une seule cellule. Si plusieurs cellules se chevauchent, alors une ligne de partage est tracée entre les deux points d'intersection, (comme montré par la figure~\ref{fig:exemple-attribution-pixel}).
+
+\begin{sloppypar}
+Les ellipses ayant une aire en dessous d'un seuil calculé comme étant $0.4 \; \pi \; \mli{rayon}_{\mli{moyen}}^2$ sont supprimées. Les pixels appartenant aux ellipses supprimées sont attribués aux ellipses existantes dans le cas de chevauchements.
+\end{sloppypar}
 
-% L'exemple provient de 1401063467-0007-schizonte.png (x: 900, y: 50).
 \begin{figure}[htbp]
        \centering
        \begin{subfigure}[t]{0.3\textwidth}
-               \includegraphics[width=\linewidth]{img/segmentation_composites_1.jpg}
-               \caption{Composante verte ($\mli{gray}$)}
-               \label{fig:segmentation-composites-1}
-       \end{subfigure} 
-       
-       \begin{subfigure}[t]{0.3\textwidth}
-               \includegraphics[width=\linewidth]{img/segmentation_composites_2.jpg}
-               \caption{Image binaire des éléments composés, obtenue à partir de $\mli{grayFlat}$}
-               \label{fig:segmentation-composites-2}
+               \includegraphics[width=1\linewidth]{figures/classification/exemple-attribution-pixel-1.jpg}
+               \caption{Image originale.}
+%              \label{}
        \end{subfigure}
-       ~       
-       \begin{subfigure}[t]{0.3\textwidth}
-               \includegraphics[width=\linewidth]{img/segmentation_composites_3.jpg}
-               \caption{Ouverture de \emph{(a)} en utilisant \emph{(b)} comme masque}
-               \label{fig:segmentation-composites-3}
-       \end{subfigure} 
        ~
        \begin{subfigure}[t]{0.3\textwidth}
-               \includegraphics[width=\linewidth]{img/segmentation_composites_4.jpg}
-               \caption{Gradient morphologique}
-               \label{fig:segmentation-composites-4}
-       \end{subfigure} 
-       
-       \begin{subfigure}[t]{0.3\textwidth}
-               \includegraphics[width=\linewidth]{img/segmentation_composites_5.jpg}
-               \caption{Remplissage des trous}
-               \label{fig:segmentation-composites-5}
-       \end{subfigure}
-       ~       
-       \begin{subfigure}[t]{0.3\textwidth}
-               \includegraphics[width=\linewidth]{img/segmentation_composites_6.jpg}
-               \caption{Amincissement}
-               \label{fig:segmentation-composites-6}
+               \includegraphics[width=1\linewidth]{figures/classification/exemple-attribution-pixel-2.jpg}
+               \caption{Ellipses se chevauchant.}
+%              \label{}
        \end{subfigure}
        ~
        \begin{subfigure}[t]{0.3\textwidth}
-               \includegraphics[width=\linewidth]{img/segmentation_composites_7.jpg}
-               \caption{Fermeture par aire puis mise à zéro des pixels marqués par \emph{(f)}}
-               \label{fig:segmentation-composites-7}
+               \includegraphics[width=1\linewidth]{figures/classification/exemple-attribution-pixel-3.jpg}
+               \caption{Attribution des pixels à chacune des cellules.}
+%              \label{}
        \end{subfigure}
-       \caption{Processus de séparation des cellules composées}
-       \label{fig:segmentation-composites}
+       \caption{Attribution des pixels aux cellules.}
+       \label{fig:exemple-attribution-pixel}
 \end{figure}
 
-\begin{figure}[htbp]
-       \centering
-       \includegraphics[width=0.8\linewidth]{img/splitting_composites.jpg}
-       \caption{Résultat de l'amincissement soustrait de son remplissage. De petits artefacts, ici marqués en jaune, restent présents. S'ils ne sont pas enlevés, ceux-ci seront comptés comme des cellules à part entière lors de la labellisation finale}
-       \label{fig:soustraction-thinning}
-\end{figure}
 
 
-\subsubsection{Résultat final}
+\subsubsection{Attribution d'une classe}
+
+Une cellules dépassant un certain pourcentage d'éléments appartenant aux éléments colorés sombres ne peut pas être un érythrocyte et est donc classé comme \emph{objet particulier}. Cette classe n'entrera pas en compte dans l'établissement du taux d'infection. Le taux maximum d'éléments colorés sombres a été fixé à 10~\%.
 
-Les deux résultats précédents, c'est-à-dire les cellules uniques et les zones composées de plusieurs cellules sont unies. Les zones touchant les bords sont supprimées afin d'obtenir le résultat final. Son gradient imprimé sur l'image initiale est montré par la figure~\ref{fig:segmentation_finale}. Le résultat est nommé $\mli{redCells}$.
+Comme le montre la figure~\ref{fig:exemple-element-particulier}, les objets particuliers sont traités spécialement en ce qui concerne les chevauchements avec les érythrocytes : ceux-ci les recouvrent complètement. L'objectif de cette particularité est d'éviter qu'une partie d'un leucocyte, d'un schizonte ou d'un autre type d'objet particulier ne soit pris pour un parasite par un érythrocyte adjacent.
 
 \begin{figure}[htbp]
        \centering
-       \includegraphics[width=0.8\linewidth]{img/segmentation_finale.jpg}
-       \caption{Le gradient du résultat de la segmentation des globules rouges imprimé sur l'image initiale ($\mli{redCells}$)}
-       \label{fig:segmentation_finale}
+       \begin{subfigure}[t]{0.3\textwidth}
+               \includegraphics[width=1\linewidth]{figures/classification/exemple-element-particulier-1.jpg}
+               \caption{Image originale.}
+%              \label{}
+       \end{subfigure}
+       ~
+       \begin{subfigure}[t]{0.3\textwidth}
+               \includegraphics[width=1\linewidth]{figures/classification/exemple-element-particulier-2.jpg}
+               \caption{Objet particulier (marqué d'une croix noire) recouvrant un érythrocyte.}
+%              \label{}
+       \end{subfigure}
+       \caption{Spécificité des éléments particuliers vis-à-vis des érythrocytes.}
+       \label{fig:exemple-element-particulier}
 \end{figure}
 
-\subsection{Identification des globules rouges infectés}
+Si le taux maximum d'éléments colorés sombres n'est pas atteint, alors la cellule est un érythrocyte et l'on va tester la condition suivante : l'érythrocyte possède au moins un élément appartenant aux noyaux et un certain nombre d'éléments appartenant aux cytoplasmes et se trouvant à une distance maximum donnée d'un élément noyau. Si cette condition est remplie, alors la classe \emph{érythrocyte infecté} lui est attribuée. Dans le cas contraire la classe \emph{érythrocyte sain} est attribuée.
 
-À partir du résultat de la segmentation des globules rouges obtenu à la section~\ref{segmentation-globules-rouges} et des éléments colorés obtenus à la section~\ref{detection-parasites} nous pouvons reconstruire les cellules infectées par une succession de dilatations des éléments colorés puis de masquages par les globules rouges. Ceci est réalisé à l'aide de la fonction \texttt{mminfrec}. Le résultat est nommé $\mli{infectedRedCells}$.
+La distance maximum à laquelle doit se trouver un élément appartenant aux cytoplasmes d'un élément appartenant aux noyaux correspond au diamètre d'un parasite. On choisit ici le diamètre et non le rayon car le noyau ne se trouve pas au centre du parasite mais dans sa périphérie. Le diamètre d'une parasite a été mesuré comme environ le rayon d'un érythrocyte. La surface minimum  des éléments du cytoplasme est fixée à 2~\% de l'aire moyen des érythrocytes. Pour établir ces deux limites, nous utilisons le rayon moyen obtenu lors de la granulométrie.
 
-La figure~\ref{fig:globules_rouges_infectes} montre les globules rouges infectés.
+La parasitémie est finalement calculée en pourcentage comme étant le nombre d'érythrocytes infectés divisé par le nombre d'érythrocytes sains, le tout multiplié par 100 :
+
+{\setlength{\abovedisplayskip}{0pt}
+\begin{flalign}
+       \mli{Parasitémie}_{\%} = 100 \; \frac{\#\{\mli{érythrocytes_{sains}}\}}{\#\{\mli{érythrocytes_{infectés}}\}}
+\end{flalign}
+
+La figure~\ref{fig:exemple-classification} montre les différentes données utilisées lors de la classification.
 
 \begin{figure}[htbp]
        \centering
-       \includegraphics[width=0.8\linewidth]{img/globules_rouges_infectes.jpg}
-       \caption{Le gradient des globules rouges imprimé sur l'image originale ($\mli{infectedRedCells}$)}
-       \label{fig:globules_rouges_infectes}
+       \begin{subfigure}[t]{0.48\textwidth}
+               \includegraphics[width=1\linewidth]{figures/classification/exemple-1-original.jpg}
+               \caption{Image originale.}
+%              \label{}
+       \end{subfigure}
+       ~
+       \begin{subfigure}[t]{0.48\textwidth}
+               \includegraphics[width=1\linewidth]{figures/classification/exemple-2-ellipses.jpg}
+               \caption{Ellipses.}
+%              \label{}
+       \end{subfigure}
+       ~
+       \begin{subfigure}[t]{0.48\textwidth}
+               \includegraphics[width=1\linewidth]{figures/classification/exemple-3-dark-stain.png}
+               \caption{Zones colorées sombres.}
+%              \label{}
+       \end{subfigure}
+       ~
+       \begin{subfigure}[t]{0.48\textwidth}
+               \includegraphics[width=1\linewidth]{figures/classification/exemple-4-cytoplasmes.png}
+               \caption{Cytoplasmes.}
+%              \label{}
+       \end{subfigure}
+       ~
+       \begin{subfigure}[t]{0.48\textwidth}
+               \includegraphics[width=1\linewidth]{figures/classification/exemple-5-noyaux.png}
+               \caption{Noyaux.}
+%              \label{}
+       \end{subfigure}
+       ~
+       \begin{subfigure}[t]{0.48\textwidth}
+               \includegraphics[width=1\linewidth]{figures/classification/exemple-6-classification.jpg}
+               \caption{Résultat final.}
+%              \label{}
+       \end{subfigure}
+       \caption{Exemple de classification. Le résultat final montre les érythrocytes sains marqués d'une croix bleue, les érythrocytes infectés marqués d'une croix rouge et les objets particuliers marqués d'une croix noire. On peut voir, en bas à droite, un leucocyte marqué comme objet particulier.}
+       \label{fig:exemple-classification}
 \end{figure}
 
 
 
-\subsection{Calcul du taux d'infection}
+\section{Implémentation}
 
-Les deux images $\mli{redCells}$ et $\mli{infectedRedCells}$ sont labellisées afin d'obtenir le nombre total de globules rouges ($\mli{nbRedCells}$) et le nombre de globules rouges infectés ($\mli{nbInfectedRedCells}$). Le pourcentage d'infection est le rapport de ces deux valeurs : $100 \cdot \mli{nbInfectedRedCells} / \mli{nbRedCells}$.
+La mise en œuvre de la méthode décrite dans les sections précédentes se fait via la réalisation d'un logiciel doté d'une interface graphique, adaptée aux besoins des utilisateurs et définie conjointement avec Dr. Guy Prod'hom du \emph{CHUV} de Lausanne. L'application doit pouvoir être installée sur des ordinateurs dotés de Windows~7 et de 4~Go de \emph{RAM}.
 
+Pour ce faire la plate-forme \emph{.NET} a été choisie pour ses bonnes performances et sa disponibilité sur les machines cibles. De plus, \emph{Emgu CV} est un \emph{wrapper} \emph{.NET} pour la bibliothèque \emph{Open CV} qui est utilisée pour la manipulation des images.
+
+Le langage de programmation est \emph{F\#}, un langage fonctionnel et orienté objet dérivé d'\emph{Objective Caml} et dérivant lui-même du langage \emph{ML} . Il a été choisi pour sa facilité d'écriture et son haut niveau d'expressivité.
+
+Le code est séparé en deux \emph{assemblies} :
+
+\begin{itemize}
+   \item \emph{ParasitemiaCore} : Bibliothèque contenant la partie calcul.
+   \item \emph{ParasitemiaUI} : Exécutable proposant une utilisation via une interface graphique ou via la ligne de commande.
+\end{itemize}
+
+Pour des raisons de précision numérique, le type \emph{Single} (réel sur 32 bits tel que défini par l'\emph{IEEE 754}) est utilisé pour la représentation de toutes les images intermédiaires à la place d'entier sur 8 ou sur 16 bits. Le processus pouvant prendre une quantité non-négligable de mémoire, le type \emph{Double} (réel sur 64 bits) a été écarté car doublant pratiquement la quantité de mémoire requise.
+
+Le code source ainsi que l'exécutable et un installeur sont disponibles aux adresses suivantes :
+
+\begin{small}
+\begin{itemize}
+       \item {\parasitemiasource}
+       \item {\parasitemiaexe}
+       \item {\parasitemiasetup}
+\end{itemize}
+\end{small}
+
+\subsection{Détails de codage}
+
+\subsubsection{Calculs en parallèle}
+
+Au sein du module \texttt{ParasitemiaCore.Analysis} se trouve la fonction pour lancer l'analyse d'une image : 
+
+\begin{lstlisting}[style=fsharp, numbers = none]
+let doAnalysis (img: Image<Bgr, byte>) (name: string) (config: Config) (reportProgress: (int -> bool) option) : Cell list option = [..]
+\end{lstlisting}
+
+Où \texttt{img} est l'image à analyser, \texttt{name} est un nom donné à l'analyse et utilisé dans le \emph{log}, \texttt{config} la configuration et \texttt{reportProgress} une fonction optionnelle qui permettra d'être renseigné de l'avancement de l'analyse à chaque appel en donnant le pourcentage (entre 0 et 100) et qui renverra \texttt{false} pour interrompre l'analyse. La fonction \texttt{doAnalysis} renvoie \texttt{None} si elle a été interrompue, ou une liste de cellules dans le cas contraire.
+
+Une autre version de cette fonction existe dans le même module et permet de traiter en parallèle plusieurs images. Cette fonction est bloquante tant que le traitement de toutes les images n'est pas terminé ou que celle-ci n'a pas été interrompue via le même mécanisme décrit pour \texttt{doAnalysis} ci-dessus.
+
+\begin{lstlisting}[style=fsharp, numbers = none]
+let doMultipleAnalysis (imgs: (string * Config * Image<Bgr, byte>) list) (reportProgress: (int -> bool) option) : (string * Cell list) list option = [..]
+\end{lstlisting}
+
+Une liste d'images est fournie avec un nom associé à chacune d'entre elle ainsi qu'une configuration. L'ordre des résultats retournés n'étant pas forcément le même que celui de la liste d'images, il est nécessaire d'utiliser le nom donné pour associer les résultats aux images données. Comme pour \texttt{doAnalyse}, la fonction renvoie \texttt{None} si elle a été interrompue.
+
+Le nombre de \emph{threads} exécutés en parallèle dépend du nombre de cœurs de la machine.
 
-\section{Résultats}
-\label{resultats}
 
-\subsection{Qualité des images en entrée}
+\subsubsection{Ouvertures et fermetures par aire sur des réels}
+\label{algo-ouverture-aire}
 
-La première étape, décrite à la section~\ref{detection-parasites} et qui consiste à marquer les éléments colorés, est très sensible à la qualité de l'image initiale. Suivant les réglages du microscope et du logiciel de capture associé, les éléments colorés peuvent ressortir avec une plus grande ou une plus faible saturation par rapport au fond et aux globules rouges. De plus la teinte des éléments colorés peut être similaire à la celle du fond : la figure~\ref{fig:problemes-teinte} montre une image dont la teinte est inexploitable.
+\emph{Open CV} ne fournissant pas cette opération, que ce soit sur des entiers ou sur des réels, elle a été implémentée en \emph{F\#}. L'ouverture est détaillée par l'algorithme~\ref{alg:ouverture-par-aire}. Celui-ci est inspiré de l'article~\cite{vincent1992}. La fermeture est similaire mais en inversant l'opérateur d'ordre et en partant des minima à la place des maxima. Nous parlons ici de hauteur et de niveau : un élément plus haut qu'un autre ou de niveau supérieur est dit comme ayant une intensité plus grande.
+
+Les iles sont des ensembles d'éléments 4-connexes. Une ile possède un niveau, et son nombre d'éléments est appelé sa surface. À chaque ile est associé un rivage qui est l'ensemble des éléments 4-connexes à l'ile qui ne font pas partie des éléments de celle-ci. Il doit être possible d'obtenir l'élément le plus élevé appartenant au rivage. Pour ce faire un tas max est utilisé~\cite[p.~140-155]{algo2010}. Ce dernier permet l'ajout et la suppression de l'élément maximum avec temps d'exécution d'ordre $O(log \; n)$.
+
+Un maximum correspond à un ensemble d'éléments de valeur égale dont les voisins 4-connexes qui ne font pas partie du maximum en question ont une valeur strictement plus petite à celui-ci.
+
+\begin{algorithm}
+       \DontPrintSemicolon
+       \caption{Ouverture par aire sur une image contenant des réels.}        
+       \label{alg:ouverture-par-aire}
+       
+       \SetKwInOut{Input}{Entrée}
+       \SetKwInOut{Output}{Sortie}
+       
+       \Input{une image $img$ et une aire $A$}
+       \Output{l'ouvert de $img$}
+       $\mli{iles} \leftarrow $ maxima($img$) \;
+       Initialisation du rivage de chaque ile \;
+       \For{$i \in iles$}{
+               $r \leftarrow i$.rivage.pop\_max \;
+               \uIf{$r$ appartient à une ile $i'$}{
+                       \uIf{$i$.surface + $i'$.surface $\geqslant$ $A$ ou $i$.niveau $<$ $i'$.niveau}{
+                               Passe à l'ile suivante \;
+                       }
+                       \Else{
+                               $i$.surface $\leftarrow$ $i$.surface $+$ $i'$.surface \;                        
+                               $i$.niveau $\leftarrow$ $i'$.niveau \;
+                               Le rivage de $i'$ est ajouté à celui de $i$ et $i'$ est supprimé \;
+                       }
+               }
+               \uElseIf{$r$.niveau $>$ $i$.niveau}{
+                       Passe à l'ile suivante \;
+               }
+               \Else{
+                       $r$ est intégré à $i$ et ses voisins 4-connexe qui ne font ni partie de $i$ ni partie de $i$.rivage sont intégrés à $i$.rivage
+               }
+       }
+       \Return{une copie de $img$ dont les éléments appartenant aux iles sont mis à leur niveau respectif}
+       \BlankLine
+\end{algorithm}
+
+
+\subsection{Interface en ligne de commande}
+
+L'application peut être lancée via la ligne de commande et permet de traiter soit une seule image soit plusieurs simultanément si un dossier est donné. Les paramètres sont les suivants :
+
+\begin{lstlisting}[style=tt]
+ParasitemiaUI.exe (--folder <folder>|--file <file>) --output <folder> [--debug]
+\end{lstlisting}
+
+Où \texttt{---folder <folder>} est un dossier contenant les images à analyser, \texttt{---file <file>} est une image unique à analyser, \texttt{---output <folder>} est un dossier dans lequel seront écrits les résultats et le \emph{log} et \texttt{---debug} un flag permettant d'activer le mode debug dans lequel les images intermédiaires sont écrites dans le dossier de sortie.
+
+
+\subsection{Interface graphique}
+
+Les différents éléments de l'interface graphique, contrôles et fenêtres, sont décrits dans le langage \emph{XAML} et utilisés au sein de \emph{WPF} (\emph{Windows Presentation Foundation}). Au démarrage de l'application, ces fichiers sont chargés via le \emph{type provider} fourni par la bibliothèque \emph{FsXaml.Wpf}, puis les événements sont attachés aux contrôles. Il n'a pas été jugé utile d'utiliser un motif de conception spécifique tel que \emph{MVVM} (\emph{Model-view-viewmodel}) pour ce type d'interface.
+
+La figure~\ref{fig:screenshot-GUI} montre la fenêtre principale à partir de laquelle les principales opérations peuvent être réalisées, comme par exemple charger ou sauvegarder un document, lancer une analyse d'une ou plusieurs images, naviguer au sein de l'image et changer l'état (sain/infecté) des érythrocytes. La parasitémie est affichée dans la partie supérieure, et un message d'avertissement s'affiche si le nombre de cellules analysées est trop faible.
 
 \begin{figure}[htbp]
        \centering
-       \begin{subfigure}[t]{0.4\textwidth}
-               \includegraphics[width=\linewidth]{img/problemes_teinte_input.jpg}
-               \caption{Image en entrée}
-               \label{fig:problemes-teinte-input}
-       \end{subfigure} 
+       \begin{subfigure}[t]{0.9\textwidth}
+               \includegraphics[width=1\linewidth]{figures/implementation/screenshot-main.jpg}
+               \caption{La fenêtre principale. La parasitémie globale est affichée tout en haut. Les images sources sont affichées à gauche. L'image courante est montrée au centre ainsi que ses informations associées en dessous.}
+%              \label{}
+       \end{subfigure}
        ~
-       \begin{subfigure}[t]{0.4\textwidth}
-               \includegraphics[width=\linewidth]{img/problemes_teinte_composante.jpg}
-               \caption{Composante teinte}
-               \label{fig:problemes-teinte-composante}
+       \begin{subfigure}[t]{0.55\textwidth}
+               \includegraphics[width=1\linewidth]{figures/implementation/screenshot-start-analysis.jpg}
+               \caption{La fenêtre permettant de lancer une analyse. La résolution (en pixel par pouce) de chaque image doit être entrée préalablement. Des valeurs prédéfinies ainsi qu'un calculateur aident l'utilisateur à trouver la bonne valeur. Ces valeurs sont stockées dans un fichier \emph{JSON} permettant à l'utilisateur de les modifier.}
+%              \label{}
        \end{subfigure}
-       
-       \begin{subfigure}[t]{0.6\textwidth}
-               \includegraphics[width=\linewidth]{img/histogram_probleme_teinte.eps}
-               \caption{Histogramme de la composante \emph{teinte} de l'image complète. Les éléments colorés se situent entre l'intensité 190 et 200 (mis en évidence en rouge) et se confondent avec le fond}
-               \label{fig:problemes-teinte-histogramme}
+       ~
+       \begin{subfigure}[t]{0.35\textwidth}
+               \includegraphics[width=1\linewidth]{figures/implementation/screenshot-ppi-calculator.jpg}
+               \caption{Calcul la résolution de l'image en fonction de la taille du capteur, de sa résolution et du niveau de zoom. De la même manière que les valeurs de résolutions prédéfinies, la liste des différentes tailles de capteurs est stockée dans un fichier \emph{JSON}.}
+%              \label{}
        \end{subfigure}
-       \caption{}
-       \label{fig:problemes-teinte}
+       \caption{L'interface graphique de l'application \emph{Parasitemia}.}
+       \label{fig:screenshot-GUI}
 \end{figure}
 
+\subsubsection{Persistance des documents}
 
-\subsection{Méthode}
+Le mode interactif avec interface graphique permet de gérer des documents sous la forme de fichier contenant les images sources ainsi que les résultats de leur analyse. L'extension utilisée est \texttt{PIAZ} pour \emph{ParasitemIA Zipped file}.
 
-Les résultats se basent sur l'analyse d'un ensemble d'images provenant d'un même patient : le taux d'infection devrait donc être homogène entre les différentes images. Pour mesurer la qualité de nos détections, un dénombrement réalisé à la main est effectué, puis celui-ci est comparé à nos détections automatisées. La différence entre le résultat issu de la détection et la réalité est alors calculée et nommée \emph{erreur}.
+Chaque image source est enregistrée au format sans perte \emph{TIFF} en utilisant le modèle de couleur \emph{RGB} et 8 bits par canal. Les noms des images correspondent à leur numéro affiché dans la fenêtre principale, par exemple \texttt{1.tiff}. À chaque image est associé un fichier texte au format \emph{JSON} reprenant le nom du fichier de l'image avec le suffixe \texttt{.json} ajouté, par exemple \texttt{1.tiff.json}. Ce fichier \emph{JSON} contient le nom de l'image, les paramètres et la liste des érythrocytes détectés issus de la dernière analyse. Pour chaque érythrocyte les informations suivantes sont mémorisées :
 
-Finalement, nous calculons les moyennes et les écarts types des erreurs, et des deux taux, celui de référence et celui détecté.
+\begin{itemize}
+       \item Un flag pour savoir si la cellule est infectée ;
+       \item Un flag informant si le flag précédent a été défini par l'utilisateur  ;
+       \item Un numéro unique  ;
+       \item Le centre de la cellule et ses dimensions (largeur, hauteur)  ;
+       \item La surface du ou des noyaux.
+\end{itemize}
 
-\subsection{Échantillon n°1412151257}
+\subsection{Dépendances}
 
-Les tableaux \ref{tab:resultats60} et \ref{tab:resultats100} montrent les résultats du processus appliqué à des images réduites de 40~\%, respectivement à des images originales.
+Hormis \emph{Emgu CV}, toutes les dépendances sont fournies par le système de gestion de \emph{package} \emph{NuGet} intégré à l'environnement de développement \emph{Visual Studio}. Les dépendances sont listées ci-dessous :
+
+\begin{itemize}
+   \item \emph{FSharp.Collections.ParallelSeq} : Permet d'appliquer en parallèle des fonctions sur des séquences.
+   \item \emph{MathNet.Numerics} : Différentes fonctions mathématiques, notamment concernant l'algèbre linéaire.
+   \item \emph{FsXaml.Wpf} : Quelques outils facilitant l'utilisation de \emph{WPF} et \emph{XAML} avec \emph{F\#}.
+   \item \emph{Netwonsoft.Json} : Permet la sérialisation et la désérialisation de données au format \emph{JSON}.
+\end{itemize}
+
+
+\section{Résultats}
+
+Treize images~\footnote{{\imagesmesures}} on été sélectionnées, six d'entre elles ayant été prises avec un zoom 50 fois et sept avec un zoom 100. Un panel représentatif des différentes particularités a été choisi, notamment avec une illumination et une teinte pouvant varier entre les images, des débris se superposant aux cellules, des amas d'érythrocytes, des leucocytes, des trophozoïtes, des schizontes et des gamètes.
+
+Trois méthodes sont appliquées sur ces images, à savoir \emph{Ma et al.}\cite{ma2010} dont l'implémentation est fournie sous la forme d'une script \emph{Python}, \emph{C. Di Ruberto et al.}\cite{di-ruberto2001} qui a été implémentée sous \emph{MATLAB} par\cite{burri2015} et la méthode décrite ici.
+
+Concernant Ma, les paramètres suivants ont été modifiés afin d'adapter la méthode à la résolution de nos images (la décimation réalisée au début du processus a été désactivée) :
+
+\begin{itemize}
+       \item \texttt{Hough\_min\_radius} et \texttt{Hough\_max\_radius} sont définis à 20/45 pour les images 50 fois et à 40/90 pour les images 100 fois.
+       \item \texttt{Min\_cell\_radius} et \texttt{Max\_cell\_radius} sont définis à 25/40 pour les images 50 fois et à 50/80 pour les images 100 fois. Ces valeurs correspondent aux valeurs limites citées à la section~\ref{identification-erythrocytes}.
+       \item Les écarts types des gaussiennes, \texttt{Enhance\_a} et \texttt{Enhance\_c}, sont ajustés proportionnellement à la résolution des images. Les valeurs 2/40 sont utilisées pour les images 50 fois et 4/80 pour les images 100 fois.
+       \item \texttt{Cell\_suppression\_radius} est diminué de 1.25 à 0.8 afin d'éviter que trop de cellules proches s'excluent mutuellement.
+\end{itemize}
+
+Les résultats sont montrés par les trois tableaux (\ref{tab:resultats-erythrocytes}, \ref{tab:resultats-parasites} et \ref{tab:resultats-parasitemie}) ci-après. Le premier concerne la segmentation des érythrocytes, le deuxième la recherche des parasites et le troisième la parasitémie. Les résultats de ce dernier sont à considérer avec précaution car ils ne reflètent pas forcément l'exactitude de la méthode dans la mesure où des faux positifs peuvent contrebalancer des faux négatifs. La colonne \emph{Total réf.} correspond à un nombre de référence établi par un comptage manuel. Les traitements n'ayant pas abouti sont marqués avec un tiret.
 
 \begin{table}[htbp]
 \setlength{\tabcolsep}{3pt}
 \centering
-\begin{tabular}{ r || r | r | r || r | r | r || r || r }
-        & \multicolumn{3}{ c| }{Mesuré} & \multicolumn{3}{ c| }{Détecté} & & \\ \cline{2-8}
-       N° & Total & Infectés & Taux & Total & Infectés & Taux & Erreur & t~[s] \\ \cline{1-9}
-       0013 & 150 & 22 & 14.7~\% & 153 & 23 & 15.0~\% &  2.5~\% & 68 \\
-       0014 & 132 & 18 & 13.6~\% & 131 & 18 & 13.7~\% &  0.8~\% & 65 \\
-       0036 & 133 & 20 & 15.0~\% & 135 & 21 & 15.6~\% &  3.4~\% & 70 \\
-       0038 & 116 & 19 & 16.4~\% & 117 & 19 & 16.2~\% & -0.9~\% & 68 \\
-       0039 & 136 & 26 & 19.1~\% & 137 & 27 & 19.7~\% &  3.1~\% & 79 \\
-       0040 & 128 & 19 & 14.8~\% & 128 & 18 & 14.1~\% & -5.3~\% & 78 \\
-       0041 & 120 & 26 & 21.7~\% & 121 & 27 & 22.3~\% &  3.0~\% & 89 \\
-       0042 & 135 & 26 & 19.3~\% & 144 & 30 & 20.8~\% &  8.2~\% & 82 \\
-       0043 & 128 & 20 & 15.6~\% & 132 & 27 & 20.5~\% & 30.9~\% & 80 \\
-       0044 & 133 & 25 & 18.8~\% & 135 & 25 & 18.5~\% & -1.5~\% & 86 \\
-       0045 & 136 & 22 & 16.2~\% & 136 & 28 & 20.6~\% & 27.3~\% & 84 \\
-       0046 & 127 & 29 & 22.8~\% & 128 & 27 & 21.1~\% & -7.6~\% & 85
+\begin{tabular}{ r || r || r | r || r | r || r | r | }
+        & & \multicolumn{2}{ c|| }{Ce papier} & \multicolumn{2}{ c|| }{\emph{Ma}} & \multicolumn{2}{ c| }{\emph{Di Ruberto}} \\ \cline{2-8}
+       N° & Total réf. & \# manqué & \# en trop & \# manqué & \# en trop & \# manqué & \# en trop \\ \cline{1-8}
+       1 & 184 &       1 & 0 &                 30 & 1 &                3 & 7 \\
+       2 & 186 &       3 & 0 &                 18 & 1 &                15 & 5 \\
+       3 & 188 &       6 & 0 &                 17 & 2 &                5 & 19 \\
+       4 & 154 &       0 & 0 &                 3 & 0 &                 12 & 1 \\
+       5 & 150 &       2 & 0 &                 7 & 3 &                 - & - \\
+       6 & 139 &       0 & 0 &                 5 & 0 &                 3 & 1 \\
+       7 & 135 &       1 & 0 &                 3 & 4 &                 1 & 7 \\
+       8 & 612 &       1 & 0 &                 11 & 1 &                33 & 49 \\
+       9 & 741 &       1 & 0 &                 43 & 2 &                128 & 79 \\
+       10 & 557 &      0 & 4 &                 18 & 0 &                - & - \\
+       11 & 686 &      0 & 1 &                 45 & 1 &                - & - \\
+       12 & 510 &      0 & 0 &                 15 & 0 &                - & - \\
+       13 & 424 &      0 & 0 &                 9 & 1 &                 - & -
 \end{tabular}
-\caption{Résultats sur les images réduites de 40~\%}
-\label{tab:resultats60}
+\caption{Résultats des mesures concernant la segmentation des érythrocytes.}
+\label{tab:resultats-erythrocytes}
 \end{table}
 
 
 \begin{table}[htbp]
 \setlength{\tabcolsep}{3pt}
 \centering
-\begin{tabular}{ r || r | r | r || r | r | r || r || r }
-        & \multicolumn{3}{ c| }{Mesuré} & \multicolumn{3}{ c| }{Détecté} & & \\ \cline{2-8}
-       N° & Total & Infectés & Taux & Total & Infectés & Taux & Erreur & t~[s] \\ \cline{1-9}
-       0013 & 150 & 22 & 14.7~\% & 153 & 22 & 14.4~\% & -2.0~\% & 429 \\
-       0014 & 132 & 18 & 13.6~\% & 136 & 19 & 14.0~\% &  2.5~\% & 462 \\
-       0036 & 133 & 20 & 15.0~\% & 135 & 21 & 15.6~\% &  3.4~\% & 431 \\
-       0038 & 116 & 19 & 16.4~\% & 118 & 19 & 16.1~\% & -1.7~\% & 447 \\
-       0039 & 136 & 26 & 19.1~\% & 136 & 27 & 19.9~\% &  3.8~\% & 463 \\
-       0040 & 128 & 19 & 14.8~\% & 131 & 18 & 13.7~\% & -7.4~\% & 458 \\
-       0041 & 120 & 26 & 21.7~\% & 122 & 27 & 22.1~\% &  2.1~\% & 526 \\
-       0042 & 135 & 26 & 19.3~\% & 142 & 27 & 19.0~\% & -1.3~\% & 483 \\
-       0043 & 128 & 20 & 15.6~\% & 128 & 25 & 19.5~\% & 25.0~\% & 515 \\
-       0044 & 133 & 25 & 18.8~\% & 137 & 25 & 18.2~\% & -2.9~\% & 505 \\
-       0045 & 136 & 22 & 16.2~\% & 144 & 30 & 20.8~\% & 28.8~\% & 538 \\
-       0046 & 127 & 29 & 22.8~\% & 126 & 27 & 21.4~\% & -6.2~\% & 557
+\begin{tabular}{ r || r || r | r || r | r || r | r | }
+        & & \multicolumn{2}{ c|| }{Ce papier} & \multicolumn{2}{ c|| }{\emph{Ma}} & \multicolumn{2}{ c| }{\emph{Di Ruberto}} \\ \cline{2-8}
+       N° & Total réf. & \# manqué & \# en trop & \# manqué & \# en trop & \# manqué & \# en trop \\ \cline{1-8}
+       1 & 0 &                 0 & 0 &                 0 & 1 &                 0 & 1 \\
+       2 & 0 &                 0 & 0 &                 0 & 0 &                 0 & 1 \\
+       3 & 0 &                 0 & 0 &                 0 & 3 &                 0 & 5 \\
+       4 & 0 &                 0 & 0 &                 0 & 0 &                 0 & 30 \\
+       5 & 28 &                1 & 2 &                 9 & 3 &                 - & - \\
+       6 & 28 &                6 & 0 &                 9 & 0 &                 4 & 2 \\
+       7 & 20 &                0 & 1 &                 6 & 4 &                 0 & 10 \\
+       8 & 100 &       2 & 0 &                 2 & 3 &                 86 & 9 \\
+       9 & 11 &                4 & 0 &                 4 & 1 &                 9 & 5 \\
+       10 & 14 &       4 & 0 &                 4 & 1 &                 - & - \\
+       11 & 1 &                0 & 0 &                 1 & 2 &                 - & - \\
+       12 & 2 &                0 & 1 &                 0 & 11 &                - & - \\
+       13 & 1 &                1 & 0 &                 0 & 3 &                 - & -
 \end{tabular}
-\caption{Résultats sur les images originales (non-réduites)}
-\label{tab:resultats100}
+\caption{Résultats des mesures concernant la détection des parasites.}
+\label{tab:resultats-parasites}
 \end{table}
 
-Le taux moyen d'infection réel est de 17.3~\% et le taux détecté avec des images réduites de 40~\% est de 18.2~\%. Ces données sont présentées dans le tableau~\ref{tab:resultats}.
 
 \begin{table}[htbp]
 \setlength{\tabcolsep}{3pt}
 \centering
-\begin{tabular}{ l | r | r | r }
-       & Réel & 40~\% & 100~\% \\ \cline{2-4}
-       Taux de cellules infectées moyen détecté & 17.3~\% & 18.2~\% & 17.9~\% \\
-%      Écart type sur le taux de cellules infectées moyen détecté & 2.9~\% & 3.1~\% & 3.0~\% \\ 
-       \cline{1-4}
-       Erreur moyenne & & 5.3~\% & 3.7~\% \\
-%      Écart type sur l'erreur & & 11.9~\% & 11.4~\% \\ 
-       \cline{1-4}
-       Temps moyen & & 78~s & 485~s
+\begin{tabular}{ r || r | r | r | r | }
+       N° & Référence & Ce papier & \emph{Ma} & \emph{Di Ruberto} \\ \cline{1-5}
+       1 & 0.0~\% &            0.0~\% &                0.6~\% &                0.5~\% \\
+       2 & 0.0~\% &            0.0~\% &                0.0~\% &                0.6~\% \\
+       3 & 0.0~\% &            0.0~\% &                1.7~\% &                2.5~\% \\
+       4 & 0.0~\% &            0.0~\% &                0.0~\% &                21.0~\% \\
+       5 & 18.7~\% &   19.6~\% &               15.1~\% &       - \\
+       6 & 20.1~\% &   15.8~\% &               14.2~\% &       19.0~\% \\
+       7 & 14.8~\% &   15.7~\% &               13.2~\% &       21.3~\% \\
+       8 & 16.3~\% &   16.0~\% &               16.8~\% &       3.7~\% \\
+       9 & 1.5~\% &            0.9~\% &                1.1~\% &                1.0~\% \\
+       10 & 2.5~\% &   1.8~\% &                2.0~\% &                - \\
+       11 & 0.1~\% &   0.1~\% &                0.3~\% &                - \\
+       12 & 0.4~\% &   0.6~\% &                2.6~\% &                - \\
+       13 & 0.2~\% &   0.0~\% &                1.0~\% &                -
 \end{tabular}
-\caption{Résultats résumant les tables \ref{tab:resultats60} et \ref{tab:resultats100}. La colonne 40~\% correspond aux images réduites. La colonne 100~\% correspond aux images originales}
-\label{tab:resultats}
+\caption{Résultats des mesures concernant la détection des parasites.}
+\label{tab:resultats-parasitemie}
 \end{table}
 
+\begin{sloppypar}
+Dans le cas de \emph{Ma}, les amas de cellules ainsi que les cellules allongées posent problème, comme montré par les figures~\ref{fig:comparaison-1} et~\ref{fig:comparaison-2}. Les amas de deux cellules sont souvent considérés comme une seule cellule malgré le fait que le paramètre \texttt{Cell\_suppression\_radius} ait été réduit afin d'éviter ce problème. De plus, cela fait qu'une partie des cellules de l'amas n'est pas pris en compte lors de la détection des parasites. À contrario, les cellules allongées peuvent provoquer une sur-segmentation : cela crée souvent deux petits érythrocytes qui seront écartés par la suite car ils sont trop petits. Ils sont montrés avec une croix noire à la figure~\ref{fig:comparaison-2-ma}.
+\end{sloppypar}
 
-\section{Conclusion}
 
-Par la mise en pratique de la méthode décrite dans \emph{Analysis of infected blood cell images using morphological operators}\cite{DiRuberto-Analysis-infected-blood-morphological} nous avons pu démontrer sa pertinence et son efficacité. Quelques modifications ont dû être apportées telles que les critères de détection des schizontes ou encore l'utilisation d'une transformée en distance pour la définition des marqueurs de l'algorithme de la ligne de partage des eaux lors de la segmentation des globules rouges.
+\begin{figure}[htbp]
+       \centering
+       \begin{subfigure}[t]{0.23\textwidth}
+               \includegraphics[width=1\linewidth]{figures/comparaison-1-original.jpg}
+               \caption{Extrait de l'image n°2.}
+               \label{fig:comparaison-1-original}
+       \end{subfigure}
+       ~
+       \begin{subfigure}[t]{0.23\textwidth}
+               \includegraphics[width=1\linewidth]{figures/comparaison-1-master.jpg}
+               \caption{Méthode présentée dans ce papier, résultat attendu.}
+               \label{fig:comparaison-1-master}
+       \end{subfigure}
+       ~
+       \begin{subfigure}[t]{0.23\textwidth}
+               \includegraphics[width=1\linewidth]{figures/comparaison-1-ma.jpg}
+               \caption{\emph{Ma}, un seul érythrocyte est trouvé.}
+               \label{fig:comparaison-1-ma}
+       \end{subfigure}
+       ~
+       \begin{subfigure}[t]{0.23\textwidth}
+               \includegraphics[width=1\linewidth]{figures/comparaison-1-diruberto.jpg}
+               \caption{\emph{Di Ruberto}, sur-segmentation.}
+               \label{fig:comparaison-1-diruberto}
+       \end{subfigure}
+       \caption{Segmentation d'un amas de deux cellules.}
+       \label{fig:comparaison-1}
+\end{figure}
 
-De plus, une des difficultés majeures a été d'obtenir une image initiale ayant des composantes \emph{teinte} et \emph{saturation} satisfaisantes. Cette première étape de détection des éléments colorés reste très dépendante de la qualité et des caractéristiques de l'image d'entrée.
+\begin{figure}[htbp]
+       \centering
+       \begin{subfigure}[t]{0.18\textwidth}
+               \includegraphics[width=1\linewidth]{figures/comparaison-2-original.jpg}
+               \caption{Extrait de l'image n°2.}
+               \label{fig:comparaison-2-original}
+       \end{subfigure}
+       ~
+       \begin{subfigure}[t]{0.18\textwidth}
+               \includegraphics[width=1\linewidth]{figures/comparaison-2-master.jpg}
+               \caption{Méthode présentée dans ce papier, résultat attendu.}
+               \label{fig:comparaison-2-master}
+       \end{subfigure}
+       ~
+       \begin{subfigure}[t]{0.18\textwidth}
+               \includegraphics[width=1\linewidth]{figures/comparaison-2-ma.jpg}
+               \caption{\emph{Ma}, la transformée de Hough dans le domaine des cercles crée deux foyers pour les ellipses.}
+               \label{fig:comparaison-2-ma}
+       \end{subfigure}
+       ~
+       \begin{subfigure}[t]{0.18\textwidth}
+               \includegraphics[width=1\linewidth]{figures/comparaison-2-diruberto.jpg}
+               \caption{\emph{Di Ruberto}.}
+               \label{fig:comparaison-2-diruberto}
+       \end{subfigure}
+       \caption{Segmentation d'une cellule de forme elliptique.}
+       \label{fig:comparaison-2}
+\end{figure}
 
-Néanmoins, une fois de bons réglages effectués sur le système de capture d'image du microscope, les résultats du processus, en terme de taux d'infection, correspondent à ce qui est attendu. Sur le cas analysé (n°1412151257), à partir de douze captures, nous obtenons une différence de taux de 5.3~\% pour les images réduites et de 3.7~\% pour les images non-réduites.
+La méthode de \emph{Ma} a également tendance à compter certains débris comme étant des parasites. Cela se voit sur le tableau~\ref{tab:resultats-parasites} pour l'image n°12 et est illustré par la figure~\ref{fig:comparaison-3}. 
+
+\begin{figure}[htbp]
+       \centering
+       \begin{subfigure}[t]{0.2\textwidth}
+               \includegraphics[width=1\linewidth]{figures/comparaison-3-debris-original.jpg}
+               \caption{Extrait de l'image n°12, un débris qui ne doit pas être confondu avec un parasite.}
+               \label{fig:comparaison-1-original}
+       \end{subfigure}
+       ~
+       \begin{subfigure}[t]{0.2\textwidth}
+               \includegraphics[width=1\linewidth]{figures/comparaison-3-debris-master.jpg}
+               \caption{Méthode présentée dans ce papier, résultat attendu.}
+               \label{fig:comparaison-1-master}
+       \end{subfigure}
+       ~
+       \begin{subfigure}[t]{0.2\textwidth}
+               \includegraphics[width=1\linewidth]{figures/comparaison-3-debris-ma.jpg}
+               \caption{\emph{Ma} (faux-positif).}
+               \label{fig:comparaison-1-ma}
+       \end{subfigure}
+       \caption{Faux-positif lors de la détection des parasites avec la méthode de \emph{Ma}.}
+       \label{fig:comparaison-3}
+\end{figure}
+
+La méthode de \emph{Di Ruberto} est, quant à elle, très sensible aux variations de la composante teinte de l'image de base. Par exemple, le traitement de l'image n°4 donne un très grand nombre de faux parasites détectés. L'image n°5 n'a pas abouti car la teinte des parasites est très proche de celle des érythrocytes. Dans certains cas il est également nécessaire d'inverser la composante saturation car la méthode nécessite que les parasites soient plus saturés que les cellules  et que ces dernières soient plus saturée que le fond.
+
+Ces deux méthodes, et dans une moindre mesure la méthode présentée ici, sont sensibles à l'illumination de l'image. Les images n° 8, 9 et 10 sont particulièrement touchées par ce phénomène. Cela se voit sur le tableau~\ref{tab:resultats-parasites} où le nombre d'érythrocytes manqués est élevé à la fois pour \emph{Ma} et \emph{Di Ruberto}. Ce problème est illustré par la figure~\ref{fig:comparaison-4}.
+
+\begin{figure}[htbp]
+       \centering
+       \begin{subfigure}[t]{0.4\textwidth}
+               \includegraphics[width=1\linewidth]{figures/comparaison-4-illumination-original.jpg}
+               \caption{Image originale, coin supérieur droit de l'image n°8.}
+               \label{fig:comparaison-4-original}
+       \end{subfigure}
+       ~
+       \begin{subfigure}[t]{0.4\textwidth}
+               \includegraphics[width=1\linewidth]{figures/comparaison-4-illumination-master.png}
+               \caption{Méthode présentée dans ce papier, l'illumination affecte la détection des objets colorés sombres.}
+               \label{fig:comparaison-4-master}
+       \end{subfigure}
+       ~
+       \begin{subfigure}[t]{0.4\textwidth}
+               \includegraphics[width=1\linewidth]{figures/comparaison-4-illumination-ma.png}
+               \caption{\emph{Ma}, l'avant-plan et le fond sont séparés à l'aide de la méthode k-médianes où chaque élément de l'image est un vecteur (rouge, vert, bleu) et la distance entre deux éléments est calculée de manière euclidienne.}
+               \label{fig:comparaison-4-ma}
+       \end{subfigure}
+       ~
+       \begin{subfigure}[t]{0.4\textwidth}
+               \includegraphics[width=1\linewidth]{figures/comparaison-4-illumination-di-ruberto.png}
+               \caption{\emph{Di Ruberto}, application de la méthode de Otsu à la composante verte au début de la segmentation des érythrocytes.}
+               \label{fig:comparaison-4-di-ruberto}
+       \end{subfigure}
+       \caption{Problème de l'illumination.}
+       \label{fig:comparaison-4}
+\end{figure}
+
+
+\subsection{Discussion}
+\label{discussions}
+
+L'apriori de forme, comme la transformée de Hough dans le domaine des cercles utilisé par \emph{Ma et al.}\cite{ma2010}, donne de meilleurs résultats qu'une approche purement morphologique telle que celle décrite par \emph{C. Di Ruberto et al.}\cite{di-ruberto2001}. Les érythrocytes ayant tendance à s'aplatir ou à se tourner, les résultats sont encore meilleurs avec un apriori de forme elliptique tel que montré dans ce papier.
+
+La méthode de \emph{Ma} utilise beaucoup de paramètres interdépendants liés à la résolution spatiale et à la taille de l'image. Celle-ci est ajustée automatiquement par décimation afin d'avoir une taille connue à l'avance. Cela rend la méthode difficile à utiliser avec des images ayant des résolutions spatiales différentes de celle prévue. 
+
+\emph{Ma} et \emph{Di Ruberto} utilisent un seuillage global qui fonctionne, par exemple avec la méthode de Otsu, et qui pose problème lorsqu'une illumination est présente. Ce problème est contourné par \emph{Purwar et al.}\cite{purwar2011} qui applique la méthode décrite par \emph{Tony Chan et Luminita Vese}\cite{Chan-vese2001} pour la segmentation des érythrocytes.
+
+\emph{Di Ruberto}, pour l'identification des parasites, travaille sur les canaux \emph{teinte} et \emph{saturation} obtenus après une transformation non-linéaire de l'espace \emph{rouge-vert-bleu}. Cela rend la détection des parasites très sensible à la qualité de l'image en entrée. Une correspondance d'histogramme (\emph{histogram matching}), comme présentée par \emph{Brett Shoelson}\cite{shoelson2015}, a été testée afin de palier à ce problème. Cela n'a pas donné de résultats probants.
+
+La méthode présentée ici utilise l'information de la résolution spatiale de l'image ainsi que la granulométrie pour accepter des images de dimensions variées. L'unique seuillage global réalisé concerne la détection des éléments sombres. Ceci pourrait être amélioré afin de s'affranchir des problèmes d'illumination. Une autre approche consisterait à utiliser un filtre homomorphique\cite[p.~289-293]{gonzalez-woods2008} en début de processus.
+
+
+\section{Conclusion}
+
+La méthode développée ici a montré de bonnes aptitudes quant à l'établissement de parasitémies de cas de malaria. L'utilisation d'un modèle de recherche de cellules de forme elliptique a permis d'obtenir de meilleurs résultats qu'une approche classique, comme la transformée de Hough. En décomposant le parasite en deux éléments, le noyau et le cytoplasme, le taux de faux-positifs a pu être considérablement réduit pour certaines images. Le logiciel appliquant cette méthode est actuellement en test dans le laboratoire de parasitologie du \emph{CHUV} à Lausanne.
 
 
 \bibliographystyle{plain}
 \bibliography{main}
 
-
 \end{document}