Bild, Pixel- / Bereichsfarbe auslesen

Status
Nicht offen für weitere Antworten.

pyr0t0n

Aktives Mitglied
Aloa,

wenn ich ein BufferedImage lade kann ich da jeden Pixel auf einen Bestimmten Farbwert überprüfen oder gar einen Bereich?

Bzw wie geht das überhaupt ? ^^

Hoffe das mir da einer weiterhelfen kann.

Gruß
pyr0t0n
 

pyr0t0n

Aktives Mitglied
ah ok vielen dank... nur hab ich noch ein anderes problem

Also erstmal ich habe ein bild mit einem Schwarzen Kreis und lasse nun das Bild nach der Farbe Schwarz absuchen und immer wenn er auf den Kreis trifft, addet mein Programm ein Punkt zu einem Polygon doch leider sieht das beim zeichnen dieses Polygon dann so aus wie auf dem angehängtem Bild.

Gibts da ne andere möglichkeit wie ich ein "Abbild" von meinem Bild in eine Polygonform kriege?

Clipboard01.jpg
 

Marco13

Top Contributor
Hm. Beim Polygon wird davon ausgegangen, dass alle Punkte im Uhrzeigersinn (oder Gegenuhrzeigersinn) angegeben sind. Also, wenn du Spaltenweise durch's bild läufst, kommt da ein ziemliches Zickzack raus. Theoretisch wäre eine Möglichkeit:
1. Man sucht den ersten schwarzen Pixel p und fürgt ihn in eine Liste ein
2. Solange Pixel p noch schwarze Nachbarn q hat, die nicht in der Liste liegen
{
füge q in die liste ein
setze p=q
}

Aber das ist so ziemlich das billigste, was man machen kann. Eine "robuste, qualitativ hochwertige Vektorisierung eines Bitmap-Bildes" wirst du damit nicht hinbekommen...
 

pyr0t0n

Aktives Mitglied
gibts denn sonst noch ne möglichkeit wie ich da nen Abbild von erzeugen kann wenn man die Polygone mal aussen vor lässt.
 

Marco13

Top Contributor
Ja... ein Programm verwenden, die sowas können, oder nachsehen, ob es eine Java-Bibliothek gibt, die sowas kann, oder... selbst schreiben. Je nach gewünschtem Reslutat könnte letzteres aber entsprechend aufwändig sein.
 

0x7F800000

Top Contributor
Wieso? Die von Marco13 vorgeschlagene möglichkeit erscheint mir recht plausibel, und ist auch nicht schwer umzusetzen, und vor allem sollte es akzeptable ergebnisse liefern. Statt polygonzug kannst du da auch ein wenig mit splines rumspielen, sieht vielleicht besser aus ;)

Aber ich hätte da mal eine frage: wo kriegst du das bild her? Mich wundert nämlich ein wenig, dass nicht der ganze kreis mit dem zickzack übermalt wird.
Wenn du es als .jpeg lädst oder ähnliches, dann must du im hinterkopf behalten, dass in .jpeg-komprimierten dateien an schwarzen kreisen so ziemlich gar nichts schwarz ist :D , dann musst du nicht auf 0xFF000000 testen, sondern auch ähnliche farben akzeptieren.
 

pyr0t0n

Aktives Mitglied
also ich nehme nen JPG dafür und mache das ganze dann so

Code:
        try {
            bild = ImageIO.read(new File("C:\\bild.jpg"));
        } catch (IOException ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
        }
        for(int a=0;a<bild.getWidth(); a++)
        {
            for(int b=0; b<bild.getHeight(); b++)
            {
                farbe = new Color(bild.getRGB(a, b));
                if(farbe.getGreen() == 0 && farbe.getBlue() == 0 && farbe.getRed() == 0)
                {
                    System.out.println("Schwarz gefunden");
                }
            }
        }

und es wird auf jedenfall die msg "Schwarz gefunden" in der Konsole ausgegeben. Den Teil mit dem Polygon hab ich schon wieder rausgenommen.
 

