Ballerkennung aus einer Bilddatei

G

Gast2

Gast
Hallo an alle!

Bin zum ersten Mal auf so einer Forumseite und entschuldige mich gleich im vorhinein wenn ich Fehler mache.

In meinem Projekt geht es darum eine Torlinie eines Fussballtores zu überwachen. Wenn also ein Ball über die Torlinie geschossen oder gerollt wird, möchte ich das die Kamera ein Bild gemacht und gespeichert wird. Dieser Teil des Projekts Funktioniert schon.
Nun zu jenem Teil welcher nicht funktioniert.
Aus diesem Bild sollte das Java Programm den Baall erkennen, somit kann ich dann erkennen ob der sBall im Tor ist oder nicht ?

Gibt es dazu eine Klasse bzw. Methode um das zu realisieren ?

Hoffe auf positive und baldige Antwort

Lg Michi
 

Runtime

Top Contributor
Nein, weil das einfach nicht alltäglich ist. Kannst du mal ein Fotobeispiel posten?
edit: Wie funktioniert die Erkennung, dass die Kamera ein Foto schiessen muss?
 

XHelp

Top Contributor
Hast du auf das Spiel Einfluss? Kannst ja einfach einen Ball nehmen, der eine unübliche Farbe hat
(mit unüblich meine ich eine Farbe, die nicht im Hintergrund vorkommen kann)
 
G

Gast2

Gast
Im anhang befindet sich ein Bild wie es ungefähr aussehen sollte . Es ist jenes Bild welches die Kamera macht wenn ein Ball vorbeifliegt.

@Runtime: Ich hab ein Programm wo die Kamera sobald eine Bewegung vor ihr passiert ein foto macht.

@Xhelp: Ja ich hab Einfluss drauf, ich werde es auch so machen, dass der Hintergrund Weiss ist und der Ball eine gewisse Farbe.

Doch ich habe ein Problem mit Java da ich diesen Ball inn diesem Bild gerne mit Java erkennen möchte ?
Habt Ihr eine Idee ?

Lg
 

Anhänge

  • ball.jpg
    ball.jpg
    6,4 KB · Aufrufe: 50

Marco13

Top Contributor
Wenn der Ball eine bestimmte, leicht zu erkennende Farbe hat, kann man
- das Bild als BufferedImage laden
- in dem Bild mit image.getRGB(x,y) die Farben der einzelnen Pixel auslesen
- Sich alle Pixel merken, die die Farbe des Balles haben
- Von diesen Pixeln den Mittelpunkt bestimmen.
 

Runtime

Top Contributor
Jo, hab ich. Wenn der Hintergrund sich nicht verändert, dann kannst du ein Bild schiessen ohne Ball und dann wenn du ein Bild mit Ball hast, kannst du so den Ball hinauslösen (siehe im Bild).
Aus dem ersten Bild kannst du dann noch die schwarze Torlinie heraussuchen und überprüfen, ob und wie stark sich Ball überschneidet. Falls nicht, prüfst du noch, ob der Ball links oder rechts ist. Mit Java geht das recht langsam, ist aber mit JOGL/JOCL möglich.
Edit: Ein wenig zu spät, hat aber trotzdem noch nützliches dabei.
@XHelp
Wenn es eine Lichtschranke ist, kann man eine 2. hinmontieren, dann muss man nur noch prüfen, welche Lichtschranke zuletzt berührt wurde
 

Anhänge

  • Ballerkennung.png
    Ballerkennung.png
    34,3 KB · Aufrufe: 48
Zuletzt bearbeitet:

Runtime

Top Contributor
Hab nicht gewusst, wie man einen 2. Anhang hinzufügt, :D da ist noch das Bild für die Lichtschranken.
Edit: Im Bild sollte es nicht Ballbreite, sondern Balldurchmesser heissen.
 

Anhänge

  • Ballerkennung2.png
    Ballerkennung2.png
    9,2 KB · Aufrufe: 42
G

Gast2

Gast
Und was hat das mit überqueren der Torlinie zu tun? Bau dir einfach eine Lichtschranke.

Der Teil mit der Lichtschranke ist im Gesammmtprojekt inbehalten, doch i habe eine vertiefende Aufgabenstellung und diese muss ich mit Kamera bewältigen. Die Torlinie sollte die Torlinie in einem Tischfussballtisch darstellen.

Der Hintergrund bleibt immer gleich und ja so hab ich mir das vorgestellt mit den Bildern.
Funktioniert es mit Java langsam oder garnicht ?
Hast du Java - COde für mich ?

@Marco : ich kann mir das schon sehr gut vorstellen aber habe leider keinen plan wie ich es in Java umsetzten könnte

Lg
 

XHelp

Top Contributor
Naja, aber wieviele Bilder schießt denn deine Kamera? Denn so ein Kickerball ist nicht unbedingt langsam, du musst ja dann natürlich auch den richtigen Zeitpunkt abwarten, wenn sich der Ball bereits HINTER der Linie befindet.
Außerdem:
wo die Kamera sobald eine Bewegung vor ihr passiert ein foto macht
Vor dem Tor sollte sich öfters was bewegen, nämlich der Torwart.
 

Runtime

Top Contributor
Mit meiner Methode kann man überprüfen, ob der Torwart oder der Ball auf dem Bild ist, aber wenn beide darauf sind wirds schwierig...
 
G

Gast2

Gast
Naja, aber wieviele Bilder schießt denn deine Kamera? Denn so ein Kickerball ist nicht unbedingt langsam, du musst ja dann natürlich auch den richtigen Zeitpunkt abwarten, wenn sich der Ball bereits HINTER der Linie befindet.
Außerdem:

Vor dem Tor sollte sich öfters was bewegen, nämlich der Torwart.

Die Kamera zeigt nur auf die Linie und sieht den Torwart nicht.
Sobald eine Bewegung ( sprich der Ball fliegt vorbei) passiert wird von der KAmera ein Foto gemacht.

Derzeitiger Stand des Java Programms:
Ich lese die gespeicherten Bilder ein und Zeige sie in einem Panel an. Das geht bereits. Doch ich kann den Ball nicht erkennen also ich weiss nicht wie man soetwas macht ?

Lg
 
T

Tomate_Salat

Gast
Naja, aber wieviele Bilder schießt denn deine Kamera? Denn so ein Kickerball ist nicht unbedingt langsam

mach dir erstmal darüber Gedanken. Wenn das wirklich sich auf einen Kickertisch bezieht, wäre ich mir nicht sicher, ob deine Kamera es schafft, das komplett zu überwachen. Und falls doch, wird er u.U. sehr verschwommen sein.

Ich würde die Bilder auf Änderungen vergleichen (vor/nachher) das ganze in Prozent umwandeln und ab einem bestimmten Prozentsatz sagen: jz kam ein Ball vorbei.

Und wäre es nicht einfacher, die Kamera den Bereich hinter der linie prüfen zu lassen?
 
Zuletzt bearbeitet von einem Moderator:

XHelp

Top Contributor
Auch ohne großartige Programmiererfahrung kann man es schaffen, aber nicht ohne Eigeninitiative.

Dir wurde ja schon der Ansatz über BufferedImage genannt. Versuch ihn umzusetzen.
 
G

Gast2

Gast
mach dir erstmal darüber Gedanken. Wenn das wirklich sich auf einen Kickertisch bezieht, wäre ich mir nicht sicher, ob deine Kamera es schafft, das komplett zu überwachen. Und falls doch, wird er u.U. sehr verschwommen sein.

Ich würde die Bilder auf Änderungen vergleichen (vor/nachher) das ganze in Prozent umwandeln und ab einem bestimmten Prozentsatz sagen: jz kam ein Ball vorbei.

Und wäre es nicht einfacher, die Kamera den Bereich hinter der linie prüfen zu lassen?

Die Kamera bezieht sich auf den Torraum hinter der Torlinie.
Die Änderung der Bilder ist auch eine gute Idee, wie könnte man mit dem Beginnen? also Code ?

Wie lange programmierst du schon Java? Wenn du nicht min 1.5 - 2 Jahre programmiert hast, dann schaffst du das nicht.

Ich habe in der Schule schon 2 Jahre Informatikunterricht gehabt jedoch haben wir so sochen nie durchgenommen ?
 
T

Tomate_Salat

Gast
Die Kamera bezieht sich auf den Torraum hinter der Torlinie.
Die Änderung der Bilder ist auch eine gute Idee, wie könnte man mit dem Beginnen? also Code ?

