Webcam Ziffern ablesen

Knowledg_e

Neues Mitglied
Hallo Leute,

ich hab eigentlich nur ein paar einfache Fragen, deren Antworten ich bis jetzt noch nicht finden konnte.
Ich muss bei meinem Projekt in der Schule eine Aufgabe lösen und zwar von einem Wasserzähler mittels Webcam die Ziffern ablesen.
Da ich mir die Arbeit natürlich nicht erschweren möchte, will ich es nicht mit einer komplizierten OCR lösen. Meine Idee wäre eine fix montierte Webcam, dann ist die Anzeige immer an der gleichen Stelle auf den Bildern die ich von der Webcam bekomm und ich muss mir diesen Bereich nicht suchen. Dannach vergleiche ich von dem Bereich(die Anzeige), von dem ich weiß wo er ist jeweils einen zB 20pixel breiten Abschnitt (eine Ziffer) mit jeweils den Bildern von 0-9. Ich weiß, dass die Bilder gleich breit sein müssen, wie die Abschnitte, die ich mit den Bildern vergleiche.

meine Fragen dazu:

+ kann mir jemand eine webcam mit LED (da Wasserzähler meistens im Keller sind)empfehlen, die Preis/leistungmäßig und Java-technisch am besten wäre
+ hat irgendwer von euch ein paar Links auf Lager, die mir bei der Bildverarbeitung helfen
+ kennt wer von euch eine Software für USB-Kameras, die über die Console ausgeführt werden können bzw. ich möchte eigentlich das Bild selbst nicht von der Webcam aufnehmen, sondern in meinem Java Programm ein anderes Programm aufrufen, dass nur einen Schnappschuss von der Webcam macht. Dieses Bild öffne ich dann mit meinem Programm und bearbeite es.

freundliche Grüße
 
Zuletzt bearbeitet von einem Moderator:

XHelp

Top Contributor
Deine Idee wird nicht klappen:
m175-wasseruhr14.jpg

Eine Ziffer befindet sich a) nicht immer auf der exakt selben stellen b) nicht immer ganz zu sehen

Was die Webcam angeht: nimm irgendeine
Was Bildverarbeitung angeht: was genau meinst du damit?
Was Webcam + Java angeht: hast du schon nach diesen 2 Stichwörtern gegoogelt?
 
S

SlaterB

Gast
Was Bildverarbeitung angeht: was genau meinst du damit?
na doch wohl aus einem Bild wie deinen die Zahl zu extrahieren auf intelligenten Weg,

wobei doch die WebCam sicher selber platziert wird so dass es einfacher wird, weniger Zahlen, groß mittig im Bild,
warum von Spezialfällen wie 'nicht vollständig zu sehen' ausgehen?
ach ok, auf die Bewegung des Zählers bezogen, nicht die generelle Ausrichtung der Cam ;)
 

XHelp

Top Contributor
na doch wohl aus einem Bild wie deinen die Zahl zu extrahieren auf intelligenten Weg,
Ja, habe ich mir schon fast gedacht. Bei der nächsten Antwort wollte ich solche Suchanfragen wie "java crop image" in den Raum werfen als Hinweis, dass die Lösung zu jeder Teilaufgabe sich schnell bei google finden lässt.
ach ok, auf die Bewegung des Zählers bezogen, nicht die generelle Ausrichtung der Cam ;)

Ja, auf Ausrichtung kann man noch Einfluss nehmen, auf die Funktionsweise des Zählers nicht mehr.
 
D

Dow Jones

Gast
Ja, auf Ausrichtung kann man noch Einfluss nehmen, auf die Funktionsweise des Zählers nicht mehr.
Aber das sollte trotzdem so funktionieren, wie Knowledg_e sich das gedacht hat. Wenn die Webcam fix montiert ist dann ist es ja ein leichtes die Aufnahme zu segmentieren:
segmentierc79g.png

Dann braucht man sich nur noch die Mühe machen und eine Ziffernwalze einmal "komplett abzufilmen" um ein Bild eines "Ziffernstreifens" zu erhalten:
ziffernstr4v40.png

Jetzt müsste man prinzipiell nur noch eine Kreuzkorrelation zwischen jedem der segmentierten Felder und dem Ziffernstreifen durchführen (evtl. kann man die Bilder vorher noch etwas weichzeichnen, damit das Segment nicht pixelgenau mit dem Ziffernstreifen übereinstimmen muss). Und dann sollte man eigentlich wissen welchen Stand der Zähler gerade anzeigt. Sogar mit Kommastellen. :)
Ggf. kann man ja auch noch Heuristiken einbauen um die Plausibilität des Ergebnisses zu überprüfen.

