# Gnral Dveloppement > Algorithme & Mathmatiques > Traitement d'images >  Filtrage par matrice de convolution

## spring.time

salut  ::P: 

est ce que je vais appliquer la formule mentionne dans la pice jointe, sur toute l'image ?en se dplaant d'une colonne  la suivante?

et le rsultat, c'est une matrice? qu'est ce qu'on pourrait en dduire de rsultat?


merci bien

----------


## ToTo13

- Oui, il faut le faire sur toute l'image.
 - Attention aux dbordement lors du traitement des bords.
 - Dans l'exemple que tu donnes, la sommes des coefficients n'est pas gale  1, donc il faudra diviser par la somme des coefficients.

----------


## b_reda31

> et le rsultat, c'est une matrice? qu'est ce qu'on pourrait en dduire de rsultat?


Non le rsultat est un scalaire que reprsente la nouvelle valeur du pixel p(i,j) situ au centre du bloc.
L'application de cette forumule sur l'ensemble des pixels de l'image donne l'image "filtre".

----------


## spring.time

Bonjour  ::P:  b_reda31 et ToTo13 ,

est ce que c'est bien la mthode pour l'application de filtrage par matrice de convolution? 
quelle est la taille de l'image rsultat ?un scalaire (1,3)?


merci bien

----------


## ToTo13

C'est presque cela !
Lorsque tu traites une image avec un masque 3x3, il y a un dbordement du masque lors du traitement des pixels qui sont sur les bords (voir mon commentaire plus haut).
Ce que tu as entour est juste pour le traitement des pixels (1,1), (1,2) et (1,3), en partant du principe que le pixel en haut  gauche  pour coordonnes (0,0).

----------


## spring.time

b_reda31 est ce que vous pouvez m'expliquer que voulez vous dire concernant la taille de l'image filtr?

----------


## spring.time

l'image bruite est de taille(8,8) et le filtre (3,3).
j'ai obtenue pour la 1re valeur=14/5.

sincrement je n'ai pas encore saisi la mthode? est ce que c'est appliqu sur toute l'image? je vais me dplacer d'une colonne!?
quel est le rsultat final? 
qu'est ce qui caractrise cet algorithme?
pourriez vous m'expliquer la formule qui dfinit la convolution? 

j'ai besoin de votre aide svp?

----------


## edfed

comme pour les convolutions 1D (chantillons audio par exemple), il faut d'abord ajouter un cadre de la moiti de la taille de la table de convolution.

donc, pour ce cas 2D, il faudra d'abord ajouter un bord de 1 pixel tout autours.

si la matrice de convolution est l'image d'une bille en niveau de gris et qu'on l'applique  une image noire compose de points rouges, a donnera une image noire recouverte de billes rouges et plus grande de deux demi billes sur les deux axes, le principe est de multiplier un motif avec un autre.

sur un signal audio, l'effet est plus parlant, car toutes sortes de filtrages sont possibles juste en changeant la matrice. ici la matrice  appliquer est la rponse impulsionnelle du filtre.

----------


## ToTo13

> l'image bruite est de taille(8,8) et le filtre (3,3).
> j'ai obtenue pour la 1re valeur=14/5.
> 
> sincrement je n'ai pas encore saisi la mthode? est ce que c'est appliqu sur toute l'image? je vais me dplacer d'une colonne!?
> quel est le rsultat final? 
> qu'est ce qui caractrise cet algorithme?
> pourriez vous m'expliquer la formule qui dfinit la convolution?


Tu appliques cette formule sur toute l'image : pour tout x et y !!!
La seule chose que je te faisais remarquer c'est que tu vas avoir (comme toujours) un risque de dbordement lorsque tu traiteras les pixels qui sont sur les bords.





> comme pour les convolutions 1D (chantillons audio par exemple), il faut d'abord ajouter un cadre de la moiti de la taille de la table de convolution.


C'est une des solutions.
Une autre consisterait  prendre le pixel miroir.

----------


## spring.time

merci edfed...mais je n'ai pas pas compris 100% je suis q'une dbutante  ::oops:: 

comment prendre le pixel miroir? toto13

pour le cas d'une image de taille (8,8) et le filtre de (3,3) la taille de l'image rsultat sans bruits est (6,6).
c'est bien cela?


je vous remercie infiniment pour votre gentillesse  ::):

----------


## b_reda31

> b_reda31 est ce que vous pouvez m'expliquer que voulez vous dire concernant la taille de l'image filtr?


L'image filtre est l'image qui rsulte de l'application du filtre sur une image en entre.
Communment, l'image en entre et l'image filtre sont de taille gale.
Cependant pendant le traitement, vous devez ajouter un cadre  l'image en entre, La taille du cadre dpend de la taille du noyau de convolution. (1px pour un filtre 3*3, 2px pour un filtre 5*5...etc).

Soit par exemple l'image en entre I(5,5) =


```

```

En ajoutant un cadre  l'image, si le filtre est 3*3 l'image devient (7*7) = 


```

```

Le traitement commence  partir du pixel I1,1 et se termine jusqu'au pixel I5,5. Ce qui en rsulte une image de taille 5*5.
Le support de cours les filtres usuels  pourrait beaucoup vous servir, jetez-y un coup d'oeil pour mieux comprendre les diffrentes statgie de gestion de bord.

----------


## ToTo13

> comment prendre le pixel miroir?


Tu prends le symtrique par rapport au bord.
Le pixel de coordonnes (-x,y) sera le pixel (x,y) dans le cas d'un dbordement  gauche (en valeur ngative pour x).






> pour le cas d'une image de taille (8,8) et le filtre de (3,3) la taille de l'image rsultat sans bruits est (6,6).
> c'est bien cela?


Non, ton image rsultat a la mme dimension que celle traite.
Si tu as une image de dimension (N,M), tu appliques les formules ci-dessus pour tous les pixels de (1,1)  (N-2,M-2). Tu applique ensuite la mme formule en faisant attention aux dbordements lorsque tu traites les bords, c'est--dire les pixels dont les coordonnes en X sont 0 ou N-1 et/ou en Y sont 0 ou M-1.

----------

