added all past projects

This commit is contained in:
Hannes
2017-11-10 00:13:57 +01:00
parent 5f63f0c599
commit 8c94608805
1391 changed files with 109456 additions and 0 deletions

View File

@@ -0,0 +1,57 @@
package wettbewerb_csv_foto;
import java.util.ArrayList;
public class Camera {
private int id;
private String name;
private ArrayList<Image> images = new ArrayList();
public Camera(int id, String name) {
this.id = id;
this.name = name;
}
public int countImages() {
return getImages().size();
}
public String writeLine() {
String s = "";
short i = 0;
for (Image image : images) {
s = s + this.name + " " + this.id + i + ";";
s = s + image.getAbstand() + ";";
s = s + image.getStreuung() + ";";
s = s + System.getProperty("line.separator");
i++;
}
s = s.replace(".", ",");
return s;
}
public void AddImage(String path) {
Image tmp = new Image();
Pixel[] Pixel = new Pixel[0];
Pixel = tmp.Load(path).toArray(Pixel);
System.out.println(this.name + this.id + " loaded a new Image");
getImages().add(tmp);
}
private Image avgImage() {
if (getImages().size() == 0) {
return null;
}
Image avg = new Image();
return avg;
}
/**
* @return the images
*/
public ArrayList<Image> getImages() {
return images;
}
}

View File

@@ -0,0 +1,149 @@
package wettbewerb_csv_foto;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
public class Image {
private int width = 0, height = 0;
private double abstand, streuung;
//Streuung
private void sigmaDist(double durchschnitt, ArrayList<Pixel> pMap) {
double s = 0;
for (int i = 0; i < pMap.size() - width; i++) {
Pixel p = pMap.get(i);
Pixel q = pMap.get(i + width);
s = s + ((pixelDist(p, q) - durchschnitt) *
(pixelDist(p, q) - durchschnitt));
}
streuung = Math.sqrt(s / (pMap.size() - width));
}
private double pixelDist(Pixel p, Pixel q) {
double d = Math.sqrt((p.r - q.r) * (p.r - q.r)
+ (p.g - q.g) * (p.g - q.g)
+ (p.b - q.b) * (p.b - q.b));
return d;
}
private void avgDist(ArrayList<Pixel> pMap) {
double d = 0;
for (int i = 0; i < pMap.size() - width; i++) {
d = d + pixelDist(pMap.get(i), pMap.get(i + width));
}
abstand = d / (pMap.size() - width);
}
private void compute(ArrayList<Pixel> pMap) {
int size = pMap.size();
avgDist(pMap);
sigmaDist(abstand, pMap);
System.out.println(getAbstand());
}
//Lädt Image und gibt Farbspektrum zurück (um speicherplatz zu sparen)
public ArrayList<Pixel> Load(String path) {
ArrayList<Pixel> pixelMap = new ArrayList();
int i = 0;
BufferedReader br = null;
try {
StringBuilder sb = new StringBuilder();
br = new BufferedReader(new FileReader(path));
if (readHeader(br)) {
while (br.ready()) {
short r = (short) readInt(br);
short g = (short) readInt(br);
short b = (short) readInt(br);
if (r >= 0 && g >= 0 && b >= 0) {
pixelMap.add(new Pixel(i, r, g, b));
i++;
}
}
}
} catch (IOException e) {
System.out.println(e);
}
compute(pixelMap);
return pixelMap;
}
private boolean readHeader(BufferedReader br) {
try {
char c1 = (char) br.read();
char c2 = (char) br.read();
if (c1 == 'P' && c2 == '3') {
width = readInt(br);
height = readInt(br);
int maxVal = readInt(br);
return true;
} else {
return false;
}
} catch (IOException e) {
System.out.println(e);
return false;
}
}
/// Utility routine to read the first non-whitespace character.
private static char readNonwhiteChar(BufferedReader bf) throws IOException {
char c;
do {
c = (char) bf.read();
} while (c == ' ' || c == '\t' || c == '\n' || c == '\r');
return c;
}
private int readInt(BufferedReader br) throws IOException {
char c;
int i;
c = readNonwhiteChar(br);
i = 0;
do {
i = i * 10 + c - '0';
c = (char) br.read();
} while (c >= '0' && c <= '9');
return i;
}
public int getWidth() {
return width;
}
/**
* @return the height
*/
public int getHeight() {
return height;
}
public int getPixelCount() {
return height * width;
}
/**
* @return the abstand
*/
public double getAbstand() {
return abstand;
}
/**
* @return the streuung
*/
public double getStreuung() {
return streuung;
}
}

View File

@@ -0,0 +1,11 @@
package wettbewerb_csv_foto;
public class Pixel {
short r,g,b;
public Pixel(int id,short R, short G, short B)
{
r = R;
g = G;
b = B;
}
}

View File

