Registriert seit: 17. Nov 2010
17 Beiträge
|
Bilder vergleichen
15. Dez 2010, 12:04
Hallo Leute,
bin nicht der beste bzw. kenne mich fast gar nicht mit delphi aus. Jetzt habe ich eine Aufgabe bekommen und weiß nicht wie ich anfangen kann. Könnt ihr mir vielleicht helfen?
Hier meine Aufgabe:
Es liegen zwei Sternbilder desselben Himmelsbereiches vor. Der Unterschied zwischen diesen Bildern ist, dass sie zu unterschiedlichen Zeitpunkten aufgenommen wurden. Die Partielle Veränderung des Fotos soll per Programm ermittelt und durch einen roten Kreis gekennzeichnet werden.
Schreiben Sie dazu eine Prozedur 'roter_Kreis(xm,ym,r,anzahl:integer)', die einen roten Kreis um den Punkt P(xm,ym) mit Radius "r" und mit 40 Linien auf das Image1 bis Image5 zeichnen kann. Hierzu brauchen Sie kein Struktogramm zu erstellen, da Ihnen das aus früheren Aufgaben vorliegt.
Die beiden Bitmap-Bilder laden Sie mit "pictures.loadfromfile". Die Ausschnittbilder werden passend übereinandergelegt und die Grauwerte voneinander subtrahiert. (Sie nehmen an, dass es nur 256 Grauwerte gibt, die man unterscheiden kann) Sie subtrahieren also nur die Rotwerte für ein Differenzbild. Das Differenzbild ergibt mögliche Änderungen und soll im Image3 ausgegeben werden. Sie sollen, aus dem Differenzbild den mittleren Mittelpunkt der flächigen Änderung berechnen, falls eine Ändeung zwischen beiden Bildern vorhanden ist. Das machen Sie indem Sie sich in vier verschiedenen FOR-Konstuktionen (es gibt nur eine Änderung) von oben, unten, links und rechts vom Bildrand nähern bis Sie eine Abweichung im Grauwert >=10 ermitteln (dieser Wert, damit Sie über dem "Grundrauschen" liegen). Jede Schleife die durchlaufen wird, kann mit "break" beendet werden. Doppelschleifen, die beendet werden erfordern ein weiteres "break" für die äusssere Schleife. Der Mittelpunkt der Abweichung auf dem Himmelsbild ergibt sich aus den 4 Koordinaten, die Sie aus den vier Durchläufen ermittelt haben. Um diesen Mittelpunkt der Änderung ist auf beiden Originalbildern ein Kreis mit Radius 15 um die Änderung zeichnen, indem Sie "roter_Kreis" benutzen.
Struktogramm nicht vergessen!
Für einen Lösungsansatz wäre ich sehr dankbar
|