Zugriff auf die Farbwerte eines Bildes

Status
Nicht offen für weitere Antworten.
H

Heidilein

Gast
Hi.
Ich komm sofort zum Thema: Ich hab ein Programm mit swing geschrieben, womit man Bilder laden kann. Die Bilder die ich habe, sind aber sehr dunkel. Ich möchte diese aufhellen bzw. normieren. Nur weiss ich nicht wo ich anfangen soll.
Wie kann ich auf die Farbwerte bzw. Grauwerte eines Bildes zugreifen? Gibt es da ein Package oder ne Methode oder Ähnliches?
 

The_S

Top Contributor
Jo, gibt schon vorgefertigte Filter (einfach mal im Forum suchen). Kannst dir aber auch die Methoden selber schreiben. Kleine Ansatz für das aufhellen

- Jeden Pixel des Bildes in zwei verschachtelten Schleifen durchgehen und holen mit buffimg.getRGB(x, y)
- daraus eine neue Color erstellen, von der dann die rot grün und blau werte (getRed(), getGeen(), getBlue()) auslesen
- diese dann um jeweils den selben wert erhöhen
- die Farbe auf den Pixel mit setRGB zurückschreiben

für Graustufen könnteste einfach den mittlerwert des Pixels ermitteln und dann alle farben auf diesen Ton setzen. Also (Rot + Grün + Blau) / 3
 
B

Beni

