Pixel übereinstimmung

  • VB.NET

Es gibt 24 Antworten in diesem Thema. Der letzte Beitrag () ist von %P%.

    Pixel übereinstimmung

    Hi comm. Ich wollte wissen wie ich eine pixelübereinstimmung zweier bilder zustande bringen könnte. D.h. ich hab 2 Pics. Beide sind zwar unterschiedlich, aber haben doch das ein oder andere gemeinsam. und das will ich überprüfen. Hat da einer ne Idee oder kennt eine einen der weiß wie sowas geht???. Ich mach mich gerade über alles mögliche schlau was mit Pixeln zu tun hat, wär nett wenn der ein oder andere mich noch erleuchten könnte ;)

    Voraus schonma 1000 thx

    %P% :thumbup:
    Hello World
    Ein Beispiel für einen einfachen Vergleich...
    Dateien

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „kevin89“ ()

    Hey Leute, sorry für den Doppelpost aber ich hab nochmal eine Frage zu dem Pixelzeug. Und zwar hab ich in meinen Ressourcen ein Bild. Jetzt übertrage ich diese Pixel für Pixel und mittels FillRectangle auf meine Form. Wie kann ich diese nun nicht als Rechtecke auf die Form sondern in eine zweite Picturebox einfügen??? Das ist extrem wichtig für mich, wär toll wenn mir eine zeigen könnt wie das geht, bzw OB das überhaupt geht.
    Danke schonmal

    %P% :thumbup:
    Hello World

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Link“ ()

    Das meinte ich nicht, denn ich "kopiere" ja nicht alle Pixel, dass ich das bild einfach auf die zweite PB übertragen könnte weiß ich auch. aber ich "kopiere" ja nicht ALLE Pixel wie gesagt, sondern nur einen bestimmten Teil davon. Und da ich mit den Pixeln die ich dann leider auf meiner form hab, will ich ja weiterarbeiten.

    Thx

    %P%
    Hello World
    sorry dass ich jetz diesen (meinen ;)) alten Thread nochmal raushole aber ich hab da noch ne Frage: Ich hab mit das "Einfacher Pixelvergleich.zip" runtergezogen und der Code is echt gut. Jedoch möchte ich den Unterschied bzw. die Gleichheit zweier bilder in % umrechnen, und das will mir zum Teufel nochmal nicht gelingen!!!!! Ich so in der Art versucht



    VB.NET-Quellcode

    1. Dim Matches As Integer = 0
    2. 'und dann in der For schleife noch eingefügt, bzw. verändert:
    3. Matches+= If(cl1.R > cl2.R, 0, 1)
    4. Matches+= If(cl1.G > cl2.G, 0, 1)
    5. Matches+= If(cl1.B > cl2.B, 0, 1)
    6. 'Und halt die Pixel zählen
    7. Pixel += 1
    8. 'Und dann nach den Schleifen noch:
    9. Dim GleichheitInProzent As Double = Math.Round((100 / Pixel) * (Matches / 3), 2)



    So, und jetz müsste ich in Prozent haben, wieviel sich beide Bilder gleichen. Wenn ich zwei gleiche Bilder habe, dann bekomme ich 100%. ABER, und jetz kommts: Ich hab das Bild mit Paint aufgemacht und mit dem Stift NUR 1 Pixel verändern! Und wenn ich jetz beide Bilder vergleichen will bekomme ich grad mal eine Übereinstimmung von 3,60%, das KANN nicht sein oder??

    Und dann noch ne zweite kleine Frage: Kann das sein dass in dem *.zip-Beispiel ein Fehler im Code is, und zwar bei der Variable pxs. Da werden ja nicht alle Pixel gezählt. Da muss doch dann pxs += 1 stehen, nicht??

    Danke schonma
    %P% :thumbup:
    Hello World
    und wenn ich jetz beide Bilder vergleichen will bekomme ich grad mal eine Übereinstimmung von 3,60%, das KANN nicht sein oder??

    Doch, kann durchaus sein. Wenn ich das Bild z.B. nur schwach JPEG-Komprimiert speichere OHNE auch nur was zu ändern, ist die Differenz schon 30 %. Liegt einfach daran, dass durch Komprimierung Farben verloren gehen. Selbst bei 100 % Qualitäts-Einstellung in PdNET sind es 13 % Differenz zwischen original und JPEG.

    @ Beep: Er hat doch seinen Code, und der funktioniert auch?
    Achso, aber wenn ich das "Original" und dann das "Original mit einem Unterschied von einem Pixel" in meinen Pictureboxen habe, sehen doch beide gleich aus!! Ich meine, es werden doch nur die Farben verglichen, und die sind doch augenscheinlich immer noch dieselben, oder??



    PS: @kevin89 -> Dein PixelvergleichBeispiel war echt sehr gut und verständlich für mich :thumbup:

    Das von Beep! weiß nich wieso des nicht funzt, also ich meine ich hab jetz mal zuerst die *.exe probiert und die geht nicht... Ne Idee?



    %P% :thumbup:



    //EDIT:
    @ Beep: Er hat doch seinen Code, und der funktioniert auch?
    ?

    Wie meinst du das??
    Hello World
    Bei Beep's Beispiel müssen die Bilder gleich groß sein, liegt's daran? Aber du hast ja schon alles was du brauchst...

    Nein, die Farben sind eben nicht mehr dieselben. Für das Auge ist natürlich kein Unterschied zu erkennen, für den Computer durchaus. Am wenigsten Verlust hat man wohl im Windows Bitmap-Format. Wolltest du jetzt, dass der Computer keinen Unterschied erkennt, müsstest du eine Toleranz einbauen (z.B. +-3 zählt noch), dann wäre es bei nicht allzustarker Komprimierung immer noch 100 % laut Programm - in Wirklichkeit aber auch nicht mehr.

    Lad dir die beiden Bilder im Anhang mal runter - Differenz 24,39 %, auch wenn mit dem Auge nicht/kaum erkennbar.

    @ Beep: Nö, das mit den Prozent hat er ja richtig eingefügt.
    Bilder
    • lp.png

      76,19 kB, 800×600, 107 mal angesehen
    • lp3.jpg

      96,59 kB, 800×600, 113 mal angesehen

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „kevin89“ ()