\documentclass[a4paper,10pt,twoside,titlepage]{article}

\usepackage[top=2.5cm, bottom=3cm, inner=5cm, outer=3cm]{geometry}

\usepackage[francais]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}

\usepackage{amssymb, amsmath, amsthm}
\usepackage[title,titletoc,toc]{appendix}

\usepackage{framed}
\usepackage{graphicx}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{listings}
\usepackage{url}
\usepackage{upquote} 
\usepackage{color}
\usepackage[usenames,dvipsnames]{xcolor}
\usepackage{fancyhdr}
\usepackage{courier}
\usepackage{pifont}
\usepackage{csquotes}
\usepackage{changepage}

\strictpagecheck

\lstset{basicstyle=\footnotesize\ttfamily,breaklines=true}
\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},    
}

\newcommand{\mli}[1]{\mathit{#1}} % Multi-letter identifier.

\renewcommand{\appendixtocname}{Annexes} 

\pagestyle{fancy}
\fancyfoot[CE,CO]{}
\fancyfoot[LE,RO]{\thepage}

\begin{document}

\nocite{*} % Pour inclure toute la bibliographie (et pas seulement celle citée).

\begin{titlepage}
\begin{center}
\huge
\vspace*{1cm}
\textbf{Parasitémie automatisée de la malaria à partir d'images microscopiques}
\vspace{1cm}

\Large
Master of Science HES-SO in Engineering \\
\large
Technologie de l'information et de la communication


\vspace{1cm}

\includegraphics[width=3cm]{logos/hes-so_logo.jpg}

\vspace{0.5cm}

\includegraphics[width=4cm]{logos/mse_logo.jpg}


\vspace{8cm}

\large
Février 2016 - Révision n°1

\vspace{2cm}
\normalsize
Auteur : Grégory \textsc{Burri}\\
Prof. responsables : Michel \textsc{Kocher}, \textsc{Olivier Hüsser}

\vspace{2cm}
Master of Science HES-SO in  Engineering\\
Av. de Provence 6\\
CH-1007 Lausanne\\

\end{center}
\end{titlepage}

%%%%%%%%%%%%%%%%%%
% Page vide (derrière le titre).
\newpage
\thispagestyle{empty}
\null

%%%%%%%%%%%%%%%%%%
% Page contenant les signatures.
\newpage
\thispagestyle{empty}
\noindent
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\\
Dr. Philippe Thévenaz, expert principal

\vspace{1cm}

\noindent
Lausanne, le 

\vspace{1cm}

\noindent
\setlength{\tabcolsep}{30pt}
\begin{tabular}{ l l }
  Prof. Michel Kocher. & Prof.\\
  Conseiller & Responsable de la filière
\end{tabular}

\newpage

%%%%%%%%%%%%%%%%%%
% Page contenant le résumé et les mots-clefs.

\thispagestyle{empty}
\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 d'un patient infecté par la malaria. Cette méthode se base sur une ou plusieurs images microscopiques d'un frottis sanguin.

\vspace{5cm}


\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{}
\newpage


\thispagestyle{empty}
\tableofcontents
\newpage

%%%%%%%%%%%%%%%%%%
\checkoddpage
\ifoddpage
\else
	\thispagestyle{empty}
	\cleardoublepage % Devrait être \newpage, mais ça ne marche pas...
\fi

\section{Introduction}

% 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 érythrocytes et de les classer en deux catégories de cellules à savoir les saines et les infectées. Cette méthode 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 Dr. Guy Prod'hom de l'institut de microbiologie du \emph{CHUV} à Lausanne. % Ajouter du blabla

% Problème du comptage manuel

% \subsection{Images sources}

% Mentionner certains problèmes comme les débris ou les plaquettes

Les images à disposition correspondent à des photographies de sang infecté agrandies 50 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}).

\begin{figure}[htbp]
	\centering
	\begin{subfigure}[t]{0.3\textwidth}
		\includegraphics[width=\linewidth]{img/medical_globules_rouges.jpg}
		\caption{Globules rouges (\emph{érythrocyte})}
		\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})}
		\label{fig:medical-globules-blancs}
	\end{subfigure}
	~	
	\begin{subfigure}[t]{0.3\textwidth}
		\includegraphics[width=\linewidth]{img/medical_plaquettes.jpg}
		\caption{Plaquette (\emph{thrombocyte})}
		\label{fig:medical-plaquettes}
	\end{subfigure}
	\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}. 

\begin{figure}[htbp]
	\centering
	\begin{subfigure}[t]{0.2\textwidth}
		\includegraphics[width=\linewidth]{img/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}
		\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}
		\label{fig:medical-plasmodium_3}
	\end{subfigure}
	~	
	\begin{subfigure}[t]{0.2\textwidth}
		\includegraphics[width=\linewidth]{img/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}
	\label{fig:medical-plasmodium}
\end{figure}

%\subsection{Parasitémie de la malaria}

L'objectif 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}. 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.

La parasitémie est établit en pourcentage comme étant le rapport entre nombre d'érythrocytes infecté et le nombre total d'érythrocyte. Le group d'experts \emph{UK NEQAS} (\emph{United Kingdom National External Quality Assessment Service}) recommande de considéré un minimum de 1000 erythrocytes. 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~\%.

\begin{figure}[htbp]
	\centering
	\includegraphics[width=0.5\linewidth]{img/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 érythrocyte et être confondus avec des parasites. Ces cas peuvent être relativement fréquents et altérer significativement la parasitémie si comptés comme étant des cas positifs d'infection. La figure~\ref{fig:RBC-artefact} montre quelques exemple de faux positifs potentiels.

\begin{figure}[htbp]
	\centering
	\begin{subfigure}[t]{0.2\textwidth}
		\includegraphics[width=\linewidth]{img/RBC-plaquette.jpg}
		\caption{Thrombocyte}
		\label{fig:RBC-artefact-plaquette}
	\end{subfigure} 
	~
	\begin{subfigure}[t]{0.2\textwidth}
		\includegraphics[width=\linewidth]{img/RBC-debris-1.jpg}
		\caption{Débris}
		\label{fig:RBC-artefact-debris-1}
	\end{subfigure}
	~	
	\begin{subfigure}[t]{0.2\textwidth}
		\includegraphics[width=\linewidth]{img/RBC-debris-2.jpg}
		\caption{Débris}
		\label{fig:RBC-artefact-debris-2}
	\end{subfigure}
	~	
	\begin{subfigure}[t]{0.2\textwidth}
		\includegraphics[width=\linewidth]{img/RBC-debris-3.jpg}
		\caption{Débris}
		\label{fig:RBC-artefact-debris-3}
	\end{subfigure}
	\caption{Artefacts se supperposant à des érytrocytes}
	\label{fig:RBC-artefact}
\end{figure}



\section{Aperçu du processus}

La figure~\ref{fig:processusComplet} montre le processus complet du traitement d'une image de frottis sanguin. Celui ci peut-être divisé en trois groupe de traitement à savoir la ségmentation des érytrocytes, la ségmentation des parasites et finalement la classification des cellules.

\begin{figure}[htbp]
	\centering
	\includegraphics[width=0.9\linewidth]{img/schema_processus_2.pdf}
	\caption{Le processus complet.}
	\label{fig:processusComplet}
\end{figure}

Dans le premier groupe, l'on va chercher à construire des ellipses qui correspondent le mieux aux bords des érythrocytes. Pour ce faire une estimation du rayon moyen est réalisée par granulométrie à l'aide d'une succession de fermeture 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 auquel un score est attribué. Finalement les ellipses sont élaguée en supprimant celles chevauchées par d'autres ellipses sont le score est supérieur.

Dans le deuxième groupe, les zones colorées et sombre 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é 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.

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 établit en calculant le rapport entre la population d'érythrocytes infecté et celle saine.


\section{Détail de la méthode}

% filtrage préliminaire (taille d'un érythrocyte: 7.5 \micro~m)

Les filtres gaussiens appliquées 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 7.5~\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 pour la segmentation des érythrocytes respectivement la segmentation des parasites.

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 fermetures (par aire ou morphologiques) faites pendant la granulométrie s'appliqueraient qu'à une partie de la cellule. De plus, cette particularité gêne également lors de la recherche des bords.

Cela est fait en réalisant une ouverture par aire en estimant sa surface à partir du rayon calculé à partir 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.

\subsection{Identification des érythrocytes}
\label{identification-erythrocytes}

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. Ces déformations les 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).

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/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}


\subsubsection{Granulométrie}
\label{granulometrie}

L'objectif est de déterminer le rayon moyen des érythrocytes. Pour ce faire nous allons appliquer une série de fermetures par aire et calculer les différences des sommes des intensités de chaque pixel. Chaque aire est calculée comme étant celui 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érieure et supérieure correspondent au rayon estimé minoré de 50~\% respectivement au rayon estimé majoré de 50~\%.

La fermeture suppose ici que les érythrocytes on un niveau d'intensité plus bas que le fond, ce qui est le cas pour la composante verte dans toutes les images étudiées.

