TIFO - Filtrage - partie 1 Filtrage
Domaines spatial et frequentiel
Lissage, elimination du bruit
Detection de bords/coins
Quelques filtres classiques
On s'appuie souvent sur le produit de convolution
Matrice avec des coefficients
On va recalculer la valeur d'un pixel en fonction de son voisinage
Combinaison lineaire de tous les pixels voisins
Image Not Showing
Possible Reasons
The image file may be corrupted The server hosting the image is unavailable The image path is incorrect The image format is not supported
Learn More →
Lissage, debruitage Comment eliminer le bruit dans une image ?
Filtre moyenneur
Objectif: lisser l'image
Donne une impression de flou
Fonctionnement: on remplace la valeur d'un pixel par la moyenne des valeurs des pixels du voisinage
Noyau de convolution:
Comment choisir la taille/forme du voisinage ?
On reste generalement sur des voisinages carres par soucis de performance
Resultats:
Image Not Showing
Possible Reasons
The image file may be corrupted The server hosting the image is unavailable The image path is incorrect The image format is not supported
Learn More →
Image Not Showing
Possible Reasons
The image file may be corrupted The server hosting the image is unavailable The image path is incorrect The image format is not supported
Learn More →
Un leger flou apparait. Si on continue et qu'on augmente la taille du masque:
Image Not Showing
Possible Reasons
The image file may be corrupted The server hosting the image is unavailable The image path is incorrect The image format is not supported
Learn More →
Le lissage est un peu trop fort et on perd des details. Implementation
Comment implementer un tel filtre ?
Que faire sur la bordure
On ne traite pas les bords
Recalculer sur la bordure avec des coeffs differents
Dupliquer les dernieres et premieres lignes/colonne
Image periodique: chercher les valeurs sur une autre periode
il n'y a pas de bonnes reponses
Amelioration?
Au lieu de faire contribuer tous les pixels egalement, on peut privilegier les pixels proches du centre
Filtre Gaussien
Objectif: lisser l'image
Fonctionnement: on remplace la valeur d'un pixel par la moyenne ponderee des valeurs des pixels du voisinage
Noyau de convolution: gaussienne
Parametre/Taille du noyau ?
Resultat Comparaison ave le filtre moyenneur
Image Not Showing
Possible Reasons
The image file may be corrupted The server hosting the image is unavailable The image path is incorrect The image format is not supported
Learn More →
Avantages/inconvenients ?
moins l'impression de flou
bonne amelioration
Objectif: debruitage
Fonctionnement: trier l'ensemble des valeurs des intensites des pixels sur un voisinage puis remplacer la valeur du pixel considere par la valeur mediane sur le voisinage
Resultat
Supprime facilement le bruit impulsionnel
Preserve l'information de contour
Est un peu lourd (tri)
Image Not Showing
Possible Reasons
The image file may be corrupted The server hosting the image is unavailable The image path is incorrect The image format is not supported
Learn More →
Je suis pas du tout narcissique
On a completement enleve le bruit "poivre et sel" de la 2
\(^{\text{nde}\) image
Lissage
Lissage (gaussien, moyenne … )
Degrade les frontieres
Solutions ?
Faire contribuer principalement les pixels qui ont une couleur proche de la couleur du pixel considere ou ponderer leur apport en fonction de leur couleur
Filtre de Nagao
…
Filtre gaussien, resultats:
Image Not Showing
Possible Reasons
The image file may be corrupted The server hosting the image is unavailable The image path is incorrect The image format is not supported
Learn More →
Gaussien selectif: seuil pour faire contribuer les pixel (si c'est inferieur, on les fait contribuer, sinon on les oublie).
Permet de preserver les contours
Seuil a fixer
S'il est trop tolerant: tend vers le gaussien normal
Pas assez tolerant: reste sur l'image originale
Nagao
Filtre de Nagao
Tenir compte des regions?
Faire un median mais dans la region de variance faible
Au lieu de prendre un masque centre sur le pixel, on va regarder sur differents voisinages
Image Not Showing
Possible Reasons
The image file may be corrupted The server hosting the image is unavailable The image path is incorrect The image format is not supported
Learn More →
On calcule la variance a chaque zones rouges
On calcule la moyenne sur le voisinage avec la variance la plus faible
On ne veut pas faire une moyenne a cheval sur un contour
Resultats
Image Not Showing
Possible Reasons
The image file may be corrupted The server hosting the image is unavailable The image path is incorrect The image format is not supported
Learn More →
Nagao: on a fortement lisse l'image mais on a garde les contours Detection de bords
Comment se caracterise un contour ?
Comment trouver les contours ?
Pourquoi trouver les contours ?
Image Not Showing
Possible Reasons
The image file may be corrupted The server hosting the image is unavailable The image path is incorrect The image format is not supported
Learn More →
Image Not Showing
Possible Reasons
The image file may be corrupted The server hosting the image is unavailable The image path is incorrect The image format is not supported
Learn More →
Definir la notion de bord/contour
Transition brutale (echelon)
En "escalier"
Dans la vraie vie, jamais aussi brutale
Image Not Showing
Possible Reasons
The image file may be corrupted The server hosting the image is unavailable The image path is incorrect The image format is not supported
Learn More →
Quelle operation realiser pour detecter ce type de motif?
Image Not Showing
Possible Reasons
The image file may be corrupted The server hosting the image is unavailable The image path is incorrect The image format is not supported
Learn More →
Calcul de la derivee ?
Si l'accroissement est plus fort en
que en
, on calcul le coefficient directeur. Quand la porte est tres fort, on a un contour.
Image Not Showing
Possible Reasons
The image file may be corrupted The server hosting the image is unavailable The image path is incorrect The image format is not supported
Learn More →
Image Not Showing
Possible Reasons
The image file may be corrupted The server hosting the image is unavailable The image path is incorrect The image format is not supported
Learn More →
Image Not Showing
Possible Reasons
The image file may be corrupted The server hosting the image is unavailable The image path is incorrect The image format is not supported
Learn More →
Vecteur directeur en tout point de la courbe
Calcul de la derivee En continu on a
et on veut calculer ca correctement en dirscret.
Profil:
Image Not Showing
Possible Reasons
The image file may be corrupted The server hosting the image is unavailable The image path is incorrect The image format is not supported
Learn More →
Derivee:
Image Not Showing
Possible Reasons
The image file may be corrupted The server hosting the image is unavailable The image path is incorrect The image format is not supported
Learn More →
recherche de maxima locaux ?
Calcul de la derivee en 1 point x
En continu:
En discret on a du mal a aller vers 0
En discret on a
Dans notre cas (discret)
ou
Masques:
,
Attention signal 2D
Roberts
Contours pas forcement nets
Sobel, Prewitt Filtres beaucoup plus communs.
Sobel:
Prewitt:
Pourquoi ces coefficients ?
La difference:
lisser par un filtre moyenneur / Sobel
lisser par un filtre Gaussien / Prewitt
Resultats
Sobel
Prewitt
On peut combiner les derivees:
calculer amplitude du gradient
calculer l'angle
Informations sur l'orientation du gradient
Comment recuperer les contours a partir de l'image du gradient ?
On peut combiner les 2 images
Le vecteur gradient est orthogonal aux lignes de niveaux
plus sa norme est grande plus la transition est forte
On cherche une transition maximale
Differentes strategies pour recuperrer les contours:
Probleme:
Contour ferme/contour ouvert ?
Kirsch, Robinson Kirsch and Robinson Compass Masks (Filtres de compas):
On fait "tourner" le filtre.
"Sobel que l'on fait tourner"
L'amplitude est donnee par la plus forte reponse.
L'orientation est deduite du masque qui a donne la plus forte reponse.
Frei-Chen Permet de trouver les gradients et d'autres motifs (lignes croises, point, etc.)
Edge
Line
1.
5.
9.
2.
6.
3.
7.
4.
8.
9 masquent qui forment une base
Chaque sous-famille est capable de detecter un motif localement
La detectection se fait seulement avec:
Plus
est grand, moins la bordure est marquee (
est entre 0 et
).
Avantages:
Plus robuste a differents niveaux d'illumination
Plus robuste car elimine les motifs lignes, points, etc. de la detection
Peut etre utilise pour detecter les lignes en utilisant les masques 5 a 8 a la place des masques 1 a 4
Le laplacien Utilisation de la derivee seconde
Un point de contour est un passage a zero de la derivee seconde
Derivee seconde:
:
:
:
Un point de contour n'est rien d'autre qu'un passage de la derivee seconde par 0.
On obtient un masque simple:
Si on veut detecter les contours, il faut chercher les passage par 0 du resultat:
On a somme le masque horizontal et vertical
Les contours sont reperes par un changement de signe
On va plutot chercher un changement de signe (de forte amplitude)
Si
il faut un des
ou
et inversement si
La calcul des derivees est approche au moyen de filtres
Simple et rapide
Inconvenients: approximation, sensibilite au bruit, en particulier le Laplacien
necessite de lisser le signal avant ou lors de la derivation
Impact du lissage
Robustess au bruit
Delocalisation des points de contour
Le Laplacien est sensible au bruit
sur-segmentation
Evaluation de la qualite de detection de contours:
Bonne detection
Bonne localisation
Reponse unique
Cf filtre de Canny/Deriche
Detection de points d'interest
Detection de coins
Comment se caracterise un coin ?
Comment trouver les coins ?
Pourquoi trouver les coins ?
Coin = gradient fort dans 2 directions
Moravec Pour chaque point:
On fait la somme
des differences des intensites entre un voisinage centre sur le point et le voisinage decale
On reitere le calcul avec des decalages dans toutes les directions
Pour chaque point, on garde, parmi tous les decalages
le resultat de
qui a donne la plus faible valeur
Moravec:
Calcul d'un critere sur toute l'image
On calcul un critere pour chaque point
Un coin est un maximum local de
Desavantages:
Sensible au bruit (des petites imperfections peuvent etre prises pour des coins)
Contours de certaines directions peuvent etre pris pour des coins (anisotrope car on considere que quelques directions)
Harris Revision du critere pour etre plus robuste
Critere:
Ce qui donne:
Nouveau critere H
trace
les deux valeurs propres
grand
diminue et le detecteur est moins sensible
petit
diminue et le detecteur est plus sensible
Achard, Bigorgne, Devars
Detection basee sur le produit vectoriel
Pres d'un coin, la norme du produit vectoriel entre 2 vecteur gradient est grande
Dans une zone homogene elle est faible
La norme des vecteurs gradients est petite
Sur un contour elle est faibke aussi
L'angle frome entre 2 vecteurs gradients proches est petit
Pour chaque point
, avec un voisinage
, on determine un critere
:
Resultats Archard
Amelioration de la nettete Laplacien
Retour sur la derivee seconde (Laplacien)
:
:
:
Renforcement de la nettete
:
Ce qu'on ainerai c'est combine
et
pour ecarter les amplitudes des extremums avant et apres
On prend
et lui on lui retranche
fois la derivee seconde pour accroitre le contraste locale
:
:
:
Masque pour le Laplacien
Rajouter
au centre c'est comme rajouter l'image complete
Resultats
Augmente la nettete
Renforce le bruit
C'est l'inverse de ce qu'on a fait au debut
Conclusion
Tout ce qu'on a fait jusqu'a present est faux car on a pas pris en compte la correction gamma.