Codemäßig habe ich keinen fertigen Ansatz ... ich habe nichtmal einen Ansatz. Nimm ein ausgangs BufferedImage und vergleiche es mit dem Aufgenommen. Du kannst dir ein Raster ausgeben lassen, indem du alle Pixel einzeln checken kannst. Diese setzt du in relation und hast die Änderung.
Ich würde vllt schwarz-weis-bilder machen, da in (meiner) Therorie es am einfachsten ist, notfalls Helligkeits-differenzen zu erkennen.
 

Runtime

Top Contributor
Ok, hab noch meine Meinung geändert, Java SE alleine sollte schon schnell genug sein, aus mir haben die armseligen Grafikmöglichkeiten von Java gesprochen.
 
G

Gast2

Gast
Codemäßig habe ich keinen fertigen Ansatz ... ich habe nichtmal einen Ansatz. Nimm ein ausgangs BufferedImage und vergleiche es mit dem Aufgenommen. Du kannst dir ein Raster ausgeben lassen, indem du alle Pixel einzeln checken kannst. Diese setzt du in relation und hast die Änderung.
Ich würde vllt schwarz-weis-bilder machen, da in (meiner) Therorie es am einfachsten ist, notfalls Helligkeits-differenzen zu erkennen.

Ich danke dir für deine Ideen und probier es umzusetzten!

So Sachen wie mitdenken, googlen und api lesen?

