Bonjour à vous !
Je suis bloqué dans mon code pour mon projet d'OCR...
J'ai réalisé une méthode de sous-échantillonnage d'une matrice. Je voudrais la tester mais je n'y arrive pas.
J'ai un problème sur la fin de mon code, la méthode main, je n'arrive pas à appeler la méthode downSampling de cette manière (erreur retournée : type not found). Je ne suis pas sur d'avoir bien compris le principe de l'instanciation et tout ça.. Si quelqu'un pouvait me tirer ça au clair en me montrant ce qui ne va pas dans mon code je suis preneur !
Merci d'avance en tout cas !
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86 * * @author *** * @version 1.0 */ public class OCR { public OCR() { } /** * @return */ public int getSize(int[][] matriceSize) { return matriceSize.length; } /** * @return */ public int getHauteur(int[][] matriceHauteur) { return matriceHauteur[0].length; } public char[] downSampling(int[][] matriceEncadre) { char[] recup; recup = new char[35]; /* SOUS-ECHANTILLONAGE DE LA MATRICE (réduction de sa taille) Principe de fonctionnement : On envoie une matrice n-m que l'on transforme en une matrice 5-7 Pour cela on découpe la matrice en 5*7 quadrants auxquels on assignera la valeur 1 si un seul 1 est détecté dans ce quadrant. */ int casY; int casX; int ratioY = (int) getSize(matriceEncadre)%7; int ratioX = (int) getHauteur(matriceEncadre)%5; //casY et casX sont des variables utilisées dans le cas ou la taille de la matrice de base n'est pas divisible par 7 ou 5 suivant le cas... Ici on s'en fout donc... casY = ratioY*7-getSize(matriceEncadre); casX = ratioX*5-getHauteur(matriceEncadre); int[][] Quadrant; Quadrant = new int[35][4]; //On met les caracteres de recup a* 0 for (int i=1; i<35; i++) {recup[i]='0';} //On decoupe les quadrants de facon egale (ici j'ai coupé car c'est 100 lignes de code inutiles pour nous, je définis la taille des quadrants) //Puis on en leve le i-eme caractere a* 1 si on detecte le moindre pixel dans le i-eme quadrant for (int i=1; i<35; i++) {for (int j=Quadrant[i][1]; j<Quadrant[i][2]; j++) {for (int k=Quadrant[i][3]; k<Quadrant[i][4]; k++) { if (matriceEncadre[j][k]==1) {recup[i]='1';} } } } // System.out.println("slip36!"); return recup; } public static void main(String[] args) { //ici pour mon test, je veux transformer une matrice 35*35 en un tableau de 35 caractères, qui équivaut à une matrice 7*5. int[][] matrice; matrice = new int[35][35]; for (int i=1; i<=35; i++) { for (int j=1; j<=35; j++) {matrice[i][j]=0;} } char[] recup2; recup2 = new downSampling(matrice); for (int i=1; i<=35; i++) {System.out.println(recup2[i]); } } }
Partager