farbbild_-_graubild_-_binaerbild
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
farbbild_-_graubild_-_binaerbild [2024/01/20 09:11] – [Beispiel] torsten.roehl | farbbild_-_graubild_-_binaerbild [2024/01/20 09:26] (aktuell) – [Beispiel] torsten.roehl | ||
---|---|---|---|
Zeile 41: | Zeile 41: | ||
</ | </ | ||
- | |{{ : | + | |{{ : |
|< | |< | ||
Der Krebsnebel zeigt die Überreste einer Supernova (Sternenexplosion). Sie wurde im Jahre 1054 von Chinesen beobachtet.</ | Der Krebsnebel zeigt die Überreste einer Supernova (Sternenexplosion). Sie wurde im Jahre 1054 von Chinesen beobachtet.</ | ||
Zeile 49: | Zeile 49: | ||
===== Umwandlung von Graubildern in Binärbilder ===== | ===== Umwandlung von Graubildern in Binärbilder ===== | ||
+ | |||
+ | == Der Schwellenwert c == | ||
+ | |||
+ | Ein Graubild enthält noch viele verschiedene Grauanteile. Wenn man lediglich zwei verschiedene Farbwerte (schwarz/ | ||
+ | |||
+ | * Alle Grauwerte unterhalb des Schwellenwerts werden schwarz. | ||
+ | * Diejenigen Grauwerte, die größer oder gleich dem Schwellenwert sind, werden weiß. | ||
+ | |||
+ | Das folgende Programm lädt ein Graubild und berechnet den Farbwert (schwarz oder weiß) für einen Pixel an der Stelle x=5, y=4.d.h. die Bildkoordinaten sind (4,3). | ||
+ | ==== Beispiel ==== | ||
+ | |||
+ | <Code Java linenums: | ||
+ | import java.awt.Color; | ||
+ | import de.informatics4kids.Picture; | ||
+ | |||
+ | public class Main { | ||
+ | |||
+ | public static void main(String[] args) { | ||
+ | |||
+ | |||
+ | // testbild.jpg öffnen | ||
+ | Picture pic = new Picture(); | ||
+ | pic.open("/ | ||
+ | // Farbe beziehen | ||
+ | Color color = pic.getColor(4, | ||
+ | // Grauwert berechnen - alle Farbwerte sind gleich! | ||
+ | int g = color.getRed(); | ||
+ | // BInärwert berechnen | ||
+ | int binarvalue; | ||
+ | if (g <= 150) | ||
+ | binarvalue = 0; | ||
+ | else | ||
+ | binarvalue = 255; | ||
+ | |||
+ | // Binärwert in neue Farbe einfügen | ||
+ | Color binarcolor = new Color(binarvalue, | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | |{{: | ||
+ | |Das Orginal Graubild.|Binärbild mit Schwellenwert | ||
===== Ein wenig ' | ===== Ein wenig ' | ||
- | ===== ===== | ||
+ | In der Java-Bibliothek existieren zwei Methoden - **brighter()** und **darker()** - mit deren Hilfe ein Farbwert heller beziehungsweise dunkler gesetzt werden kann. | ||
+ | |||
+ | * Color brighter() liefert einen helleren Farbton zurück. | ||
+ | * Color darker() liefert einen dunkleren Farbton zurück. | ||
+ | |||
+ | |||
+ | Da für diese Methoden der Quellcode eingesehen werden kann, können wir unmittelbar nachvollziehen, | ||
+ | |||
+ | |||
+ | |<Code Java linenums: | ||
+ | public Color brighter() { | ||
+ | return new Color(Math.min((int)(getRed() | ||
+ | | ||
+ | | ||
+ | } | ||
+ | public Color darker() { | ||
+ | return new Color(Math.max((int)(getRed() | ||
+ | | ||
+ | | ||
+ | } | ||
+ | </ | ||
+ | |Codebeispiel aus der Java-Bibliothek. Die Konstante FACTOR hat dabei den Wert 0.7.| | ||
+ | |||
+ | ==== Beispiel ==== | ||
+ | |||
+ | Das folgende Programm lädt ein Bild und setzt den Bildpunkt an der Stelle x=5, y=4 ein wenig " | ||
+ | <Code Java linenums: | ||
+ | import java.awt.Color; | ||
+ | |||
+ | import de.informatics4kids.Picture; | ||
+ | import de.informatics4kids.PictureViewer; | ||
+ | |||
+ | public class Main { | ||
+ | |||
+ | public static void main(String[] args) { | ||
+ | |||
+ | Picture pic = new Picture(); | ||
+ | pic.open("/ | ||
+ | Color alt = pic.getColor(4, | ||
+ | Color neu = alt.brighter(); | ||
+ | pic.setColor(4, | ||
+ | |||
+ | | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | Durchläuft man alle Bildpunkte (Pixel) kann man auf diese Weise Bilder // | ||
+ | | {{ : | ||
+ | |Orginal Bild|Die Java-Methode '' | ||
+ | <WRAP center round info 100%> | ||
+ | Wer tiefer einsteigen will, dem sei das Buch //Java Insel (Kapitel ' | ||
+ | </ | ||
farbbild_-_graubild_-_binaerbild.1705741869.txt.gz · Zuletzt geändert: 2024/01/20 09:11 von torsten.roehl