Aber die eigentlichen Fragen von Knowledg_e waren ja gar nicht zum Them "wie".
Eine Webcam kann ich leider nicht empfehlen, ich habe selber keine. Solltest du eine brauchbare Cam finden dann würde ich mich aber über eine Empfehlung freuen. Ist schließlich ein spannendes Thema. :D
Links zum Thema Bildverarbeitung - da gibt's natürlich endlos viele... Suchst du etwas bestimmtes?
 
S

SlaterB

Gast
wenn man sich anstrengt, gerade mit solchen exakten Mustervergleichen, müssten auch Zwischenschritte erkennbar sein,
eine durchgehende weiße Pixelreihe auf Höhe x zeigt den Übergang an, darüber und darunter sind Teilbilder,
die dann entsprechend großen Ausschnitten der Referenzbilder vergleichen
 

Knowledg_e

Neues Mitglied
zum Überprüfen ob eine Ziffernscheibe ganz sichtbar ist, könnte ich vielleicht den schwarz anteil, des Bilds überprüfen, nur die frage ist dann, ob ein halber achter gleichviel oder mehr schwarz hat, als ein einser.
zur Bildbearbeitung: ich habe noch nie ein Bild mit einem Programm geöffnet .. welches Format ist einfach ? welches könnt ihr mir empfehlen ?
die funktionen die ich können muss :
- wie ich auf einzellne Pixel zu greife (Deren Farbe abfrage)

und nochmal .. gibts da vielleicht irgend eine Software, die ich einfach in meinem Programm ausführen kann, sodass ich nur einen Snapshot mache.

Danke für die Kommentare und das Interesse : )
 

Tobse

Top Contributor
Die WinAPI sollte sicherllich treiber oder funktionen für webcams bereitstellen. Also machst evtl. eine exe, die den snapshot in eine bestimmte datei schreibt (am besten PNG oder BMP wegen Qualitätsverlust). Die kannst du dann mit java.awt öffnen und pixelweise auslesen.
Code:
a=webcam.makeScreenshot();
schreibeInDatei("C:\snapshot.png", a);
Java:
Runtime.getRuntime().exec("snapshot.exe");
Image img=leseBildAusDatei("C:\snapshot.png");
// verarbeiten
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Webcam Face Detection Allgemeine Java-Themen 1
B QR Scanner WebCam Allgemeine Java-Themen 2
K API für Webcam? Allgemeine Java-Themen 21
M Wie auf Webcam zugreifen= Allgemeine Java-Themen 6
A Bild von Webcam aufzeichnen Allgemeine Java-Themen 14
Z 2D-Grafik Webcam-Bilder analysieren und manipulieren Allgemeine Java-Themen 8
A Webcam ansteuern Allgemeine Java-Themen 12
N JMF und Webcam Allgemeine Java-Themen 3
X Position eines Gegenstandes über Webcam erkennen Allgemeine Java-Themen 11
G Bilder einer Webcam im JFrame anzeigen Allgemeine Java-Themen 5
G Zugriff auf USB Webcam Allgemeine Java-Themen 4
U Webcam unter Java Allgemeine Java-Themen 5
P Webcam in Java einlesen Allgemeine Java-Themen 5
B JMF -> Webcam (Linux) Allgemeine Java-Themen 14
G Live-Stream einer WebCam importieren Allgemeine Java-Themen 3
M Webcam Anwendung Allgemeine Java-Themen 5
J Rekursive Programmierung-Zählen von Ziffern Allgemeine Java-Themen 5
S Ziffern auf Existenz überprüfen Allgemeine Java-Themen 13
brunothg Alle Kombiationen von n Ziffern Allgemeine Java-Themen 2
T Strings darf nur Ziffern, +/- haben Allgemeine Java-Themen 9
G Prüfen ob Ziffern einer Zahl pandigital sind? Allgemeine Java-Themen 15
MQue Anzahl der Ziffern Allgemeine Java-Themen 13
V String formatiert ausgeben ( gleiche Anzahl von Ziffern ) Allgemeine Java-Themen 5
G ziffern zählen mit rekursiver methode Allgemeine Java-Themen 2
N String überprüfen ob nur Ziffern enthalten sind!! Allgemeine Java-Themen 8
C Pixelfarbe ablesen Allgemeine Java-Themen 22
O Ein Verzeichnis aus der Root ablesen/Dateitypen registrieren Allgemeine Java-Themen 5

Ähnliche Java Themen

Neue Themen


Oben