Afin d’effectuer une rotation de l’image, il a fallu créer une matrice de rotation, definie de la facon suivante:
Ainsi, pour effectuer une rotation de 90°, on utilisera la matrice de rotation suivante:
Toutefois, pour le traitement d’image, il faut remplacer θ par -θ, car l’on souhaite une rotation dans le plan suivant:
Ainsi, on utilisera donc la formule suivante:
La rotation de l’image s’effectuera par rapport au centre de cette dernière (coordonnées largeur/2, hauteur/2). Toutefois, avant d’effectuer la rotation de l’image il a fallu déterminer l’angle de rotation.
Nous attaquons ici la partie difficile de la rotation. Dans le but de détécter l’angle de rotation, nous avons effectué differentes recherches afin de determiner l’algorithme le plus efficace sans qu’il soit trop difficile à implémenter.
La transformée de Hough fut la solution retenue, inventée en 1962 par Paul Hough et est utilisée pour le traitement d’images numeriques.
Grâce a la transformée de Hough, nous pouvous détécter les lignes et ainsi determiner leur angle de decalage par rapport a l’axe X horizontale. Ainsi, dans la transformée de Hough, les lignes sont representées par un vecteur de coordonnees definies par (r, θ) avec r la norme du vecteur et θ l’angle de ce dernier.
En transformant toutes les lignes reliant un point a un autre, on obtient une sinusoïde appelée l’espace de Hough.
Ainsi, nous allons donc créer une matrice appelée Accumulateur de Hough, qui, etant initialisée a -1 va stocker les valeurs de r et de θ. Les lignes seront les valeurs de r tandis que θ sera representé dans les colonnes. Pour chaque pixel P on fait varier θ de 0 a π, et on re-calcule une nouvelle valeur de r tel que:
On incrémente ensuite la matrice de Hough à la position (θ, r). Une fois cette matrice obtenue, on calcule la variance des différentes valeurs de r. Cette derniere nous permet de calculer la dispersion par rapport a la moyenne. Ainsi nous effectuons la moyenne des differentes valeurs de r, puis on calcule la variance.
Il suffit ensuite de choisir l’angle pour lequel la variance des valeurs de r est la plus grande. Le calcul de la variance permet d’effectuer la rotation même en présence d’images sur le document.
Ainsi, en appliquant l’algorithme de Hough, nous obtenons l’angle recherché pour effectuer la rotation.
De droite a gauche, avant - apres l’application de l’algorithme.
![]()
Avant d’effectuer un quelconque traitement sur l’image, ou d’en analyser les données, nous devons la passer en gris. Sans aucune recherche, ni reflexion, le premier reflexe est d’effectuer la moyenne des trois couleurs Vert Rouge Bleu pour chaque pixel, et de remplacer la valeur du pixel par la moyenne.
Mais cette solution est inexacte et donne un rendu de tres mauvaise qualité, car les couleurs n’ont pas la même luminosité. Ainsi, la solution retenue est la suivante: On associe le résultat de la formule suivante: (Rouge * 0.3 + Vert * 0.59 + Bleu * 0.11)/3 au pixel. Grâce a ces valeurs et ces coefficients, le passage en gris est d’une bien meilleure qualité.
Ainsi, en appliquant notre algorithme sur l’image suivante:
Nous obtenons cette dernière: