Problème création d'une fonction sur javascool

Fermé
TAgeneau - 13 avril 2015 à 17:21
KX Messages postés 16755 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 - 13 avril 2015 à 22:41
Bonjour,
dans le cadre de notre projet de fin d'année en ISN, nous devons créer un programme qui détecte les caractère d'une plaque d'immatriculation. Pour se faire, nous avons extrait la plaque, extrait chaque caractères, etc ... Nous avons donc réussi a comparer le premier des caractères de la plaque avec un caractère "de référence", mais le programme étant bien trop long, nous voulions créer une fonction afin d'alléger celui ci. Problème : nous n'arrivons pas à réaliser un programme exécutable, javascool nous détectant toujours une erreur ...

En espérant obtenir de l'aide assez rapidement, merci d'avance !


voici la fonction posant problème :

void pourcentage (){
int width = getWidth();
int height = getHeight();
double R = width * height ;
int P;
int PP;

//gauche 

double compteur = 0;

for (int x = 0 ; x < width/2 ; x++){			
for (int y = 0 ; y < height ; y++){
	int a = getPixel (x,y);
	if (a == 255){
compteur++;}
}
}

double p = (compteur/R)*100;
 P = (int)p;

//droite

double compteur2 = 0;
for (int q = width/2 ; q < width ; q++){
for (int z = 0 ; z < height ; z++){
	int b = getPixel (q,z);
	if (b == 255){
compteur2++;}
}
}

double pp = (compteur2/R)*100;
 PP = (int)pp;

}




void reference (){
int width = getWidth();
int height = getHeight();
double R = width * height ;
int ref;
int reff;


double compteur = 0;

for (int x = 0 ; x < width/2 ; x++){
for (int y = 0 ; y < height ; y++){
	int a = getPixel (x,y);
	if (a == 255){
compteur++;}
}
}

double g = (compteur/R)*100;
 ref = (int)g;


double compteur2 = 0;
for (int q = width/2 ; q < width ; q++){
for (int z = 0 ; z < height ; z++){
	int b = getPixel (q,z);
	if (b == 255){
compteur2++;}
}
}

double d = (compteur2/R)*100;
 reff = (int)d;

}


void main(){
/*int ref;
int reff;
int P;
int PP;*/

load("1p.jpg", false);
pourcentage();

load("A.jpg",false); 
reference();
	if ( ref < P <= ref && reff < PP <= reff){
			println ( " Le 1er caractère est un A ");
	}

}
A voir également:

1 réponse

KX Messages postés 16755 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 3 020
13 avril 2015 à 22:41
Bonjour,

J'ai lu le code rapidement, mais comme j'ai pas trop compris le rapport avec les plaques d'immatriculation je me suis juste attaché à la syntaxe, et clairement ça c'est faux :
if ( ref < P <= ref && reff < PP <= reff)

Il faudrait plutôt écrire :
if (ref < P && P <= ref && reff < PP && PP <= reff)


Mais d'un point de vue de la logique booléenne, ce sera toujours faux.
Tu ne peux pas avoir P (resp. PP) qui est en même temps strictement supérieur et inférieur ou égal à la même valeur ref (resp. reff).

Imaginons que ref=0, ça voudrait dire que tu cherches P tel qu'il est à la fois négatif, et positif ou nul... c'est impossible.
0