Marco13

Top Contributor
Falls es ein JPG Bild mit ähnlicher Kompression wie das gepostete war, ist Andreys Einwand gerechtfertigt. Wenn du es mit IrfanView offen hast, vergrößere es mal bis zum Anschlag und klicke dann auf einige Pixel, die "schwarz aussehen". Dann wird (solange die Maustaste gedrückt ist) in der Titelleiste das RGB angezeigt, und da sind einige "schwarze" Pixel eher ein (30,30,30)-Grau. Probier' auf jeden Fall mal sowas wie
Code:
if(farbe.getGreen() <= 30 && farbe.getBlue() < 30 && farbe.getRed() < 30) ...
 

0x7F800000

Top Contributor
Oder mach das bild einfach in paint auf, und versuche eine "homogene" fläche mit dem floodfill auszufüllen. Du wirst feststellen, dass du in dem bild keine zwei pixel gleicher farbe findest ;) (in der umgebung vom kreis zumindest) Du musst es schon abschätzen, zB so wie Marco13 es vorgeschlagen hat :toll:
 

pyr0t0n

Aktives Mitglied
ja ok kann man natürlich machen. Das es nicht unbedingt komplett schwarz ist ist auch klar muss dann halt mal sehen wie ich das umgesetzt kriege das ich da nen Polynom raus bekomme.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Einzelne Pixel in einem Bild lesen Spiele- und Multimedia-Programmierung 5
S BMP-Bild Pixel für Pixel bearbeiten Spiele- und Multimedia-Programmierung 1
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
T Bild als mehrdimesionaler Array Spiele- und Multimedia-Programmierung 4
H Bild von Webcam laden Spiele- und Multimedia-Programmierung 4
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
N Bild zu zeichnen (drawImage) klappt nur manchmal?? Spiele- und Multimedia-Programmierung 8
P repaint verschiebt das Bild Spiele- und Multimedia-Programmierung 2
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
BraunBerry Java Game Pixel "einfärben" Spiele- und Multimedia-Programmierung 6
T Probleme bei "Pixel-Fighting"-Spiel: Unausgewogene Mannschaften??? Spiele- und Multimedia-Programmierung 4
Q Mehr objekte darstellen als Pixel vorhanden Spiele- und Multimedia-Programmierung 6
Androbin Pixel-genaue Kollisionserkennung Spiele- und Multimedia-Programmierung 5
J Bestimmte Pixel transparent erscheinen lassen Spiele- und Multimedia-Programmierung 5
M pixel auslesen in JOGLE Spiele- und Multimedia-Programmierung 3
B Java Pixel Malen Spiele- und Multimedia-Programmierung 3
M Pixel eines BufferedImage bearbeiten (Performance) Spiele- und Multimedia-Programmierung 23
Kr0e OpenGL .. Pixel Buffer Objekt oder Frame Buffer Object? Spiele- und Multimedia-Programmierung 2
Steev LWJGL: org.lwjgl.LWJGLException: Pixel format not accelerated Spiele- und Multimedia-Programmierung 9
M pixel perfect collision detection bei rotierenden Bildern Spiele- und Multimedia-Programmierung 13
G Pixel setzen mit TYPE_INT_ARGB Spiele- und Multimedia-Programmierung 10
D cm in pixel Spiele- und Multimedia-Programmierung 37
R int[] der Pixel aus PNG oder JPG ? Spiele- und Multimedia-Programmierung 2
G Pixel Häufigkeiten entsprechent einfärben Spiele- und Multimedia-Programmierung 6
V Tranzparente Pixel Spiele- und Multimedia-Programmierung 5
S Pixel zeichnen Spiele- und Multimedia-Programmierung 3
G 2 dim. Pixel Array in AWT? Spiele- und Multimedia-Programmierung 7

Ähnliche Java Themen

Neue Themen


Oben