Auch dir möchte ich für deine Einfälle danken.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
YangLee Ausgabe von einer Bewegung bei mehrzeiligen Strings Spiele- und Multimedia-Programmierung 1
E relevanter bereich einer isometrischen karte zeichnen (AffineTransform) Spiele- und Multimedia-Programmierung 0
M Audio Track einer Musik CD abspielen mittels vlcj-Bibliothek Spiele- und Multimedia-Programmierung 0
Meeresgott LWJGL 3 Problem mit einer Texture Spiele- und Multimedia-Programmierung 4
D Programmierung einer Tor-Anzeige Spiele- und Multimedia-Programmierung 8
C Optimale Wegberechnung einer KI Spiele- und Multimedia-Programmierung 6
T Pong Hilfe bei einer Website Spiele- und Multimedia-Programmierung 4
R Einfärben von Gemeinden auf einer Karte Spiele- und Multimedia-Programmierung 14
S ECS: "deep copy" einer Entity-Vorlage Spiele- und Multimedia-Programmierung 9
R Aufruf einer render-Methode Spiele- und Multimedia-Programmierung 12
E A-Stern Algorithmus Problem und Implementierung einer Map Spiele- und Multimedia-Programmierung 6
J Frage zum Einlesen einer .wav in ein byte Array Spiele- und Multimedia-Programmierung 3
J Spielfiguren laufen lassen auf einer html Tabelle mit Hilfe von Servlets Spiele- und Multimedia-Programmierung 2
T Alle Referenzen zu einer Klasse aus Java Bytecode ersetzt, JVM sucht trotzdem diese Klasse Spiele- und Multimedia-Programmierung 1
M Kamera "am Rande einer Kugel bewegen" Spiele- und Multimedia-Programmierung 4
B Den KeyListener in einer JavaFXML Application benutzen Spiele- und Multimedia-Programmierung 2
gamebreiti Index eines Elements einer ArrayList abfragen Spiele- und Multimedia-Programmierung 1
F Das sag mir einer Java ist plattform unabhänig ! Spiele- und Multimedia-Programmierung 10
M Scrolling einer 2D Map Spiele- und Multimedia-Programmierung 8
J In einer While-Schleife auf Event warten Spiele- und Multimedia-Programmierung 3
TheSorm Collision an einer bestimmten Seite eine Rectangles abfragen Spiele- und Multimedia-Programmierung 3
windl Frage zu Airplay und zur Mitarbeit bei einer Mediaanlage Spiele- und Multimedia-Programmierung 0
A Aufbau einer JOGL Anwendung Spiele- und Multimedia-Programmierung 12
L Werte aus einer .yml Datei lesen Spiele- und Multimedia-Programmierung 9
H Java3D - Textur aufs innere einer Sphere mappen Spiele- und Multimedia-Programmierung 9
F Download und Update einer Java-Anwendung Spiele- und Multimedia-Programmierung 10
D Problem beim bewegen einer Figur Spiele- und Multimedia-Programmierung 2
B Video von einer IP kamera Spiele- und Multimedia-Programmierung 5
W Java3D: Eckkoordinaten einer Box herausfinden Spiele- und Multimedia-Programmierung 18
W Rotation aller Objekte einer 3D-Szene Spiele- und Multimedia-Programmierung 8
2 Ein Zufallsweg bzw. Weg in einer 2dim Matrix finden. Spiele- und Multimedia-Programmierung 21
aze Schnittmenge zwischen Linie und einer Area wegschneiden Spiele- und Multimedia-Programmierung 3
A Bild einer Webcam auffangen Spiele- und Multimedia-Programmierung 20
B Generierung einer Wertetabelle aus einem Bild Spiele- und Multimedia-Programmierung 3
D Problem beim Öffnen einer PHP für eine Highscore Spiele- und Multimedia-Programmierung 5
M Realisierung einer Sichtweise in Java2D Spiele- und Multimedia-Programmierung 3
B String zu Objekt einer eigenen Klasse casten Spiele- und Multimedia-Programmierung 13
H Screenshot einer Graphics2D Anwendung erstellen Spiele- und Multimedia-Programmierung 6
F Simulation einer Magnetischen Flasche Spiele- und Multimedia-Programmierung 17
F Meine Aufgabe: Client-Server am Beispiel einer Implementation eines Tic-Tac-Toe Netzwerkspieles Spiele- und Multimedia-Programmierung 7
J Fehlverhalten einer Spielfigur Spiele- und Multimedia-Programmierung 7
N Jogl Probleme mit dem Buffer beim laden einer Textur Spiele- und Multimedia-Programmierung 2
M Das Frequenzspektrum einer WAV/MP3-Datei anzeigen Spiele- und Multimedia-Programmierung 6
M Rechteck erkennung innerhalb einer Matix Spiele- und Multimedia-Programmierung 4
S Problem beim laden eines Bildes in einer Methode Spiele- und Multimedia-Programmierung 14
E Pinball Abprall an einer schrägen Bande Spiele- und Multimedia-Programmierung 19
0x7F800000 weiß einer wozu ANTLR beim build von JOGL verwendet wird? Spiele- und Multimedia-Programmierung 3
E Hilfe bei einer GUI Programmierung mit Graph Spiele- und Multimedia-Programmierung 30
A Tutorial für die Entwicklung einer Fussball-KI gesucht Spiele- und Multimedia-Programmierung 7
S Rotation relativ zur Rotation einer anderen Transform Group Spiele- und Multimedia-Programmierung 3
A Screenshots von einer Scene erstellen Spiele- und Multimedia-Programmierung 5
G Land aus einer Weltkarte selektieren Spiele- und Multimedia-Programmierung 10
D Kräftesimulation auf einer 2D-Oberfläche Spiele- und Multimedia-Programmierung 5
T Geschwindigkeit einer Animation aendern Spiele- und Multimedia-Programmierung 6
G Ermitteln eines Punktes in einer anderen TransformGroup Spiele- und Multimedia-Programmierung 2
N Background in Java3D ähnlich einer Skybox erzeugen Spiele- und Multimedia-Programmierung 5
H zB Punkte darstellen und mit einer Linier verbinden Spiele- und Multimedia-Programmierung 5
F Darstellung einer tierischen Zelle Spiele- und Multimedia-Programmierung 3
S Text an einer Seite eines Cubes Spiele- und Multimedia-Programmierung 7
F Das SPiel ruckelt nach einer Zeit Spiele- und Multimedia-Programmierung 19
D wieder einer von anfang an. Spiele- und Multimedia-Programmierung 4
M Darstellung einer schwingenden Membran? Spiele- und Multimedia-Programmierung 23
raptorrs Teile einer CAD-Assembly Gruppe in JAVA animieren? Spiele- und Multimedia-Programmierung 3
K Beschriftung von Punkten in einer "Punktwolke" Spiele- und Multimedia-Programmierung 2
S Zur Laufzeit auf die Methode einer anderen Klasse zugreifen Spiele- und Multimedia-Programmierung 5
K Klick in der nähe einer Strecke Spiele- und Multimedia-Programmierung 14
B vertikal schreiben oder eine Bilddatei drehen? Spiele- und Multimedia-Programmierung 11
G Bilddatei laden Spiele- und Multimedia-Programmierung 4

Ähnliche Java Themen

Neue Themen


Oben