Gast
Guck dir auchmal "java.awt.image.ImageFilter" an. Zusammen mit der Source eines Images (Image#getSource) und einer FilteredImageSource kann man einen neuen ImageProducer erstellen. Mit "Toolkit#createImage" kriegt man dann wieder ein Bild (jedenfalls in der Theorie :bae:)
 
H

Heidilein

Gast
Also vorgefertigte Filter helfen mir eigentlich wenig. Ich hab ne Formel, wo ich den höchsten und den niedrigsten Grauwert benötige. Wie kann ich die raus finden und auf sie zugreifen?
 

lin

Top Contributor
Geh mit ner Schleife durchs ganze Bild und lies von jedem Pixel mit getRGB(x, y) den Wert raus, dann erstellst du eine neue Color davon und summierst die einzelnen Farbanteile auf und der Wert der am nächsten bei 0 ist ist der dunkleste Grauwert der der am nächsten bei 3*255 ist der hellste... (oder was meinst du mit höchstem und niedrigstem Grauwert :? )
 
H

Heidilein

Gast
Also ehrlich gesagt hab ich nix verstanden. Zumindest kann ich mir nicht vorstellen wie ich diese Schleife implementieren soll. Ich weiss einfach nicht wie ich die Werte der Pixel auslesen soll. Kannst du mir das evtl. so skizzenhaft hin schreiben, so dass ich mir wenigstens die Schleife mal ansehen kann?
 

lin

Top Contributor
also folgende Methode schreibt dir die Summe der RGB Werte eines jeden Pixels in ein 2D array, dabei steht die erste Dimension für die Zeilen und die zweite für die Spalten. path ist der pfad wo dein Bild liegt...
Bei einem grauen Bild werden die rot grün und blau -Anteile eines Pixels jeweils gleich gross sein, du könntest also auch nur einen der drei Werte ins Array speichern. Anschliessend kannst du den Maximal Wert im Array suchen (= hellstes Pixel) und das Minimum (= dunklestes Pixel). Danach wendest du deine Formel auf die Werte des Arrays an und schreibst die Werte des Arrays mit setRGB(x,y) zurück ins Bild....
Code:
// rgb values of every px of image are loaded into 2d array [x][y]
	private void loadImage() {
		try {
			BufferedImage img;
			BufferedInputStream in = new BufferedInputStream(
					new FileInputStream(path));
			img = ImageIO.read(in);
			W = img.getWidth();
			H = img.getHeight();

			// 2d array is initialized
			values = new int[H][W];
			
			// rgb values are read out and put into array
			for (int y = 0; y < H; y++) {
				for (int x = 0; x < W; x++) {
					Color col = new Color(img.getRGB(x, y));
					values[y][x] = ( col.getRed() + col.getGreen() + col.getBlue() );
				}
			}
		} catch (IOException ioe) {
			new JErrorHandler(ioe);
		}
	}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P JavaFX Zugriff auf Fenster/Layout-Container in eigenen Klassen AWT, Swing, JavaFX & SWT 5
J JavaFX JavaFX Splitpane - Zugriff auf die Controller der Elemente AWT, Swing, JavaFX & SWT 8
karlmasutra JavaFX Zugriff auf eine erzeugte Scene aus einer anderen Klasse AWT, Swing, JavaFX & SWT 1
L JavaFX Zugriff auf HostServices im FXML Controller AWT, Swing, JavaFX & SWT 1
K JTable in extra Klasse, Zugriff in einer anderen klasse nicht möglich AWT, Swing, JavaFX & SWT 26
J JavaFX Zugriff auf Child AWT, Swing, JavaFX & SWT 4
J JavaFX Zugriff auf FXML-Variablen eines anderen Controllers AWT, Swing, JavaFX & SWT 2
C JavaFX Zugriff auf TextField aus einer anderen Klasse AWT, Swing, JavaFX & SWT 4
wolfgang63 JavaFX Zugriff auf Guiobjekte die über FXML erstellt wurden AWT, Swing, JavaFX & SWT 2
F JavaFX Zugriff auf Controller Methode von einer normalen Klasse aus AWT, Swing, JavaFX & SWT 4
C JavaFX Zugriff auf TableView AWT, Swing, JavaFX & SWT 2
D JavaFX Zugriff auf Controller erlangen AWT, Swing, JavaFX & SWT 4
L Zugriff auf JavaFX Controls AWT, Swing, JavaFX & SWT 3
G JavaFX NullPointerException bei Zugriff auf FXML Element AWT, Swing, JavaFX & SWT 0
P Event Handling Anfängerfrage: ActionEvent bekommt kein Zugriff auf Objekt AWT, Swing, JavaFX & SWT 3
H SWT NullPointerException bei Zugriff auf Variablen des Hauptfensters AWT, Swing, JavaFX & SWT 6
K Zugriff auf Label und Ereignisbehandlung durch zwei Handlerklassen AWT, Swing, JavaFX & SWT 3
B Zugriff auf JFrame obwohl die Klasse abgeleitet ist AWT, Swing, JavaFX & SWT 3
V JTable: Zugriff auf einzelne Zellen AWT, Swing, JavaFX & SWT 4
L Swing ActionListener zugriff auf bestimmte Elemente AWT, Swing, JavaFX & SWT 3
A Swing Zugriff auf JButton AWT, Swing, JavaFX & SWT 2
M Zugriff auf Variablen eines Objektes ohne sie auf static zu setzen AWT, Swing, JavaFX & SWT 9
I Swing Zugriff auf ein Objekt AWT, Swing, JavaFX & SWT 2
M Zugriff paralleler Threads auf selbes JTextPane AWT, Swing, JavaFX & SWT 6
M JTree mit eigenen Knoten - Zugriff auf Daten AWT, Swing, JavaFX & SWT 6
N zugriff auf frame AWT, Swing, JavaFX & SWT 5
N Swing Zugriff JButton auf JTree AWT, Swing, JavaFX & SWT 4
D Zugriff auf Instanz der GUI AWT, Swing, JavaFX & SWT 3
E Swing DB Zugriff mit JProgressBar?! AWT, Swing, JavaFX & SWT 8
R Zugriff auf Model im MVC-Design aus SwingWorker heraus AWT, Swing, JavaFX & SWT 3
H Zugriff JPanel AWT, Swing, JavaFX & SWT 3
D Swing Storage von / Zugriff auf und durch Actions AWT, Swing, JavaFX & SWT 5
S this-Zugriff auf Container höherer Ebene AWT, Swing, JavaFX & SWT 2
S Swing Zugriff auf Polyline in Grafik AWT, Swing, JavaFX & SWT 4
E Swing Zugriff auf Attribute eines JFrames über einen JDialog AWT, Swing, JavaFX & SWT 2
J Zugriff auf HtmlPanel sperren AWT, Swing, JavaFX & SWT 3
D JTree - Zugriff auf Nodes mit Object AWT, Swing, JavaFX & SWT 6
R Zugriff auf Component um addComponentListener() aufzurufen AWT, Swing, JavaFX & SWT 4
O Zugriff auf PreferenceStore aus der Business-Logik-Schicht? AWT, Swing, JavaFX & SWT 11
S NumberFormatException beim Zugriff auf Leeres JTextField AWT, Swing, JavaFX & SWT 8
S Zugriff auf statische Var in MouseEvent -> Warnung AWT, Swing, JavaFX & SWT 6
M Fehler beim Zugriff von awt-KeyListener auf swt-Shell AWT, Swing, JavaFX & SWT 2
S Zugriff auf Elemente funktioniert mit SWING nicht mehr AWT, Swing, JavaFX & SWT 5
X Zugriff auf "Oberparents" ? AWT, Swing, JavaFX & SWT 4
J JTextArea wird nicht aktualisiert bei Zugriff von außerhalb AWT, Swing, JavaFX & SWT 2
O DB-Zugriff + wie darstellen? AWT, Swing, JavaFX & SWT 6
F Problem bei Zugriff auf ComboBox Item AWT, Swing, JavaFX & SWT 4
G Zugriff auf JTextField AWT, Swing, JavaFX & SWT 2
J Zugriff auf "dynamisch erzeugte" JTextFields AWT, Swing, JavaFX & SWT 2
J Zugriff auf letzte Klasse AWT, Swing, JavaFX & SWT 4
M Zugriff auf Methoden aus einem ActionListener AWT, Swing, JavaFX & SWT 2
F Zugriff auf Oberfläche bzw Trennung GUI / Logik AWT, Swing, JavaFX & SWT 3
I selectedText: Wie bekomme ich Zugriff auf den Text? AWT, Swing, JavaFX & SWT 4
G Zugriff auf Bilder verweigern AWT, Swing, JavaFX & SWT 7
G Zugriff auf TextField geht nicht AWT, Swing, JavaFX & SWT 5
G zugriff auf benutzeroberflächenelemente AWT, Swing, JavaFX & SWT 4
V Zugriff auf Components aus einem ActionListener AWT, Swing, JavaFX & SWT 3
M ActionListener-Zugriff durch mehrere Frames AWT, Swing, JavaFX & SWT 5
M Zugriff auf ComboBox! AWT, Swing, JavaFX & SWT 17
G Excel-Zugriff über POI: wohin mit dem Package? AWT, Swing, JavaFX & SWT 4
B Zugriff von Toolbar auf zugehörigen Frame AWT, Swing, JavaFX & SWT 6
O JTabbedPane - Zugriff auf die Elemente eines Tabs AWT, Swing, JavaFX & SWT 4
O JFileChooser - Zugriff auf Dateiname-Feld und Save-Button? AWT, Swing, JavaFX & SWT 6
E Zugriff auf JTextField nach Buttonklick AWT, Swing, JavaFX & SWT 6
M Swing Farbwerte ändern AWT, Swing, JavaFX & SWT 3
G Bildpixel ansprechen und Farbwerte abfragen AWT, Swing, JavaFX & SWT 4
jojoge wie kann ich in eine Benennung eines JButtons eine Variable einbauen? AWT, Swing, JavaFX & SWT 6
L paintComponent in Panel eines Borderlayouts hinzufügen AWT, Swing, JavaFX & SWT 3
I Einbindung eines jpg/png/icons in eine GUI AWT, Swing, JavaFX & SWT 1
Splayfer Umrandung eines AttributedStrings AWT, Swing, JavaFX & SWT 2
Guybrush Threepwood Einfachste Möglichkeit zum Abspielen eines Videos in Swing AWT, Swing, JavaFX & SWT 4
Jose05 NullPointerException bei Beschreiben eines Labels aus einem Array AWT, Swing, JavaFX & SWT 12
Jose05 zugreifen auf ein Objekt eines GridPanes AWT, Swing, JavaFX & SWT 0
melaniemueller Verschiebung eines Fensters über Button AWT, Swing, JavaFX & SWT 27
news2swen automatisches erstellen eines Languagefiles AWT, Swing, JavaFX & SWT 1
B Stylen eines JTextPane funktioniert nicht AWT, Swing, JavaFX & SWT 1
MiMa Schliessen eines FXML Fensters? AWT, Swing, JavaFX & SWT 10
B JavaFX Farbe eines Quadrates in einer separaten Klasse ändern AWT, Swing, JavaFX & SWT 4
L AWT Ändern der Farbe eines BufferedImage mit Farbähnlichkeit AWT, Swing, JavaFX & SWT 5
B veränderte Größe eines Panels im Vorhinein wissen? AWT, Swing, JavaFX & SWT 1
L Komponenten eines Panels werden erst nach Klick darauf angezeigt AWT, Swing, JavaFX & SWT 13
L JavaFX Validierung eines Spinner AWT, Swing, JavaFX & SWT 1
M Builden eines lauffähigen JAR Files AWT, Swing, JavaFX & SWT 3
K Swing Text eines Lables in einer Methode ändern AWT, Swing, JavaFX & SWT 13
M JavaFX rotieren eines Kreises mit konstanter Geschwindigkeit AWT, Swing, JavaFX & SWT 1
K JavaFX Allgemeine Fragen zu dem Aufbau eines Programms hinsichtlich der Klassen AWT, Swing, JavaFX & SWT 1
M JavaFX Auf ein UI Elemement eines anderen Controllers zugreifen AWT, Swing, JavaFX & SWT 0
P Bewegung eines Balkens in eineum JPanel welches als Spielfeld fungiert AWT, Swing, JavaFX & SWT 2
Tronert JavaFX Linienstärke eines Separators ändern? AWT, Swing, JavaFX & SWT 3
N JavaFX Group: Gezieltes entfernen eines Objects (Rectangle) AWT, Swing, JavaFX & SWT 0
J Ziehen eines Buttons im JPanel AWT, Swing, JavaFX & SWT 2
J Drag and Drop eines Buttons AWT, Swing, JavaFX & SWT 0
M NullPointerException bei Übergabe eines RadioButtons AWT, Swing, JavaFX & SWT 11
DaCrazyJavaExpert Swing Extern den Text eines nicht fetsgelegten Buttons bekommen. AWT, Swing, JavaFX & SWT 12
J JavaFX Rectangle innerhalb eines Rectangle oder Panes positionieren? AWT, Swing, JavaFX & SWT 1
C JavaFX Inhalt eines SplitPane's durch Menü-Auswahl ändern? AWT, Swing, JavaFX & SWT 13
J linken Bildausschnitt eines BufferedImage abschneiden AWT, Swing, JavaFX & SWT 4
J bestimmten Bereich eines JPanels drucken AWT, Swing, JavaFX & SWT 2
D LookAndFeel Überschreiben eines UIDelegate AWT, Swing, JavaFX & SWT 0
T Java FX Probleme beim befüllen eines Tableviews AWT, Swing, JavaFX & SWT 5

Ähnliche Java Themen

Neue Themen


Oben