AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Bildausschnitt mit Bild vergleichen

Bildausschnitt mit Bild vergleichen

Ein Thema von AbesCid · begonnen am 29. Jul 2010 · letzter Beitrag vom 14. Dez 2011
Antwort Antwort
Benutzerbild von Desmulator
Desmulator

Registriert seit: 3. Mai 2007
Ort: Bonn
169 Beiträge
 
#1

AW: Bildausschnitt mit Bild vergleichen

  Alt 29. Jul 2010, 17:20
Sicherlich sollte es einfach sein die Bilddatei aus dem Internet herrunter zu laden. Wie du erwähnt hast kannst du das mit IdHTTP machen. Dafür müsstest du dann die Datei laden und z.b. in einer tmp-Datei speichern und diese dann als jpg o.Ä. laden, oder direkt vom Socket in den Speicher fürs Bild.

Das eigentlich schwierige wird sein den Bildausschnitt zu finden. Dazu musst du nämlich jeden Pixel mit jedem vergleichen. Dies ist sehr zeitintensiv, angenommen du hast einen ausschnitt von 25*100 Pixel auf einem Gesamtbild von 800*600, dann musst du 2500 Pixel mit 480000 Pixel vergleichen. Wenn man jedoch bedenkt, dass das kleiner Bild nicht herraus ragen kann, dann sind es nurnoch 387500 ( 775 * 500 ) Pixel die verglichen werden müssen. Also kommst du im schlechtesten Fall, wenn z.B. der Ausschnitt nicht vorhanden ist auf 968750000 Vergleiche. Und wenn man dann noch die Geschwindigkeit von Canvas.Pixels[x, y] bedenkt ... nunja

Und wenn du jetzt noch aus mehreren Bildern dieses eine mit diesem einen Ausschnitt finden sollst, na dann Nacht Mattes xD
Lars

Geändert von Desmulator (29. Jul 2010 um 17:22 Uhr)
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: Bildausschnitt mit Bild vergleichen

  Alt 29. Jul 2010, 17:29
Und wenn man dann noch die Geschwindigkeit von Canvas.Pixels[x, y] bedenkt ... nunja
Das man ja nicht verwendet, weil man ja Scanline benutzt.
  Mit Zitat antworten Zitat
blackfin
(Gast)

n/a Beiträge
 
#3

AW: Bildausschnitt mit Bild vergleichen

  Alt 29. Jul 2010, 18:57
schneller dürfte es gehen, wenn man im Ausschluss-Verfahren arbeitet:
Im Sub-Bild die Farbe des ersten Pixels auslesen und den ersten Pixel mit der Farbe im grossen Bild finden, wenn diese zutrifft, auf den zweiten Pixel prüfen, wenn dieser nicht zutrifft, weitergehen. So kann man anhand der Bild-Dimensionen des kleinen Bildes und der gefundenen X-Y-Koordinaten schon ziemlich viele aussschliessen, die man gar nicht prüfen muss.

Eine andere, theoretische Möglichkeit wäre es vielleicht, eine Art "Quad-Tree" als Farb-Durchschnitt zu erzeugen (beide Bilder in Blöcke unterteilen und von diesen den Farb-Durchschnitt speichern, dann im grossen Bild dort anfangen, wo ein Block am ehesten dem Durchschnitt entspricht und sich dann an die Kanten herantasten)
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.688 Beiträge
 
Delphi 2007 Enterprise
 
#4

AW: Bildausschnitt mit Bild vergleichen

  Alt 29. Jul 2010, 19:45
Ein klassischer Fall für die Kreuzkorrelation. (Englisch, weil die Deutsche Variante nicht viel her gibt.)
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 06:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz