%% LyX 1.1 created this file.  For more info, see http://www.lyx.org/.
%% Do not edit unless you really know what you are doing.
\documentclass[11pt]{article}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}

\makeatletter


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands.
\providecommand{\LyX}{L\kern-.1667em\lower.25em\hbox{Y}\kern-.125emX\@}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
%\textheight26cm
%\textwidth15.5cm
%\hoffset-2cm
%\voffset-3cm
\usepackage{french}
\usepackage{subfigure}
%chargement des drivers EPIC et EEPIC
\usepackage{amsfonts}
\usepackage{fullpage}
\sloppy
\pagestyle{empty}
\input{psfig}
%%%%%%%%%%%%%%%
\makeatother

\begin{document}


\title{\textbf{\huge TTI :TP} {\huge }\\
 {\huge }\textbf{\huge Filtrage et détection de contours} }


\author{\textbf{2 séances }}

\maketitle
Ce TP utilisera les notions de filtrage et de convolution vues en cours. Il
se décompose en deux parties:

\begin{itemize}
\item la première partie vous amènera a utiliser les notions de lissage et de réhaussement.
\item la deuxième reposera sur la notion de détection de contours
\end{itemize}

\section{Données}

Vous disposez de différentes données accessibles dans le répertoire tptti/tp5.
Vous y trouverez:

\begin{itemize}
\item un exemple de Makefile.
\item des images: rige.pgm, foret.pgm, alpes.pgm ainsi que celles ayant déjà servi
au TP FFT.
\end{itemize}
Pour les entrees-sorties vous devrez utiliser Vamp.


\section{Partie 1}

\begin{enumerate}
\item Réaliser un filtrage monodimensionnel (-1 1) sur des images possédant des structures
variées (zones homogènes, texturées, zones avec contours, ...). Le filtrage
se fera sur les lignes.\\
\\


\noindent a) Réaliser le filtrage bidimensionnel par le filtre~:\\
\\
 \hspace*{4cm}1~~~2~~~1\\
 \hspace*{4cm}2~~~4~~~2\\
 \hspace*{4cm}1~~~2~~~1\\
\\
 Étudier l'effet de ce filtre sur différentes structures de l'image.\\
 \textbf{Remarque~:} Pour programmer ce filtrage exploitez le fait qu'il est
séparable.\\
\\


b) Appliquer sur les m\^{e}mes images un filtre médian sur des fen\^{e}tres
3{*}3.\\
\\
 Comparer les résultats.\\
\\


\item On souhaite réaliser une opération d'accentuation de contours par le filtre
bidimensionnel suivant~:\\
\\
 \hspace*{4cm}0~~~-1~~~0\\
 \hspace*{4cm}-1~~~5~~~-1\\
 \hspace*{4cm}0~~~-1~~~0\\
\\
 Comparer les résultats de \textit{rehaussement} des images de différentes structures
en procédant de deux fa\c{c}ons~:

\begin{itemize}
\item En appliquant directement le filtre de rehaussement sur les images initiales.
\item En faisant un prétraitement (filtrage passe-bas de 2.a ou 2.b ) sur les images
initiales avant d'appliquer le filtre de rehaussement
\end{itemize}
\end{enumerate}

\section{Partie 2}


\subsection{Filtre de Sobel}

Vous suivrez la méthodologie suivante:

\begin{enumerate}
\item appliquer le filtre passe-haut de Sobel sur une image~:\\
\\
 \hspace*{4cm}1~~~0~~~-1\\
 \hspace*{4cm}2~~~0~~~-2\\
 \hspace*{4cm}1~~~0~~~-1\\
\\

\item puis seuillez l'image résultat~:

\begin{itemize}
\item si \( |resultat|<Salorsresultat:=255 \)
\item si \( |resultat|\geq Salorsresultat:=0 \)
\end{itemize}
Choisissez le seuil \( S \) le mieux adapté en faisant attention d'une part
à ne pas faire appara\^{\i}tre le bruit de l'image et d'autre part à ne pas
masquer trop les contours.

\item faire un prétraitement sur l'image afin de mieux détecter les contours.
\item Refaire l'expérience mais cette fois-ci en changeant la direction du filtre.
\end{enumerate}

\subsection{Filtre Laplacien}

Vous allez maintenant réaliser une détection de contours sur une image en niveaux
de gris en utilisant les passages à 0 du laplacien (dérivateur d'ordre 2).\\
 Vous utiliserez pour cela le filtre laplacien 8-voisins de Prewitt. Vous pourrez
choisir l'une des deux formes suivantes:

\begin{itemize}
\item non séparable
\[
H=\frac{1}{8}\left[ \begin{array}{ccc}
-1 & -1 & -1\\
-1 & 8 & -1\\
-1 & -1 & -1\\

\end{array}\right] \]

\item séparable
\[
H=\frac{1}{8}\left[ \begin{array}{ccc}
-2 & 1 & -2\\
1 & 4 & 1\\
-2 & 1 & -2\\

\end{array}\right] \]

\end{itemize}
Dans un deuxième temps, vous rechercherez les passages par 0 du laplacien afin
d'obtenir une carte binaire des contours de l'image. Vous utiliserez pour cela
la méthode suivante:

\begin{itemize}
\item -- prendre une fenêtre \( 3\times3  \) centrée sur le pixel courant
\item -- rechercher le max des \( valeurs>0 \) et le min des \( valeurs<0 \)
\item -- si \( max-min>seuil \) alors le pixel courant est un point de contour à
mettre à 1 (0 sinon).
\end{itemize}

\section{A rendre}

Vous rendrez le listing de votre programme accompagné d'un commentaire succinct
de celui-ci et des réponses aux questions suivantes:\\


\begin{itemize}
\item -- Calculer les fonctions de transfert des filtres de la partie 1. En déduire
l'effet attendu de ces derniers et vérifier la cohérence de vos résultats.
\item -- démontrer la séparabilité du deuxième filtre laplacien proposé. Vous le mettrez
sous la forme \( H=H_{1}+H_{2} \),\\
 avec \( H_{1}=\left[ \begin{array}{ccc}
x_{1} & y_{1} & z_{1}\\
x_{1} & y_{1} & z_{1}\\
x_{1} & y_{1} & z_{1}\\

\end{array}\right]  \) et \( H_{2}=\left[ \begin{array}{ccc}
x_{2} & x_{2} & x_{3}\\
y_{2} & y_{2} & y_{3}\\
z_{2} & z_{2} & z_{3}3\\

\end{array}\right]  \)\\
 Vous montrerez alors que \( H_{1} \) et \( H_{2} \) sont séparables, ce qui
nous ramène à:\\
 \( f*H=(f*H_{1x})*H_{1y}+(f*H_{2x})*H_{2y} \), où {*} est l'opérateur de convolution,
\( H_{ix} \) un vecteur ligne et \( H_{iy} \) un vecteur colonne).\\
 Quel est l'intérêt de séparer un filtre?
\item -- comparer les résultats obtenus avec les deux détecteurs de contour. Conclusions?
\end{itemize}
\end{document}

