You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

43 lines
1.7 KiB
Java

package peery;
import peery.pointgenerator.PointMap;
import peery.voronoi.VoronoiRender;
import peery.voronoi.simplevoronoi.GraphEdge;
import peery.voronoi.simplevoronoi.Voronoi;
import java.awt.image.BufferedImage;
import java.io.File;
import java.util.List;
import peery.file.FileHandler;
import peery.log.Log;
import peery.log.LogLevel;
public class Vorosaic {
public static void main(String[] args) {
FileHandler fh = new FileHandler("resources");
BufferedImage img = fh.loadImage(fh.TargetImageFile);
Log.log(LogLevel.Debug, "Image size is "+img.getWidth()+"x"+img.getHeight()+"! Pixels:"+img.getWidth()*img.getHeight());
Voronoi vor = new Voronoi(1);
PointMap p = new PointMap(img);
p.placePoints(89753, 0.1);
List<GraphEdge> edges = vor.generateVoronoi(p.getXValues(), p.getYValues(), 0, p.getWidth(), 0, p.getHeight());
fh.saveImage(p.render(), new File(fh.OutputFolder+fh.fs+"Output-points.png"));
Log.log(LogLevel.Debug, edges.size()+" points have been placed!");
fh.saveImage(VoronoiRender.renderGraph(edges, p.getWidth(), p.getHeight()), new File(fh.OutputFolder+fh.fs+"Output-voronoi.png"));
Log.log(LogLevel.Info, "Starting cellMap ...");
int[][] cellMap = VoronoiRender.getCellMap(p.getPoints(), p.getWidth(), p.getHeight());
Log.log(LogLevel.Info, "Finished cellMap!");
Log.log(LogLevel.Info, "Starting cellColors ...");
int[] cellColors = VoronoiRender.getCellColors(img, p.getPoints(), cellMap);
Log.log(LogLevel.Info, "Finished cellColors!");
Log.log(LogLevel.Info, "Starting Voronoi Render ...");
fh.saveImage(VoronoiRender.renderColorVoronoi(p.getPoints(), cellColors, cellMap), new File(fh.OutputFolder+fh.fs+"Output-render.png"));
}
}