package interpretacja; import interpretacja.gramatyka.DiagramBlokowy; import interpretacja.gramatyka.GSymbol; import interpretacja.gramatyka.Prostokat2; import interpretacja.gramatyka.Rownoleglobok; import interpretacja.gramatyka.ZamknietaKrzywa; import java.io.File; import java.util.ArrayList; import java.util.List; import pl.wroc.pwr.file.ImageFolderScanner; import pl.wroc.pwr.image.IRGBImage; import pl.wroc.pwr.image.io.GenericLoader; import pl.wroc.pwr.image.io.GenericSaver; import wektoryzacja.Graf; public class AnalizujGraf { private WczytanieGrafu wczytanie = new WczytanieGrafu(); public void testuj(File plik) { System.out.println("Przetwarzam obraz: " + plik.getName()); Graf gInput = this.wczytanie.czytaj(new File(plik.getPath() + ".vector")); if (gInput == null) { System.out.println("Problem z wczytywaniem grafu."); return; } GrafAdv g = new GrafAdv(gInput); RysujInterpretacje rysuj = new RysujInterpretacje(); WybierzInterpretacje wybor = new WybierzInterpretacje(); IRGBImage image = new GenericLoader(plik.getPath()).apply(); List kolory = new ArrayList(); kolory.add(new float[]{1, 0, 0}); kolory.add(new float[]{0, 1, 0}); kolory.add(new float[]{0, 0, 1}); kolory.add(new float[]{1, 1, 0}); kolory.add(new float[]{1, 0, 1}); kolory.add(new float[]{0, 1, 1}); List symbole = new ArrayList(); //symbole.add(new Prostokat2()); //symbole.add(new Rownoleglobok()); //symbole.add(new ZamknietaKrzywa()); symbole.add(new DiagramBlokowy()); //symbole.add(new Linia(15)); //symbole.add(new LacznikL()); //symbole.add(new Prostokat()); List wszystkieProdukcje = new ArrayList(); for (int i = 0; i < symbole.size(); i++) { GSymbol symbol = symbole.get(i); for (int u = 0; u < g.N().size(); u++) { //if (g.N(u)[1] == 239) { Produkt h = new Produkt(u, null); List odpowiedz = symbol.akceptuj(h, g); wszystkieProdukcje.addAll(odpowiedz); //} //rysuj.rysuj(image, odpowiedz, kolory.get(i)); } } Produkt interpretacje = null; interpretacje = wybor.wybierzInterpretacje(wszystkieProdukcje, g); if (interpretacje != null) { rysuj.rysuj(image, interpretacje, kolory.get(0)); } else { rysuj.rysuj(image, wszystkieProdukcje, kolory.get(1)); } File plikWyjscia = new File("/home/mariusz/dane/nekst/wyniki/" + plik.getName()); new GenericSaver(image, plikWyjscia).apply(); } public static void main(String[] args) { AnalizujGraf testowy = new AnalizujGraf(); File folder = new File("/home/mariusz/dane/nekst/diagramy"); List obrazy = new ImageFolderScanner().apply(folder); for (File obraz : obrazy) { //if (obraz.getName().equals("13.png")) { testowy.testuj(obraz); //} } } }