Bild als mehrdimesionaler Array

Status
Nicht offen für weitere Antworten.
T

Timee

Gast
Hallo ihr!

Ich hab schon viel gegogelt und in Foren gesucht, aber leider noch nichts brauchbares gefunden.
Ich möchte eine Bilddatei einlesen und als mehrdimensionalen Array speichern und damit dann weiterarbeiten. Im Array soll nur ein Wert für schwarz oder weiss (1 oder 0) gespeichert werden.
Das einlesen funktioniert wunderbar, außer das ich bei der Ausgabe in der Console die Arraywerte spiegelverkehrt und vertikal anstatt horizontal angezeigt werden (habe schon stundenlang rumprobiert, aber bekomm es einfach nicht hin das es richtig ist)

Hier der Code:
Code:
package picture_analyzer2;

import java.awt.image.BufferedImage;
import java.awt.image.Raster;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.JFileChooser;

public class PixelWorks 
{
	public static final double THREASHOLD = 3.; 
	
	private static BufferedImage img;
	
	public static void main(String... args) 
	{
		final JFileChooser chooser = new JFileChooser();
		chooser.showOpenDialog(null);
		final File pic = chooser.getSelectedFile();
		
		try 
		{
			img = ImageIO.read(
					new BufferedInputStream(
							new FileInputStream(pic)));
		} 
		catch (FileNotFoundException e) { e.printStackTrace();} 
		catch (IOException e) { e.printStackTrace(); }
		
		final Raster raster = img.getRaster();
		int maxX = raster.getWidth();
		int maxY = raster.getHeight();
		final int[][] values = new int[maxY][maxX];
		for(int x = 0; x < maxX; x++)
			for(int y = 0; y < maxY; y++)
				if (raster.getPixel(y, x, (double[])null)[0] <= THREASHOLD)
				{
				values[y][x] = 1;	
				}
				
		for(int[] n : values)
		{
			for(int i : n)
				System.out.print(i > 0 ? '#' : '.');
			
			System.out.println();
		}
			
		
	}
}


in der Konsole sieht das Bild (hier ein bitmap mit ein paar Buchstaben, hier ein "A") dann aber so aus:
......................................................................................................................
...................................................................####...............................................................................
.................................................................######...............................................................................
..............................................................#########...............................................................................
...........................................................#########..................................................................................
.........................................................########.....................................................................................
......................................................#########.......................................................................................
...................................................############.......................................................................................
................................................#########...###.......................................................................................
..............................................########......###.......................................................................................
...........................................########.........###.......................................................................................
.........................................#######............###.......................................................................................
.........................................####...............###.......................................................................................
.........................................####...............###.......................................................................................
.........................................#######............###.......................................................................................
..........................................#########.........###.......................................................................................
.............................................#########......###.......................................................................................
...............................................##########...###.......................................................................................
..................................................#########.###.......................................................................................
.....................................................##########.......................................................................................
.......................................................##########.....................................................................................
..........................................................##########..................................................................................
.............................................................#########................................................................................
................................................................#######...............................................................................
..................................................................#####...............................................................................
.....................................................................##...............................................................................
......................................................................................
Das ganze ist hier verzerrt. die proportionen stimmen in der Konsole überein.

Vielleicht könnte einer von euch mal kurz den Code überfliegen und mir eine kleine Hilfestellung geben, was ich falsch mache

Danke schon mal im vorraus :)

Gruß,
Timee
 
S

SlaterB

Gast
horizontal/ vertikal:
statt erst ein Array n : values ganz auszugeben musst du von jedem Unter-Array den ersten Wert ausgeben, dann jeweils den zweiten usw.

spiegelverkehrt:
nicht vorne mit Index 0, 1, 2 anfangen, sondern rückwärts n-1, n-2 usw.

--------

oder die Ausgabe so lassen und die Speicherung umkehren, statt
values[y][x] = 1;
besser
values[x][y] = 1;
oder
values[x][maxY-y] = 1;

dazu natürlich
final int[][] values = new int[maxX][maxY];
statt
final int[][] values = new int[maxY][maxX];

das sind doch einfache Schritte, alles mal ausprobieren..
 

doctus

Bekanntes Mitglied
Die Verzerrung kann daran liegen, dass die verwendeten Zeichen nicht die selbe Breite beanspruchen. Die Raute hat grob geschätzt mindestens die doppelte Breite von dem Punkt.
 
T

Timee

Gast
@SlaterB: Danke für deine Hilfe, hab einfach an der falschen Stelle gesucht.

@doctus: das ist schon klar, in der Console stimm das seitenverhältnis. hier im forum ist eben keine konsolenschrift.
 
S

SlaterB

Gast
so ginge die Anzege hier (quote mein Posting um die nötigen Befehle zu sehen)