Deux autres approches on également été essayées, à savoir la fermeture 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 granulometrie par aire (le cercle et l'ellipse ont la même aire) et à droite le résultat d'une granulometrie 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]{img/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]{img/granulometrie-ellipse-cercle-closing-morpho.pdf}
		\caption{Cercle dont \emph{r} est égale 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 fermeture par aire d'une ellipse (à gauche) et celui trouvé par une fermeture morphologique (à droite)}
	\label{fig:granulometrie-ellipse-cercle-closing-comparaison}
\end{figure}

Un autre problème de la granulométrie à l'aide de fermetures morphologique utilisant un disque comme élément structurant est sa complexité algorithmique quadratique en fonction du rayon du disque comme le montre la figure~\ref{fig:spectre-granulométrique-morpho-cercle}. La figure~\ref{fig:spectre-granulométrique-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, dont la dilaté ou l'érodé par un autre octogone crée un nouvel octogone. L'associativité de l'erosion ou de la dilatation, montré par l'équation~\ref{eq:dilatation-associatif}, permet la décomposition d'une dilatation ($e_{1} \oplus e_{2}$) 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.

% TODO: Définition de la somme de Minkowski?

{\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}

L'implémentation 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.

Concernant les mesures du temps de calcul avec des images réelles, l'on constate que la fermeture par aire est beaucoup plus rapide : 8.4~s (figure~\ref{fig:temps-aire}) que la fermeture morphologique : 54~s (figures~\ref{fig:spectre-granulométrique-morpho-cercle} et~\ref{fig:spectre-granulométrique-morpho-octogone}). La première fermeture par aire, pour le premier rayon, prend un peu moins de 5~s puis les suivantes environ 100~ms. Cela s'explique par la recherche initiale des minima puis par l'agrandissement ceux-ci jusqu'à l'aire correspondant au premier rayon. Le détail de cet algorithme se trouve à la section~\ref{} % TODO: référence.

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.

\begin{figure}[htbp]
	\centering	
	\begin{subfigure}[t]{0.48\textwidth}
		\includegraphics[width=1\linewidth]{img/Granulometry-pattern-spectrum-area.pdf}
		\caption{Spectre granulométrique d'une succession de fermetures par aire}
		\label{fig:spectre-granulométrique-aire}
	\end{subfigure}
	~
	\begin{subfigure}[t]{0.48\textwidth}
		\includegraphics[width=1\linewidth]{img/Granulometry-time-area.pdf}
		\caption{Temps en milliseconde pour chaque fermeture. Temps total : 8.4~s}
		\label{fig:temps-aire}
	\end{subfigure}
	\caption{Spectre granulométrique et temps en milliseconde pour chacune des fermetures par aire. Réalisé sur une image 2592 \texttimes 1944 contenant environ 700 érythrocytes}
	\label{fig:Granulometry-area}
\end{figure}

\begin{figure}[htbp]
	\centering
	\begin{subfigure}[t]{0.48\textwidth}
		\includegraphics[width=1\linewidth]{img/Granulometry-pattern-spectrum-morpho-circle.pdf}
		\caption{Spectre granulométrique d'une succession de fermetures morphologiques avec un disque}
		\label{fig:spectre-granulométrique-morpho-cercle}
	\end{subfigure}
	~
	\begin{subfigure}[t]{0.48\textwidth}
		\includegraphics[width=1\linewidth]{img/Granulometry-time-morpho-circle.pdf}
		\caption{Temps en milliseconde pour chaque fermeture. Temps total : 54~s}
		\label{fig:temps-morpho-cercle}
	\end{subfigure}
	\caption{Spectre granulométrique et temps en milliseconde pour chacune des fermetures morphologique avec un disque comme élément structurant. Réalisé sur une image 2592 \texttimes 1944 contenant environ 700 érythrocytes}
	\label{fig:Granulometry-morpho-circle}
\end{figure}

\begin{figure}[htbp]
	\centering
	\begin{subfigure}[t]{0.48\textwidth}
		\includegraphics[width=1\linewidth]{img/Granulometry-pattern-spectrum-morpho-octagon.pdf}
		\caption{Spectre granulométrique d'une succession de fermetures morphologiques avec un octogone}
		\label{fig:spectre-granulométrique-morpho-octogone}
	\end{subfigure}
	~
	\begin{subfigure}[t]{0.48\textwidth}
		\includegraphics[width=1\linewidth]{img/Granulometry-time-morpho-octagon.pdf}
		\caption{Temps en milliseconde pour chaque fermeture. Temps total : 54~s}
		\label{fig:temps-morpho-octogone}
	\end{subfigure}
	\caption{Spectre granulométrique et temps en milliseconde pour chacune des fermetures morphologique avec un octogone comme élément structurant. Réalisé sur une image 2592 \texttimes 1944 contenant environ 700 érythrocytes}
	\label{fig:Granulometry-morpho-octagon}
\end{figure}

À partir du rayon moyen trouvé par granulométrie et des caractéristique 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)$.


\subsubsection{Recherche des bords des érythrocytes et calcul du gradient associé}

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.

Le gradient est définit comme étant deux composantes $g_x$ et $g_y$ en chaque point correspondant aux dérivés partielles en $x$ et en $y$ d'une image $f$ comme montré par l'équation~\ref{eq:composantes-gradient}.

{\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}

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 par la figure~\ref{fig:gradient}.

{\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 norme euclidienne en chaque point est obtenu 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
	\begin{subfigure}[t]{0.4\textwidth}
		\includegraphics[width=1\linewidth]{img/gradient-exemple.jpg}
	\end{subfigure}
	~
	\begin{subfigure}[t]{0.4\textwidth}
		\includegraphics[width=1\linewidth,interpolate=false]{img/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}

Afin de ne garder que les crêtes, un algorithme de suppression des non-maxima est appliqué. Celui ci est illustré par le 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 tangente perpendiculaire au gradient. Pour chaque coté de l'arête, une interpolation est calculée entre les deux éléments les plus proche de la droite ayant la même direction que le gradient et passant par l'élément traité. Par exemple, par rapport à la figure~\ref{fig:non-maximum-suppression-schema}, la valeur des voisins du haut est calculée comme étant $\tau = n_1 \cdot (1 - v_x/v_y) + n_2 \cdot v_x/v_y$ et celle des voisins du bas comme étant $\upsilon = 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 $\tau$ et $\upsilon$ alors celui-ci sera définit comme étant un maxima. La figure~\ref{fig:nms} montre la valeur de la norme ainsi que les maximas mis en évidence.

\begin{figure}[htbp]
	\centering
	\begin{subfigure}[t]{0.35\textwidth}
		\includegraphics[width=1\linewidth,interpolate=false]{img/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éterminé si $e$ est un maxima}
		\label{fig:non-maximum-suppression-schema}
	\end{subfigure}
	~
	\begin{subfigure}[t]{0.35\textwidth}
		\includegraphics[width=1\linewidth,interpolate=false]{img/nms.png}
		\caption{Le résultat de l'application de la suppression des non-maxima. Les maximas sont mis en évidence en blanc et la norme du gradient est montré avec des niveaux d'intensité de gris}
		\label{fig:nms}
	\end{subfigure}
	\caption{Suppression des non-maxima}
	\label{fig:non-maximum-suppression}
\end{figure}

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 garder que les bords les plus pertinent, 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.

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.

%\subsubsection{Recherche des bords des érythrocytes}

\subsubsection{Construction d'ellipses}

L'étape précédente nous fournit une matrice de vecteurs définissant le gradient. Les éléments dont le vecteur est non-nul constituent les bords des érythrocytes. 

Une méthode proche de la méthode RANSAC~\ref{} (\emph{RANdom SAmple Consensus}) est appliquée qui 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 point 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 trouve trop proche d'une ellipse ayant un score plus élevé sont supprimées.

La taille de la fenêtre glissante est un carré dont la longueur des cotés correspond au 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 de sa dimension a été choisi. Pour chaque position un certain nombre de tirage de triplet de points non-égaux parmi les vecteurs non-nuls est effectué, ce nombre est égal à un coefficient multipliant le nombre courant d'élément du bord. Celui ci à été ajusté comme valant 1.

\begin{figure}[htbp]
	\centering
	\includegraphics[width=0.6\linewidth]{img/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.}
	\label{fig:construction-ellipse}
\end{figure}

À partir de chaque triplet de point et des deux vecteurs du gradient au 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 

\begin{figure}[htbp]
	\centering
	\begin{subfigure}[t]{0.4\textwidth}
		\includegraphics[width=1\linewidth]{figures/ellipses/example-1-green-filtered.jpg}
		\caption{}
		\label{}
	\end{subfigure}
	~
	\begin{subfigure}[t]{0.4\textwidth}
		\includegraphics[width=1\linewidth]{figures/ellipses/example-2-edges.png}
		\caption{}
		\label{}
	\end{subfigure}
	~
	\begin{subfigure}[t]{0.4\textwidth}
		\includegraphics[width=1\linewidth]{figures/ellipses/example-3-all-ellipses.jpg}
		\caption{}
		\label{}
	\end{subfigure}
	~
	\begin{subfigure}[t]{0.4\textwidth}
		\includegraphics[width=1\linewidth]{figures/ellipses/example-4-ellipses.jpg}
		\caption{}
		\label{}
	\end{subfigure}
	\caption{}
	\label{}
\end{figure}



% RANSAC + scoring + pruning

\subsubsection{Élagage des ellipses}

% suppression uniquement


\subsection{Segmentation des parasites}

\subsubsection{Extraction des zones colorées sombres}

\subsubsection{Segmentation des cytoplasmes}

\subsubsection{Segmentation des noyaux}

\subsection{Classification des cellules}

\subsubsection{Suppression des cellules non-conformes}

\subsubsection{Attribution d'une classe}


\section{Implémentation}

% Float32



\section{Résultats}

% Comparaison avec MA et le PA.



\section{Conclusion}

\bibliographystyle{plain}
\bibliography{main}


\end{document}
