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 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
| import java.io.*;
import java.util.List;
import java.util.ArrayList;
public class Exer
{
static List<Integer> Image1 = new ArrayList<Integer>();
static List<Integer> Image2 = new ArrayList<Integer>();
static float C = 0;
static int nd = 0;
static int ni = 0;
static int nt = 0;
private static BufferedReader br;
//
// main()
//
public static void main(String[] args)
{
// lire image 1
Image1 = ReadImage("image1.txt");
nt = Image1.size();
// lire image 2
Image2 = ReadImage("image2.txt");
// comparer les 2 images
CompareImages();
// calculer le coefficient
CalculateC();
// afficher les resultats et dans fichier out
OutputResultats();
}
//
// ReadImage()
//
private static List<Integer> ReadImage(String filename)
{
List<Integer> Image = new ArrayList<Integer>();
String str;
try
{
br = new BufferedReader(new FileReader(filename));
// pour toutes les lignes du fichiers
while ( ( str = br.readLine() ) != null )
{
// convertir la lignes de character en tableau integer
for (int i = 0; i < str.length(); i++)
{
// ajouter chaque pixel dans la liste
Image.add(Character.digit(str.charAt(i), 10));
}
}
}
catch (Exception e)
{
System.err.println("Error: " + e.getMessage());
}
return ( Image );
}
//
// CompareImages()
//
private static void CompareImages()
{
// pour tous les pixels de l'image 1
for (int i = 0; i < Image1.size(); i++)
{
// si pixel de l'image1 est le meme que pixel image2
if ( Image1.get(i) == Image2.get(i) )
{
// identique
ni = ni + 1;
}
// sinon
else
{
// different
nd = nd + 1;
}
}
}
//
// CalculateC()
//
private static void CalculateC()
{
C = nd;
C = C / nt;
C = 1 - C;
}
//
// OutputResultats()
//
private static void OutputResultats()
{
try
{
// afficher a l'ecran
System.out.format("Nombre de pixels total = %d%n", nt );
System.out.format("Nombre de pixels identiques = %d%n", ni );
System.out.format("Nombre de pixels differentes = %d%n", nd);
System.out.format("Coefficient de ressemblance = %f%%%n", C*100 );
// afficher dans fichier out
PrintWriter pw = new PrintWriter(new FileWriter("resultats.txt"), true);
pw.printf("Nombre de pixels total = %d%n", nt );
pw.printf("Nombre de pixels identiques = %d%n", ni );
pw.printf("Nombre de pixels differentes = %d%n", nd);
pw.printf("Coefficient de ressemblance = %f%%%n", C*100 );
pw.close();
}
catch (Exception e)
{
System.err.println("Error: " + e.getMessage());
}
}
} |
Partager