Code:
.......................................................................................
...................................................................####.........
.................................................................######.......
..............................................................#########...
...........................................................#########......
.........................................................########..........
......................................................#########...........
...................................................############.......
................................................#########...###.......
..............................................########......###........
...........................................########.........###........
.........................................#######............###.........
.........................................####...............###.............
.........................................####...............###.............
.........................................#######............###.........
..........................................#########.........###.......
.............................................#########......###.......
...............................................##########...###......
..................................................#########.###.......
.....................................................##########..........
.......................................................##########........
..........................................................##########.....
.............................................................#########....
................................................................#######......
..................................................................#####.........
.....................................................................##.............
......................................................................................
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Bild wird nicht geladen Spiele- und Multimedia-Programmierung 4
D Java Bild bewegen funktioniert nicht Spiele- und Multimedia-Programmierung 8
J OpenGL Bild wird nicht richtig angezeigt Spiele- und Multimedia-Programmierung 2
S Wie kann ich ein Bild in einen Frame einfügen? Spiele- und Multimedia-Programmierung 2
U DPI von einem Bild definieren Spiele- und Multimedia-Programmierung 5
J Bild ohne Quallitätsverlust skalieren Spiele- und Multimedia-Programmierung 11
Silvascus Bild --> JFrame Hintergrund Spiele- und Multimedia-Programmierung 3
D getsubimage aus BufferedImage und Rueckwandlung in ein ImagePlus bild Spiele- und Multimedia-Programmierung 0
A Bild(sequenz) wird nicht geladen Spiele- und Multimedia-Programmierung 1
windl EXIFF Header in ein Bild schreiben Spiele- und Multimedia-Programmierung 0
L Bild in Richtung Maus drehen Spiele- und Multimedia-Programmierung 4
B Bild ohne Image auf die Festplatte streamen Spiele- und Multimedia-Programmierung 4
R [lwjgl] Cursor -> versetzt Zeichnen / Bild ist umgedreht Spiele- und Multimedia-Programmierung 2
F [JMyron] Bild von int[] zu BufferedImage Spiele- und Multimedia-Programmierung 2
Hoppelmann Alphamap (Bild) für 3D-Terrain generieren Spiele- und Multimedia-Programmierung 2
K Bild von USB-Webcam über JMF Spiele- und Multimedia-Programmierung 2
M Farbwerte für Flächen aus einem Bild erkennen Spiele- und Multimedia-Programmierung 3
S Wolken Bild/Grafik vom Programm erstellen lassen Spiele- und Multimedia-Programmierung 11
P Bild Pixelweise auslesen Spiele- und Multimedia-Programmierung 13
K Bild berührt Bild Spiele- und Multimedia-Programmierung 29
aze Nicht rechteckiges Bild zeichnen Spiele- und Multimedia-Programmierung 5
A Bild einer Webcam auffangen Spiele- und Multimedia-Programmierung 20
B Generierung einer Wertetabelle aus einem Bild Spiele- und Multimedia-Programmierung 3
lumo LWJGL - Bild rendern Spiele- und Multimedia-Programmierung 16
A .jpg-Bild auf andere Position verschieben Spiele- und Multimedia-Programmierung 4
F Bild im sourcecode Spiele- und Multimedia-Programmierung 32
F Bild einfärben Spiele- und Multimedia-Programmierung 5
J JOGL - Bild wird immer wieder weiß Spiele- und Multimedia-Programmierung 2
Q Rechteck in BIld suchen Spiele- und Multimedia-Programmierung 8
M Bild kopieren Spiele- und Multimedia-Programmierung 2
S Bild capturen mit direcShow Spiele- und Multimedia-Programmierung 2
B Character Bild links/rechts Spiele- und Multimedia-Programmierung 19
Developer_X Bild Größe einstellen Spiele- und Multimedia-Programmierung 2
ARadauer bild in bild suchen Spiele- und Multimedia-Programmierung 6
M 2D - Bild um y-Achse drehen Spiele- und Multimedia-Programmierung 9
S Bild spiegeln Spiele- und Multimedia-Programmierung 7
N Farberkennung und -ersetzung in einem Bild Spiele- und Multimedia-Programmierung 2
G Palette aus Bild extrahieren Spiele- und Multimedia-Programmierung 5
A Wasserzeichen auf Bild Spiele- und Multimedia-Programmierung 2
G Paintsurface ins Bild konvertieren Spiele- und Multimedia-Programmierung 8
M Sich nach links verschiebendes Bild Spiele- und Multimedia-Programmierung 2
F Bild generieren Spiele- und Multimedia-Programmierung 3
J Animation hinter transparentem Bild auf der GlassPane Spiele- und Multimedia-Programmierung 6
A Kein Bild Spiele- und Multimedia-Programmierung 3
H Bild von Webcam laden Spiele- und Multimedia-Programmierung 4
P Bild, Pixel- / Bereichsfarbe auslesen Spiele- und Multimedia-Programmierung 12
G start Bild einfrügen in ein Java Spiel Spiele- und Multimedia-Programmierung 7
Quaxli off-topic: HDR-Bild errechnen Spiele- und Multimedia-Programmierung 3
P linie in bild zeichnen Spiele- und Multimedia-Programmierung 2
G Auf Tastendruck bild verschieben Spiele- und Multimedia-Programmierung 5
O ich hab da ein problem mit nem bild Spiele- und Multimedia-Programmierung 8
C JPEG oder BMP Bild erstellen Spiele- und Multimedia-Programmierung 5
A Bild im Raum darstellen (Texture2D) Spiele- und Multimedia-Programmierung 4
V Wie berechnet man das Bild eines Schwarzen Loches in Java? Spiele- und Multimedia-Programmierung 10
K Einzelne Pixel in einem Bild lesen Spiele- und Multimedia-Programmierung 5
N Bild zu zeichnen (drawImage) klappt nur manchmal?? Spiele- und Multimedia-Programmierung 8
P repaint verschiebt das Bild Spiele- und Multimedia-Programmierung 2
S BMP-Bild Pixel für Pixel bearbeiten Spiele- und Multimedia-Programmierung 1
P 2D Bild drehen Spiele- und Multimedia-Programmierung 4
M durchsichtiges Bild nach clearRect Spiele- und Multimedia-Programmierung 8
M RGB-Bild in Graustufen-Bild umwandeln Spiele- und Multimedia-Programmierung 2
M Bild-Spiegelung mit Java! Spiele- und Multimedia-Programmierung 5
S Bild auf Bild = Nichts? Spiele- und Multimedia-Programmierung 3
S Bild in Speicherbild zeichnen = Nichts? Spiele- und Multimedia-Programmierung 3
N Bild im Panel ändern Spiele- und Multimedia-Programmierung 3
D nicht 4-eckiges bild auf Hintergrund bewegen Spiele- und Multimedia-Programmierung 2
R Bild drehen Spiele- und Multimedia-Programmierung 24
J Bild generieren Spiele- und Multimedia-Programmierung 5
X Bild auf aktueller position drehen Spiele- und Multimedia-Programmierung 2
K Java2d Bild als JPG oder so speichern Spiele- und Multimedia-Programmierung 10
A Spielfelder erstellen mit Jogl Java durch ein Koordinaten Array Spiele- und Multimedia-Programmierung 1
A Multidimensionler Array - Elemente vergleichen (TicTacToe) Spiele- und Multimedia-Programmierung 4
T LWJGL: Terrain-Texturen / 2D-Array in Shader? Spiele- und Multimedia-Programmierung 2
J Frage zum Einlesen einer .wav in ein byte Array Spiele- und Multimedia-Programmierung 3
B klassenobjekte als Array Spiele- und Multimedia-Programmierung 3
Seikuassi gluLookAt mit glMultMatrix und Array Spiele- und Multimedia-Programmierung 3
Androbin mehr-dimensionale(n) Array(s) "drehen" Spiele- und Multimedia-Programmierung 8
N [SLICK] Rectangle in Array Speichern Spiele- und Multimedia-Programmierung 3
L Slick-Image aus byte-array erzeugen Spiele- und Multimedia-Programmierung 2
A Patter Array Eintrag vergleichen geht nicht!!! Spiele- und Multimedia-Programmierung 3
J A*, Array und KI Spiele- und Multimedia-Programmierung 5
L Tile Map als Array? Spiele- und Multimedia-Programmierung 23
O In Array Pulk von gleichen Zahlen finden. Spiele- und Multimedia-Programmierung 4
K Schiebepuzzle Array Zufallszahlen Problem Spiele- und Multimedia-Programmierung 8
R Schach, Array und GUI Verknüpfung, enum Spiele- und Multimedia-Programmierung 16
B Array und Parameter Spiele- und Multimedia-Programmierung 38
S Methode verändert mein Eingabe Array oO Spiele- und Multimedia-Programmierung 6
Z Kugeln aufgrund von Daten aus einem Array verschieben Spiele- und Multimedia-Programmierung 2
P int-Array zu BufferedImage (performance?) Spiele- und Multimedia-Programmierung 14
D Array aus Objekten Spiele- und Multimedia-Programmierung 2
H Jpeg Bildinformation in ein Char Array speichern? Spiele- und Multimedia-Programmierung 4
J Array/Matrix auswerten. Spiele- und Multimedia-Programmierung 6
C Array 'Wiederbenuezten' - Map Spiele- und Multimedia-Programmierung 4
B Ein Array für Buttons Spiele- und Multimedia-Programmierung 8
T 2 Dimensionales Array herausschreiben Spiele- und Multimedia-Programmierung 4
N Array mit verschiedenen Klassen Spiele- und Multimedia-Programmierung 15
G 2 dim. Pixel Array in AWT? Spiele- und Multimedia-Programmierung 7

Ähnliche Java Themen


Oben