AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Bilder schnell miteinander vergleichen
Thema durchsuchen
Ansicht
Themen-Optionen

Bilder schnell miteinander vergleichen

Offene Frage von "FriFra"
Ein Thema von Flips · begonnen am 12. Nov 2006 · letzter Beitrag vom 17. Aug 2009
Antwort Antwort
Seite 4 von 5   « Erste     234 5      
Phantom1

Registriert seit: 20. Jun 2003
282 Beiträge
 
Delphi 10.4 Sydney
 
#31

Re: Bilder schnell miteinander vergleichen

  Alt 17. Nov 2006, 14:52
Zitat von Hawkeye219:
and bindet stärker als xor, man sollte also hier Klammern setzen:

(PInteger(P1)^ xor PInteger(P2)^) and $00FFFFFF <> 0 Gruß Hawkeye
Oh ja stimmt, ich habe es oben korrigiert.
  Mit Zitat antworten Zitat
Relicted

Registriert seit: 24. Jan 2006
Ort: Iserlohn
646 Beiträge
 
Delphi 10.4 Sydney
 
#32

Re: Bilder schnell miteinander vergleichen

  Alt 26. Nov 2006, 13:55
mahlzeit!

jemand ne idee wie ich 2 bilder ( grundstruktur gleich, also gleiches bild ) miteinander vergleiche die aber total unterschiedliche farbwerte haben? also das eine bild hat z.b. nen grünstich das andere nen blaustich...
als basis sind es aber die selben bilder...


ich habe schon überlegt ob man vielleicht alle farbinformationen rausnimmt und dann ein S/W bild benutzt ( geht das überhaupt in delphi ? ) und dann vergleicht - es sollten ja die selben werte dann rauskommen oder vertue ich mich da ?

gruß
reli

PS: ich mach denk ich mal nen neuen thread auf zu dem thema )
danke luke schonmal für den hinweis
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#33

Re: Bilder schnell miteinander vergleichen

  Alt 26. Nov 2006, 16:06
Du kannst es natürlich in Graustufen umrechnen.

Evtl. kannst du auch mit "farbstich-durchschnittswerten" rechnen, wenn also das eine bild "grüner" als das andere ist, das entsprechend in die toleranz mit hineinrechnen.

aber das gehört eigentlich nicht hierher...
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
26. Nov 2006, 18:55
Dieses Thema wurde von "Daniel" von "Neuen Beitrag zur Code-Library hinzufügen" nach "Multimedia" verschoben.
KleinAmann

Registriert seit: 29. Apr 2008
Ort: Bad Waldsee
32 Beiträge
 
#35

Bilder miteinander vergleichen / ungleiche Pixel makieren

  Alt 6. Mär 2009, 00:39
Hi,

sry dass ich so einen alten Thread aufwühl aber ich
kam auf eine Idee für ein neues Programm.

Nun hab ich die Frage ob es sich auch irgendwie machen lässt,
Bereiche wo sich was geändert hat mit einem Kreis zu makieren.

Ich kann die einzelnen Pixel wo unterschiedlich sind färben aber ich
weiß nicht wie ich einen zusammenhängenden bereich umkreisen kann um ihn praktisch zu makieren.

Dann hätte ich noch eine weitere Frage, nehmen wir an man hat 1 Objekt (ein Fingerabdruck) nun ist auf dem Bild mit dem
man es vergleichen will auch dieser Fingerabdruck nur ist dieser nicht auf der selben position und nicht ganz vollständig.
Kann man jetzt irgendwie herausfinden ob sie übereinstimmen? Man siehts oft bei Crime Serien, wo sie die Fingerabdrücke aus ihrer Datenbank vergleichen.

Ich wäre dankbar um vorschläge bzw tipps.

Mfg "Klein"Amann
Dominik A.
Mfg Domi
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#36

Re: Bilder schnell miteinander vergleichen

  Alt 6. Mär 2009, 09:49
am einfachsten du erstellst dir erstmal ein Differenzielles Bild

für jedes Pixel :
Delphi-Quellcode:
DiffImage.PixelX.Red := Abs(Image1.PixelX.Red - Image2.PixelX.Red);
DiffImage.PixelX.Green := Abs(Image1.PixelX.Green - Image2.PixelX.Green);
...
dann suchst du dieses Bild nach Farben <> Schwarz ab (eventell mit mindestens einer gewissen Distanz zu Schwarz, damit kleinese unterschiede ignoriert werden)

von einem gefundenen Pixel schaust du dir die umgebenden Pixel an
und bekommst so einen Bereich zusammen ... anhand der Größe und Position dieses Bereiches zeichnest du dann den Kreis
(in etwa Kreisdurchmesser etwas größer als Max(Breite, Höhe) des Bereiches und Kreismittelpunkt = Bereichmittelpunkt)