@@ -0,0 +1,99 @@
package wettbewerb_csv_foto;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
public class Wettbewerb_CSV_Foto {
static Camera uCam;
static ArrayList<Camera> cam = new ArrayList();
public static void main(String[] args) throws IOException {
LoadCameras();
LoadImages();
createCSV("C:\\Users\\Hannes\\Desktop\\", "output.csv");
}
public static void LoadCameras() {
uCam = new Camera(0, "Unbekannt");
for (int i = 1; i <= 5; i++) {
cam.add(new Camera(i, "Kamera"));
}
System.out.println("Cameras added!");
}
public static void LoadImages() {
uCam.AddImage("C:\\Users\\Hannes\\Documents\\Fotos\\Kanne.ppm");
System.out.println("Unknown Image Loaded");
cam.get(0).AddImage("C:\\Users\\Hannes\\Documents\\Fotos\\Kamera1\\K1Bild1.ppm");
cam.get(0).AddImage("C:\\Users\\Hannes\\Documents\\Fotos\\Kamera1\\K1Bild2.ppm");
cam.get(0).AddImage("C:\\Users\\Hannes\\Documents\\Fotos\\Kamera1\\K1Bild3.ppm");
cam.get(0).AddImage("C:\\Users\\Hannes\\Documents\\Fotos\\Kamera1\\K1Bild4.ppm");
cam.get(0).AddImage("C:\\Users\\Hannes\\Documents\\Fotos\\Kamera1\\K1Bild5.ppm");
System.out.println("Images Camera 1 Loaded");
cam.get(1).AddImage("C:\\Users\\Hannes\\Documents\\Fotos\\Kamera2\\K2Bild1.ppm");
cam.get(1).AddImage("C:\\Users\\Hannes\\Documents\\Fotos\\Kamera2\\K2Bild2.ppm");
cam.get(1).AddImage("C:\\Users\\Hannes\\Documents\\Fotos\\Kamera2\\K2Bild3.ppm");
cam.get(1).AddImage("C:\\Users\\Hannes\\Documents\\Fotos\\Kamera2\\K2Bild4.ppm");
cam.get(1).AddImage("C:\\Users\\Hannes\\Documents\\Fotos\\Kamera2\\K2Bild5.ppm");
System.out.println("Images Camera 2 Loaded");
cam.get(2).AddImage("C:\\Users\\Hannes\\Documents\\Fotos\\Kamera3\\K3Bild1.ppm");
cam.get(2).AddImage("C:\\Users\\Hannes\\Documents\\Fotos\\Kamera3\\K3Bild2.ppm");
cam.get(2).AddImage("C:\\Users\\Hannes\\Documents\\Fotos\\Kamera3\\K3Bild3.ppm");
cam.get(2).AddImage("C:\\Users\\Hannes\\Documents\\Fotos\\Kamera3\\K3Bild4.ppm");
cam.get(2).AddImage("C:\\Users\\Hannes\\Documents\\Fotos\\Kamera3\\K3Bild5.ppm");
System.out.println("Images Camera 3 Loaded");
cam.get(3).AddImage("C:\\Users\\Hannes\\Documents\\Fotos\\Kamera4\\K4Bild1.ppm");
cam.get(3).AddImage("C:\\Users\\Hannes\\Documents\\Fotos\\Kamera4\\K4Bild2.ppm");
cam.get(3).AddImage("C:\\Users\\Hannes\\Documents\\Fotos\\Kamera4\\K4Bild3.ppm");
cam.get(3).AddImage("C:\\Users\\Hannes\\Documents\\Fotos\\Kamera4\\K4Bild4.ppm");
System.out.println("Images Camera 4 Loaded");
cam.get(4).AddImage("C:\\Users\\Hannes\\Documents\\Fotos\\Kamera5\\K5Bild1.ppm");
cam.get(4).AddImage("C:\\Users\\Hannes\\Documents\\Fotos\\Kamera5\\K5Bild2.ppm");
cam.get(4).AddImage("C:\\Users\\Hannes\\Documents\\Fotos\\Kamera5\\K5Bild3.ppm");
cam.get(4).AddImage("C:\\Users\\Hannes\\Documents\\Fotos\\Kamera5\\K5Bild4.ppm");
cam.get(4).AddImage("C:\\Users\\Hannes\\Documents\\Fotos\\Kamera5\\K5Bild5.ppm");
System.out.println("Images Camera 5 Loaded");
}
public static void createCSV(String path, String filename) throws IOException {
File file = new File(path, filename);
if (!file.isFile() && !file.createNewFile()) {
throw new IOException("Error creating new file: " + file.getAbsolutePath());
}
try {
FileWriter writer = new FileWriter(path + filename);
writer.append("Foto;Durchschnittlicher Abstand; Streuung" + System.getProperty("line.separator"));
for (int i = 0; i < cam.size(); i++) {
writeLine(writer, cam.get(i));
}
writeLine(writer, uCam);
System.out.println("Written Data to File");
//generate whatever data you want
writer.flush();
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static FileWriter writeLine(FileWriter writer, Camera camera) throws IOException {
writer.append(camera.writeLine());
return writer;
}
}