Bild per Webcam erstellen und mit Bild in der Datenbank vergleichen

  • VB.NET

Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Bild per Webcam erstellen und mit Bild in der Datenbank vergleichen

    Hallo Community,

    ich habe mir mal angeschaut, was es hier alles zur Bilderkennung gibt.
    Jetzt habe ich eine Frage, ob ich das was ich denke realisieren kann.

    Und zwar möchte ich mit einer Webcam einen Gegenstand abfotografieren.
    Nun möchte ich wissen, um was für einen Gegenstand es sich handelt.
    Dabei habe ich an eine Datenbank gedacht, die vordefinierte Bilder hat.
    Diese Bilder werden dann als BLOB-Dateien in die Datenbank gespeichert.

    Wenn man dann auf einen Button klickt, soll das Bild mit dem richtigen Bild verglichen werden und dann der Name des Gegenstandes angezeigt werden.
    (Es soll sozusagen im Hintergrund, ohne das der User davon was mitbekommt, herausgesucht werden, welches Bild zu dem Gegenstand passt)

    Ist dies überhaupt realisierbar und wenn ja, wäre mein Ansatz der richtige ?

    vivil
    @vivil Was gehen würde, wäre eine Umriss-Erkennung, da müsstest Du mit ein Wenig Bildverarbeitung die Kanten bestimmen und könntest damit eine Formerkennung machen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    vivil schrieb:

    viele verschiedene Punkte setzen
    Bildverarbeitung ist ein Ablauf verschiedener Operatoren.
    Was Du brauchst, ist so was wie eine abschließende Vektorisierung. Das lässt sich leichter normieren und veergleichen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Aus 2 Punkten kannst Du einen Vektor machen.
    So werden aus Pixelbildern Vektorbilder gemacht.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    ich finde das iwie ein bischen unlauter, mit Vivil die Lösung für ihn sicherlich unlösbarer Probleme zu diskutieren.
    Ich kenne mich mittm Thema nicht wirklich aus, aber ich denke, zur Vektorisierung gibts zig Verfahren, und nicht jedes Verfahren ist für jedes Objekt und jedes Lichtverhältnis gleich gut geeignet.
    Schon dabei dürften unlösbare Probs auftreten, etwa eine einfache Tischkante kann eine Linie ergeben, eine Doppel-Linie, oder bei Kasten-DeckPlatten auch noch mehr Linien. Nun finde einen Algo, der in solchen Vektor-Gruppen Ähnlichkeiten entdeckt.
    Finde überhaupt einen Algo, der 2 Vektoren als ähnlich definieren kann.
    Soviel allein zu graden Linien - Krümmungen hab ich noch aussen vor gelassen.
    Ebenso auch die 3-D-Problematik, denn Bilddaten sind numal nur 2-dimensional.
    Man braucht sicherlich auch ein Vektor-Datenmodell, das auch bauchige Formen definieren kann (und besondere Bilderkennungen dafür, denn bei Kanten-Detektion fällt Bauchigkeit glaub raus).
    Und am Ende noch Ähnlichkeits-Algos, die verschiedene Blickwinkel und Entfernungen auch noch berücksichtigen.

    Aber vlt. sehe ich auch alles zu schwarz - Rod: Hast du schonmal ein Bildle in eine Vektor-Gruppe überführt, und dann Ähnlichkeits-Betrachtungen darauf aufgebaut?
    @ErfinderDesRades Bild vektorisiert: Ja, das ist ein relativ einfacher Operator.
    Vektor-Bilder verglichen: Nein.
    Bildverarbeitung an sich jede Menge.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Was ist ein Operator?
    Also ich kenne Scan-Matrix-Einstellungen beim Convolution-Bild-Filter - meinst du das mit "Operator"?
    Und da kenne ichs so, dass verschiedene Matritzen geeignet sind, Kanten hervorzuheben, die je in unterschiedlichen Szenarien unterschiedliche Stärken und Schwächen haben.

    Und halt das Problem Bauchigkeit: Kann deine Vektorisierung ein Verkehrsschild (Kreisfläche mit Stil) von einem Lolli (Kugel mit Stil) unterscheiden?

    ErfinderDesRades schrieb:

    Was ist ein Operator?
    Die Anwendung eines Formalismus, z.B. Medianfilter, Vektorisierung, usw.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @vivil Vielleicht befasst Du Dich zunächst mit elementarer Bildverarbeitung, wenn Du so weit bist.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!