Graustufenbild in Binärbild umwandeln

Status
Nicht offen für weitere Antworten.

castor

Mitglied
Hallo,

ich bin schon leicht am verzweifeln.

Problem: Ich habe ein Graustufenbild und würd dies gerne in ein Binärbild umwandeln.

Hat jemand eine Idee wie man dieses machen kann? Oder hat das schon mal wer gemacht und kann mir freundlicher weise den Code zeigen?

Vielen Dank schon mal,
jens
 
Zuletzt bearbeitet:
S

Spacerat

Gast
Hab' ich schon mal in PHP gemacht, sofern mit Binärbild Schwarz-Weiss gemeint ist. Dazu muss ein Schwellwert angegeben werden, ab wann eine Graustufe weiss und ab wann eine Graustufe schwarz ergeben soll.
 

Soulfly

Bekanntes Mitglied
Du möchtest ein einfaches Schwarzweiß bild daraus machen?

Das geht doch relativ einfach,

- schleife über alle Pixel
- check auf jeden Pixel, ob eine beliebige Grenze an Intensität überschritten wird
- Entweder auf weiß oder schwarz setzten
- wenn fertig, dann speichern

So schwer finde ich das nicht.

So Long,
 

0x7F800000

Top Contributor
Setzst beliebig eine grenze fest, gehst jeden pixel durch, stellst fest ob der jeweilige wert die festgesetzte grenze überschreitet, färbst den pixel dementsprechend als "true" oder "false"... Wenn du Spaß dran hast, dann kannst du noch die API durchlesen, und guggen was du da für tolle Interfaces an so einen Binarizierungs-Filter drankleben kannst, um's ein wenig hübscher zu machen.
 

Ebenius

Top Contributor
Ich gehe einfach mal davon aus, dass der Themeneröffner ein Halbtonverfahren nutzen möchte, und nicht nur nearest value, oder? Nicht dass ich da ohne nachlesen helfen könnte... ;)

Ebenius
 

Ebenius

Top Contributor
Bitte nicht zwei Themen mit dem selben Inhalt in zwei Unterforen öffnen! :mad: Hatte das einen tieferen Sinn? Ich habe die Themen zusammengeführt und den doppelten Eingangsbeitrag gelöscht. Schreib mir eine Nachricht, wenn Du das Thema verschoben haben möchtest!
 

castor

Mitglied
ja sry für den doppel Post, hab mich vertan mit dem Überthread.

Also zum Bild.

ich habe imo ein normales Image(Graustufenbild) und möchte ein Bild rausbekommen, in dem nur 1 und 0 vorkommt. Damit ich später Berechnungen durchführen kann(mit dem Bild). 0 = weiss und 1 = schwarz

Kann ich ein Graustufenbild pixelweise durchgehen? Wahrscheinlich ja(denke ich).

danke,
jens
 

0x7F800000

Top Contributor
Hier steht sogar der fertige code:
PixelGrabber (Java Platform SE 6)
Allerdings weiß ich schon wieder nicht, ob die klasse aktuell ist, oder ob es da irgendwas signifikant besseres gibt, aber Ebenius wird notfalls eingreifen und uns erbärmlichen noobs erzählen wie es richtig geht, hoffe ich doch :)
 

Marco13

Top Contributor
Aktueller sind sie Sachen, die man findet, wenn man von BufferedImageOp (Java Platform SE 6) losbrowst. Im speziellen könnte man da eine LookupOp (Java Platform SE 6) verwenden, wo man die LookupTable so implementiert, dass sie einen Threshold enthält und Schwarz oder Weiß zurückliefert. Hier new LookupOp(LookupTable lookup, RenderingHints hints) : LookupOpjava.awt.imageJava by API gibt's auch ein kleines Beispiel, an dem man sich da ggf. orientieren kann.

Die Option, einfach mit zwei ineinander Verschachtelten Schleifen durch das Bild zu laufen, und bit getPixel/setPixel die Pixel zu ändern, sollte man aber nicht außer Acht lassen.
 

castor

Mitglied
Schon mal vielen Dank für die Antworten :)

Threshold habe ich in meinem Programm schon implementiert. Und das Bild speiche ich als Graustufenbild.