und dann suchst du nach weiteren Bereichen (die gefundenen Bereiche irgendwo in einer Liste speichern und mit dem neugefundenen Bereich vergleichen, damit nichts mehrfach behandelt wird)
$2B or not $2B
  Mit Zitat antworten Zitat
KleinAmann

Registriert seit: 29. Apr 2008
Ort: Bad Waldsee
32 Beiträge
 
#37

Re: Bilder schnell miteinander vergleichen

  Alt 6. Mär 2009, 12:10
hi vielen Dank erstmals aber
leider gibts es bei mir in Delphi 2009 bei TImage werder Image1.pixel noch Image1.pixelX
was soll ich tun?
mfg DA
Dominik A.
Mfg Domi
  Mit Zitat antworten Zitat
Benutzerbild von FriFra
FriFra

Registriert seit: 19. Apr 2003
1.291 Beiträge
 
Delphi 2005 Professional
 
#38

Re: Bilder schnell miteinander vergleichen

  Alt 27. Apr 2009, 09:13
Ich hab die Funktion getestet, wobei die von Phantom mit meinen Testdaten ca. 3x schneller läuft, als die ursprüngliche Version.

Die Sache hat jedoch einen Schönheitsfehler, sie funktioniert nicht zuverlässig. Wenn ich eine 256 Farb Grafik scanne ist die Funktion sehr genau, bei JPGs mit den üblichen Artefakten tendiert die Trefferquote bei mir gegen 0. Ich habe einfache Grafiken und scanne diese nach ähnlichen Bereichen, dabei sind augenscheinlich nahezu identische Bereiche nach dem Ergebnis dieser Funktionen deutlich weniger ähnlich als vollkommen unterschiedliche Bereiche.

Kennt jemand noch eine andere Methode 2 Bilder auf Ähnlichkeit zu prüfen?
Elektronische Bauelemente funktionieren mit Rauch. Kommt der Rauch raus, geht das Bauteil nicht mehr.
  Mit Zitat antworten Zitat
Benutzerbild von FriFra
FriFra

Registriert seit: 19. Apr 2003
1.291 Beiträge
 
Delphi 2005 Professional
 
#39

Re: Bilder schnell miteinander vergleichen

  Alt 7. Mai 2009, 00:24
Ich wollte den Threat nochmal pushen... kennt wirklich niemand eine Möglichkeit 2 Bilder schnell auf Ähnlichkeit zu prüfen? Wie gesagt ist diese Methode für mich zu ungenau...
Elektronische Bauelemente funktionieren mit Rauch. Kommt der Rauch raus, geht das Bauteil nicht mehr.
  Mit Zitat antworten Zitat
stiftmaster

Registriert seit: 7. Sep 2008
1 Beiträge
 
#40

Re: Bilder schnell miteinander vergleichen

  Alt 23. Jul 2009, 09:07
Hallo,

habe mir den "letzten finalen" Quelltext von Phantom1 genauer angeschaut und bin begeistert, wie schnell das ganze klappt - dickes Lob an dieser Stelle!

Dieser Code gibt ja als Int zurück, wie viele Pixel in der Grafik unterschiedlich sind. Nun möchte ich halt nicht nur die Anzahl wissen, sondern a) welche Position und b) wie der neue Wert aussieht. Habe daher den if-Teil wie folgt angepasst:

Delphi-Quellcode:
if (P1^.rgbtRed<>P2^.rgbtRed) or (PWord(P1)^<>PWord(P2)^) then
begin
  SetLength(changes, Length(changes) + 1);
  y := xy div Bitmap1.Width;
  x := xy - (y * Bitmap1.Width);
  changes[Length(changes) - 1].x := x;
  changes[Length(changes) - 1].y := y;
  changes[Length(changes) - 1].Color := Bitmap2.Canvas.Pixels[x, y];
end;
Dabei sieht changes wie folgt aus:
Delphi-Quellcode:
TDifference = record
  x: Integer;
  y: Integer;
  color: TColor;
end;

TDifferences = array of TDifference;

var
  changes: TDifferences;
Zu den Messungen: wenn ich Phantom1 Code nehme, dann braucht mein Rechner mit meinen Bildern bei 500 Durchläufen 4.500 TickCounts. Wenn ich meine Anpassungen integriere, dann sind es 11.391. Das ist natürlich prozentual gesehen ein enormer Verlust an Geschwindigkeit. Daher meine Frage an euch Fachmänner - geht das auch schneller?

Ziel ist grob wie folgt kurz beschreibbar:
Programm1: hat Bild1 und Bild2 => Berechnet Differenz
Programm2: hat Bild1 und bekommt Differenz => berechnet draus Bild2

Vielen Dank für eure Mühen

Stefan
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 5   « Erste     234 5      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz