Bonsoir,

Voila, je suis sur un project de modification d'image, le but est de charger dans un tableau 2 dimensions les différent niveaux de gris d'une image .RAW (format binnaire) de dimension 128 pixel sur 128

bref, pour finir j'obtient un tableau de 128x128 contenant les différents nivaux de gris

j'ai donc concocté un ptit algo faissant la rotation du tableau d'un angle donné

le voici:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
 
debut procedure en entree le X le Y et l ANGLE DE ROTATION en sortie XPRIME et YPRIME
      -- Il faut faire une rotation depuis le CENTRE de l image
      -- si non l image va hors du cadre...
      -- Il faut changer les coordonees
 
      -- Centre de la Matrice
      XCentre  = (Dim-(Dim-(Dim-1))+2)/2;
 
      YCentre  : (Dim-(Dim-(Dim-1))+2)/2;
 
      XRot     = X - XCentre;
      YRot     = Y - YCentre;
 
 
 
 
      -- Pour signaler si un point est HORS de la matrice
      ToutEstOk = True;
 
      -- La formule pour trouve les coordonne de la rotation.
      -- Ici on fait la matrice inverse (=> inverse de l angle alpha)
      -- Pour eviter les petits points blancs!!!!!
      XPrime = cos(Radian) * XRot - sin(Radian) * YRot + XCentre;
 
      YPrime = Sin(Radian) * XRot + Cos(Radian) * YRot + YCentre;
 
je Test si le point appartien a l image Si oui j en vois les resulat si non rien..
   fin Procedure
 
et j'appele cette procedure comme ceci
 
pour I de 1 a Dim faire
	Pour J de 1 a DIm faire
 
		AppeleProcRotation(I,J,-30,XPRIME,YPRIME);
		TabResultat(I,J) = Image(XPRIME,YPRIME);
	fin 
fin

DOnc avec cette methode quand je fait la rotation l image final ne sera pas bombarder de point blanc (car je fait la matrice inverse (moin l'angle)....)

mais le probleme c'est par example si je fait une rotation de 45° avec ma méthode les coin de l'image seron coupé..., car apres la rotation l'image devrai etre plus grande

mais si j'agrandit le TabResltat le programme plante, car les tab ne sont plus de la meme taille...

Quelqu'un saurait comment regler ce probleme?

d'avance merci[/code]