Im nächsten Schritt bin ich dabei "Dilation" einzuwerkeln.

Und um diese Operation durchzuführen, ist ein Binärbild von nöten.


Noch mal zum Verständnis: Wenn ich das Graustufenbild umgewandelt habe und abspeicher, dann steht das Bild in einem Array? Und ist nicht etwa eine neue Datei?

Grüße,
jens
 

Marco13

Top Contributor
Falls ich die Frage richtig interpretiert habe: Ein BufferedImage liegt erstmal nur im Speicher (nicht direkt als "Array", aber indirekt). Solange man nicht ImageIO.write oder ähnliches macht, wird nichts auf die Platte geschrieben...
 

Soulfly

Bekanntes Mitglied
Heißt eigentlich Dilatation :)
Grundsätzlich funktioniert es so:

- man hat z.B. einen 4x4 Kernel mit einer als Zentrum markierten Zelle
- Dieser Kernel wird über das Bild wandern und wird in diesem 4x4 feld den maximalen wert aus diesem Bereich im Zentrum speichern
- immer weiter und weiter und bei SchwarzWeiß bilder wird sich eine schwarze Fläche ausbreiten

Das Gegenstück zu Delatation heißt Erosion und nimmt das Minimum.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Grafikdatei umwandeln in S/W 400 dpi AWT, Swing, JavaFX & SWT 2
T Fxbefehle aus Main umwandeln in @FXML AWT, Swing, JavaFX & SWT 21
N Swing Image aus Web laden und in Icon umwandeln AWT, Swing, JavaFX & SWT 4
3 JComboBox - Action - Auslesen & Umwandeln AWT, Swing, JavaFX & SWT 9
A JavaFX HTMLEditor in Text umwandeln AWT, Swing, JavaFX & SWT 2
S GeneralPath in Polygon umwandeln..? AWT, Swing, JavaFX & SWT 5
F Panelfensterposition in Displayposition umwandeln. AWT, Swing, JavaFX & SWT 3
A Swing zwei JComboBoxen miteinander vergleichen und anschließend Button umwandeln AWT, Swing, JavaFX & SWT 7
F Swing TextField Eingabe in Variable umwandeln um zum Beispiel zu rechnen. AWT, Swing, JavaFX & SWT 3
Furtano AWT setRGB() RGB-Parameter umwandeln? AWT, Swing, JavaFX & SWT 10
B Color.BLUE in String umwandeln AWT, Swing, JavaFX & SWT 4
G 3d in 2d umwandeln? AWT, Swing, JavaFX & SWT 19
T Zeichen/char in Bild umwandeln und darstellen AWT, Swing, JavaFX & SWT 10
T Swing Wie kann ich einen String in ein TreePath umwandeln? AWT, Swing, JavaFX & SWT 5
M List in JTree umwandeln AWT, Swing, JavaFX & SWT 10
T JComboBox Komma in Punkt umwandeln AWT, Swing, JavaFX & SWT 2
G Date in einen String umwandeln AWT, Swing, JavaFX & SWT 4
L JTextField Umwandeln in double-Werte AWT, Swing, JavaFX & SWT 5
T String in String [] umwandeln?? AWT, Swing, JavaFX & SWT 4
I Grafik in Text umwandeln AWT, Swing, JavaFX & SWT 11
G jButton Text zu Integer umwandeln // jLabel mit Counter auf AWT, Swing, JavaFX & SWT 16
S Millisekunden umwandeln in int AWT, Swing, JavaFX & SWT 3
G Image Object speichern oder in ein BufferedImage umwandeln AWT, Swing, JavaFX & SWT 2
B JButton während der Laufzeit in JLabel umwandeln AWT, Swing, JavaFX & SWT 3
S double in String umwandeln AWT, Swing, JavaFX & SWT 6
S Object in Color umwandeln AWT, Swing, JavaFX & SWT 2
O Problem beim Umwandeln eines Applets in eine Applikation AWT, Swing, JavaFX & SWT 15
F JFrame in eine Image umwandeln AWT, Swing, JavaFX & SWT 4
S JTextField in JPasswortField umwandeln?! AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben