DE69126424T2 - Compare patterns with confirmed limits - Google Patents

Compare patterns with confirmed limits

Info

Publication number
DE69126424T2
DE69126424T2 DE1991626424 DE69126424T DE69126424T2 DE 69126424 T2 DE69126424 T2 DE 69126424T2 DE 1991626424 DE1991626424 DE 1991626424 DE 69126424 T DE69126424 T DE 69126424T DE 69126424 T2 DE69126424 T2 DE 69126424T2
Authority
DE
Germany
Prior art keywords
image
pixels
pixel
edge
process block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE1991626424
Other languages
German (de)
Other versions
DE69126424D1 (en
Inventor
Harold J Geller
Irving Kanter
Gordon L Kettering
Albert H Long
Theodore J Peregrim
Stephen L Richter
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Raytheon Co
Original Assignee
Raytheon Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Raytheon Co filed Critical Raytheon Co
Priority claimed from EP91302246A external-priority patent/EP0503179B1/en
Application granted granted Critical
Publication of DE69126424D1 publication Critical patent/DE69126424D1/en
Publication of DE69126424T2 publication Critical patent/DE69126424T2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Image Analysis (AREA)

Description

Die Erfindung bezieht sich auf ein Verfahren zum Abg leichen eines ersten Bildes und eines zweiten Bildes einer gleichen Szenerie, wobei sowohl das erste als auch das zweite Bild ein Bildpunkffeld aufweist, bestehend aus den Schritten : Ausbilden einer Referenzkarte eines Abschnitts des ersten Bildes, wobei die Referenzkarte ein Feld von Bildpunkten aufweist, die jeweils einem entsprechenden Bildpunkt des Abschnitts des ersten Bildes entsprechen, und die Werte der Bildpunkte der Referenzkarte die Position einer oder mehrerer Kanten angeben, die in diesem Abschnitt des ersten Bildes dargestellt sind, wobei die Referenzkarte aufeinanderfolgend mit den Abschnitten des zweiten Bildes verglichen wird und für jeden Abschnitt des zweiten Bildes eine Marke berechnet wird, wobei die Marke die Wahrscheinlichkeit angibt, dass die Bildpunkte im Abschnitt des zweiten Bildes, die den Bildpunkten in der Referenzkarte entsprechen, Werte aufweisen, die eine oder mehrere Kanten im zweiten Bild angeben; und Auswählen des Abschnitts des zweiten Bildes, welches die höhere Marke erzeugt, um dem Abschnitt des ersten Bildes zu entsprechen.The invention relates to a method for matching a first image and a second image of the same scene, both the first and second images having an array of pixels, comprising the steps of: forming a reference map of a portion of the first image, the reference map having an array of pixels each corresponding to a corresponding pixel of the portion of the first image, and the values of the pixels of the reference map indicating the position of one or more edges shown in this portion of the first image, the reference map being compared sequentially with the portions of the second image and a mark being calculated for each portion of the second image, the mark indicating the probability that the pixels in the portion of the second image corresponding to the pixels in the reference map have values indicating one or more edges in the second image; and selecting the portion of the second image producing the higher mark to correspond to the portion of the first image.

Bei bestimmten militärischen Operationen ist es wichtig eine Fernlenkwaffe von einem Flugzeug in Richtung auf ein bestimmtes Ziel auf dem Boden abzufeuern. Man erhält einen wesentlichen militärischen Vorteil, wenn sich die Lenkwaffe eigenständig zum Ziel führt. Dadurch kann das Flugzeug mit seinem menschlichen Piloten ausserhalb des Gefahrenbereiches bleiben, der um das Ziel herum liegt. Um dies zu ermöglichen, muss die Lenkwaffe Zugriff auf die Zieldaten haben, um das bestimmte Ziel im Anflug identifizieren können.In certain military operations, it is important to fire a guided missile from an aircraft towards a specific target on the ground. A significant military advantage is gained if the guided missile guides itself to the target. This allows the aircraft and its human pilot to stay outside the danger zone surrounding the target. To make this possible, the guided missile must have access to the target data in order to be able to identify the specific target on approach.

Die US-A-3 737 120 beschreibt ein Radarkartenvergleichs-Nachführsystem für eine von einem Flugzeug abgefeuerte nachgeführte Lenkwaffe, wobei das Flugzeug mit einem Karten radar mit synthetischer Öffnung von variabler Auflösung ausgestattet ist, welches hochauflösende Karten der Merkmale eines Ziels und seines unmittelbaren Umgebungsbereichs aus einer Enifernung von 50 nautischen Meilen aufnehmen kann, und die Lenkwaffe mit einem herkömmlichen, nicht-verarbeitenden Röntgen band (X-band) Radar ausgestattet ist, welches mit einer 2-Fuß X-band Antenne nur noch 300 Fuß vom Ziel entfemt ist, wenn es die vom synthetischen Öffnungsradar des Flugzeugs bei 50 nautischen Meilen erhaltene Auflösung erzeugt. Das Radar des Flugzeugs er-US-A-3 737 120 describes a radar map comparison tracking system for an aircraft-launched guided missile, the aircraft being equipped with a variable resolution synthetic aperture mapping radar capable of obtaining high resolution maps of the features of a target and its immediate surrounding area from a distance of 50 nautical miles, and the missile being equipped with a conventional non-processing X-band (X-band) radar which, with a 2-foot X-band antenna, is only 300 feet from the target when it generates the resolution obtained from the aircraft's synthetic aperture radar at 50 nautical miles. The aircraft's radar

zeugt eine Serie von Karten des Zielbereichs mit unterschiedlichen Auflösungen, wobei jede Auflösung der Auflösung vom X-band Lenkwaffenradar bei einem bestimmten Abstand vom Ziel entspricht. Diese Karten erhält man in einem Abstand von 50 nautischen Meilen vom Ziel und werden in getrennten CRTs vom Speichertyp in der Lenkwaffe gespeichert. Beim Abfeuern der Lenkwaffe wird diese durch ein Trägheitsnachführsystem auf das Ziel gerichtet. Nach dem Abschuß werden unter der Steuerung eines Zeitgebers in der Lenkwaffe Augenblicks-Radarkarten von seinem X-band Radar auf den entsprechenden CRTs zu vorbestimmten Zeitpunkten dargestellt, die vorbestimmten Entfernungen entsprechen. Jede dieser CRTs erzeugt ein Eingangsbild für einen entsprechenden Bildvergleicher, der zu einem geeigneten Zeitpunkt das Bild der gespeicherten Karte von der entsprechenden Speicher-CRT empfängt. Somit wird beim Annähern der Lenkwaffe an das Ziel die Auflösung der zu vergleichenden Karten höher, wobei das Trägheitsnachführsystem durch die von den Bildvergleichern ausgegebenen Fehlersignale korrigiert wird. Die Bildvergleicher sind jedoch im Einzelnen nicht beschrieben.produces a series of maps of the target area at different resolutions, each resolution corresponding to the resolution of the X-band missile radar at a given distance from the target. These maps are obtained at a distance of 50 nautical miles from the target and are stored in separate memory-type CRTs in the missile. When the missile is fired, it is guided to the target by an inertial tracking system. After launch, under the control of a timer in the missile, instantaneous radar maps from its X-band radar are displayed on the corresponding CRTs at predetermined times corresponding to predetermined distances. Each of these CRTs produces an input image to a corresponding image comparator which, at an appropriate time, receives the image of the stored map from the corresponding memory CRT. Thus, as the missile approaches the target, the resolution of the maps to be compared increases, with the inertial tracking system being corrected by the error signals emitted by the image comparators. However, the image comparators are not described in detail.

Im Allgemeinen sind synthetische Öffnungsradars (Synthetic Aperture Radars, SARs) bekannt. Es genügt zu sagen, dass ein auf einem Flugkörper montiertes SAR ein Bild von Objekten erzeugt, die innerhalb eines Sichtfeldes auf dem darunter liegenden Boden liegt. Das Bild kann durch eine Vielzahl von Arten dargestellt werden. Bei mittels eines Computers weiter zu verarbeitenden Bildern besteht das Bild meistens aus einem Feld von digitalen Worten, wobei jedes Wort die Intensität bzw. Helligkeit der Radarreflektionen aus einem kleinen Bereich innerhalb des Sichtfeldes beschreibt. Alternativ kann ein Bild vom Bodenbereich mit einer fotografischen Kamera aufgenommen werden, wenn es einem Menschen angezeigt werden soll.In general, synthetic aperture radars (SARs) are known. Suffice it to say that a missile-mounted SAR produces an image of objects lying within a field of view on the ground below. The image can be displayed in a variety of ways. For computer-processed images, the image is most often an array of digital words, with each word describing the intensity or brightness of radar reflections from a small area within the field of view. Alternatively, an image of the ground area can be captured with a photographic camera if it is to be displayed to a human.

In dem betrachteten Waffensystem sind sowohl das Flugzeug als auch die Lenkwaffe mit dem synthetischen Öffnungsradar (SAR) ausgestattet.In the weapon system under consideration, both the aircraft and the guided missile are equipped with synthetic aperture radar (SAR).

Bei dem betrachteten Waffensystem ist es wünschenswert, daß ein Mensch im Flugzeug ein bestimmtes Ziel im Bild bestimmen kann. Der dem Ziel benachbarte Bildabschnitt wird dabei zum Referenzbild. Daraufhin überträgt ein Bildverarbeitungsgerät im Flugzeug das Referenzbild an die Lenkwaffe. Nach dem Abschuss fliegt die Lenkwaffe in Richtung zum Ziel, wobei es seine eigenen SAR-Bilder erzeugt. Eine Bildverarbeitung in der Lenkwaffe vergleicht das Referenzbild mit dem Bild der Lenkwaffe. Das Lenkwaffen-Nachführsystem kann somit die Ergebnisse des Bildvergleichs zum Steuern der Lenkwaffe in Richtung auf das bestimmte Ziel verwenden.In the weapon system under consideration, it is desirable for a person in the aircraft to be able to identify a specific target in the image. The image section adjacent to the target becomes the reference image. An image processing device in the aircraft then transmits the reference image to the guided missile. After firing, the guided missile flies towards the target, generating its own SAR images. An image processing system in the guided missile compares the reference image with the image of the guided missile. The guided missile tracking system can then use the results of the image comparison to guide the guided missile towards the specific target.

Aus der US-A-4 581 762 ist ein Verfahren der eingangs genannten Art bekannt, bei dem das erste Bild ein Bild eines bekannten Objektes ist während das zweite Bild ein Bild eines unbekannten jedoch verwandten Objekts ist. Das beschriebene Verfahren wird insbesondere zur visuellen Überprüfung von hergestellten Objekten wie beispielsweise Geschwindigkeitsmessgeräten von Krafllfahrzeugen verwendet. Eine Kamera des visuellen Überprüfungssystems nimmt die Helligkeitswerte um einen Punkt herum auf, der von einem Benutzer als in einem Bereich liegend ausgewählt wurde, bei dem die Kanten eines bekannten, massengefertigten Gegenstands vorhanden sind. Ein Bereich von 9x9 Bildpunkten um diesen Punkt wird gespeichert. Unter Verwendung eines als Sobel-Verfahrens bekannten Verfahrens (Seite 337, Digital Image Processing von Gonzales und Wintz, Addison Wesley Company, 1977) wird der Grad ient eines Mittelpunktes einer jeden 3x3 Matrix von Bildpunktwerten innerhalb des 9x9 Bildpunktbereichs zum Erzeugen eines 7x7-Gradientenfeldes verarbeitet, das nachfolgend als Modell zum Erkennen der gleichen Kantenkonfiguration in einem 40x32-Bildpunktsuchbereich des unbekannten Gegenstandes verwendet wird. Während der Testphase wird der 40x32-Bildpunktsuchbereich mittels des Sobel-Verfahrens zum Erzeugen einer 38x30-Gradientenkarte verwendet. Die mathematischen Korrelationswerte werden für jeden 7x7-Bildpunktbereich der 38x30-Gradientenkarte verarbeitet. Somit werden 720 Korrelationswerte berechnet. Ein Korrelationswert, der 0,85 überschreitet wird als Anzeige einer wahrscheinlichen Korrespondenz zwischen dem Bereich des diesen Wert erzeugenden unbekannten Gegenstands und dem Umgebungsbereich des ausgewählten Punktes des bekannten Gegenstands gewertet.From US-A-4 581 762 a method of the type mentioned above is known, in which the first image is an image of a known object while the second image is an image of an unknown but related object. The method described is used in particular for the visual inspection of manufactured objects such as speed measuring devices on motor vehicles. A camera of the visual inspection system records the brightness values around a point that has been selected by a user as being in an area where the edges of a known, mass-produced object are present. An area of 9x9 pixels around this point is stored. Using a technique known as the Sobel method (page 337, Digital Image Processing by Gonzales and Wintz, Addison Wesley Company, 1977), the gradient of a center point of each 3x3 matrix of pixel values within the 9x9 pixel area is processed to generate a 7x7 gradient field, which is subsequently used as a model for detecting the same edge configuration in a 40x32 pixel search area of the unknown object. During the test phase, the 40x32 pixel search area is used to generate a 38x30 gradient map using the Sobel method. The mathematical correlation values are processed for each 7x7 pixel area of the 38x30 gradient map. Thus, 720 correlation values are calculated. A correlation value exceeding 0.85 is considered to indicate a probable correspondence between the area of the unknown object producing this value and the area surrounding the selected point of the known object.

Damit das betrachtete Waffensystem jedoch funktioniert, müssen verschiedene Probleme bewältigt werden. Ein bedeutendes Problem ist die Tatsache, daß sich mit dem Annähern der Lenkwaffe an das Ziel die Sichtwinkel ändem. Demzufolge unterscheiden sich die von der Lenkwaffe erzeugten SAR- Bilder während des Fluges von dem vom Flugzeug erzeugten SAR-Bild, je weiter sich die Lenkwaffe vom Abschusspunkt entfernt. Daher muss die Bildverarbeitung relativ unempfindlich hinsichtlich Änderungen im Sichtwinkel sein. Ein weiteres zu bewältigendes Problem liegt darin, daß die Lenkwaffe die SAR- Bilder schnell verarbeiten muss, so dass das Lenkwaffen-Nachführsystem auf notwendige Kursänderungen schneller reagieren kann. Darüber hinaus sollte die Bildverarbeitung in der Lenkwaffe eine relativ einfache Schaltungstechnik benötigen, da die gesamte Lenkwaffe ein nicht wieder verwendbares Gerät darstellt.However, in order for the weapon system in question to work, various problems must be overcome. One significant problem is the fact that the angle of view changes as the missile approaches the target. As a result, the SAR images produced by the missile during flight differ from the SAR image produced by the aircraft the further the missile moves away from the launch point. Therefore, the image processing must be relatively insensitive to changes in the angle of view. Another problem to be overcome is that the missile cannot detect the SAR Images must be processed quickly so that the missile tracking system can react more quickly to necessary course changes. In addition, the image processing in the missile should require relatively simple circuit technology, since the entire missile is a non-reusable device.

Erfindungsgemäß ist das eingangs beschriebene Verfahren dadurch gekennzeichnet, daß die Referenzkarte durch folgende Schritte gebildet wird: Ausbilden einer ersten Karte des Abschnitts des ersten Bildes, wobei die erste Karte ein Feld von Bildpunkten aufweist, die jeweils einem entsprechenden Bildpunkt des Abschnitts des ersten Bildes entsprechen und einen Wert aufweisen, der angibt, ob der Bildpunkt in einem lokalen Fenster, das den entsprechenden Bildpunkt im ersten Bild umgibt, eine Kante darstellt; Ausbilden einer zweiten Karte des Abschnitts des ersten Bildes, wobei die zweite Karte aus einem Feld von Bildpunkten besteht, die jeweils einem entsprechenden Bildpunkt des Abschnitts des ersten Bildes entsprechen und einen Wert aufweisen, der angibt, ob der entsprechende Bildpunkt im ersten Bild einen Wert besitzt, der einen Schwellenwert überschreitet; und Kombinieren der ersten Karte mit der zweiten Karte, wodurch die Referenzkarte ausgebildet wird.According to the invention, the method described at the outset is characterized in that the reference map is formed by the following steps: forming a first map of the section of the first image, the first map having an array of pixels each corresponding to a corresponding pixel of the section of the first image and having a value that indicates whether the pixel represents an edge in a local window surrounding the corresponding pixel in the first image; forming a second map of the section of the first image, the second map consisting of an array of pixels each corresponding to a corresponding pixel of the section of the first image and having a value that indicates whether the corresponding pixel in the first image has a value that exceeds a threshold value; and combining the first map with the second map, thereby forming the reference map.

Bevorzugte Ausführungsbeispiele dieser Erfindung erzeugen: ein Signalverarbeitungsverfahren zum Registrieren von zwei Bildern; ein Signalverarbeitungsverfahren zum Registrieren von zwei Bildern, wenn sich die Sichtwinkel der Bilder unterscheiden; und ein Signalverarbeitungsverfahren zum Registrieren von zwei Bildern unter Verwendung einer relativ schnellen und einfachen Verarbeitung.Preferred embodiments of this invention produce: a signal processing method for registering two images; a signal processing method for registering two images when the viewing angles of the images differ; and a signal processing method for registering two images using relatively fast and simple processing.

In einem bevorzugten Ausführungsbeispiel dieser Erfindung wird daher das erste der zwei Bilder zum Erzeugen eines Referenzmodells verarbeitet. Das Referenzmodell wird mit jedem Bereich des zweiten Bildes verglichen, um den Bereich des zweiten Bildes zu finden, der mit dem Referenzmodell übereinstimmt. Das Referenzmodell wird durch Filtern des ersten Bildes zum Verringern des Rauschens und zum Verbessern des Kontrasts zwischen den unterschiedlichen Bereichen im Bild erzeugt. Daraufhin werden zwei Karten von dem gefilterten Bild erzeugt. Die erste Karte besitzt eine Anzeige der Kantenstellen des Gegenstandes im Bild und wird dadurch ausgebildet, daß die Stellen im Bild gefunden werden, bei denen sich die Intensität bzw. Helligkeit plötzlich ändert. Die zweite Karte wird durch Einstellen der Helligkeit eines jeden Bildpunktes im gefilterten Bild auf eine sehr kleine Anzahl von Bildhelligkeiten und anschließendem Anzeigen einer Kante an jedem Bildpunkt, der zu einem Bildpunkt mit unterschiedlicher Helligkeit benachbart ist, ausgebildet. Die zwei Karten werden daraufhin zum Ausbilden einer neuen Karte verglichen, die nur die in beiden Karten erzeugten Kanten enthält. Eine zusätzliche Verarbeitung fügt die Kanten der neuen Karte entsprechend den in lediglich einer der Karten auftretenden Kanten hinzu, vorausgesetzt diese Kanten erfüllen weitere Kriterien, die sie als tatsächliche Kanten vorschlagen. Die resultierende Karte wird daraufhin als Modell bzw. Schablone kodiert, die einen schnellen Vergleich mit dem zweiten Bild ermöglicht.Therefore, in a preferred embodiment of this invention, the first of the two images is processed to produce a reference model. The reference model is compared with each region of the second image to find the region of the second image that matches the reference model. The reference model is produced by filtering the first image to reduce noise and improve contrast between different regions in the image. Two maps are then produced from the filtered image. The first map has an indication of the edge locations of the object in the image and is formed by finding the locations in the image where the intensity or brightness suddenly changes. changes. The second map is formed by adjusting the brightness of each pixel in the filtered image to a very small number of image brightnesses and then displaying an edge at each pixel adjacent to a pixel of different brightness. The two maps are then compared to form a new map containing only the edges generated in both maps. Additional processing adds edges to the new map corresponding to edges occurring in only one of the maps, provided those edges meet additional criteria suggesting they are actual edges. The resulting map is then encoded as a model or template, which allows for quick comparison with the second image.

Insbesondere wird die erste Karte durch Arbeiten in Unterfeldern der Bildpunkte im ersten Bild erzeugt. Jedes Unterfeld wird in zwei gleich große Gruppen von benachbarten Bildpunkten aufgeteilt. Die Summe der Helligkeiten der Bildpunkte in der Gruppe wird berechnet und das Verhältnis zwischen den beiden Summen bestimmt. Jedes Unterfeld wird auf vier unterschiedliche Arten zerlegt, wobei die Zerlegung ausgewählt wird, die das größte Verhältnis erzeugt. Wenn dieses Verhältnis einen vorbestimmten Schwellenwert überschreitet, wird der Bildpunkt in der ersten Karte entsprechend dem Zentrum des Unterfelds auf einen Wert eingestellt, der eine Kante in Richtung der Trennlinie zwischen den zwei Gruppen von Bildpunkten angibt.In particular, the first map is generated by working in sub-fields of the pixels in the first image. Each sub-field is divided into two equally sized groups of adjacent pixels. The sum of the brightnesses of the pixels in the group is calculated and the ratio between the two sums is determined. Each sub-field is decomposed in four different ways, choosing the decomposition that produces the largest ratio. If this ratio exceeds a predetermined threshold, the pixel in the first map corresponding to the center of the sub-field is set to a value that indicates an edge towards the dividing line between the two groups of pixels.

Die zweite Karte wird zunächst durch Berechnung eines Schwellenwertes gebildet. Dieser Schwellenwert wird durch Berechnung eines Verhältnisses entsprechend einem jeden Bildpunkt im ersten Bild bestimmt, der das Verhältnis der Helligkeit dieses Bildpunktes im Vergleich zum Bildpunkt in der Nähe des Bildes mit dem größten Helligkeitsunterschied reflektiert. Die Durchschnittshelligkeit der Bildpunkte im Bild mit den großen Helligkeiten und den großen Verhältnissen wird daraufhin als Durchschnitt der Bildpunkte mit geringer Helligkeit und großen Verhältnissen berechnet.The second map is first created by calculating a threshold. This threshold is determined by calculating a ratio corresponding to each pixel in the first image that reflects the ratio of the brightness of that pixel compared to the pixel near the image with the largest brightness difference. The average brightness of the pixels in the image with the high brightnesses and the high ratios is then calculated as the average of the pixels with low brightnesses and the high ratios.

Der Durchschnitt bzw. Mittelwert der beiden Mittelwerte bildet den Schwellenwert, wobei eine Kante in der zweiten Karte dort angezeigt wird, wo ein Bildpunkt im ersten Bild mit einer Helligkeit auf einer Seite des Schwellenwerts zu einem Bildpunkt benachbart ist, der eine Helligkeit auf der anderen Seite des Schwellenwerts besitzt.The average or mean of the two averages forms the threshold, with an edge shown in the second map where a pixel in the first image with a brightness on one side of the threshold is adjacent to a pixel with a brightness on the other side of the threshold.

Die Karten werden zu einer neuen Karte kombiniert, die tatsächliche Kanten aufweist, in dem zunächst in der wahren Kanten-Karte die Bildpunkte entsprechend den Kanten in sowohl der ersten als auch der zweiten Karte beinhaltet sind. Die den Kanten in der zweiten Karte entsprechenden Bildpunkte, die jedoch nicht der ersten Karte entsprechen, werden für die weitere Verarbeitung ausgewählt. Die ausgewählten Bildpunkte werden in ziemlich gleicher Art getestet, wie sie zur Identifizierung der Kanten verwendet werden, wobei ihre Winkel zum Erstellen der ersten Karte mit Ausnahme unterschiedlicher ent spannter Parameter dazu verwendet werden, um einen Pixel wahrscheinlicher als eine Kante zu identifizieren. Wenn die Winkel der mit entspannten Parametern identifizierten Kanten-Bildpunkten ähnlich den Winkeln der bereits in der neuen Karte als Kanten identifizierten benachbarten Bildpunkte ähnlich sind, werden diese Bildpunkte der neuen Karte darüber hinaus hinzugefügt.The maps are combined into a new map that has true edges by first including in the true edge map the pixels corresponding to edges in both the first and second maps. The pixels corresponding to edges in the second map but not corresponding to the first map are selected for further processing. The selected pixels are tested in much the same way as used to identify edges, with their angles used to create the first map, except for different relaxed parameters to identify a pixel more likely as an edge. If the angles of the edge pixels identified with relaxed parameters are similar to the angles of the neighboring pixels already identified as edges in the new map, these pixels are added to the new map in addition.

Das Referenzmodell besteht aus einem Unterfeld von Bildpunkten und einem Korrelations-Schwellenwert. Das Unterfeld besitzt zwei Sätze von Bildpunkten, die Bildpunkte in der Nähe der identifizierten Kanten beschreiben, wobei der erste Satz den Bildpunkten auf der Seite der Kanten mit der höheren Helligkeit entspricht und der zweite Satz den Bildpunkten auf der Seite der Kante mit den geringeren Helligkeiten entspricht. Der Korrelations-Schwellenwert wird zum Wiedergeben des Verhältnisses der Durchschnittshelligkeit der Bildpunkt im Satz mit den höheren Helligkeiten zum Helligkeitsdurchschnitt der Bildpunkte im Satz mit den niedrigeren Helligkeiten berechnet.The reference model consists of a sub-array of pixels and a correlation threshold. The sub-array has two sets of pixels describing pixels near the identified edges, the first set corresponding to pixels on the side of the edge with higher brightnesses and the second set corresponding to pixels on the side of the edge with lower brightnesses. The correlation threshold is calculated to represent the ratio of the average brightness of the pixels in the set with higher brightnesses to the average brightness of the pixels in the set with lower brightnesses.

Das Unterfeld mit dem Modell wird mit einem Abschnitt der zweiten Bildes durch Vergleichen des Modells mit dem auf dem zweiten Bild ausgebildeten Unterfeld abgeglichen Das Vergleichen wird zunächst durch der zwei Schwellenwerte durchgeführt. Der erste Schwellenwert wird durch Mitteln der Bildpunkte im Unterfeld des zweiten Bildes bestimmt, wobei die Bildpunkte im Modell auf der Seite der Kanten mit der höheren Helligkeit mit dem inversen Korrelations-Schwellenwert gewichtet werden, und sich der zweite Schwellenwert durch Mitteln der Bildpunkte im Unterfeld des zweiten Bildes ergibt, die den Bildpunkten im Modell auf der Seite der Kanten mit den niedrigen Helligkeitswerten entspricht, die mit dem Korrelations-Schwellenwert gewichtet sind. Daraufhin wird eine Korrelations-Variable berechnet, die die Anzahl der Bildpunkte im Unterfeld des zweiten Bildes entsprechend den Bildpunkten im Satz mit der höheren Helligkeit des Modells oberhalb des zweiten Schwellenwerts wiedergibt, sowie die Anzahl der Bildpunkte im Unterfeld des zweiten Bildes entsprechend den Bildpunkten im Satz mit der geringeren Helligkeit des Modells unterhalb des ersten Schwellenwertes. Eine Übereinstimmung des Modells mit einem Unterfeld des zweiten Bildes ergibt sich durch Auswahl des Unterfeldes, das den größten Wert der Korrelationsvariablen aufweist.The sub-field with the model is matched to a portion of the second image by comparing the model with the sub-field formed on the second image. The matching is first performed by two thresholds. The first threshold is determined by averaging the pixels in the sub-field of the second image, with the pixels in the model on the side of the edges with the higher brightness values weighted by the inverse correlation threshold, and the second threshold is determined by averaging the pixels in the sub-field of the second image that correspond to the pixels in the model on the side of the edges with the lower brightness values weighted by the correlation threshold. A correlation variable is then calculated that represents the number of pixels in the sub-field of the second image that correspond to the pixels in the set with the higher brightness of the model above the second threshold, and the number of pixels in the subfield of the second image corresponding to the pixels in the set with the lower brightness of the model below the first threshold. A match of the model with a subfield of the second image is obtained by selecting the subfield that has the largest value of the correlation variable.

Kurzbeschreibung der ZeichnungenShort description of the drawings

Die Erfindung wird nachstehend anhand von Ausführungsbeispielen unter Bezugnahme auf die Zeichnungen näher beschrieben.The invention is described in more detail below using embodiments with reference to the drawings.

Es zeigen:Show it:

Figur 1 eine Skizze des Systems, in dem die Erfindung eingesetzt wird;Figure 1 is a sketch of the system in which the invention is used;

Figur 2 ein Blockschaltbild der die Zielkoordinaten erzeugenden Verarbeitung, wie sie beim Nachführen für eine Lenkwaffe verwendet werden;Figure 2 is a block diagram of the processing that generates the target coordinates as used in tracking a guided missile;

Figur 3A ein Flussdiagramm einer Verarbeitung, die durch den Global- Kantendetektor in Figur 2 durchgeführt wird;Figure 3A is a flowchart of processing performed by the global edge detector in Figure 2;

Figur 3B ein Flussdiagramm einer Verarbeitung, die durch die Modellaufbereitung im globalen Kantendetektor gemäß Figur 3A durchgeführt wird;Figure 3B is a flowchart of processing performed by the model preparation in the global edge detector of Figure 3A;

Figuren 4A, 4B, 4C und 4D Masken, die in der vom lokalen Kantendetektor gemäß Figur 2 durchgeführten Verarbeitung verwendet werden;Figures 4A, 4B, 4C and 4D show masks used in the processing performed by the local edge detector of Figure 2;

Figur 5A ein erster Abschnitt eines Flussdiagramms der Verarbeitung, die durch den Kantenextrahierer gemäß Figur 2 zum Ausbilden eines alternativen Verhältnissbildes durchgeführt wird;Figure 5A is a first portion of a flow diagram of the processing performed by the edge extractor of Figure 2 to form an alternative ratio image;

Figur 5B eine Fortführung des Flussdiagramms gemäß Figur 5A;Figure 5B is a continuation of the flow chart of Figure 5A;

Figuren 5C, 5D, 5E und 5F Masken, die in der Verarbeitung gemäß Figur 5A verwendet werden;Figures 5C, 5D, 5E and 5F show masks used in the processing of Figure 5A;

Figur 6A den ersten Abschnitt eines Flussdiagramms der Verarbeitung, die vom Kantenextrahierer gemäß Figur 2 zum Ausbilden eines Kantenerweiterten Begrenzungsbildungs durchführt;Figure 6A is the first portion of a flow chart of the processing performed by the edge extractor of Figure 2 to form an edge-extended boundary formation;

Figur 6B die Fortführung des Bilddiagramms gemäß Figur 6A;Figure 6B shows the continuation of the image diagram according to Figure 6A;

Figur 7A ein Flussdiagramm der Verarbeitung, die durch den Referenzmodell-Generator gemäß Figur 2 zum Ausbilden eines Referenzmodells durchgeführtwird;Figure 7A is a flowchart of the processing performed by the reference model generator of Figure 2 to form a reference model;

Figur 7B ein Flussdiagramm der Verarbeitung, die vom Referenzmodell- Generator gemäß Figur 2 zum Ausbilden eines Korrelations-Schwellenwerts durchgeführt wird;Figure 7B is a flow chart of the processing performed by the reference model generator of Figure 2 to form a correlation threshold;

Figur 5A den ersten Abschnitt eines Flussdiagramms der Verarbeitung, die vom Lenkwaffen-Prozessor gemäß Figur 2 durchgeführt wird;Figure 5A is the first portion of a flow chart of the processing performed by the missile processor of Figure 2;

Figur 8B die Fortfiihrung des Flussdiagramms gemäß Figur 8A;Figure 8B shows the continuation of the flow chart according to Figure 8A;

Figur 9A ein Flussdiagramm der Verarbeitung, die gemäß einem alternativen Ausführungsbeispiel des Referenz-Modell-Generators gemäß Figur 2 durchgeführt wird;Figure 9A is a flow chart of processing performed according to an alternative embodiment of the reference model generator of Figure 2;

Figur 9B eine Skizze der Bildpunkte, die während der Verarbeitung gemäß Figur 9A betrachtet wird;Figure 9B is a sketch of the pixels viewed during processing according to Figure 9A;

Figur 9C den ersten Abschnitt eines Flussdiagramms der Modell-Aufbereitung, die als Teil der Verarbeitung gemäß Figur 9A durchgeführt wird;Figure 9C shows the first portion of a flow diagram of the model preparation performed as part of the processing of Figure 9A;

Figur 9D eine Fortführung des Flussdiagramms gemäß Figur 9C; und Figur 10 ein Flussdiagramm der Verarbeitung, die gemäß einem alternativen Ausführungsbeispiel im Lenkwaffen-Prozessor gemäß Figur 2 durchgeführt wird.Figure 9D is a continuation of the flow chart of Figure 9C; and Figure 10 is a flow chart of processing performed in the missile processor of Figure 2 according to an alternative embodiment.

Beschreibung des bevorzugten AusführungsbeisdielsDescription of the preferred embodiment

Die Figur 1 zeigt ein Flugzeug 14, das mit einer Lenkwaffe 16 bewaffnet ist. Sowohl das Flugzeug 14 als auch die Lenkwaffe 16 sind mit einem synthetischen Öffnungsradar (synthetic aperture radar, SAR) 18A und 18B ausgerüstet. Eine Zielansprache 19 empfängt die vom SAR 18A empfangenen Bilder. In diesem Ausführungsbeispiel besteht die Zielansprache 19 aus einem Digitalcomputer mit einem Bildschirm zum Anzeigen der Bilder des SAR 18A. Die Zielansprache 19 besitzt darüber hinaus einige (nicht dargestellte) Eingabevorrichtungen, die es dem (nicht dargestellten) Piloten des Flugzeugs 14 ermöglichen im Bild ein Ziel zu bestimmen (in diesem Fall einen Träger T über einen Fluss). Die Zielansprache 19 wählt einen Bildbereich als Referenzbild aus, welches der Flugzeug-Verarbeitung 20 zugeführt wird. Der Bereich im Referenzbild besitzt eine feste Beziehung zum Ziel. In diesem Fall besteht die Flugzeug-Verarbeitung 20 aus einem nachfolgend im Einzelnen beschriebenen Programm, welches auf einem herkömmlichen Digitalcomputer ausgeführt wird um ein (nicht dargestelltes) Modell der SAR-Ausgangssignale zu erzeugen. Wie dargestellt, bestehen die SAR-Ausgangssignale aus Signalen, die das Ufer des Flusses (ohne Bezugszeichen) dem Träger T und andere Gegenstände im Sichtfeld darstellen, wie beispielsweise ein Gebäude und Bäume (ohne Bezugszeichen). Das Modell und die Lage des Ziels relativ zum Referenzbild werden der Lenkwaffen-Verarbeitung 40 über eine digitale Verbindung 15 zugeführt und in der Lenkwaffen-Verarbeitung 40 gespeichert. Die digitale Verbindung 15 besteht in diesem Fall aus irgendeinem bekannten Bus zum Übertragen von digitalen Informationen von einem Computer zu einem anderen.Figure 1 shows an aircraft 14 armed with a guided missile 16. Both the aircraft 14 and the guided missile 16 are equipped with synthetic aperture radar (SAR) 18A and 18B. A targeting device 19 receives the images received from the SAR 18A. In this embodiment, the targeting device 19 consists of a digital computer with a screen for displaying the images from the SAR 18A. The targeting device 19 also has some input devices (not shown) which enable the pilot (not shown) of the aircraft 14 to designate a target in the image (in this case a carrier T over a river). The targeting device 19 selects an image region as a reference image which is fed to the aircraft processing 20. The region in the reference image has a fixed relationship to the target. In this case, the aircraft processing 20 consists of a program described in detail below which is executed on a conventional digital computer to generate a model (not shown) of the SAR output signals. As shown, the SAR output signals consist of signals representing the river bank (not numerated) to the carrier T and other objects in the field of view, such as a building and trees (without reference numerals). The model and location of the target relative to the reference image are fed to the missile processing 40 via a digital link 15 and stored in the missile processing 40. The digital link 15 in this case consists of any known bus for transferring digital information from one computer to another.

Wenn die Lenkwaffe 16 auf den Träger T abgefeuert wird, wird die digitale Verbindung 15 unterbrochen. Da die Lenkwaffe 16 in Richtung auf den Träger T zufliegt werden weitere Bilder vom Zielbereich durch das SAR 18B erzeugt. Die Lenkwaffen-Verarbeitung 40 vergleicht das von der Flugzeug-Verarbeitung 20 gebildete Modell, welches in der Lenkwaffen-Verarbeitung 40 abgespeichert ist, mit jedem der von der Lenkwaffen-Verarbeitung 40 anhand der Signale des SAR 18B erzeugten Bilder. Die Lenkwaffen-Verarbeitung 20 gleicht das Modell mit einem Abschnitt des von der Lenkwaffen-Verarbeitung 40 erzeugten Bildes ab. Das (nicht dargestellte) Lenkwaffen-Nachführsystem wird daraufhin zum Steuern der Lenkwaffe 16 betätigt. Die Lenkwaffe wird in Richtung zum Bodenpunkt gesteuert, der die gleiche Beziehung zum Abschnitt des mit dem Modell übereinstimmenden Bildes aufweist wie das zum Ausbilden des Modells verwendete Ziel zum Referenzbild besass. Die von der Lenkwaffen-Verarbeitung berechneten Ergebnisse werden somit zum Nachführen der Lenkwaffe 16 auf ein bestimmtes Ziel verwendet.When the missile 16 is fired at the carrier T, the digital link 15 is interrupted. As the missile 16 flies toward the carrier T, additional images of the target area are generated by the SAR 18B. The missile processing 40 compares the model formed by the aircraft processing 20, which is stored in the missile processing 40, with each of the images generated by the missile processing 40 based on the signals from the SAR 18B. The missile processing 20 matches the model with a portion of the image generated by the missile processing 40. The missile tracking system (not shown) is then actuated to control the missile 16. The missile is guided in the direction of the ground point which has the same relationship to the portion of the image matching the model as the target used to form the model had to the reference image. The results calculated by the missile processing are thus used to track the missile 16 to a specific target.

Terminologieterminology

Bevor die an den SAR-Bildern durchgeführte Verarbeitung beschrieben wird, werden einleitende Konzepte sowie die Terminologie erklärt. Das SAR- Bild wird in ein zweidimensionales Feld von Bildpunkten aufgeteilt, die jeweils durch ein digitales Wort dargestellt werden. In diesem Fall wird das Feld mit 36x36 angenommen, wobei jedoch dem Fachmann klar ist, dass die nachfolgend beschriebenen Verfahren auch auf andere Größen und Formen der Felder anwendbar sind. Der Wert eines jeden digitalen Wortes entspricht der Intensität bzw. Helligkeit des Bildes an diesem Bildpunkt. Die Verfahren zum Anzeigen der auf diese Weise dargestellten Bilder sowie die Verfahren zum Übertragen der Bilder von einem Prozessor zu einem anderen sind bekannt.Before describing the processing performed on the SAR images, introductory concepts and terminology are explained. The SAR image is divided into a two-dimensional array of pixels, each represented by a digital word. In this case, the array is assumed to be 36x36, but it will be clear to those skilled in the art that the methods described below are also applicable to other sizes and shapes of arrays. The value of each digital word corresponds to the intensity or brightness of the image at that pixel. The methods for displaying the images displayed in this way, as well as the methods for transferring the images from one processor to another, are known.

Nachfolgend werden die vom SAR gebildeten Bilder oder irgendeiner verarbeiteten Version dieses Bildes nachfolgend einfach als Bild bezeichnet. Beim Verarbeiten des Bildes werden manchmal jedoch einzelne Bildpunkte betrachtet. In diesen Fällen sollte man bei jedem Bild eher an ein zweidimensionales Feld von Bildpunkten denken. Jeder Bildpunkt besitzt eine x- und eine y-Position im Feld. Ein Feldname gefolgt von zwei Ziffern, die in Klammern stehen (z. B. SRBE (i, j)) bedeutet, daß der Bildpunkt in dem bezeichneten Feld die xy-Position im Feld besitzt.Hereinafter, the images formed by the SAR, or any processed version of that image, are referred to simply as an image. However, when processing the image, individual pixels are sometimes considered. In these cases, each image should be thought of as a two-dimensional array of pixels. Each pixel has an x and y position in the array. An array name followed by two numbers in parentheses (e.g. SRBE (i, j)) means that the pixel in the designated array has the xy position in the array.

In einigen Fällen ist ein Wert oder eine Gruppe von Werten einem Bildpunkt im Bild zugeordnet. Das Feld dieser Werte wird auch als "Karte" bezeichnet.In some cases, a value or group of values is assigned to a pixel in the image. The array of these values is also called a "map".

In einigen Beispielen wird ein Bild auf mehrere unterschiedliche Arten verarbeitet und Vergleiche zwischen den resultierenden Bildern oder Karten durchgeführt. In einigen Fällen können die verarbeiteten Bilder eine unterschiedliche Anzahl von Bildpunkten gegenüber dem nicht verarbeiteten Bild oder gegeneinander aufweisen. Beim Vergleichen derartiger Bilder ist es wichtig, dass die richtigen Bildpunkte im jeweiligen Bild zueinander in Beziehung gebracht werden. Die Zentrums-Bildpunkte der Bilder entsprechen einander und haben die gleichen x-y-Feldkoordinaten. Die Bildpunkte in der Nähe der Zentrums-Bildpunkte entsprechen sich ebenso. Entsprechende Bildpunkte können vom Zentrum eines jeweiligen Bildes nach außen gehend identifiziert werden, bis für alle Bildpunkte im kleineren Bild entsprechende Bildpunkte identifiziert wurden. Im größeren Bild gibt es keine entsprechenden Bildpunkte für die verbleibenden Bildpunkte. Die Vergleichsergebnisse für diese Bildpunkte sind nicht definiert und werden daher bei der weiteren Verarbeitung nicht verwendet. In vielen Fällen werden Gruppen von Bildpunkten in einem Bild für gleichzeitige Betrachtungen ausgewählt. Ein derartiges Auswahlverfahren wird als "lokales Fenster" bezeichnet. Wenn beispielsweise ein 3x3-Unterfeld von Bildpunkten betrachtet werden soll, so befindet sich diese Gruppe in einem 3x3-lokalen Fenster. Das lokale Fenster wird über dem Bildpunkt im Zentrum des Fensters zentriert. Oftmals ist es notwendig, eine jede dieser Gruppen von Bildpunkten zu verarbeiten, die von einem Bild erzeugt werden können. In diesen Fällen "gleitet" das lokale Fenster über das Bild, da das lokale Fenster über einen Bildpunkt zentriert ist, daraufhin sich bewegt und über einen weiteren Bildpunkt zentriert wird, sich erneut bewegt und so weiter. Es wird darauf hingewiesen, dass, wenn das lokale Fenster über einem Bildpunkt entlang der Seite des Feldes zentriert wird, ein Unterfeld von Bildpunkten nicht um den Bildpunkt herum ausgebildet werden kann, da auf einer Seite von diesem Bildpunkt keine Bildpunkte existieren. Wenn ein lokales Fenster über ein Bild gleitet wird es im Allgemeinen nicht über den Bildpunkten entlang der Seiten des Feldes zentriert, da bestimmte Bildpunkte unter dem Fenster undefinierte Werte aufweisen würden. Jedoch wurden einige Algorithmen für diese Möglichkeitsfälle geschaffen. In diesen Algorithmen kann das lokale Fenster über den Bildpunkten entlang der Seiten des Feldes zentriert werden. In einigen Fällen werden eine Vielzahl von Verältnisse darstellenden Zahlen miteinander verglichen. Wenn diese Zahlen "im Sinne eines Verhältnisses" miteinander verglichen werden , ergibt sich daraus mehr als ein reines Auswählen der größten Zahl. Die Zahlen werden miteinander verglichen, als wären sie alle positiv. Darüber hinaus werden die multiplikativen Umkehrungen von Zahlen kleiner eins berücksichtigt (d.h. alle Verhältnisse werden in positive Zahlen umgewandelt, die für den Vergleich größer als eins sind).In some examples, an image is processed in several different ways and comparisons are made between the resulting images or maps. In some cases, the processed images may have a different number of pixels from the unprocessed image or from each other. When comparing such images, it is important that the correct pixels in each image are related to each other. The center pixels of the images correspond to each other and have the same xy field coordinates. The pixels near the center pixels also correspond. Corresponding pixels may be identified from the center of each image outward until corresponding pixels have been identified for all pixels in the smaller image. In the larger image, there are no corresponding pixels for the remaining pixels. The comparison results for these pixels are undefined and thus are not used in further processing. In many cases, groups of pixels in an image are selected for simultaneous viewing. Such a selection process is called a "local window." For example, if a 3x3 sub-array of pixels is to be viewed, that group is placed in a 3x3 local window. The local window is centered over the pixel in the center of the window. Often it is necessary to process every such group of pixels that can be generated by an image. In these cases, the local window "slides" over the image, as the local window is centered over one pixel, then moves, is centered over another pixel, moves again, and so on. It is It should be noted that if the local window is centered over a pixel along the side of the array, a subarray of pixels cannot be formed around the pixel because no pixels exist on one side of that pixel. When a local window slides over an image, it will generally not be centered over the pixels along the sides of the array because certain pixels below the window would have undefined values. However, some algorithms have been created to handle these possible cases. In these algorithms, the local window can be centered over the pixels along the sides of the array. In some cases, a large number of numbers representing ratios are compared. Comparing these numbers "in terms of a ratio" involves more than simply selecting the largest number. The numbers are compared as if they were all positive. In addition, the multiplicative inverses of numbers less than one are taken into account (i.e., all ratios greater than one are converted to positive numbers for comparison).

Vor-VerarbeitungsfilterungPre-processing filtering

Anhand von Figur 2 kann man zusätzliche Einzelheiten der Flugzeug- Verarbeitung 20 und der Lenkwaffen-Verarbeitung 40 sehen. Als erstes wird die Arbeitsweise der Flugzeug-Verarbeitung 20 betrachtet.Referring to Figure 2, additional details of the aircraft processing 20 and the missile processing 40 can be seen. First, the operation of the aircraft processing 20 will be considered.

Ein nicht-kohärenter Integrator 22A, ein Helligkeitspegel-Spreizer 24 und ein Glättungsfilter 26 verbessern die Merkmale des Bildes vor der Erzeugung eines Modells. Für den Fachmann ergeben sich eine Vielzahl weiterer Verfahren, die zur Merkmalsverbesserung verwendet werden können. Der nicht-kohärente Integrator 22A erzeugt einen Mittelwert aus einer Anzahl, z.B. vier, von Bildern, die mittels unterschiedlicher Radarfrequenzen vom SAR aufgenommen wurden. Der Mittelwert wird auf einer Bildpunkt-um-Bildpunkt-Basis verarbeitet (d.h. die entsprechenden Bildpunkte in den unterschiedlichen Bildern werden gemittelt, wodurch der entsprechende Bildpunkt im Ausgangsbild erzeugt wird).A non-coherent integrator 22A, a brightness level spreader 24 and a smoothing filter 26 enhance the features of the image prior to generating a model. Those skilled in the art will recognize a variety of other techniques that can be used for feature enhancement. The non-coherent integrator 22A generates an average of a number, e.g. four, of images taken by the SAR using different radar frequencies. The average is processed on a pixel-by-pixel basis (i.e., the corresponding pixels in the different images are averaged, producing the corresponding pixel in the output image).

Der Helligkeitspegel-Spreizer 24 ändert die Helligkeit eines jeden Bildpunkts im Bild, wodurch die Verteilung der Helligkeitspegel im Bild um zwei Helligkeitspegel herum konzentriert wird. In diesem Fall wird jeder Bildpunkt durch ein digitales Wort dargestellt, das aus einer diskreten Zahl, z. B. 256, von Werten besteht, die einen Helligkeitspegel darstellen. Das Eingangsbild besitzt einige willkürliche Helligkeitsverteilungen, die durch den Helligkeitspegel- Spreizer 24 geändert werden. Zunächst wird der globale Medianwert der Helligkeit aller Bildpunkte im 36x36-Bild bestimmt. Als nächstes wird durch Bearbeiten einer jeden möglichen Gruppe von neuen Bildpunkten, die durch Gleiten eines 3x3-lokalen Fensters über dem Eingangsbild ausgewählt werden, das Ausgangsbild des im Helligkeitspegel-Spreizers 24 erzeugt. Der Wert des Bildpunkts im Ausgangsbild wird entsprechend dem Bildpunkt im Zentrum des 3x3-lokalen Fensters aus den neuen Bildpunkten unterhalb des lokalen Fensters berechnet. Für jede Position des lokalen Fensters, d.h. jede Gruppe von neuen Bildpunkten, wird der lokale Medianwert der Bildpunkte im Fenster bestimmt. Wenn der lokale Medianwert kleiner als der globale Medianwert ist, wird der Ausgabebildpunkt auf das lokale Minimum gesetzt, d.h. ihm wird ein Wert gleich der geringsten Helligkeit aller Bildpunkte im Fenster zugewiesen. Wenn andererseits der lokale Medianwert nicht kleiner als der globale Medianwert ist, wird der Ausgabe-Bildpunkt auf einen Wert gleich dem lokalen Maximum gesetzt. Da das lokale Fenster nicht über jedem Bildpunkt an der äußeren Kante des 36x36-Feldes zentriert werden kann, erzeugt das durch das Gleiten des lokalen Fensters über dem gesamten Eingangsbild resultierende Bild ein 34x34-Ausgabefeld.The brightness level spreader 24 changes the brightness of each pixel in the image, thereby concentrating the distribution of brightness levels in the image around two brightness levels. In this case, each pixel is represented by a digital word consisting of a discrete number, e.g. 256, of values representing a brightness level. The input image has some arbitrary brightness distributions which are modified by the brightness level spreader 24. First, the global median value of the brightness of all pixels in the 36x36 image is determined. Next, the output image in the brightness level spreader 24 is generated by operating on each possible group of new pixels selected by sliding a 3x3 local window over the input image. The value of the pixel in the output image is calculated from the new pixels below the local window corresponding to the pixel in the center of the 3x3 local window. For each position of the local window, that is, each group of new pixels, the local median value of the pixels in the window is determined. If the local median value is less than the global median value, the output pixel is set to the local minimum, that is, it is assigned a value equal to the lowest brightness of all pixels in the window. On the other hand, if the local median is not less than the global median, the output pixel is set to a value equal to the local maximum. Since the local window cannot be centered over every pixel on the outer edge of the 36x36 patch, the image resulting from sliding the local window over the entire input image produces a 34x34 output patch.

Das Glättungsfilter 26 verwendet das 34x34-Ausgabefeld des Helligkeitspegel-Spreizers 24 als sein Eingabefeld. Zunächst wird der globale Medianwert des Eingabefeldes durch Auffinden des Medianwertes aller Bildpunktwerte im Eingabefeld berechnet. Ein 3x3-Fenster gleitet über das Eingangsbild, wobei der Bildpunkt im Ausgabebild entsprechend dem Bildpunkt im Zentrum des Fensters bei jeder Fensterposition berechnet wird. Wenn die Mittelpunktszelle des lokalen Fensters größer oder gleich dem globalen Medianwert ist, wird der Bildpunkt im Ausgabebild gleich dem Medianwert aller Bildpunkte im lokalen Fenster, die größer oder gleich dem globalen Medianwert sind, eingestellt. Wenn andererseits die Mittelpunktszelle im lokalen Fenster kleiner als der globale Medianwert ist, wird der Bildpunkt im Ausgabebild gleich dem Medianwert aller Bildpunkte im lokalen Fenster eingestellt, die kleiner oder gleich dem globalen Medianwert sind. Das resultierende gefilterte Bild wird durch ein 32x32- Feld von Bildpunkten beschrieben und nachfolgend als EPS-Bild bezeichnet.The smoothing filter 26 uses the 34x34 output field of the brightness level spreader 24 as its input field. First, the global median of the input field is calculated by finding the median of all pixel values in the input field. A 3x3 window slides over the input image, with the pixel in the output image being calculated to correspond to the pixel in the center of the window at each window position. If the center cell of the local window is greater than or equal to the global median, the pixel in the output image is set equal to the median of all pixels in the local window that are greater than or equal to the global median. On the other hand, if the center cell in the local window is less than the global median, the pixel in the output image is set equal to the median of all pixels in the local window that are less than or equal to the global median. The resulting filtered image is described by a 32x32 array of pixels and is subsequently referred to as an EPS image.

In alternativen Ausführungsbeispielen des Heilig keitspegel-Spreizers 24 und des Glättungsfilters 26, kann das gefilterte Bild die gleiche Anzahl von Bildpunkten aufweisen wie das Referenzbild. Beispielsweise können die in der Nähe der Kante des Referenzbildes befindlichen Bildpunkte, die nicht verarbeitet werden, da auf ihnen kein lokales Fenster zentriert werden kann, einfach unverändert in das gefilterte Bild kopiert werden.In alternative embodiments of the brightness level spreader 24 and the smoothing filter 26, the filtered image may have the same number of pixels as the reference image. For example, the pixels located near the edge of the reference image, which are not processed because no local window can be centered on them, may simply be copied unchanged into the filtered image.

Das gefilterte Bild wird daraufhin durch einen lokalen Kantendetektor 28 und einen globalen Kantendetektor 30 verarbeitet. Jeder erzeugt eine Kantenkarte. Die Kantenkarten werden, wie die gefilterten Bilder, als Felder von digitalen Worten dargestellt. Der Wert eines jeden Wortes wird durch den lokalen Kantendetektor 28 oder den globalen Kantendetektor 30 zum Anzeigen verwendet, ob oder ob nicht der entsprechende Bildpunkt im gefilterten Bild eine Kante zwischen zwei Gegenständen im Bild darstellt. Der lokale Kantendetektor 28 und der globale Kantendetektor 30 verwendet unterschiedliche Verfahren zum Identifizieren der Kanten im Eingangsbild. Daher können sich die resultierenden Kanten-Karten voneinander unterscheiden. Der Kantenextrahierer 32 kombiniert beide Kanten-Karten unter Verwendung der Informationen des gefilterten Bildes in einer bestätigten Kanten-Karte. Die bestätigte Kanten- Karte beinhaltet Kanten die wahrscheinlich tatsächliche Kanten darstellen. Ein Referenz-Modell-Generator 34 verwendet die bestätigte Kanten-Karte um das Modell zu erzeugen und zur Lenkwaffen-Verarbeitung zu übertragen, wo es mit den vom SAR 18B mittels des Kanten-Modell-Korrelators 42 gebildeten Bildern verglichen wird, um das Ziel zu lokalisieren. Die Arbeitsweise eines jeden dieser Elemente wird nachfolgend im Einzelnen beschrieben.The filtered image is then processed by a local edge detector 28 and a global edge detector 30. Each produces an edge map. The edge maps, like the filtered images, are represented as arrays of digital words. The value of each word is used by the local edge detector 28 or the global edge detector 30 to indicate whether or not the corresponding pixel in the filtered image represents an edge between two objects in the image. The local edge detector 28 and the global edge detector 30 use different methods to identify edges in the input image. Therefore, the resulting edge maps may differ from each other. The edge extractor 32 combines both edge maps into a confirmed edge map using the information from the filtered image. The confirmed edge map includes edges that are likely to represent actual edges. A reference model generator 34 uses the confirmed edge map to generate the model and transmit it to missile processing where it is compared with the images formed by the SAR 18B using the edge model correlator 42 to locate the target. The operation of each of these elements is described in detail below.

Globaler KantendetektorGlobal edge detector

Die Figur 3A zeigt ein Flussdiagramm der Verarbeitung, die im globalen Kantendetektor 30 zum Erzeugen einer globalen Kanten-Karte, nachfolgend als SRBE-Karte bezeichnet, durchgeführt wird. Die rechteckigen Elemente (durch Element 50 typifiziert) werden als "Prozessblöcke" bezeichnet und stellen Befehle oder eine Gruppe von Befehlen eines Computerprogramms dar. Die rautenförmigen Elemente (durch Element 54 typifiziert) werden als "Entscheidungsblöcke" bezeichnet und stellen Befehle oder Gruppen von Befehlen eines Computerprogramms dar, die eine Ausführung von Computerprogrammbefehlen bewirken, die in den Prozessblöcken dargestellt sind. Das Flussdiagramm bezeichnet keine Syntax einer besonderen Computerprogrammsprache. Das Flussdiagramm stellt vielmehr die funktionellen Informationen dar, die ein Fachmann benötigt um ein Computerprogramm zu erzeugen, das die für den globalen Kanten-Detektor 30 benötigte Verarbeitung durchführt. Es wird darauf hingewiesen, dass eine Vielzahl von Routine-Programmelementen, wie beispielsweise eine Initialisierung von Schleifen und Variablen sowie die Verwendung von temporären Variablen nicht dargestellt sind.Figure 3A shows a flow chart of the processing performed in the global edge detector 30 to generate a global edge map, hereinafter referred to as an SRBE map. The rectangular elements (typified by element 50) are referred to as "process blocks" and represent instructions or a group of instructions of a computer program. The diamond-shaped elements (typified by element 54) are referred to as "decision blocks" and represent instructions or groups of instructions of a computer program that cause execution of computer program instructions represented in the process blocks. The Flowchart does not denote a syntax of a particular computer programming language. Rather, the flowchart represents the functional information needed by a person skilled in the art to create a computer program that performs the processing required by the global edge detector 30. It should be noted that a number of routine program elements, such as initialization of loops and variables and the use of temporary variables, are not shown.

Gemäß Figur 2 verarbeitet der globale Kantendetektor 30 das vom Glättungsfilter 26 erzeugte gefilterte Bild. Beim Starten der Verarbeitung gemäß Figur 3A wird das Bild durch ein 32x32-Feld von digitalen Worten, d.h. Bildpunkten, dargestellt. Der globale Kantendetektor 30 konvertiert die Bildpunkte im Bild in einen oder zwei Werte (nachfolgend als Binärisierung bezeichnet), in Abhängigkeit davon, ob die Bildpunkthelligkeit oberhalb oder unterhalb eines Schwellenwertes liegt. Eine Kante wird an jedem Punkt des Bildes angezeigt, an dem ein Bildpunkt eines Wertes in direkter Nachbarschaft zu einem Bildpunkt des anderen Wertes liegt. Wie sich aus der Verbindung der Figuren 3A und 3B ergibt, liegt ein wichtiger Gesichtspunkt des globalen Kantendetektors 30 in der Auswahl eines geeigneten Schwellenwerts für die Binärisierung des Bildes.Referring to Figure 2, the global edge detector 30 processes the filtered image produced by the smoothing filter 26. When starting the processing according to Figure 3A, the image is represented by a 32x32 array of digital words, i.e., pixels. The global edge detector 30 converts the pixels in the image into one or two values (hereinafter referred to as binarization), depending on whether the pixel brightness is above or below a threshold value. An edge is indicated at any point in the image where a pixel of one value is in close proximity to a pixel of the other value. As can be seen from combining Figures 3A and 3B, an important aspect of the global edge detector 30 is the selection of an appropriate threshold value for binarizing the image.

Gemäß Figur 3A ändert der Prozessblock 50 irgendeinen Bildpunkt mit einem Wert von Null auf einen Wert von 0,1. Nicht definierte Werte, die sich aus einer Division durch Null ergeben könnten, wenn die Bildpunktwerte zum Berechnen der Verhältnisse verwendet werden, werden dadurch vermieden.Referring to Figure 3A, process block 50 changes any pixel having a value of zero to a value of 0.1. This avoids undefined values that could result from division by zero when the pixel values are used to calculate the ratios.

Die Prozessblöcke 52 und 56 sowie der Entscheidungsblock 54 implementieren eine Schleife, bei der die Verhältnisse entsprechend den Bildpunkten im Bild berechnet werden. Ein 3x3-lokales Fenster gleitet über das Eingangsbild, während beim Prozessblock 52 ein Verhältnis für die Zentrums- Bildpunkte berechnet wird. Das Verhältnis ist gleich dem Verhältnis der Helligkeit des Zentrums-Bildpunkts zu entweder der dritthöchsten Helligkeit oder der drittniedrigsten Helligkeit der anderen Bildpunkte im lokalen Fenster, abhängig davon, welches bezogen auf ein Verhältnis größer ist. Der Entscheidungblock 54 überprüft, ob jede mögliche 3x3-Gruppe von Bildpunkten zum Berechnen eines Verhältnisses im Bild verwendet wurde. Wenn noch nicht jede mögliche Gruppe von Bildpunkten verwendet wurde, wählt der Prozessblock 56 die nächste Gruppe aus, wobei der Prozessblock 52 und der Entscheidungsblock 54 wiederholt werden. Wenn der Entscheidungsblock 54 feststellt, daß alle Gruppen von Bildpunkten verwendet wurden, wurde jedem Bildpunkt mit Ausnahme derer in den Kanten des Bildes ein Verhältnis zugeordnet.Process blocks 52 and 56 and decision block 54 implement a loop in which ratios are calculated according to the pixels in the image. A 3x3 local window slides over the input image while process block 52 calculates a ratio for the center pixels. The ratio is equal to the ratio of the brightness of the center pixel to either the third highest brightness or the third lowest brightness of the other pixels in the local window, whichever is greater in terms of ratio. Decision block 54 checks whether every possible 3x3 group of pixels has been used to calculate a ratio in the image. If every possible group of pixels has not yet been used, process block 56 selects the next group, repeating process block 52 and decision block 54. If decision block 54 determines that all groups of pixels have been used, a ratio has been assigned to each pixel except those in the edges of the image.

Der Prozeßblock 58 sortiert die Bildpunkte im Bild nach ihrer Helligkeit. Für den Fachmann ist klar, dass im Prozessblock 58 jedes bekannte Sortierverfahren verwendet werden kann, wie beispielsweise ein "bubble-sort"- oder ein "shell sort"-Verfahren. Das Ausgangssignal des Prozessblocks 58 hängt nicht von der Lage der Bildpunkte im Bild ab, hingegen wird das ursprüngliche Bild für die weitere Verarbeitung beibehalten. Die vom Prozessblock 52 berechneten Verhältnisse stehen jedoch weiterhin mit den sortierten Bildpunkten in Verbindung, die im Prozessblock 58 berechnet wurden.Process block 58 sorts the pixels in the image according to their brightness. It will be clear to those skilled in the art that any known sorting method can be used in process block 58, such as a "bubble sort" or a "shell sort" method. The output signal of process block 58 does not depend on the position of the pixels in the image, but the original image is retained for further processing. However, the ratios calculated by process block 52 are still related to the sorted pixels calculated in process block 58.

Der Prozessblock 60 wählt die Bildpunkte mit Helligkeitswerten in der fünfunddreißigsten bis neunzigsten Percentile aus, die in der nachfolgend beschriebenen Art und Weise einen oberen Mittelwert berechnen, d.h. den Mittelwert der Bildpunkte, die wahrscheinlich oberhalb des optimalen Schwellenwerts liegen. Ein Prozessblock 62 ordnet die ausgewählten Bildpunkte erneut in zwei Gruppen: erstens, die Bildpunkte, die bei der Verwendung zum Erzeugen eines Verhältnisses im Prozessblock 52 eine gegenüber den zum Ausbilden des Verhältnisses ausgewählten Bildpunkten höhere Helligkeit zeigten; und zweitens diejenigen Bildpunkte, die bei der Verwendung zum Ausbilden eines Verhältnisses im Prozessblock 52 eine gegenüber den zum Ausbilden des Verhältnisses ausgewählten anderen Bildpunkten geringere Helligkeit zeigten. Innerhalb jeder Gruppe werden die Bildpunkte ferner derart geordnet, daß die Bildpunkte mit größeren Verhältnissen hinsichtlich ihres Verhältnisses denen mit kleineren Verhältnissen vorangehen. Ein Prozessblock 63 wählt zur weiteren Verarbeitung die oberen 2% der durch den Prozessblock 62 geordneten Bildpunkte aus.Process block 60 selects the pixels having brightness values in the thirty-fifth to ninetieth percentiles, which calculate an upper average, i.e., the average of the pixels likely to be above the optimal threshold, in the manner described below. A process block 62 re-orders the selected pixels into two groups: first, those pixels that, when used to create a ratio in process block 52, exhibited higher brightness than the pixels selected to form the ratio; and second, those pixels that, when used to form a ratio in process block 52, exhibited lower brightness than the other pixels selected to form the ratio. Within each group, the pixels are further ordered such that the pixels with larger ratios precede those with smaller ratios in terms of their ratio. A process block 63 selects the top 2% of the pixels ordered by the process block 62 for further processing.

Ein Prozessblock 64 löscht aus den betrachteten Bildpunkten diejenigen mit den Verhältnissen zwischen 0,5 und 2,0. Der Entscheidungsblock 66 überprüft, ob die Löschung im Prozessblock 64 eine ausreichende Anzahl von Bild punkten für die weitere Verarbeitung hinterlassen hat. Wenn weniger als 1%, d.h. die Hälfte der im Prozessblock 63 ausgewählten Bildpunkte, verbleiben, so wird die Verarbeitung durch den globalen Kantendetektor 30 (Figur 2) abgeschlossen. Dieser Abschluss entspricht dem Auftreten eines Ausnahmezustandes. Empirische Nachweise zeigten, dass beim Auftreten des Ausnahmezustandes eine geringe Wahrscheinlichkeit besteht, dass gute Kanten oder Grenzen im Eingangsbild gefunden werden. Sobald der Ausnahmezustand auftritt kann daher die Zielansprache 19 ein unterschiedliches Referenzbild auswählen, wobei dieses Bild beginnend mit dem nicht koherenten Integrator 22A (Figur 2) verarbeitet werden würde.A process block 64 deletes from the considered pixels those with ratios between 0.5 and 2.0. The decision block 66 checks whether the deletion in the process block 64 has left a sufficient number of pixels for further processing. If less than 1%, ie half of the pixels selected in the process block 63, remain, the processing by the global edge detector 30 (Figure 2) is terminated. This termination corresponds to the occurrence of an exception condition. Empirical evidence has shown that when the exception condition occurs, there is a low probability that good edges or boundaries will be found in the input image. Therefore, once the exception condition occurs, the target address 19 may select a different reference image, which image would be processed starting with the non-coherent integrator 22A (Figure 2).

Unter der Annahme, dass die Verarbeitung nach dem Entscheidungsblock 66 nicht abgeschlossen wurde, findet im Prozessblock 70 eine Aufbereitung der vom Prozessblock 63 ausgewählten Bildpunkte statt. Die Figur 3B zeigt die Einzelheiten des Prozessblocks 70, die Verarbeitung gemäß Figur 3B besitzt den vorteilhaften Effekt, dass Singularitäten entsprechende Bildpunkte eher entfernt werden als tatsächliche Kanten, die beim Einstellen des Schwellenwertes betrachtet werden.Assuming that processing has not been completed after decision block 66, processing of the pixels selected by process block 63 takes place in process block 70. Figure 3B shows the details of process block 70, the processing according to Figure 3B has the advantageous effect of removing pixels corresponding to singularities rather than actual edges which are considered when setting the threshold value.

Ein Prozessblock 100 berechnet unter Verwendung bekannter Verfahren den Mittelwert und die Standardabweichung der Verhältnisse der ausgewählten Bildpunktwerte. Für jeden Bildpunkt, der kleiner als 1 ist, wird zur Berechnung der invertierte Wert verwendet.A process block 100 calculates the mean and standard deviation of the ratios of the selected pixel values using known techniques. For each pixel that is less than 1, the inverted value is used for the calculation.

Ein Entscheid ungsblock 102 stellt fest, ob das Verhältnis der Standardabweichung zum Mittelwert kleiner als 0,1 ist. Wenn das Verhältnis kleiner als 0,1 ist wird die Verarbeitung im Prozessblock 70 abgeschlossen. Wenn dies nicht der Fall ist, wird die Verarbeitung im Entscheidungsblock 104 fortgesetzt, indem festgestellt wird ob das Verhältnis der Standardabweichung zum Mittelwert kleiner oder gleich einem Schwellenwert T&sub2; ist, der in diesem Fall 0,5 beträgt. Wenn dies der Fall ist, wird in einem Prozessblock 106 ein zweiter Schwellenwert THR gemäß folgender Gleichung berechnet:A decision block 102 determines whether the ratio of the standard deviation to the mean is less than 0.1. If the ratio is less than 0.1, processing in process block 70 is completed. If not, processing continues in decision block 104 by determining whether the ratio of the standard deviation to the mean is less than or equal to a threshold T2, which in this case is 0.5. If so, a second threshold THR is calculated in process block 106 according to the following equation:

THR=M+KD(1-D/M)THR=M+KD(1-D/M)

wobei M der Mittelwert,where M is the mean,

D die Standardabweichung, undD is the standard deviation, and

K eine Konstante ist, die in diesem Fall den Wert 2 aufweist.K is a constant, which in this case has the value 2.

Andernfalls wird THR in einem Prozessblock 108 nach der folgenden Gleichung berechnet:Otherwise, THR is calculated in a process block 108 according to the following equation:

THR=M+KD/2THR=M+KD/2

Ein Entscheidungsblock 110 überprüft daraufhin, ob die Eingabeverhältnisse den in den Prozessblöcken 106 oder 108 berechneten Schwellenwert übersteigen. Wenn die Verhältnisse den Schwellenwert übersteigen, beseitigt ein Prozessblock 116 diese Verhältnisse aus der weiteren Verarbeitung und fügt zusätzliche Verhältnisse an ihrer Stelle ein. Es sei daran erinnert, daß der Prozessblock 63 (Figur 3A) nur die oberen 2% aus einer Liste von nach ihrem Wert sortierten Verhältnissen auswählt. Ein Prozessblock 116 ersetzt die ehminierten Verhältnisse anhand der nächsten in dieser Liste, sofern die Verhältnisse in der Liste einen minimalen Wert von 2,0 überschreiten.A decision block 110 then checks whether the input ratios exceed the threshold calculated in process blocks 106 or 108. If the ratios exceed the threshold, a process block 116 eliminates those ratios from further processing and inserts additional ratios in their place. Recall that process block 63 (Figure 3A) selects only the top 2% from a list of ratios sorted by their value. A process block 116 replaces the eliminated ratios with the next in that list if the ratios in the list exceed a minimum value of 2.0.

Ein Entscheid ungsblock 118 entscheidet, ob die in Figur 3B dargestellte Verarbeitung wiederholt werden soll. Wenn die Verarbeitung weniger als eine maximale Anzahl von Durchgängen durchgeführt hat, in diesem Falle drei, und wenn mehr als die Hälfte der Anzahl der im Prozessblock 63 (Figur 3A) ausge wählten Verhältnisse verbleiben, wird die Verarbeitung in Figur 3B im Prozessblock 100 wiederholt wobei die aufbereitete Liste von Verhältnissen verwendet wird. Andernfalls wird die Verarbeitung abgeschlossen. Die Verarbeitung kann ebenso nach dem Entscheidungsblock 110 beendet werden, wenn keines der Verhältnisse den Schwellenwert THR überschreitet. Ein Entschei dungsblock 112 überprüft, ob zumindest 1 % der Bild punkte in der Liste verbleiben, d.h. die Hälfte der ursprünglich im Prozessblock 63 (Figur 3A) ausgewählten Bildpunkte. Wenn eine ausreichende Anzahl von Bildpunkten verbleibt, wird die Verarbeitung im Prozessblock 70 beendet. Andernfalls fügt ein Prozessblock 114 vorher entfernte Verhältnisse in umgekehrter Reihenfolge zu ih rer Beseitigung der Liste wieder hinzu, bis die Liste eine Anzahl von Bildpunkten aufweist, die gleich der Hälfte der Anzahl der Bildpunkte ist, die im Prozessblock 63 (Figur 3A) ausgewählt wurde. Die Notwendigkeit für den Prozessblock 114 ergibt sich aus der Tatsache, daß der Prozessblock 116 der Liste, die kein Verhältnis von zumindest 2,0 aufweist, Bildpunkte hinzufügt. Somit kann manchmal der Fall auftreten, daß weniger als 1% der Bildpunkte verblieben ist, wenn der Entscheidungsblock 118 erreicht wird.A decision block 118 decides whether to repeat the processing shown in Figure 3B. If the processing has performed less than a maximum number of passes, in this case three, and if more than half the number of ratios selected in process block 63 (Figure 3A) remain, the processing in Figure 3B is repeated in process block 100 using the prepared list of ratios. Otherwise, processing is terminated. Processing may also terminate after decision block 110 if none of the ratios exceed the threshold THR. A decision block 112 checks whether at least 1% of the pixels remain in the list, i.e., half of the pixels originally selected in process block 63 (Figure 3A). If a sufficient number of pixels remain, processing is terminated in process block 70. Otherwise, a process block 114 adds previously removed ratios back to the list in the reverse order of their elimination until the list has a number of pixels equal to half the number of pixels selected in process block 63 (Figure 3A). The need for process block 114 arises from the fact that process block 116 adds pixels to the list that does not have a ratio of at least 2.0. Thus, it may sometimes be the case that less than 1% of the pixels remain when decision block 118 is reached.

Wieder zurückkehrend zu Figur 3A kann man erkennen, dass die aufbereitete Liste von Verhältnissen vom Prozessblock 72 verwendet wird. Die den Bildpunkten in der aufbereiteten Liste entsprechenden Helligkeitspegel werden zum Erzeugen eines Mittelwertes gemittelt. Das Verfahren zum Berechnen eines Mittelwertes wird zweimal wiederholt, einmal unter Verwendung der oberen Bildpunkt-Gruppe, die im Prozessblock 60 ausgewählt wurde, und einmal unter Verwendung einer unteren Bildpunkt-Gruppe, die im Prozessblock 76 ausgewählt wurde. Ein Entscheidungsblock 74 bestimmt, ob die Verarbeitung für die untere Bildpunkt-Gruppe wiederholt wurde. Wenn dies nicht der Fall ist, wählt der Verarbeitungsblock 76 die Bildpunkte mit Helligkeitswerten in der zehnten bis fünfundsechzigsten Perzentile aus. Die Auswahl wird durch die Tatsache vereinfacht, daß der Prozessblock 58 bereits die Bildpunkte nach ihrer Helligkeit sortiert hat. Die den ausgewählten Bildpunkten entsprechenden Verhältnisse werden daraufhin im Prozessblock 78 invertiert und auf gleiche Weise wie die obere Bildpunkt-Gruppe verarbeitet. Es wird darauf hingewiesen, daß der Prozessblock 62 die Bildpunkte für die untere Bildpunkt-Gruppe in zwei Gruppen wie vorstehend beschrieben ordnet, mit Ausnahme, dass diejenigen Bildpunkte, die zum Ausbilden eines Verhältnisses im Prozessblock 52 ver wendet wurden eine geringere Helligkeit aufweisen als die zum Ausbilden des Verhältnisses ausgewählten anderen Bildpunkte, die den Bildpunkten vorausgehen, die einen höheren Wert als die zum Ausbilden des Verhältnisses ausgewählten anderen Bildpunkte aufweisen. Nach der Verarbeitung der unteren Bildpunkt-Gruppe erkennt jedoch der Entscheidungsblock 74, dass die untere Gruppe verarbeitet wurde, weshalb die Verarbeitung im Prozessblock 80 fortgesetzt wird.Returning again to Figure 3A, it can be seen that the rendered list of ratios is used by process block 72. The brightness levels corresponding to the pixels in the rendered list are averaged to produce an average. The process of calculating an average is repeated twice, once using the upper pixel group selected in process block 60 and once using a lower pixel group selected in process block 76. A decision block 74 determines whether processing has been repeated for the lower pixel group. If not, processing block 76 selects the pixels with brightness values in the tenth through sixty-fifth percentiles. The selection is simplified by the fact that process block 58 has already sorted the pixels by their brightness. The ratios corresponding to the selected pixels are then inverted in process block 78 and processed in the same manner as the upper pixel group. Note that process block 62 arranges the pixels for the lower pixel group into two groups as described above, except that those pixels used to form a ratio in process block 52 have a lower brightness than the other pixels selected to form the ratio that precede the pixels that have a higher value than the other pixels selected to form the ratio. However, after processing the lower pixel group, decision block 74 recognizes that the lower group has been processed and processing continues in process block 80.

Im Prozessblock 80 wird der Mittelwert der beiden im Prozessblock 72 berechneten Mittelwerte berechnet, d.h. einer für die obere Bildpunkt-Gruppe und einer für die untere Bildpunkt-Gruppe. Dieser "Mittelwert der Mittelwerte" wird im Prozessblock 82 als Schwellenwert zum Teilen des Bildes verwendet. Die Bildpunkte in der globalen Kanten-Karte, die den Werten im Eingangsbild oberhalb des Schwellenwertes entsprechen, werden auf "4" gesetzt, während diejenigen unterhalb des Schwellenwerts auf "1" gesetzt werden. Im Nachfolgenden wird die globale Kanten-Karte am Ausgang des globalen Kantendetektors 30 auch als geteiltes oder binärisiertes Bild oder bestimmtes SRBE bezeichnet. Ein bestimmter Bildpunkt in dem geteilten Bild wird als SRBE (i, j) bezeichnet.In process block 80, the average of the two averages calculated in process block 72, i.e. one for the upper pixel group and one for the lower pixel group, is calculated. This "average of the averages" is used in process block 82 as the threshold for splitting the image. The pixels in the global edge map that correspond to the values in the input image above the threshold are set to "4", while those below the threshold are set to "1". Hereinafter, the global edge map at the output of the global edge detector 30 is also referred to as a split or binarized image or a particular SRBE. A particular pixel in the split image is called SRBE(i,j).

In einem alternativen Verarbeitungsschema kann das Verfahren zum Bestimmen eines Schwellenwertes zweimal mehr wiederholt werden, um drei Schwellenwerte vor dem Teilen des Bildes im Prozessblock 82 zu erzeugen. Der zweite Schwellenwert wird im Wesentlichen durch das Wiederholen des Verfahrens gemäß Figur 3A und Figur 3B auf die Gruppe der Bildpunkte oberhalb des "Mittelwerts der Mittelwerte"-Schwellenwerts bestimmt, der im Prozessblock 80 berechnet wurde. Der dritte Schwellenwert kann im Wesentlichen durch eine Wiederholung des Verfahrens gemäß Figuren 3A und 3B auf die Gruppe der Bildpunkte unterhalb des "Mittelwerts der Mittelwerte"-Schwellenwerts bestimmt werden, der im Prozessblock 80 berechnet wurde. Die Teilung des Bildes im Prozessblock 82 besteht dann aus einer Zuordnung einer Anzahl zwischen 1 und 4 zu einem jeweiligen Bildpunkt im Eingangsbild. Hierbei würde ein Wert von 1 zugeordnet werden, wenn die Bildpunkt-Helligkeit unterhalb aller der drei Schwellenwerte liegt; ein Wert von 2 würde zugeordnet werden, wenn sie unterhalb von zwei der drei Schwellenwerte liegt; ein Wert von 3, wenn sie lediglich unterhalb von einem der drei Schwellenwerte liegt; und ein Wert von 4 würde zugeordnet werden, wenn sie oberhalb aller drei Schwellenwerte liegt. Die Kanten würden identifiziert werden, wenn benachbarte Bildpunkte unterschiedliche Werte aufweisen. Alternativ könnten Kanten nur dann identifiziert werden, wenn die den benachbarten Bildpunkten zugeordneten Werte sich um zwei oder mehr unterscheiden.In an alternative processing scheme, the process for determining a threshold may be repeated two more times to produce three thresholds prior to splitting the image in process block 82. The second threshold is essentially determined by repeating the process of Figures 3A and 3B on the group of pixels above the "mean of mean" threshold calculated in process block 80. The third threshold may essentially be determined by repeating the process of Figures 3A and 3B on the group of pixels below the "mean of mean" threshold calculated in process block 80. Splitting the image in process block 82 then consists of assigning a number between 1 and 4 to a respective pixel in the input image. Here, a value of 1 would be assigned if the pixel brightness is below all three thresholds; a value of 2 would be assigned if it is below two of the three thresholds; a value of 3 if it is only below one of the three thresholds; and a value of 4 would be assigned if it is above all three thresholds. The edges would be identified if neighboring pixels have different values. Alternatively, edges could be identified only if the values assigned to neighboring pixels differ by two or more.

Lokaler KantendetektorLocal edge detector

Kurz zurückkehrend zu Figur 2 kann man erkennen, dass der lokale Kantendetektor 28 mit dem gleichen Eingangsbild wie der globale Kantendetektor 30 arbeitet. Das Ausgangssignal des lokalen Kantendetektors 28 wird vom Kantenextrahierer 32 in gleicher Weise verwendet wie das Ausgangssignal des globalen Kantendetektors 30. Die vom lokalen Kantendetektor 28 dargestellte Verarbeitung kann daher zur gleichen Zeit durchgeführt werden wie die Verarbeitung des globalen Kantendetektors 30. Wenn beide Verfahren unter Verwendung eines Allzweck-Digitalcomputers durchgeführt werden, werden die Verfahren eher nacheinander durchgeführt.Returning briefly to Figure 2, it can be seen that the local edge detector 28 operates on the same input image as the global edge detector 30. The output of the local edge detector 28 is used by the edge extractor 32 in the same way as the output of the global edge detector 30. The processing represented by the local edge detector 28 can therefore be performed at the same time as the processing of the global edge detector 30. When both processes are performed using a general purpose digital computer, the processes are more likely to be performed sequentially.

Im lokalen Kantendetektor 28 gleitet ein 7x7-lokales Fenster über das 32x32 Bildpunkt-Eingangsfeld. Eine Ausgangs-Kantenkarte mit 26x26 Bildpunkten wird durch Zuordnung eines Wertes auf den Bildpunkt in der Kantenkarte entsprechend dem Bildpunkt im Zentrum des 7x7-lokalen Fensters ausgebildet. Der Bildpunktwert in der Kanten-Karte gibt an, ob der Bildpunkt einer Kante dem Eingangsbild entspricht sowie die Orientierung dieser Kante. Die zum Identifizieren einer Kante und ihrer Orientierung benötigte Verarbeitung kann anhand der Figuren 4A, 4B, 4C und 4 D besser verstanden werden. Jede dieser Figuren zeigt ein 7x7-Bildpunktfenster, wobei einige Bildpunkte mit "+" und andere mit "-" bezeichnet sind. Die so bestimmten Fenster werden als "Masken" bezeichnet. Da das Fenster über das Eingangsfeld gleitet, werden zwei Summen bei jeder Fensterlage berechnet : eine mit all den Bildpunkten, die einem "+" in der Maske entsprechen und eine mit all den Bildpunkten, die einem "-" in der Maske entsprechen. Das Verhältnis dieser beiden Summen wird berechnet. Die Masken in den Figuren 4A, 4B, 4C und 4D werden nacheinander jeder Fensterlage zugeführt, wodurch sich vier Verhältnisse ergeben. Das größte Verhältnis hinsichtlich der Verhältnisse wird ausgewählt. Wenn das ausgewählte Verhältnis hinsichtlich seines Verhältnisses größer ist als ein Schwellenwert, in diesem Fall 2, wird der Bildpunkt in der lokalen Kanten-Karte auf +1 eingestellt, wodurch eine Kante angezeigt wird. Die Winkelorientierung der Kante wird anhand der Maske entsprechend dem größten Verhältnis bestimmt, und ob oder ob nicht ein inverses Verhältnis ausgewählt wurde. Die Masken in Figuren 4A, 4B, 4C und 4D sind den Winkeln 0º, -45º, -90º und -135º zugeordnet. Wenn das ausgewählte Verhältnis hinsichtlich eines absoluten Wertes größer ist als der Schwellenwert, entspricht der Winkel der Maske dem dem Bildpunkt in der Ausgangs-Kantenkarte entsprechenden Winkel. Wenn das ausgewählte Verhältnis hinsichtlich seines absoluten Wertes kleiner als der Schwellenwert ist, entspricht der negative Winkel der Maske dem dem Bildpunkt in der Ausgangs-Kantenkarte zugeordneten Winkel. Schließlich beseitigt der lokale Kantendetektor 28 aus der lokalen Kanten-Karte alle Bildpunkte, die eine Kante anzeigen, jedoch nicht benachbart zu einem Bildpunkt liegen, der eine Kante mit einem Winkel innerhalb von 45º zum Winkel des ersten Bildpunktes anzeigt. Daraufhin wird das Ausgangssignal des lokalen Kantendetektors 28 ebenso als AED bezeichnet, wobei ein bestimmter Bildpunkt im Bild als AED (i, j) bezeichnet wird.In the local edge detector 28, a 7x7 local window slides over the 32x32 pixel input array. An output edge map of 26x26 pixels is formed by assigning a value to the pixel in the edge map corresponding to the pixel in the center of the 7x7 local window. The pixel value in the edge map indicates whether the pixel of an edge corresponds to the input image and the orientation of that edge. The processing required to identify an edge and its orientation can be better understood by referring to Figures 4A, 4B, 4C and 4D. Each of these figures shows a 7x7 pixel window, with some pixels labeled "+" and others labeled "-". The windows thus determined are called "masks". As the window slides over the input field, two sums are calculated at each window layer: one with all the pixels corresponding to a "+" in the mask and one with all the pixels corresponding to a "-" in the mask. The ratio of these two sums is calculated. The masks in Figures 4A, 4B, 4C and 4D are applied to each window layer in turn, yielding four ratios. The largest ratio in terms of ratios is selected. If the selected ratio is larger in terms of its ratio than a threshold, in this case 2, the pixel in the local edge map is set to +1, indicating an edge. The angular orientation of the edge is determined from the mask corresponding to the largest ratio and whether or not an inverse ratio has been selected. The masks in Figures 4A, 4B, 4C and 4D are associated with angles 0º, -45º, -90º and -135º. If the selected ratio is greater than the threshold in terms of an absolute value, the angle of the mask corresponds to the angle corresponding to the pixel in the output edge map. If the selected ratio is less than the threshold in terms of its absolute value, the negative angle of the mask corresponds to the angle associated with the pixel in the output edge map. Finally, the local edge detector 28 eliminates from the local edge map all pixels that indicate an edge but are not adjacent to a pixel that indicates an edge with an angle within 45º of the angle of the first pixel. The output of the local edge detector 28 is then also referred to as AED, with a particular pixel in the image being referred to as AED (i, j).

KantenextrahiererEdge Extractor

Wieder zurückkehrend zu Figur 2 erkennt man, daß die vom lokalen Kantendetektor 28 erzeugte Kanten-Karte, das vom globalen Kantendetektor 30 erzeugte geteilte Bild und das vom Glättungsfilter 26 erzeugte gefilterte Bild dem Kantenextrahierer 32 zugeführt werden. Der Kantenextrahierer 32 kombiniert die Informationen aller drei Quellen, wodurch eine bestätigte Kanten-Karte mit Kanten entsteht, die höchstwahrscheinlich in den von der Lenkwaffen-Verarbeitung 40 verarbeiteten Bildern erkannt wird. Die Einzelheiten des vom Kantenextrahierers 32 durchgeführten Verfahrens sind in den Figuren 5A bis 5F und Figur 6 dargestellt.Returning to Figure 2, it can be seen that the edge map generated by the local edge detector 28, the split image generated by the global edge detector 30, and the filtered image generated by the smoothing filter 26 are fed to the edge extractor 32. The edge extractor 32 combines the information from all three sources, producing a confirmed edge map with edges that are most likely to be detected in the images processed by the missile processor 40. The details of the process performed by the edge extractor 32 are shown in Figures 5A through 5F and Figure 6.

Der Kantenextrahierer 32 (Figur 2) bildet zunächst eine Kantenlbegrenzungs-kreuzkorrelierte Karte aus der vom lokalen Kantendetektor 28 erzeugten AED-Karte und dem vom globalen Kantendetektor 30 erzeugten SRBE-Bild. Jeder Bildpunkt in der Kantenlbegrenzungs-kreuzkorrelierten Karte, als EBCC (i, j) bezeichnet, wird entsprechend der folgenden Gleichung berechnet: Gleichung (1) The edge extractor 32 (Figure 2) first forms an edge boundary cross-correlated map from the AED map generated by the local edge detector 28 and the SRBE image generated by the global edge detector 30. Each pixel in the edge boundary cross-correlated map, referred to as EBCC (i, j), is calculated according to the following equation: Equation (1)

IS (i, j) entspricht einer logischen 1 (d.h. einem Boolschen Wahr), wenn sich ein Bildpunkt SRBE (i, j) im Ausgangsbild des globalen Kantendetektors 30 von irgendeinem benachbarten Bildpunkt in diesem Bild unterscheidet. Der Ausdruck in eckigen Klammern in Gleichung 1 entspricht einer logischen 1, sobald einer der Bildpunkte in der dem SRBE (i, j) entsprechenden AED-Karte oder irgendeiner seiner benachbarten Bildpunkte eine logische 1 (d.h. eine Kante) aufweist. Das EBCC-Bild besitzt somit in jedem Bildpunkt eine 1, bei dem sowohl der lokale Kantendetektor 28 als auch der globale Kantendetektor 30 eine Kante identifiziert hat, und eine 0 (d.h. ein Boolsches Falsch) in allen anderen Bildpunkten.IS (i, j) corresponds to a logical 1 (ie a Boolean true) if a pixel SRBE (i, j) in the output image of the global edge detector 30 differs from any neighboring pixel in that image. The expression in square brackets in equation 1 corresponds to a logical 1 as soon as one of the pixels in the AED map corresponding to SRBE (i, j) or any of its neighboring pixels is a logical 1 (ie a edge). The EBCC image thus has a 1 in each pixel where both the local edge detector 28 and the global edge detector 30 have identified an edge, and a 0 (ie a Boolean false) in all other pixels.

Der Kantenextrahierer 32 bildet als nächstes eine Differenzkarte, die mit "D" bezeichnet wird, in der jeder einzelne Bildpunkt in der Karte mit "D" (i, j) bezeichnet wird. Jeder Bildpunkt in der Differenzkarte wird gemäß der folgenden Gleichung berechnet: Gleichung (2) The edge extractor 32 next forms a difference map, denoted by "D", in which each individual pixel in the map is denoted by "D" (i, j). Each pixel in the difference map is calculated according to the following equation: Equation (2)

wobei IS (i, j) die gleiche Bedeutung wie in Gleichung (1) besitzt. Jeder Bildpunkt in der D-Karte mit einem Wert von 1 bedeutet, dass der globale Kantendetektor 30 eine Kante bei diesem Bildpunkt erkannt hat, jedoch der lokale Kantendetektor 28 dies nicht tat.where IS (i, j) has the same meaning as in equation (1). Each pixel in the D-map with a value of 1 means that the global edge detector 30 detected an edge at that pixel, but the local edge detector 28 did not.

Der Kantenextrahierer 32 bildet darüber hinaus eine alternative Verhältnis-Karte RD. Die alternative Verhältniskarte gibt an, wo der lokale Kantendetektor 28 eine Kante erkannt hätte, wenn weniger strenge Kantenerfassungsverfahren verwendet worden wären. Die Figuren 5A und 5B zeigen das zum Erzeugen der RD-Karte durchgeführte Verfahren. Das Verfahren wird für jeden in der D-Karte auf 1 eingestellten Bildpunkt einmal durchgeführt. Der Prozessblock 130 wählt ein 3x3-lokales Fenster aus der EPS-Karte aus. Das lokale Fenster besteht aus den Bildpunkten, die um den in der D-Karte auf 1 gesetzten Bildpunkt entsprechenden Bildpunkt zentriert sind. Das lokale Fenster wird daraufhin mittels den in den Figuren 5C, 5D, 5E und SF dargestellten Maskenpaaren verarbeitet. Ein Prozessblock 132 legt die erste Maske eines jeden Paares an das ausgewählte lokale Fenster an. Jede Zahl in der Maske wird mit dem einen Bildpunkt des EPS-Bildes im ausgewählten lokalen Fenster entsprechenden Wert multipliziert. Die Summe der Produkte ist der der Maske entsprechende Wert. Ein Prozessblock 134 wendet die zweite Maske im Paar in gleicher Weise an. Ein Prozessblock 136 berechnet daraufhin die Differenz und das Verhältnis der in der Prozessblöcken 132 und 134 berechneten Werte. Wenn noch nicht jedes der vier Paare der in den Figuren 5C, 5D, 5E und 5F dargestellten Masken auf das lokale Fenster angewendet wurde, wählt der Prozessblock 140 das nächste Paar aus und berechnet für dieses Paar Werte.The edge extractor 32 also forms an alternative ratio map RD. The alternative ratio map indicates where the local edge detector 28 would have detected an edge if less stringent edge detection techniques had been used. Figures 5A and 5B show the process performed to generate the RD map. The process is performed once for each pixel set to 1 in the D map. Process block 130 selects a 3x3 local window from the EPS map. The local window consists of the pixels centered on the pixel corresponding to the pixel set to 1 in the D map. The local window is then processed using the mask pairs shown in Figures 5C, 5D, 5E and 5F. A process block 132 applies the first mask of each pair to the selected local window. Each number in the mask is multiplied by the value corresponding to one pixel of the EPS image in the selected local window. The sum of the products is the value corresponding to the mask. A process block 134 applies the second mask in the pair in the same way. A process block 136 then calculates the difference and the ratio of the values calculated in the process blocks 132 and 134. If each of the four pairs of the values shown in Figures 5C, 5D, 5E and 5F shown masks have been applied to the local window, process block 140 selects the next pair and calculates values for that pair.

Im Prozessblock 142 werden die absoluten Werte der im Prozessblock 136 berechneten Differenzen sortiert. Ein Entscheidungsblock 144 überprüft, ob das der im Prozessblock 142 gefundenen größten Differenz entsprechende Verhältnis einen Schwellenwert THR, in diesem Fall 2,0, übersteigt. Für den Fall, dass mehr als ein Maskenpaar im Prozessblock 136 Differenzen erzeugt, die gleich der größten Differenz sind, werden die allen Paaren entspre chenden Verhältnisse mit dieser Differenz durch den Entscheidungsblock 144 derart überprüft, dass festgestellt wird, ob irgendeines ihrer Verhältnisse den Schwellenwert übersteigt. Wenn der Schwellenwert nicht überschritten wird, wird der Bildpunkt in der RD-Karte, der in der D-Karte einem auf 1 eingestellten Bildpunkt entspricht, im Prozessblock 160 auf 0 eingestellt. Wenn der Schwel lenwert THR überschritten wird, leitet der Entscheidungsblock 146 den Ablauf zu einem Entscheidungblock 147 um, wenn mehr als ein Maskenpaar Differenzen erzeugt hat, die gleich der größten Differenz sind, oder zum Prozessblock 152, wenn ein einzelnes Maskenpaar die Differenz erzeugt hat, die gleich der größten Differenz ist. Ein Entscheidungsblock 147 überprüft alle Verhältnisse entsprechend den Maskenpaaren, die Differenzen erzeugen, die gleich der größten sind. Wenn nur eines der der größten Differenz entsprechenden Verhältnisse den Schwellenwert THR überschreitet, so schreitet das Verfahren zum Prozessblock 152. Andererseits wird das Verfahren beim Entscheidungsblock 148 fortgesetzt. Der Entscheidungsblock 148 überprüft, ob einer der beiden größten Werte durch ein orthogonales Maskenpaar erzeugt wurde. Das Maskenpaar 170A und 170B (Figur 5C) liegt orthogonal zum Maskenpaar 174A und 174B (Figur 5E). Das Maskenpaar 172A und 172B (Figur 5D) liegt orthogonal zum Maskenpaar 176A und 176B (Figur 5F). Wenn die Differenzen solche Werte aufweisen, die durch einen orthogonalen Satz erzeugt wurden, wird der Bildpunkt im RD-Bild im Prozessblock 160 auf 0 gesetzt. Andernfalls wählt der Prozessblock 150 einen der größten Werte durch Auswählen des Paares mit dem größten Verhältnis aus, wie es im Prozessblock 136 berechnet wurde.In process block 142, the absolute values of the differences calculated in process block 136 are sorted. A decision block 144 checks whether the ratio corresponding to the largest difference found in process block 142 exceeds a threshold THR, in this case 2.0. In the event that more than one mask pair in process block 136 produces differences equal to the largest difference, the ratios corresponding to all pairs with that difference are checked by decision block 144 to determine whether any of their ratios exceed the threshold. If the threshold is not exceeded, the pixel in the RD map that corresponds to a pixel in the D map set to 1 is set to 0 in process block 160. If the threshold THR is exceeded, decision block 146 directs the process to a decision block 147 if more than one mask pair has produced differences equal to the largest difference, or to process block 152 if a single mask pair has produced the difference equal to the largest difference. A decision block 147 checks all ratios corresponding to the mask pairs that produce differences equal to the largest. If only one of the ratios corresponding to the largest difference exceeds the threshold THR, the process proceeds to process block 152. Otherwise, the process continues at decision block 148. Decision block 148 checks whether either of the two largest values was produced by an orthogonal mask pair. The mask pair 170A and 170B (Figure 5C) is orthogonal to the mask pair 174A and 174B (Figure 5E). The mask pair 172A and 172B (Figure 5D) is orthogonal to the mask pair 176A and 176B (Figure 5F). If the differences have values that are produced by an orthogonal set, the pixel in the RD image is set to 0 in process block 160. Otherwise, process block 150 selects one of the largest values by selecting the pair with the largest ratio as calculated in process block 136.

Das Verfahren wird daraufhin im Prozessblock 152 fortgesetzt. Wenn im Entscheidungsblock 146 nur eine größte Differenz identifiziert wurde, oder im Entscheidungsblock 147 nur eine größte Differenz mit einem den Schwellenwert THR überschreitenden Verhältnis identifiziert wurde, wird das Verfahren in gleicher Weise beim Prozessblock 152 fortgesetzt. Im Prozessblock 152 wird ein Kantenwinkel A&sub1; auf der Basis des Maskenpaares mit der im Prozessblock 136 berechneten größten Differenz ausgewählt, oder auf der Grundlage des im Prozessblock 150 ausgewählten Paares, wenn dieser Prozessblock durchgeführt wurde. Für dieses Paar wird die im Prozessblock 132 oder die im Prozessblock 134 den größten Wert erzeugende Maske identifiziert und der dieser Maske zugeordnete Winkel ausgewählt. Die Winkel 45º, 90º, 135º, 180º, 225º, 270º, 315º und 360º sind den Masken 170A (Figur 5C), 172A (Figur 5D), 174A (Figur 5E), 176A (Figur 5F), 170B (Figur 5C), 172B (Figur 5D), 174B (Figur 5E) und 176B (Figur 5F) jeweils zugeordnet.The method then continues in process block 152. If only one largest difference was identified in decision block 146, or only one largest difference with a ratio exceeding the threshold THR was identified in decision block 147, the method is continued in The process continues in the same manner at process block 152. In process block 152, an edge angle A₁ is selected based on the mask pair with the largest difference calculated in process block 136, or based on the pair selected in process block 150 if that process block was performed. For that pair, the mask producing the largest value in process block 132 or in process block 134 is identified and the angle associated with that mask is selected. The angles 45º, 90º, 135º, 180º, 225º, 270º, 315º and 360º are assigned to the masks 170A (Figure 5C), 172A (Figure 5D), 174A (Figure 5E), 176A (Figure 5F), 170B (Figure 5C), 172B (Figure 5D), 174B (Figure 5E) and 176B (Figure 5F), respectively.

Ein Prozessblock 154 berechnet einen zweiten Winkel A&sub2;, der gleich dem arctan des Verhältnisses aus der im Prozessblock 136 für die Maske in Figur 5E berechneten Differenz und der für die Maske in Figur 5F berechneten Differenz. Die Vorzeichen der Differenzen werden in Betracht gezogen, so dass der arctan A&sub2; alle Werte zwischen 0º und 360º annehmen kann. Die berechnete Differenz für das Maskenpaar gemäß Figur 5D gibt die Stärke einer Kante in einer 90º-Richtung wieder, während die berechnete Differenz für das Maskenpaar gemäß Figur 5F die Stärke einer Kante in einer 360º (oder 0º)-Richtung wiedergibt. Somit gibt der arctan der Differenzen den Winkel einer Kante wieder.A process block 154 calculates a second angle A2 that is equal to the arctan of the ratio of the difference calculated in process block 136 for the mask in Figure 5E and the difference calculated for the mask in Figure 5F. The signs of the differences are taken into account so that the arctan A2 can take on any value between 0º and 360º. The calculated difference for the mask pair of Figure 5D represents the strength of an edge in a 90º direction, while the calculated difference for the mask pair of Figure 5F represents the strength of an edge in a 360º (or 0º) direction. Thus, the arctan of the differences represents the angle of an edge.

Im Entscheid ungsblock 156 wird festgestellt, ob der absolute Wert der Differenz, der in den Prozessblöcken 152 und 154 berechneten Winkel A&sub1; und A&sub2;, größer als 45º ist. Es wird daran erinnert, dass A&sub1; und A&sub2; die Winkel einer bei einem ausgewählten Bildpunkt auf zwei unterschiedliche Arten berechneten Kante wiedergeben. Wenn die Differenz größer als 45º ist, wird der Bildpunkt in der RD-Karte im Prozessblock 160 auf 0 gesetzt (d.h. der ausgewählte Bildpunkt wird in der RD-Karte nicht als mögliche Kante angezeigt). Andernfalls wird der Bildpunkt im Prozessblock 158 auf 1 gesetzt. Die vollständige RD- Karte erhält man durch Wiederholen der vorstehend beschriebenen Verarbeitung (gemäß Figuren 5A und 5B) für jeden Bildpunkt, der im D-Bild gleich 1 ist.Decision block 156 determines whether the absolute value of the difference between the angles A1 and A2 calculated in processing blocks 152 and 154 is greater than 45°. Recall that A1 and A2 represent the angles of an edge calculated in two different ways for a selected pixel. If the difference is greater than 45°, the pixel is set to 0 in the RD map in processing block 160 (i.e., the selected pixel is not shown as a possible edge in the RD map). Otherwise, the pixel is set to 1 in processing block 158. The complete RD map is obtained by repeating the processing described above (as shown in Figures 5A and 5B) for each pixel that is equal to 1 in the D-image.

Die Figuren 6A zeigen weitere Einzelheiten, wie das Ausgangssignal des Kantenextrahierers 32 (Figur 2) aus den EBCC-, D-, SRBE- und RD-Karten gebildet wird. Das Ausgangssignal des Kantenextrahierers 32 (Figur 2) besteht aus einem Feld von Bildpunkten, die als EEB (i, j) bezeichnet werden. Jeder Bildpunkt besitzt entweder einen Wert von 1, der eine Kante anzeigt, oder einen Wert von 0, der keine Kante anzeigt. Das Verfahren gemäß Figuren 6A und 6B setzt jeden Bildpunkt in der EEB-Karte auf 1 entsprechend einer 1 im EBCC-Bild. Die anderen Bildpunkte in der EEB-Karte, die den Bildpunkten in der D-Karte entsprechen, die wahrscheinliche Kanten darstellen, werden ebenso auf 1 eingestellt.Figures 6A show further details of how the output of the edge extractor 32 (Figure 2) is formed from the EBCC, D, SRBE and RD maps. The output of the edge extractor 32 (Figure 2) consists of an array of pixels referred to as EEB (i, j). Each Each pixel has either a value of 1 indicating an edge or a value of 0 indicating no edge. The method of Figures 6A and 6B sets each pixel in the EEB map to 1 corresponding to a 1 in the EBCC image. The other pixels in the EEB map that correspond to the pixels in the D map that represent probable edges are also set to 1.

Im Prozessblock 180 wird die EBCC-Karte in ein variables Feld kopiert, das als "TEMP" bezeichnet wird. Das "TEMP"-Feld wird bildpunktweise zu einem jeweiligen Zeitpunkt, wobei der augenblicklich zu verarbeitende Bildpunkt vom Prozessblock 182 ausgewählt wird. Im Entscheidungblock 184 wird überprüft, ob der dem ausgewählten Bildpunkt entsprechende Bildpunkt in der D- Karte 0 ist. Wenn der Bildpunkt gleich 0 ist, ignoriert der Prozessblock 190 den ausgewählten Bildpunkt und es wird der nächste Bildpunkt betrachtet.In process block 180, the EBCC map is copied into a variable array called "TEMP". The "TEMP" array is processed one pixel at a time, with the pixel currently to be processed being selected by process block 182. In decision block 184, a check is made to see if the pixel in the D-map corresponding to the selected pixel is 0. If the pixel is 0, process block 190 ignores the selected pixel and the next pixel is considered.

Wenn andererseits der Bildpunkt nicht gleich 0 ist, kann er eine Kante darstellen. Im Entscheidungsblock 186 wird der ausgewählte Bildpunkt und seine vier nächsten Bildpunkte im TEMP-Feld überprüft. Die vier nächstliegenden Nachbarn sind die Bildpunkte, unterhalb und an den Seiten des ausge wählten Bildpunkts im zweidimensionalen Feld. Wenn alle diese Bildpunkte sind, wird der ausgewählte Bildpunkt im Prozessblock 190 nicht weiter als Kante betrachtet und der nächste Bildpunkt ausgewählt. Wenn jedoch einer der vier nächstliegenden Nachbar-Bildpunkte von 0 verschieden ist, (d.h. eine Kante ist) behält der Prozessblock 188 den ausgewählten Bildpunkt für die weitere Verarbeitung als eine mögliche Kante bei.On the other hand, if the pixel is not equal to 0, it may represent an edge. In decision block 186, the selected pixel and its four nearest pixels in the TEMP array are examined. The four nearest neighbors are the pixels below and to the sides of the selected pixel in the two-dimensional array. If all of these pixels are, the selected pixel is no longer considered an edge in process block 190 and the next pixel is selected. However, if any of the four nearest neighbor pixels is different from 0 (i.e., is an edge), process block 188 retains the selected pixel as a possible edge for further processing.

Wenn im Entscheidungsblock 192 festgestellt wird, dass mehr Bildpunkte zur Verarbeitung verbleiben, wählt der Prozessblock 182 den nächsten Bildpunkt aus, der in ähnlicher Weise verarbeitet wird. Wenn alle Bildpunkte im Bild verarbeitet wurden, entscheidet der Entscheidungsblock 194, ob das Auswahlverfahren wiederholt werden soll. Das Verfahren wird wiederholt, wenn zwei Bedingungen erfüllt sind (1) das ganze Feld wurde weniger als fünfzigmal verarbeitet; und (2) die Gruppe der beibehaltenen Bildpunkte bei der augenblicklichen Wiederholung unterscheidet sich von der Gruppe der beibehaltenen Bildpunkte bei der letzten Wiederholung. Wenn im Entscheidungsblock 194 festgestellt wird, dass eine weitere Wiederholung durchgeführt wird, setzt der Prozessblock 196 die Bildpunkte im TEMP-Feld entsprechend den beibehaltenen Bildpunkten auf 1 und alle anderen Bildpunkte auf 0.If it is determined in decision block 192 that more pixels remain to be processed, process block 182 selects the next pixel to be processed in a similar manner. When all pixels in the image have been processed, decision block 194 determines whether to repeat the selection process. The process is repeated if two conditions are met (1) the entire array has been processed less than fifty times; and (2) the group of pixels retained in the current iteration is different from the group of pixels retained in the last iteration. If it is determined in decision block 194 that another iteration will be performed, Process block 196 sets the pixels in the TEMP field corresponding to the retained pixels to 1 and all other pixels to 0.

Somit beginnt das TEMP-Feld mit allen Bildpunkten, an denen sowohl vom lokalen Kantendetektor 28 als auch vom globalen Kantendetektor 30 Kanten als mögliche identifizierte Kanten erfasst wurden. Darüber hinaus werden Bildpunkte, die möglicherweise durch eine 1 in der D-Karte angezeigte Kanten darstellen, bei jeder Wiederholung dem TEMP-Feld hinzugefügt, wenn sie zu einem bereits als eine mögliche Kante identifizierten Bildpunkt benach bart liegen. Sobald eine ausreichende Anzahl von Wiederholungen, wie sie im Entscheidungsblock 184 festgestellt wird, durchgeführt wurde stellen die verbleibenden Bildpunkte, d.h. die len im TEMP-Feld, die Bildpunkte dar, die möglicherweise Kanten sind.Thus, the TEMP array begins with all pixels where edges have been detected by both the local edge detector 28 and the global edge detector 30 as possible edges identified. In addition, pixels that potentially represent edges indicated by a 1 in the D-map are added to the TEMP array at each iteration if they are adjacent to a pixel already identified as a possible edge. Once a sufficient number of iterations, as determined in decision block 184, have been performed, the remaining pixels, i.e., the len in the TEMP array, represent the pixels that are potentially edges.

Alle beibehaltenen Bildpunkte im TEMP-Feld werden zur Bestimmung der Tatsache betrachtet, welche Bildpunkt tatsächlich Kanten darstellen, und in der EEB-Karte am Ausgang des Kantenextrahierers 32 (Figur 2) erscheinen sollten.All retained pixels in the TEMP field are considered to determine which pixels actually represent edges and should appear in the EEB map at the output of the edge extractor 32 (Figure 2).

Ein Prozessblock 198 wählt zu einem Zeitpunkt der Verarbeitung einen Bildpunkt aus. Wenn Entscheidungsblock 200 festgestellt wird, dass der Bildpunkt der EBCC-Karte gleich list, setzt der Prozessblock 202 den entsprechenden Bildpunkt in der EEB-Karte auf 1 und der nächste Bildpunkt wird verarbeitet. Wenn der ausgewählte Bildpunkt in der EBCC-Karte 0 ist, überprüft ein Entscheidungsblock 204, ob der entsprechende Bildpunkt im TEMP-Feld gleich ist, d.h. nicht als eine Kante darstellenden Bildpunkt in Betracht gezogen wird.A process block 198 selects a pixel at a time of processing. If decision block 200 determines that the pixel in the EBCC map is equal to 1, process block 202 sets the corresponding pixel in the EEB map to 1 and the next pixel is processed. If the selected pixel in the EBCC map is 0, a decision block 204 checks whether the corresponding pixel in the TEMP field is equal to 1, i.e., not considered as a pixel representing an edge.

Wenn der Bildpunkt im TEMP-Feld gleich 0 ist, wird dieser Bildpunkt ignoriert und der nächste Bildpunkt betrachtet.If the pixel in the TEMP field is 0, this pixel is ignored and the next pixel is considered.

Wenn andererseits der Bildpunkt im TEMP-Feld list, wird der entsprechende Bildpunkt in der Ersatzverhältnis-Karte RD betrachtet. Wenn vom Entscheidungsblock 206 der Bildpunkt in der RD-Karte als 0 bestimmt wird, wird der nächste Bildpunkt betrachtet. Wenn der Bildpunkt in der RD-Karte nicht ist, wird im Prozessblock 208 festgestellt, ob der entsprechende Bildpunkt im Ausgangsfeld EEB unter Verwendung der nachfolgenden Gleichung auf 1 gesetzt werden soll: Gleichung (3) On the other hand, if the pixel in the TEMP field is 1, the corresponding pixel in the replacement ratio map RD is considered. If the pixel in the RD map is determined to be 0 by decision block 206, the next pixel is considered. If the pixel in the RD map is not, a determination is made in process block 208 as to whether the corresponding pixel in the output field EEB should be set to 1 using the following equation: Equation (3)

wobei "Bildpunkt" sich auf einen Bildpunkt entsprechend dem ausgewählten Bildpunkt bezieht und "Nachbar" sich auf einen Bildpunkt in der Nähe des dem ausgewählten Bildpunkt entsprechenden Bildpunkts bezieht. Es sei darauf hingewiesen, dass jeder Bildpunkt acht Nachbarn aufweist - einen auf jeder der vier Seiten und jeweils einen an den vier Diagonalen. Somit muss die rechte Seite der Gleichung (3) bis zu achtmal evaluiert werden, einmal für jeden Nachbar-Bildpunkt, wobei EEB (Bildpunkt) eine logische 1 annimmt, wenn sich für irgendeinen der acht Nachbarn auf der rechten Seite eine logische 1 ergibt. Wenn im Entscheidungsblock 210 festgestellt wird, dass mehr Bildpunkte übrig bleiben, wählt der Prozessblock 198 den nächsten Bildpunkt aus und die Verarbeitung wird wiederholt.where "pixel" refers to a pixel corresponding to the selected pixel and "neighbor" refers to a pixel near the pixel corresponding to the selected pixel. Note that each pixel has eight neighbors - one on each of the four sides and one on each of the four diagonals. Thus, the right-hand side of equation (3) must be evaluated up to eight times, once for each neighbor pixel, with EEB(pixel) taking on a logical 1 if any of the eight neighbors on the right-hand side is a logical 1. If decision block 210 determines that more pixels remain, process block 198 selects the next pixel and processing repeats.

Nach Abschluss der Verarbeitung gemäß Figur 6B besitzt das EEB-Bild bei jedem Bildpunkt eine 1, bei dem sowohl der lokale Kantendetektor 28 (Figur 2) als auch der globale Kantendetektor 30 (Figur 2) eine Kante gemeldet haben. Darüber hinaus werden die Ergebnisse der Verarbeitung gemäß Figur 5A im Entscheidungsblock 206 und im Entscheidungsblock 208 verwendet, um weitere Bildpunkte zu identifizieren und auf 1 zu setzen, die wahrscheinlich Ausdehnungen der bestätigten Kanten darstellen. Das EEB-Bild stellt somit die Kanten im Referenzbild dar, die höchstwahrscheinlich mit nachfolgenden Bildem übereinstimmende Bildmerkmale darstellen, die möglicherweise von unterschiedlichen Winkeln des Zielbereiches aufgenommen werden. Diese len im EEB-Bild stellen bestätigte Kanten dar.After completing the processing of Figure 6B, the EEB image has a 1 at each pixel where both the local edge detector 28 (Figure 2) and the global edge detector 30 (Figure 2) have reported an edge. In addition, the results of the processing of Figure 5A are used in decision block 206 and decision block 208 to identify and set to 1 additional pixels that are likely to represent extents of the confirmed edges. The EEB image thus represents the edges in the reference image that are most likely to represent image features that are consistent with subsequent images that may be taken from different angles of the target area. These edges in the EEB image represent confirmed edges.

ReferenzmodellgeneratorReference model generator

Der Referenzmodellgenerator 34 (Figur 2) erzeugt ein Modell von der Beschreibung der Kanten in der EEB-Karte. Das Modell ist ein zweidimensionales Feld mit der gleichen Größe wie die EEB-Karte. Der Referenzmodellgenerator 34 ordnet jedem Element im Modell entweder eine +1, -1 oder 0 zu, jeweils auf der Grundlage der in der EEB-Karte enthaltenen Kanteninformation und der in der SRBE-Karte enthaltenen Teilungsinformation. Der Referenzmodellgenerator 34 (Figur 2) ordnet denjenigen Bildpunkten innerhalb drei (oder einer anderen relativ kleinen Zahl) von Bildpunkten einer bestätigten Kante eine +1 zu, die wahrscheinlich einem Bildpunkt mit hoher Helligkeit entspricht, wenn das Modellfeld über ein SAR-Bild des Zielbereiches abgeglichen wird, während es den Bildpunkten innerhalb der drei Bildpunkte einer bestätigten Kante, die wahrscheinlich Bildpunkten mit geringer Helligkeit entsprechen, eine -1 zuordnet, wenn das Modellfeld über das SAR-Bild abgeglichen wird. Bildpunkten, die nicht innerhalb der drei Bildpunkte einer bestätigten Kante liegen, wird ein Wert von 0 zugeordnet. Der Referenzmodellgenerator 34 (Figur 2) berechnet darüber hinaus einen Korrelations-Schwellenwert k, der vom Kantenmodell- Korrelator 42 (Figur 2) zum Abg leichen des Modells auf ein vom SAR 18B (Figur 1) aufgenommenes SAR-Bild während des Anflugs der Lenkwaffe 16 (Figur 1) auf sein Ziel verwendet wird.The reference model generator 34 (Figure 2) creates a model from the description of the edges in the EEB map. The model is a two-dimensional array of the same size as the EEB map. The reference model generator 34 assigns either a +1, -1, or 0 to each element in the model, based on the edge information contained in the EEB map and the pitch information contained in the SRBE map. The reference model generator 34 (Figure 2) assigns a +1 to those pixels within three (or other relatively small number) pixels of a confirmed edge that likely correspond to a pixel with high brightness if the model field is matched against a SAR image of the target area, while it assigns a -1 to pixels within the three pixels of a confirmed edge that likely correspond to pixels of low brightness when the model field is matched against the SAR image. Pixels that are not within the three pixels of a confirmed edge are assigned a value of 0. The reference model generator 34 (Figure 2) also calculates a correlation threshold k that is used by the edge model correlator 42 (Figure 2) to match the model to a SAR image taken by the SAR 18B (Figure 1) during the approach of the guided missile 16 (Figure 1) to its target.

Die Figuren 7A und 7B zeigen Einzelheiten der vom Referenzmodellgenerator 34 (Figur 2) durchgeführten Verarbeitung, mit der das Modell und der Korrelations-Schwellenwert berechnet wird. Alle Bildpunkte im EEB-Bild werden nacheinander als vom Prozessblock 240 ausgewählte Bildpunkte verarbeitet. Wenn dieser Bildpunkt nicht einer Kante entspricht, wie es im Entscheidungsblock 242 festgestellt wird, wird der nächste Bildpunkt verarbeitet. Wenn der Bildpunkt eine Kante darstellt, d.h. der Bildpunkt in der EEB-Karte ungleich Null ist, wird eine Vielzahl von Bildpunkten dementsprechend im Modell gesetzt.Figures 7A and 7B show details of the processing performed by the reference model generator 34 (Figure 2) to calculate the model and the correlation threshold. All pixels in the EEB image are processed sequentially as pixels selected by process block 240. If this pixel does not correspond to an edge, as determined in decision block 242, the next pixel is processed. If the pixel represents an edge, i.e., the pixel is non-zero in the EEB map, a plurality of pixels are set accordingly in the model.

Ein Entscheidungsblock 246 überprüft, ob sich der ausgewählte Bildpunkt auf der hellen Seite oder der dunklen Seite der Kante befindet. Zum Festlegen auf welcher Seite der Kante sich der Bildpunkt befindet, wird der Pegel des entsprechenden Bildpunkts in der SRBE-Karte mit dem Wert des benachbarten Bildpunkts in der SRBE-Karte, der einen unterschiedlichen Wert aufweist, verglichen. Wenn der Wert des entsprechenden Bildpunkts größer ist als der benachbarte Bildpunkt, befindet sich der Bildpunkt auf der hellen Seite der Kante. Wenn sich der Bildpunkt auf der hellen Seite der Kante befindet, wird eine Variable BRTT im Prozessblock 248 auf +1 gesetzt. Andernfalls wird BRTT im Prozessblock 250 auf -1 gesetzt.A decision block 246 checks whether the selected pixel is on the light side or the dark side of the edge. To determine which side of the edge the pixel is on, the level of the corresponding pixel in the SRBE map is compared to the value of the neighboring pixel in the SRBE map, which has a different value. If the value of the corresponding pixel is greater than the neighboring pixel, the pixel is on the light side of the edge. If the pixel is on the light side of the edge, a variable BRTT is set to +1 in process block 248. Otherwise, BRTT is set to -1 in process block 250.

Ein Prozessblock 252 wählt die Bildpunkte in einem 5x5-lokalen Fenster in der SRBE-Karte aus, das auf dem im Prozessblock 240 ausgewählten Bildpunkt zentriert ist. Beim Verarbeiten der Bildpunkte unter dem lokalen Fenster werden die vier äußersten Kanten-Bildpunkte ausgeschlossen. Wenn das lokale Fenster über den Bildpunkten in Nähe der Seiten des SRBE-Bildes zentriert wird, können Teile des lokalen Fensters über die Kanten des Bildes "hinausragen". In diesem Fall werden nur die Bildpunkte im Bild unter dem Fenster betrachtet.A process block 252 selects the pixels in a 5x5 local window in the SRBE map that is centered on the pixel selected in process block 240. When processing the pixels under the local window, the four outermost edge pixels are excluded. If the local window is centered over the pixels near the sides of the SRBE image, portions of the local window may "spread" beyond the edges of the image. In this case, only the pixels in the image below the window are considered.

Ein Prozessblock 254 identifiziert alile Bildpunkt im lokalen Fenster, die den gleichen Wert wie der Bildpunkt in der SRBE-Karte aufweist, der dem vom Prozessblock 240 ausgewählten Bildpunkt entspricht (d.h. die Bildpunkte auf der gleichen Seite der Kante). Die entsprechenden Bildpunkte im Modell werden auf einem jeweiligen dem BRTT vom Prozessblock 248 oder 250 zugeordneten Wert eingestellt. Die verbleibenden Bildpunkte in der EEB-Karte werden daraufhin verarbeitet bis der Entscheidungsblock 256 feststellt, dass alle verarbeitet wurden, wodurch das Modell vervollständigt wird.A process block 254 identifies any pixel in the local window that has the same value as the pixel in the SRBE map that corresponds to the pixel selected by process block 240 (i.e., the pixels on the same side of the edge). The corresponding pixels in the model are set to a respective value assigned to the BRTT by process block 248 or 250. The remaining pixels in the EEB map are then processed until decision block 256 determines that all have been processed, thereby completing the model.

Die Figur 7B zeigt die zum Berechnen des Korrelations-Schwellenwerts K benötigte Verarbeitung. Jeder Bildpunkt im Modell wird nacheinander verarbeitet, wie er vom Prozessblock 258 ausgewählt wird. Wenn vom Entscheidungsblock 260 festgestellt wird, dass der Bildpunkt Null ist, wird der nächste Bildpunkt verarbeitet. Wenn vom Entscheidungsblock 262 festgestellt wird, dass der Bildpunkt größer Null ist, wird vom Prozessblock 264 der Wert des entsprechenden Bildpunkts im EPS-Bild einer Variablen THRP hinzugefügt und eine Zäh lervariable im Prozessblock 266 inkrementiert. Wenn andererseits der Bildpunkt kleiner Null ist, wird im Prozessblock 268 der Wert des entsprechenden Bildpunkts im EPS-Bildes einer variablen THRM hinzugefügt und im Prozessblock 270 eine Zählervariable NTHRM inkrementiert. Das Verfahren wird für alle Bildpunkte im Bild wiederholt, was vom Entscheidungsblock 272 festgestellt wird. Ein Prozessblock 274 berechnet einen Wert einer Variablen CR gemäß der GleichungFigure 7B shows the processing required to calculate the correlation threshold K. Each pixel in the model is processed in turn as selected by process block 258. If the pixel is determined to be zero by decision block 260, the next pixel is processed. If the pixel is determined to be greater than zero by decision block 262, the value of the corresponding pixel in the EPS image is added to a variable THRP by process block 264 and a counter variable is incremented in process block 266. On the other hand, if the pixel is less than zero, the value of the corresponding pixel in the EPS image is added to a variable THRM in process block 268 and a counter variable NTHRM is incremented in process block 270. The process is repeated for all pixels in the image as determined by decision block 272. A process block 274 calculates a value of a variable CR according to the equation

CR- (THRP/NTHRP)/(THRM/THRM) Gleichung (4)CR-(THRP/NTHRP)/(THRM/THRM) equation (4)

Man beachte, dass CR den Wert 1 überschreiten sollte. Ein CR-Wert von kleiner 1 bedeutet, dass das von der Zielansprache 19 (Figur 1) ausgewählte Referenzbild keine Kanten enthält, die ein gutes Modell erzeugen. Wenn CR kleiner list, kann die Zielansprache 19 (Figur 1) ein unterschiedliches Referenzbild auswählen. Schließlich wird im Prozessblock 276 der Korrelations Schwellenwert K gemäß der folgenden Gleichung berechnet:Note that CR should exceed the value 1. A CR value of less than 1 means that the reference image selected by the target address 19 (Figure 1) does not contain any edges that produce a good model. If CR is less than 1, the target address 19 (Figure 1) can select a different reference image. Finally, in process block 276, the correlation threshold K is calculated according to the following equation:

K = CR (In CR)/(CR-1) Gleichung (5)K = CR (In CR)/(CR-1) Equation (5)

,wobei In die Funktion des natürlichen Logarithmus darstellt.,where In represents the natural logarithm function.

In einem weiteren Ausführungsbeispiel der Erfindung kann die gesamte Verarbeitung gemäß Figur 78 durch Einstellen des Wertes K auf 1,4 enifallen.In a further embodiment of the invention, the entire processing according to Figure 78 can be omitted by setting the value K to 1.4.

Lenkwaffen-VerarbeitungGuided missile processing

Das Modell und der Korrelations-Schwellenwert werden daraufhin an die Lenkwaffen-Verarbeitung 40 (Figur 1) übertragen. Die Lenkwaffen-Verarbeitung 40 (Figur 1) gleicht das Modell und die vom SAR 18B (Figur 1) gemachten Bilder aufeinander ab. Es sei darauf hingewiesen, dass die zum Erzeugen des Modells benötigte Verarbeitung einmal in der Flugzeug-Verarbeitung 20 (Figur 1) durchgeführt wird. Wie in Figur 2 dargestellt, benötigt die Identifikation des Ziels aus dem vom SAR 18B (Figur 1) gemachten Bild eine geringere Verarbeitung.The model and correlation threshold are then transmitted to the missile processing 40 (Figure 1). The missile processing 40 (Figure 1) compares the model and the images taken by the SAR 18B (Figure 1). Note that the processing required to generate the model is performed once in the aircraft processing 20 (Figure 1). As shown in Figure 2, identifying the target from the image taken by the SAR 18B (Figure 1) requires less processing.

Es sei darauf hingewiesen, dass das Modell von einem Referenzbild erzeugt wurde, das aus einem Stück eines vom SAR 18A (Figur 1) gemachten Bildes besteht. Dieses Stück des Bildes wird derart ausgewählt, dass es ausreichende Kanten aufweist und einen relativ hohen Wert für den nach Gleichung (4) berechneten CR ergibt. Beispielsweise kann das Referenzbild ein 32x32-Bildpunkte Feld sein, das aus einem größeren 64x64-Bildpunkte Feld auswählt wird. Das vom SAR 18B (Figur 1) erzeugte Zielbereichsbild wird dann in gleicher Weise ein 64x64-Bildpunkte-Feld aufweisen. Gemäß einer nachfolgend im Einzelnen beschriebenen Verfahren würde die Lenkwaffen-Verarbeitung 40 (Figur 2) das Modell mit einem 32x32-Bildpunktabschnitt des vom SAR 18B (Figur 1) gemachten Zielbereichsbildes abgeglichen werden. Die Lage der Abgleichabschnitte im Zielbereichsbild gibt Aufschluss über die Richtung des Ziels in Bezug auf die Flugrichtung der Lenkwaffe 16 (Figur 1). Wenn beispielsweise die gewünschte Ziellage im Abgleichabschnitt direkt rechts vom Zentrum des Zielbereichsbildes liegt, würde die Lenkwaffenverarbeitung 40 (Figur 1) feststellen, dass das Ziel rechts von der Flugbahn der Lenkwaffe 16 liegt und ein Signal zum (nicht-dargestellten) Lenkwaffen-Nachführsystem senden, wodurch die Lenkwaffe 16 nach rechts geführt wird. Die Lenkwaffen-Verarbeitung 40 (Figur 1) kann zusätzliche Informationen an das Lenkwaffen- Nachführsystem liefern, wonach die Größe der Flugbahnnachführung eingestellt wird.It should be noted that the model was generated from a reference image consisting of a piece of an image taken by the SAR 18A (Figure 1). This piece of the image is selected to have sufficient edges and to yield a relatively high value for the CR calculated according to equation (4). For example, the reference image may be a 32x32 pixel array selected from a larger 64x64 pixel array. The target area image generated by the SAR 18B (Figure 1) will then similarly have a 64x64 pixel array. According to a method described in detail below, the missile processor 40 (Figure 2) would match the model to a 32x32 pixel portion of the target area image taken by the SAR 18B (Figure 1). The location of the alignment sections in the target area image provides information about the direction of the target in relation to the flight path of the missile 16 (Figure 1). For example, if the desired target location in the alignment section is directly to the right of the center of the target area image, the missile processing 40 (Figure 1) would determine that the target is to the right of the flight path of the missile 16 and send a signal to the missile tracking system (not shown), thereby guiding the missile 16 to the right. The missile processing 40 (Figure 1) can provide additional information to the missile Tracking system, after which the amount of trajectory tracking is adjusted.

Die Einzelheiten der vom Kanten modell-Korrelator 42 (Figur 2) durchzu führenden Verarbeitung, wodurch das Modell mit dem vom SAR 18B (Figur 1) gemachten Zielbereichsbild in Übereinstimmung gebracht wird, sind in den Figuren 8A und 88 dargestellt. Bevor im Einzelnen auf die Figuren 8A und 8B eingegangen wird, sei darauf hingewiesen, dass das vom SAR 18B (Figur 1) erzeugte Zielbereichsbild zum Beseitigen von Rauschen und Störungen gefil tert werden kann, wie beispielsweise durch den nicht koherenten Integrator 22B (Figur 2), bevor es durch den Kantenmodell-Korrelator 42 (Figur 2) verarbeitet wird. Der nicht-koherente Integrator 22B (Figur 2) arbeitet in gleicher Weise wie der vorstehend beschriebene nicht-koherente Integrator 22A (Figur 2).The details of the processing to be performed by the edge model correlator 42 (Figure 2) to match the model with the target area image made by the SAR 18B (Figure 1) are shown in Figures 8A and 8B. Before discussing Figures 8A and 8B in detail, it should be noted that the target area image produced by the SAR 18B (Figure 1) may be filtered to remove noise and interference, such as by the non-coherent integrator 22B (Figure 2), before being processed by the edge model correlator 42 (Figure 2). The non-coherent integrator 22B (Figure 2) operates in a similar manner to the non-coherent integrator 22A (Figure 2) described above.

Nunmehr zurückkehrend zu Figuren 8A und 8B beginnt die Verarbeitung im Kantenmodell-Korrelator 42 (Figur 2) im Prozessblock 300, der in dem vom SAR 18B (Figur 1) erzeugten Zielbereichsbild ein lokales Fenster auswählt. Das lokale Fenster besitzt die gleiche Größe wie das vom Referenzmodell-Generator 34 (Figur 2) erzeugte Modell. Das lokale Fenster wird über das vom SAR 18B erzeugte Bild geschoben, wobei der Prozessblock 300 eine lokale Fensterposition auswählt, die vorher noch nicht betrachtet wurde.Returning now to Figures 8A and 8B, processing begins in the edge model correlator 42 (Figure 2) at process block 300, which selects a local window in the target area image generated by the SAR 18B (Figure 1). The local window is the same size as the model generated by the reference model generator 34 (Figure 2). The local window is slid over the image generated by the SAR 18B, with process block 300 selecting a local window position that has not been previously viewed.

Ein Prozessblock 302 wählt einen Bildpunkt im Modell aus. Jeder Bildpunkt im Modell wird betrachtet, wobei ein Prozessblock 302 einen Bildpunkt auswählt, der vorher noch nicht betrachtet wurde. Wenn der ausgewählte Bildpunkt gleich 0 ist, was vom Entscheidungsblock 304 festgestellt wird, wird der nächste Bildpunkt im Modell betrachtet. Wenn der Bildpunkt nicht Null ist, so stellt der Entscheidungsblock 306 fest, ob der Bildpunkt größer oder kleiner ist.A process block 302 selects a pixel in the model. Each pixel in the model is considered, with a process block 302 selecting a pixel that has not been previously considered. If the selected pixel is equal to zero, as determined by decision block 304, the next pixel in the model is considered. If the pixel is not zero, decision block 306 determines whether the pixel is greater or smaller.

Wenn der Bildpunkt größer 0 ist, wird der Wert des entsprechenden Bildpunkts im aufgenommenen Bild einer Variablen SUMP im Prozessblock 308 hinzugefügt. Darüber hinaus wird ein Zähler NPOS inkrementiert. Wenn andernfalls der Bildpunkt kleiner 0 ist, wird im Prozessblock 310 der Wert des entsprechenden Bildpunkts im aufgenommenen Bild zu einer Variablen SUMN hinzugefügt und ein Zähler NNEG um eins erhöht. Jeder Bildpunkt wird solange sequentiell verarbeitet, bis alle Bildpunkte verarbeitet wurden, was vom Entscheidungsblock 312 festgestellt wird. Sobald alle Bildpunkte innerhalb eines lokalen Fensters verarbeitet wurden, berechnet ein Prozessblock 314 einen positiven Schwellenwert THRP nach folgender Gleichung:If the pixel is greater than 0, the value of the corresponding pixel in the captured image is added to a variable SUMP in process block 308. In addition, a counter NPOS is incremented. Otherwise, if the pixel is less than 0, the value of the corresponding pixel in the captured image is added to a variable SUMN in process block 310 and a counter NNEG is incremented by one. Each pixel is processed sequentially until all pixels have been processed, which is done by decision block 312. Once all pixels within a local window have been processed, a process block 314 calculates a positive threshold THRP according to the following equation:

THRP = (1/K) (SUMP/NPOS),THRP = (1/K) (SUMP/NPOS),

wobei K der vom Referenzmodell-Generator 34 (Figur 2) erzeugte Korrelations-Schwellenwert ist und SUMP und NPOS die im Prozessblock 308 eingestellten Variablen darstellen. Ein Prozessblock 316 berechnet einen negativen Schwellenwert THRM gemäß der folgenden Gleichung:where K is the correlation threshold generated by the reference model generator 34 (Figure 2) and SUMP and NPOS represent the variables set in the process block 308. A process block 316 calculates a negative threshold THRM according to the following equation:

THRM = K (SUMN/NNEG),THRM = K (SUMN/NNEG),

wobei SUMN und NNEG die im Prozessblock 310 eingestellten Variablen darstellen.where SUMN and NNEG represent the variables set in process block 310.

Ein Prozessblock 318 erzeugt ein binärisiertes Feld mit der gleichen Größe wie das Modell. Alle Bildpunkte im binärisierten Feld entsprechen den im Modell den Wert Null aufweisenden Bildpunkten gleich Null. Für jeden Bildpunkt im Modell, der einen Wert größer Null aufweist, wird der entsprechende Bildpunkt im vom Prozessblock 300 ausgewählten lokalen Fenster mit dem Schwellenwert THRM verglichen. Für jeden Bildpunkt im Modell mit einem Wert von kleiner Null wird der entsprechende Bildpunkt im lokalen Fenster mit dem Schwellenwert THRP verglichen. Für jeden Wert des Schwellenwerts ist der entsprechende Bildpunkt im binärisierten Feld gleich +1, wenn der Bildpunkt im lokalen Fenster oberhalb des Schwellenwerts liegt. Andernfalls beträgt der Bildpunkt im binärisierten Feld den Wert -1.A process block 318 creates a binarized array of the same size as the model. All pixels in the binarized array correspond to zero pixels in the model. For each pixel in the model that has a value greater than zero, the corresponding pixel in the local window selected by process block 300 is compared to the threshold THRM. For each pixel in the model that has a value less than zero, the corresponding pixel in the local window is compared to the threshold THRP. For each threshold value, the corresponding pixel in the binarized array is equal to +1 if the pixel in the local window is above the threshold. Otherwise, the pixel in the binarized array is equal to -1.

Ein Prozessblock 320 vergleicht die Bildpunkte im binärisierten Bild mit em Modell, wodurch die Werte für die folgenden Variablen festgelegt werden:A process block 320 compares the pixels in the binarized image with the model, thereby determining the values for the following variables:

R&sub1; = Anzahl der Bildpunkte im Modell mit Werten kleiner 0;R�1 = number of pixels in the model with values less than 0;

R&sub2; = Anzahl der Bildpunkte im Modell mit Werten größer 0;R₂ = number of pixels in the model with values greater than 0;

S&sub1; = Anzahl der Bildpunkte im binärisierten Feld mit Werten kleiner 0;S�1 = number of pixels in the binarized field with values less than 0;

S&sub2; = Anzahl der Bildpunkte im binärisierten Feld mit WertenS₂ = number of pixels in the binarized field with values

H&sub1;&sub1; = Anzahl der Bildpunkte im Modell mit Werten kleiner 0, wobei der entsprechende Bildpunkt im binärisierten Feld kleiner 0 ist;H₁₁ = number of pixels in the model with values less than 0, where the corresponding pixel in the binarized field is less than 0;

H&sub1;&sub2; = Anzahl der Bildpunkte im Modell mit Werten kleiner 0,H₁₂ = number of pixels in the model with values less than 0,

wobei der Wert des entsprechenden Bildpunkts im binänsierten Feld größer 0 ist;where the value of the corresponding pixel in the binized field is greater than 0;

H&sub2;&sub1; = Anzahl der Bildpunkte im Modell mit Werten größer 0,H₂₁ = number of pixels in the model with values greater than 0,

wobei der Wert des entsprechenden Bildpunkts im binänsierten Feld kleiner 0 ist;where the value of the corresponding pixel in the binized field is less than 0;

H&sub2;&sub2; = Anzahl der Bildpunkte im Modell mit Werten größer 0, wobei der Wert des entsprechenden Bildpunkts im binänsierten Feld größer 0 ist.H₂₂ = number of pixels in the model with values greater than 0, where the value of the corresponding pixel in the binized field is greater than 0.

Die Zahlenwerten R&sub1;, R&sub2;, S&sub1;, S&sub2;, H&sub1;&sub1;, H&sub1;&sub2;, H&sub1;&sub2;, H&sub2;&sub1; und H&sub2;&sub2; werden im Prozessblock 322 zum Berechnen der Korrelations-Karte CM gemäß der folgenden Gleichung verwendet: Gleichung (6) The numerical values R₁, R₂, S₁, S₂, H₁₁, H₁₂, H₁₂, H₁₂, H₂₁, and H₂₂ are used in process block 322 to calculate the correlation map CM according to the following equation: Equation (6)

,wobei,where

k = 2CC/(R&sub1; + R&sub2;), undk = 2CC/(R₁ + R₂), and

A und CC Konstanten sind, die zum Ändern der Verbesserung der Korrelations-Karte empirisch ausgewählt werden. Üblicherweise liegt CC zwischen und 41 während A zwischen 1 und 7 liegt. Es wird darauf hingewiesen, dass der Prozessblock 320 in eine Schleife des Flußdiagramms fällt, so dass ein Wert der CM für jedes lokale Fenster berechnet wird, das vom Zielbereichsbild ausgewählt wird. Ein Prozessblock 324 überprüft jeden Wert der CM und speichert den größten. Der Prozessblock 324 speichert darüber hinaus die Lage im Zielbereichsbild, bei dem das vom Prozessblock 300 ausgewählte lokale Fenster den größten Werten der CM gefunden hat. Ein Entscheidungsblock 326 bewirkt die Wiederholung des gesamten Verfahrens für jedes mögliche lokale Fenster im aufgenommenen Bild.A and CC are constants chosen empirically to vary the enhancement of the correlation map. Typically, CC is between 0 and 41 while A is between 1 and 7. Note that process block 320 falls within a loop of the flow chart so that a value of the CM is calculated for each local window selected from the target region image. A process block 324 checks each value of the CM and stores the largest one. Process block 324 also stores the location in the target region image at which the local window selected by process block 300 found the largest value of the CM. A decision block 326 causes the entire process to be repeated for each possible local window in the acquired image.

Wenn die Verarbeitung gemäß Figur 8 abgeschlossen ist, wurde der größte Wert der CM vom Prozessblock 324 identifiziert. Der größte Wert der CM impliziert, dass das Modell am Besten mit dem lokalen Fenster im für dasWhen processing is complete according to Figure 8, the largest value of the CM has been identified by process block 324. The largest value of the CM implies that the model fits best with the local window in the

Berechnen des Wertes der CM verwendeten Zielbereichsbild am Besten übereinstimmt. Die Lage des übereinstimmenden lokalen Fensters im vom SAR 18B (Figur 1) gebildeten Zielbereichsbild zeigt die Lage des Ziels im Zielbereichsbild an (d.h. das Zentrum des übereinstimmenden lokalen Fenster im vom SAR 18B erzeugten Bild besitzt die gleiche Beziehung zum Ziel wie das Zentrum des von der Zielansprache 19 (Figur 1) ausgewählten Referenzbilds zum Ziel in dem vom SAR 18A erzeugten Bild). Diese Lage kann dem Lenkwaffen- Steuersystem zum Einstellen der Flugbahn der Lenkwaffe zugeführt werden.Calculating the value of the CM used to best match the target area image. The location of the matching local window in the target area image formed by the SAR 18B (Figure 1) indicates the location of the target in the target area image (i.e., the center of the matching local window in the image generated by the SAR 18B has the same relationship to the target as the center of the reference image selected by the target address 19 (Figure 1) has to the target in the image generated by the SAR 18A). This location can be fed to the missile control system for adjusting the missile trajectory.

Alternatives Ausführungsbeispiel des Modellgenerators und des Kantenmodell-KorrelatorsAlternative embodiment of the model generator and the edge model correlator

Zum Erzeugen eines Modells und einer Übereinstimmung dieses Modells mit dem Zielbereichsbild kann ein alternatives Verfahren verwendet werden. Das alternative Verfahren ersetzt die Verfahren gemäß Figuren 7A, 7B, 8A und 8B. Die alternativen Verfahren benötigen mehr Verarbeitungsschritte im Referenzmodellgenerator 34 (Figur 2), weshalb sie in einigen Anwendungsfällen weniger wünschenswert sind als das bevorzugte Ausführungsbeispiel. Dieses nachfolgend beschriebene alternative Ausführungsbeispiel kann jedoch ein Modell erzeugen, welches genauer mit dem Zielbereichsbild übereinstimmt, wodurch sich oftmals weniger Verarbeitungsschritte im Kantenmodell-Korrelator 42 (Figur 2) ergeben.An alternative method may be used to generate a model and match that model to the target region image. The alternative method replaces the methods of Figures 7A, 7B, 8A, and 8B. The alternative methods require more processing steps in the reference model generator 34 (Figure 2), making them less desirable than the preferred embodiment in some applications. However, this alternative embodiment described below may generate a model that more closely matches the target region image, often resulting in fewer processing steps in the edge model correlator 42 (Figure 2).

Im bevorzugten Ausführungsbeispiel war das Modell ein Feld, welches bestätigte Kanten darstellte, die im Referenzbild erfasst wurden. Ein einfacher Schwellenwert K wurde für das Modell berechnet und vom Kantenmodell-Korrelator 42 dazu verwendet, um das Modell mit dem Zielbereichsbild in Übereinstimmung zu bringen. Im alternativen Ausführungsbeispiel besteht das Modell aus einem Paar von Bildpunktlisten für jede im Referenzbild identifizierte Kante. Für jede Kante wird ein eigenständiger Schwellenwert berechnet. Die eigenständigen bzw. getrennten Schwellenwerte für jede Kante erhöhen die Wahrscheinlichkeit, dass der Kantenmodell-Korrelator 42 das Modell mit dem Abschnitt des Zielbereichsbildes, welches das Ziel tatsächlich enthält, in Übereinstimmung bringt. Die alternative Darstellung des Modells liefert einen zusätzlichen Vorteil dahingehend, dass die Computerimplementierung der Lenkwaffen-Verarbeitung 40 (Figur 2) weniger digitalen Speicherplatz zum Speichern des Modells benötigt, als wenn das Modell anhand des bevorzugten Ausführungsbeispiels erzeugt wurde.In the preferred embodiment, the model was a field representing confirmed edges detected in the reference image. A simple threshold K was calculated for the model and used by the edge model correlator 42 to match the model to the target area image. In the alternative embodiment, the model consists of a pair of pixel lists for each edge identified in the reference image. A separate threshold is calculated for each edge. The separate thresholds for each edge increase the likelihood that the edge model correlator 42 will match the model to the portion of the target area image that actually contains the target. The alternative representation of the model provides an additional advantage in that the computer implementation of the missile processing 40 (Figure 2) requires less digital memory to store of the model than if the model were created using the preferred embodiment.

Die Figur 9A zeigt die vom Referenzmodell-Generator 34 (Figur 2) gemäß dem alternativen Ausführungsbeispiel durchgeführte Verarbeitung. Ein Prozessblock 350 wählt einen Bildpunkt aus der EEB-Karte. Da jeder Bildpunkt in dieser Karte verarbeitet wird, wählt der Prozessblock 350 einen Bildpunkt aus, der vorher noch nicht verarbeitet wurde. Ein Entscheidungsblock 352 bestimmt, ob der ausgewählte Bildpunkt gleich 0 ist, d.h., dass er keine Kante darstellt. Wenn der ausgewählte Bildpunkt keine Kante darstellt, wird der nächste Bildpunkt aus der EEB-Karte ausgewählt, sofern weitere Bildpunkte zu verarbeiten sind. Ein Entscheidungsblock 354 stellt fest, ob weitere Bildpunkte vorhanden sind.Figure 9A shows the processing performed by reference model generator 34 (Figure 2) according to the alternative embodiment. A process block 350 selects a pixel from the EEB map. Since each pixel in this map is processed, the process block 350 selects a pixel that has not been previously processed. A decision block 352 determines whether the selected pixel is equal to 0, i.e., it does not represent an edge. If the selected pixel does not represent an edge, the next pixel is selected from the EEB map if there are more pixels to process. A decision block 354 determines whether there are more pixels.

Der ausgewählte Bildpunkt, der eine Kante darstellt, ist der erste Eintrag in eine Liste von Bildpunktlagen entlang einer Kante. Eine nachfolgende Verarbeitung fügt die Lage der weiteren Bildpunkte entlang der Kante hinzu, wobei benachbarte Bildpunkte dahingehend überprüft werden, ob sie unter die Kante fallen.The selected pixel representing an edge is the first entry in a list of pixel positions along an edge. Subsequent processing adds the positions of the other pixels along the edge, checking neighboring pixels to see whether they fall under the edge.

Ein Entscheidungsblock 358 bestimmt, ob jeder der vier nächstliegenden Nachbarbildpunkte zum ausgewählten Bildpunkt hinsichtlich einer möglichen Hinzufügung zur Liste überprüft wurde. Wenn ein oder mehrere der nächsten Nachbarbildpunkte zum Testen verbleiben, wählt der Prozessblock 360 die verbleibenden Nachbar-Bildpunkte aus. Wenn andererseits alle Nachbar-Bildpunkte getestet wurden schreitet die Verarbeitung zum Entscheidungsblock 354, bei dem ein anderer Bildpunkt ausgewählt wird. Es sei darauf hingewiesen, dass, wenn zwei Bildpunkte beieinander liegen und der zweite dahingehend getestet wird, ob er auf der gleichen Kante liegt wie der erste, es nicht notwendig ist, den ersten dahingehend zu testen, ob er auf der gleichen Kante wie der zweite liegt. Ein Entscheidungsblock 358 bedient sich dieses Vorteils der kommutativen Eigenschaft, wodurch eine redundante Verarbeitung der benachbarten Bildpunkte vermieden wird.A decision block 358 determines whether each of the four closest neighbor pixels to the selected pixel have been checked for possible addition to the list. If one or more of the closest neighbor pixels remain to be tested, the process block 360 selects the remaining neighbor pixels. On the other hand, if all of the neighbor pixels have been tested, processing proceeds to decision block 354 where another pixel is selected. Note that if two pixels are adjacent and the second is tested to see if it is on the same edge as the first, it is not necessary to test the first to see if it is on the same edge as the second. A decision block 358 takes advantage of this commutative property, thereby avoiding redundant processing of the neighboring pixels.

Ein Entscheidungsblock 362 überspringt die ausgewählten Nachbar-Bildpunkte, wenn der Bildpunkt in der SRBE-Karte, der dem im Prozessblock 350 ausgewählten Bildpunkt und dem vom Prozessblock 360 ausgewählten benachbarten Bildpunkt entspricht, den gleichen Wert aufweist (d.h. auf der gleichen Seite der Kante liegen). Der benachbarte Bildpunkt wird ebenso übersprungen, wenn sein Wert 0 ist (d.h. wenn er nicht auf einer Kante liegt) oder wenn das Bildpunktpaar bereits in Verbindung mit einer Bildpunktliste entlang einer unterschiedlichen Kante verarbeitet wurde.A decision block 362 skips the selected neighboring pixels if the pixel in the SRBE map that corresponds to the pixel selected in process block 350 and the pixel selected by process block 360 adjacent pixel has the same value (ie, it lies on the same side of the edge). The adjacent pixel is also skipped if its value is 0 (ie, it does not lie on an edge) or if the pixel pair has already been processed in conjunction with a pixel list along a different edge.

Wenn beim Entscheidungsblock 362 festgestellt wird, dass der benachbarte Bildpunkt nicht übersprungen wurde, wird seine Lage ein Teil der Bildpunktlageliste entlang einer Kante. Ein Prozessschritt 364 verwendet die zwei ausgewählten Bildpunkte als Startpunkt, um die Bildpunkte entlang dieser Kante zu identifizieren. Die Figur 9B zeigt einen Abschnitt 410 eines zweidimensionalen Feldes und zeigt wie der Prozessblock 364 einen Bildpunkt zum Hinzufügen zur Bildpunktliste einer Kante auswählt. Der Bildpunkt 400&sub1; stellt den vom Prozessblock 350 (Figur 9A) ausgewählten Bildpunkt dar. Der Bildpunkt 400&sub2; stellt einen vom Prozessblock 360 (Figur 9A) ausgewählten benachbarten Bildpunkt dar. Knoten 402&sub1; und 402&sub2; stellen die Punkte dar, an denen vier Bildpunkte miteinander verbunden sind. Da die Bildpunkte 4001 und 400&sub2; auf unterschiedlichen Seiten einer Kante ausgewählt wurden, stellt das Kantensegment 404 den Kantenabbruch dar.If it is determined at decision block 362 that the neighboring pixel was not skipped, its location becomes part of the pixel location list along an edge. A process step 364 uses the two selected pixels as a starting point to identify the pixels along that edge. Figure 9B shows a portion 410 of a two-dimensional array and shows how the process block 364 selects a pixel to add to the pixel list of an edge. Pixel 4001 represents the pixel selected by process block 350 (Figure 9A). Pixel 4002 represents a neighboring pixel selected by process block 360 (Figure 9A). Nodes 4021 and 4022 represent the points at which four pixels are connected together. Since the pixels 4001 and 4002 were selected on different sides of an edge, the edge segment 404 represents the edge termination.

Die Kante wird durch Auffinden weiterer Paare von Bildpunkten an entgegengesetzten Seiten der Kante und darüber hinaus an zumindest einem der bereits auf der Kante gefundenen Bildpunkte ausgedehnt. Die Kante kann von einer seiner beiden Seiten ausgedehnt werden. In Figur 9B kann die Kante vom Knoten 402&sub1; oder vom Knoten 402&sub2; ausgedehnt werden. In diesem Fall wurde willkürlich davon ausgegangen, dass die Kante vom Knoten 402&sub2; ausgedehnt wird.The edge is extended by finding additional pairs of pixels on opposite sides of the edge and, in addition, on at least one of the pixels already found on the edge. The edge can be extended from either of its two sides. In Figure 9B, the edge can be extended from node 4021 or from node 4022. In this case, it has been arbitrarily assumed that the edge is extended from node 4022.

Beim Ausdehnen der Kante vom Knoten 402&sub2; kann sie zum möglichen Knoten 406&sub1;, 405&sub2; oder 406&sub3; ausgedehnt werden. Die Richtung in der die Kante ausgedehnt wird hängt davon ab auf welcher Seite die Kantenbildpunkte 408&sub1; und 408&sub2; abfallen. Wie vorstehend in Verbindung mit der Beschreibung des globalen Kantendetektors 30 (Figur 2) beschrieben, hat die SRBE-Karte das Referenzbild in eine Anzahl von Gebiete aufgeteilt und zum Zwecke dieser Modellerzeugung die Kanten derart definiert, dass sie zwischen diese Gebiete fallen. Wenn sich der Bildpunkt 408&sub1;, wie durch die SRBE-Karte beschrieben, im gleichen Gebiet befindet wie der Bild punkt 400&sub1;, und wenn sich der Bildpunkt 408&sub2; sich im gleichen Gebiet wie der Bildpunkt 400&sub2; befindet, so muss die Kante den möglichen Knoten 406&sub2; aufweisen, weshalb die Bildpunkte 408&sub1; und 408&sub2; der Liste der Kantenbildpunkte hinzugefügt werden. Eine weitere Möglichkeit besteht darin, dass die Bildpunkte 408&sub1; und 408&sub2; im gleichen Gebiet liegen wie der Bildpunkt 400&sub1;. In diesem Fall wird die Kante derart ausgedehnt, dass sie den möglichen Knoten 406&sub3; enthält, weshalb der Bildpunkt 408&sub2; der Liste der Kantenbildpunkte hinzugefügt wird. Die letzte Möglichkeit besteht darin, dass die Bildpunkte 408&sub1; und 408&sub2; sich im gleichen Gebiet befinden wie der Bildpunkt 400&sub2;. In diesem Fall wird die Kante derart ausgedehnt, dass sie den möglichen Knoten 406&sub1; aufweist, weshalb der Bildpunkt 408&sub1; der Liste der Kanten-Bildpunkte hinzugefügt wird.In extending the edge from node 402₂, it may be extended to possible nodes 406₁, 405₂, or 406₃. The direction in which the edge is extended depends on which side the edge pixels 408₁ and 408₂ fall on. As described above in connection with the description of the global edge detector 30 (Figure 2), the SRBE map has divided the reference image into a number of regions and, for the purposes of this model generation, defined the edges to fall between these regions. If pixel 408₁ is in the same region as pixel 400₁ as described by the SRBE map, and if the If pixel 408₂ is in the same region as pixel 400₂, then the edge must have candidate node 406₂, so pixels 408₁ and 408₂ are added to the list of edge pixels. Another possibility is that pixels 408₁ and 408₂ are in the same region as pixel 400₁, in which case the edge is extended to include candidate node 406₃, so pixel 408₂ is added to the list of edge pixels. The final possibility is that pixels 408₁ and 408₂ are in the same region as pixel 400₂, in which case the edge is extended to include candidate node 406₁. , which is why pixel 408₁ is added to the list of edge pixels.

Die Kante wird ferner dadurch ausgedehnt, dass dem Muster gemäß Figur 9B gefolgt wird. Der Knoten 402&sub2; war der letzte Knoten, der der Kante hinzugefügt wurde, während der Knoten 402&sub1; der vorletzte Knoten war, der der Kante hinzugefügt wurde. Sobald einer der möglichen Knoten 406&sub1;, 406&sub2; oder 406&sub3; der Kante hinzugefügt wird, ist der Knoten 402&sub2; der vorletzte Knoten und welcher mögliche Knoten auch immer der Liste hinzugefügt wurde, stellt nunmehr den letzten Knoten dar. Unter Verwendung des gleichen Musters, wie in Figur 9B dargestellt, wird ein neuer Satz von möglichen Knoten in der Nähe des letzten Knotens an der Kante festgelegt. Beim Nachfolgen des Musters werden die zwei Bildpunkte, die in der Nähe des letzten der Kante hinzugefügten Knotens und in der Nähe des vorletzten der Kante hinzugefügien Knotens liegen, dort verwendet, wo die Bildpunkte 400&sub1; und 400&sub2; verwendet wurden. In gleicher Weise werden an der Stelle, wo die Bildpunkte 408&sub1; und 408&sub2; verwendet wurden, die zwei Bildpunkte verwendet, die zum letzten der Kante hinzugefügten Knoten direkt angrenzend und nicht zum vorletzten der Kante hinzugefügten Knoten angrenzend liegen.The edge is further extended by following the pattern shown in Figure 9B. Node 4022 was the last node added to the edge, while node 4021 was the second to last node added to the edge. Once one of the possible nodes 4061, 4062, or 4063 is added to the edge, node 4022 is the second to last node and whatever possible node was added to the list now represents the last node. Using the same pattern shown in Figure 9B, a new set of possible nodes is determined near the last node on the edge. When following the pattern, the two pixels that are near the last node added to the edge and near the second to last node added to the edge are used where pixels 400₁ and 400₂ were used. Similarly, where pixels 408₁ and 408₂ were used, the two pixels that are directly adjacent to the last node added to the edge and not adjacent to the second to last node added to the edge are used.

Das in Figur 9B dargestellte Muster wird verfolgt, bis die ganze Kante aufgenommen wurde. Das Ende einer Kante wird erfasst, wenn zwei Bildpunkte, die zum letzten Knoten benachbart sind und zum vorletzten Knoten nicht benachbart sind (beispielsweise die Bildpunkte 4081 und 408&sub2;), nicht auf einer Kante, wie sie von der EEB-Karte dargestellt ist, liegen (d.h. die entsprechenden Werte in der EEB-Karte sind 0). Das Ende einer Kante kann ebenso erkannt werden, wenn die Bildpunkte, die zum Verfolgen des Musters betrachtet werden, nicht existieren, da eine Begrenzung des Feldes erreicht wird. Andererseits wird das Kantenende erfasst, sobald irgendeiner der Bildpunkte, der zum Verfolgen des Musters gemäß Figur 9B betrachtet wird bereits einer Liste der Kantenbildpunkte hinzugefügt wurde, sowie es der Fall ist, wenn eine geschlossene Kante im Kreis verfolgt wird. Das Kantenende wird ebenso erfasst, wenn zwei Bildpunkte, die zum letzten Knoten und nicht zum vorletzten Knoten angrenzen (beispielsweise die Bildpunkte 408&sub1; und 408&sub2;), nicht den gleichen Wert aufweisen wie einer der vom Prozessblock 350 oder 360 ausgewählten Bildpunkte (d.h. Bildpunkte 400&sub1; oder 400&sub2;). Diese Bedingung kann nur dann auftreten, wenn das alternative Verfahren zum Ausbilden des SRBE-Bildes derart verwendet wird, dass die Bildpunkte in diesem Bild Werte von 1, 2, 3 oder 4 annehmen.The pattern shown in Figure 9B is traced until the entire edge has been captured. The end of an edge is detected when two pixels adjacent to the last node and not adjacent to the second to last node (for example pixels 4081 and 4082) do not lie on an edge as represented by the EEB map (ie, the corresponding values in the EEB map are 0). The end of an edge can also be detected when the pixels considered for tracing the pattern do not exist, since a boundary of the field is reached. On the other hand, the edge end is detected when any of the pixels considered for tracing the pattern of Figure 9B have already been added to a list of edge pixels, as is the case when a closed edge is being traced in a circle. The edge end is also detected when two pixels adjacent to the last node and not the second to last node (e.g., pixels 4081 and 4082) do not have the same value as one of the pixels selected by process block 350 or 360 (i.e., pixels 4001 or 4002). This condition can only occur when the alternative method of forming the SRBE image is used such that the pixels in that image take on values of 1, 2, 3, or 4.

Sobald der Prozessblock 364 die Kante in einer Richtung vollständig verfolgt hat, schreitet die Verarbeitung zum Prozessblock 366 fort, bei dem die Kante in der anderen Richtung verfolgt wird. Wie beim Nachfolgen durch den Prozessblock 364 wird das gleiche Muster verfolgt, mit Ausnahme, dass im Prozessblock 366 der Knoten 402&sub1; zu Beginn als letzter Knoten betrachtet wird und der Knoten 402&sub2; zu Beginn als vorletzter Knoten betrachtet wird. Die Kante wird dann vom Knoten 402&sub1; ausgedehnt. Für den speziellen Fall, dass die Kante in einer geschlossenen Schleife im Prozessblock 364 verfolgt wurde, führt der Prozessblock 366 keine weitere Verarbeitung durch.Once process block 364 has completely traced the edge in one direction, processing proceeds to process block 366 where the edge is traced in the other direction. As with tracing through process block 364, the same pattern is followed, except that in process block 366, node 402₁ is initially considered the last node and node 402₂ is initially considered the second to last node. The edge is then extended from node 402₁. In the special case that the edge was traced in a closed loop in process block 364, process block 366 performs no further processing.

Sobald die Kante durch die Prozessblöcke 364 und 366 zu beiden Enden hin verfolgt wurde, wird die Liste der Bildpunkte an der Kante vom Prozessblock 368 in zwei Listen aufgebrochen. Jeder Bildpunkt, der sich auf der Kantenseite mit hoher Helligkeit befindet, wie sich aus einem großen Wert in der SRBE-Karte ergibt, wird in die Liste mit den hohen Helligkeiten aufgenommen. Die verbleibenden Bildpunkte werden in der Liste mit den geringen Helligkeiten abgelegt. Die Listen besitzen daniber hinaus die Bildpunkte, die nahe an den Kanten liegen, beispielsweise innerhalb von drei Bildpunkten auf jeder Kantenseite.Once the edge has been traced to both ends by process blocks 364 and 366, the list of pixels on the edge is broken into two lists by process block 368. Any pixel that is on the high brightness side of the edge, as indicated by a large value in the SRBE map, is placed in the high brightness list. The remaining pixels are placed in the low brightness list. The lists also have the pixels that are close to the edges, for example within three pixels on either edge side.

Ein Prozessblock 370 berechnet einen Korrelations-Schwellenwert K für die vom ersten Listenpaar dargestellte Kante, die vom Prozessblock 368 erzeugt wurde. Der Prozessblock 370 verwendet das vorstehend beschriebene und in Figur 7B dargestellte Verfahren. Da die Kanten-Bildpunkte bereits identifiziert wurden und in Bildpunktlisten mit hoher und geringer Helligkeit der Kantenseiten entmischt wurden, wird zur Vereinfachung die Verarbeitung gemäß Figur 7B, die diese Funktion durchführt, an dieser Stelle weggelassen. Der Entscheidungsblock 260 in Figur 7B überprüft, ob sich ein ausgewählter Bildpunkt auf einer Kante befindet. Da sich alle Bildpunkte der Liste auf einer Kante befinden, kann dieser Entscheidungsblock weggelassen werden. Der Entscheidungsblock 262 überprüft, ob sich ein ausgewählter Bildpunkt auf einer Kantenseite mit hoher oder geringer Helligkeit befindet. Da die Bildpunkte bereits in eine Liste mit hoher und geringer Helligkeit sortiert wurden, muss der Entscheidungsblock 262 die Programmdurchführung lediglich dem Prozessblock 260 übertragen, wenn im Prozessblock 258 Bildpunkte von der Liste mit hoher Helligkeit ausgewählt werden, während er sie dem Prozessblock 268 überträgt, wenn die Bildpunkte aus der Liste mit geringer Helligkeit ausgewählt wurden.A process block 370 calculates a correlation threshold K for the edge represented by the first pair of lists generated by the process block 368. The process block 370 uses the method described above and shown in Figure 7B. Since the edge pixels have already been identified and are in high and low brightness pixel lists of the Edge sides have been deshuffled, for simplicity the processing of Figure 7B which performs this function is omitted here. Decision block 260 in Figure 7B checks whether a selected pixel is on an edge. Since all of the pixels in the list are on an edge, this decision block can be omitted. Decision block 262 checks whether a selected pixel is on a high or low brightness edge side. Since the pixels have already been sorted into a high and low brightness list, decision block 262 need only delegate program execution to process block 260 when pixels are selected from the high brightness list in process block 258, and delegate it to process block 268 when pixels are selected from the low brightness list.

Zurückkehrend zu Figur 9A überprüft der Entscheidungsblock 372, ob der Wert K 1 übersteigt, sobald ein Korrelations-Schwellenwert K im Prozessblock 276 (Figur 7B) berechnet wurde. Wenn der Wert von K zu gering ist, wird das Listenpaar vom Prozessblock 274 derart verworfen, dass diese Listen für den Einschluss im Modell nicht weiter betrachtet werden. Wenn andererseits K groß genug ist werden die Listen für die weitere Verarbeitung vom Prozessblock 276 gespeichert. Der Prozessblock 276 speichert darüber hinaus den Korrelations-Schwellenwert K, der für diese Listen berechnet wurde. Unabhängig davon, ob die Listen beibehalten werden kehrt die Verarbeitung zum Entscheidungsblock 358 zurück.Returning to Figure 9A, decision block 372 checks whether the value of K exceeds 1 once a correlation threshold K has been calculated in process block 276 (Figure 7B). If the value of K is too small, the pair of lists is discarded by process block 274 such that these lists are not further considered for inclusion in the model. On the other hand, if K is large enough, the lists are stored for further processing by process block 276. Process block 276 also stores the correlation threshold K calculated for these lists. Regardless of whether the lists are retained, processing returns to decision block 358.

Der Entscheidungsblock 358 bestimmt, wie vorstehend beschrieben, dass alle Nachbarn des vom Prozessblocks 350 ausgewählten Bildpunkts hinsichtlich ihrer Lage entlang der gleichen Kante als ausgewählter Bildpunkt überprüft wurden. Sobald alle Nachbarn des ausgewählten Bildpunkts überprüft wurden, wird ein weiterer Bild punkt solange ausgewählt bis der Entscheid ungsblock 354 feststellt, dass keine weiteren Bildpunkte zum Testen verbleiben. Der Entscheidungsblock 362 überspringt jedoch jedes Paar (eines Bildpunktes und eines Nachbars), wenn sich der Bildpunkt bereits in einer Bildpunktliste in der Nähe einer Kante befindet und der Nachbar auf der Liste der anderen Kantenseite vorhanden ist. Selbst wenn sich andererseits der Bildpunkt bereits auf einer Liste befindet, kann der ausgewählte Bildpunkt einen Bildpunkt auf einer gegenüber der vorhergehend verfolgten unterschiedlichen Kante befinden. In diesem Fall wird die Kante von den Prozessblöcken 364 und 366 weiter verfolgt, wodurch sich eventuell ein weiteres Listenpaar ergibt. Dieses Listenpaar kann ebenso in Abhängigkeit von den vom Entscheidungsblock 372 gemachten Vergleichsergebnissen vom Prozessblock 376 abgespeichert werden. Wenn somit alle Bildpunkte in der EEB-Karte ausgewählt und verarbeitet wurden, können mehrere Listenpaare von Bildpunkten entlang unterschiedlichen Kanten vom Prozessblock 376 beibehalten werden. Wird im Entscheidungsblock 354 festgestellt, dass alle Bildpunkte im Bild verarbeitet wurden, bilden die beibehaltenen Listenpaare die Grundlage für das Modell.Decision block 358 determines, as described above, that all neighbors of the pixel selected by process block 350 have been checked for location along the same edge as the selected pixel. Once all neighbors of the selected pixel have been checked, another pixel is selected until decision block 354 determines that no more pixels remain to test. However, decision block 362 skips any pair (of a pixel and a neighbor) if the pixel is already in a pixel list near an edge and the neighbor is present on the list on the other side of the edge. On the other hand, even if the pixel is already on a list, the selected pixel may be a pixel on a different edge than the one previously tracked. In In this case, the edge is followed further by process blocks 364 and 366, possibly resulting in another list pair. This list pair may also be stored by process block 376 depending on the comparison results made by decision block 372. Thus, if all pixels in the EEB map have been selected and processed, multiple list pairs of pixels along different edges may be retained by process block 376. If it is determined in decision block 354 that all pixels in the image have been processed, the retained list pairs form the basis for the model.

Die beibehaltenen Listenpaare können darüber hinaus vom Prozessblock 356 weiter verarbeitet werden. Die Einzelheiten dieser Verarbeitung werden nachfolgend in Verbindung mit den Figuren 9C und 9D beschrieben. Das Ausgangssignal des Prozessblocks 356 entspricht dem Ausgangssignal des Referenzmodell-Generators 34 (Figur 2). Alternativ kann der Prozessblock 356 übersprungen werden, wobei das Ausgangssignal des Referenzmodell-Generators (Figur 2) aus allen vom Prozessblock 376 beibehaltenen Listenpaaren besteht.The retained list pairs may also be further processed by process block 356. The details of this processing are described below in connection with Figures 9C and 9D. The output of process block 356 corresponds to the output of reference model generator 34 (Figure 2). Alternatively, process block 356 may be skipped, with the output of reference model generator 34 (Figure 2) consisting of all of the list pairs retained by process block 376.

Gemäß Figuren 9C und 9D wird die Verarbeitung der beibehaltenen Listenpaare der Bildpunkte an den Kanten dargestellt. Jedes Listenpaar stellt eine Abschätzung der Lage einer Kante dar. Aus einer Vielzahl von Gründen ist die Abschätzung der Kantenlage nicht die bestmögliche Abschätzung dieser Kantenlage. Die in den Figuren 9C und 9D dargestellte Verarbeitung dient der Modifizierung der die Kante beschreibenden Listenpaare, wodurch eine bessere Abschätzung der Kantenlage gefunden wird.Referring to Figures 9C and 9D, the processing of the retained list pairs of pixels on the edges is shown. Each list pair represents an estimate of the position of an edge. For a variety of reasons, the estimate of the edge position is not the best possible estimate of that edge position. The processing shown in Figures 9C and 9D serves to modify the list pairs describing the edge, thereby finding a better estimate of the edge position.

Ein Prozessblock 500 wählt eines der vom Prozessblock 376 (Figur 9A) gespeicherten Listenpaare aus. Jedes Listenpaar muss verarbeitet werden, wobei der Prozessblock 500 ein Paar auswählt, welches vorher noch nicht verarbeitet wurde.A process block 500 selects one of the list pairs stored by process block 376 (Figure 9A). Each list pair must be processed, with process block 500 selecting a pair that has not been previously processed.

Ein Prozessblock 502 wählt die Bildpunkte aus dem vom Glättungsfilter 26 (Figur 2) erzeugten gefilterten Bild aus. Der Prozessblock 502 wählt diese Bildpunkte entsprechend den Bildpunkten in der Liste mit der hohen Helligkeit der ausgewählten Listenpaare aus.A process block 502 selects the pixels from the filtered image produced by the smoothing filter 26 (Figure 2). The process block 502 selects these pixels according to the pixels in the high brightness list of the selected list pairs.

Der Prozessblock 504 sortiert die ausgewählten Bildpunkte entsprechend ihren jeweiligen Helligkeiten. Ein Entscheidungsblock 505 überprüft, ob ein neuer Schwellenwert berechnet werden kann, um durch Aufteilen der ausgewählten Bildpunkte in diejenigen oberhalb und unterhalb des Schwellenwerts die Kanten zu identifizieren (die Kante liegt wahrscheinlich zwischen den Gebieten der Bildpunkte oberhalb und unterhalb des Schwellenwerts). Um festzustellen, ob ein geeigneter Schwellenwert existiert, identifiziert der Entscheidungsblock 505 den Bildpunkt, der vom Prozessblock 504 bei einem Viertel seines Weges vom Boden erzeugt wird. Der Entscheidungsblock 504 bestimmt daraufhin, ob irgendein anderer vom Prozessblock 502 ausgewählter Bildpunkt Werte aufweist, die vom Wert des Bildpunktes verschieden sind, der ein Viertel vom Boden ist. Wenn ein derartiger Bildpunkt mit einem unterschiedlichen Wert vorhanden ist, wird ein neuer Schwellenwert im Prozessblock 506 berechnet. Andernfalls wird die Verarbeitung im Entscheidungsblock 512 wieder aufgenommen.The process block 504 sorts the selected pixels according to their respective brightnesses. A decision block 505 checks whether a new threshold can be calculated to identify the edges by dividing the selected pixels into those above and below the threshold (the edge is likely to be between the areas of the pixels above and below the threshold). To determine if a suitable threshold exists, decision block 505 identifies the pixel produced by process block 504 at one quarter of its way from the ground. Decision block 504 then determines if any other pixel selected by process block 502 has values that are different from the value of the pixel that is one quarter from the ground. If such a pixel with a different value exists, a new threshold is calculated in process block 506. Otherwise, processing resumes at decision block 512.

Der Prozessblock 506 berechnet den neuen Schwellenwert. Der Schwellenwert stellt den Mittelwert des Wertes des Bildpunktes dar, der ein Viertel vom Boden der vom Prozessblock 504 erzeugten Reihenfolge darstellt, sowie dem Wert des nächsten benachbarten Bildpunkts in dieser Reihenfolge, der einen unterschiedlichen Wert aufweist. In diesem Fall wird die "Nähe" proportional zum Ende der vom Prozessblock 504 erzeugten Reihenfolge gemessen. Beispielsweise ist ein Bildpunkt mit einem Achtel vom Boden der Reihenfolge weiter vom Bildpunkt mit einem Viertel vom Boden entfernt, als ein Bildpunkt mit der Hälfte vom Boden, da ein Achtel die Hälfte von ein Viertel des Bodens ist, während die Hälfte lediglich ein Drittel des Weges von ein Viertel zur Spitze darstellt.Process block 506 calculates the new threshold. The threshold represents the average of the value of the pixel that is one-quarter from the bottom of the sequence generated by process block 504 and the value of the next neighboring pixel in that sequence that has a different value. In this case, "closeness" is measured proportionally to the end of the sequence generated by process block 504. For example, a pixel one-eighth from the bottom of the sequence is farther from the pixel one-quarter from the bottom than a pixel one-half from the bottom, since one-eighth is half of one-quarter from the bottom, while half is only one-third of the way from one-quarter to the top.

Ein Prozessblock 82A binärisiert daraufhin das gefilterte Bild unter Verwendung des berechneten Schwellenwerts. Den Bildpunkten im aufgeteilten Bild, die den Bildpunkten im gefilterten Bild mit Helligkeiten unterhalb des Schwellenwerts entsprechen, wird ein Wert von 1 gegeben. Den Bildpunkten im aufgeteilten Bild, die den Bildpunkten im gefilterten Bild mit Helligkeiten oberhalb des Schwellenwerts entsprechen, wird ein Wert von 4 gegeben. Das Binärisierungsverfahren ist identisch mit dem gemäß Prozessblock 82 (Figur 3A), weshalb sich in ähnlicher Weise ein aufgeteiltes Bild ergibt. Der Prozessblock 82A arbeitet jedoch eher mit ausgewählten Bildpunkten als mit dem gesamten Bild. Der Prozessblock 82A arbeitet nur mit den vom Prozessblock 502 ausgewählten Bildpunkten und den acht nächsten Nachbarpunkten für jeden dieser Bild punkte.A process block 82A then binarizes the filtered image using the calculated threshold. The pixels in the split image that correspond to the pixels in the filtered image with brightnesses below the threshold are given a value of 1. The pixels in the split image that correspond to the pixels in the filtered image with brightnesses above the threshold are given a value of 4. The binarization process is identical to that of process block 82 (Figure 3A), and thus a split image is obtained in a similar manner. However, process block 82A operates on selected pixels rather than the entire image. Process block 82A operates only on the pixels selected by process block 502 and the eight nearest neighbors for each of those pixels.

Das aufgeteilte Bild dient als Eingangssignal für den Kantenextrahierer 32A. Da der Kantenextrahierer 32A identisch mit dem Kantenextrahierer 32 (Figur 2) ist, wird die bereits in Verbindung mit Figuren 6A und 6B beschriebene Verarbeitung durchgeführt, mit Ausnahme, dass lediglich ein kleiner Abschnitt des Bildes betroffen ist. Der Prozessblock 32A arbeitet mit der gleichen Gruppe von Bildpunkten wie der Prozessblock 82A.The split image serves as input to edge extractor 32A. Since edge extractor 32A is identical to edge extractor 32 (Figure 2), the processing already described in connection with Figures 6A and 6B is performed, except that only a small portion of the image is affected. Process block 32A operates on the same group of pixels as process block 82A.

Die vom Kantenextrahierer 32A erzeugte bestätigte Kanten-Karte wird vom Referenzmodell-Generator 34A weiter verarbeitet. Die Arbeitsweise eines alternativen Ausführungsbeispiels des Referenzmodell-Generators 34 (Figur 2) ist in Figur 9A dargestellt. Der Referenzmodell-Generator 34A führt die Verarbeitung gemäß Figur 9A mit einer Ausnahme durch. Der Prozessblock 356 (Figur 9A), bei dem die Listenpaare der Bildpunkte entlang der Kanten aufbereitet werden, wird nicht durchgeführt. Die Listenpaare mit ihren entsprechenden Korrelations-Schwellenwerten, die im Prozessblock 376 (Figur 9A) beibehalten wurden, werden einfach als Ausgangssignale dem Referenzmodell- Generator 34A in den Figuren 9C und 9D zugeführt.The confirmed edge map generated by edge extractor 32A is further processed by reference model generator 34A. The operation of an alternative embodiment of reference model generator 34 (Figure 2) is shown in Figure 9A. Reference model generator 34A performs the processing of Figure 9A with one exception. Process block 356 (Figure 9A) in which the list pairs of pixels along the edges are prepared is not performed. The list pairs with their corresponding correlation thresholds retained in process block 376 (Figure 9A) are simply provided as outputs to reference model generator 34A in Figures 9C and 9D.

Ein Entscheid ungsblock 510 vergleicht die Korrelations-Schwellenwerte irgendeines vom Referenzmodell-Generator 34A erzeugten Listenpaars mit dem Korrelations-Schwellenwert des vom Prozessblock 500 ausgewählten Listenpaars. Wenn vom Referenzmodell-Generator 34A keine Listenpaare erzeugt wurden, schreitet die Verarbeitung zum Entscheidungsblock 512. Wenn sich die Korrelations-Schwellenwerte aller neuerlich erzeugten Listenpaare unterhalb des Korrelations-Schwellenwertes des vom Prozessblock 500 ausgewählten Listenpaares befinden, wird keine weitere Verarbeitung mit den neuerlich erzeugten Listenpaaren durchgeführt. Die Verarbeitung wird dann am Entscheidungsblock 512 mit dem vom Prozessblock 500 ausgewählten Listenpaar fortgeführt und die neuerlich erzeugten Listenpaare wirkungsvoll ignoriert. Wenn im Entscheidungsblock 510 festgestellt wird, dass eines der neuerlich erzeugten Listenpaare einen Korrelations-Schwellenwert aufweist, der den Korrelations-Schwellenwert des vom Prozessblock 500 ausgewählten Listenpaars übersteigt, wird die Verarbeitung beim Entscheidungsblock 516 fortgesetzt. Der Entscheidungsblock 516 bestimmt, ob mehr als ein Listenpaar vom Referenzmodell-Generator 34A erzeugt wurde. Wenn lediglich ein Listenpaar erzeugt wurde, wird das vom Prozessblock 500 ausgewählte Listenpaar im Prozessblock 518 aus dem Modell gelöscht und die neuerlich erzeugte Liste dem Modell hinzugefügt.A decision block 510 compares the correlation thresholds of any list pair generated by the reference model generator 34A to the correlation threshold of the list pair selected by the process block 500. If no list pairs were generated by the reference model generator 34A, processing proceeds to decision block 512. If the correlation thresholds of all newly generated list pairs are below the correlation threshold of the list pair selected by the process block 500, no further processing is performed on the newly generated list pairs. Processing then continues at decision block 512 with the list pair selected by the process block 500, effectively ignoring the newly generated list pairs. If it is determined at decision block 510 that any of the newly generated list pairs has a correlation threshold that exceeds the correlation threshold of the list pair selected by the process block 500, exceeds , processing continues at decision block 516. Decision block 516 determines whether more than one pair of lists was generated by reference model generator 34A. If only one pair of lists was generated, the pair of lists selected by process block 500 is deleted from the model at process block 518 and the newly generated list is added to the model.

Wenn mehrfache Listenpaare vom Referenzmodell-Generator 34A erzeugt wurden, bestimmt der Entscheidungsblock 520, ob alle der neuerlich erzeugten Listenpaare Korrelations-Schwellenwerte aufweisen, die den Korrelations-Schwellenwert des vom Prozessblock 500 ausgewählten Listenpaars übersteigen. Wenn alle der neuerlich erzeugten Listenpaare Korrelations- Schwellenwerte oberhalb des Korrelations-Schwellenwerts des vom Prozessblock 500 ausgewählten Listenpaars aufweisen, behält der Prozessblock 522 alle Listenpaare bei, um sie zur weiteren Betrachtung als Teil des Modells zu verwenden. Der Prozessblock 518 ersetzt das vom Prozessblock 500 ausgewählte Listenpaar durch eines der neuerlich erzeugten Listenpaare. Die anderen neuerlich erzeugten Listenpaare werden vom Prozessblock 522 gespeichert. Diese neuerlich erzeugten Listenpaare werden als "Nebenlistenpaare" (spin-off-Listenpaare) bezeichnet und genauso behandelt wie die im Prozessblock 376 (Figur 9A) beibehaltenen Listenpaare.If multiple list pairs were generated by reference model generator 34A, decision block 520 determines whether all of the newly generated list pairs have correlation thresholds that exceed the correlation threshold of the list pair selected by process block 500. If all of the newly generated list pairs have correlation thresholds above the correlation threshold of the list pair selected by process block 500, process block 522 retains all of the list pairs to use as part of the model for further consideration. Process block 518 replaces the list pair selected by process block 500 with one of the newly generated list pairs. The other newly generated list pairs are stored by process block 522. These newly created list pairs are referred to as "spin-off list pairs" and are treated the same as the list pairs retained in process block 376 (Figure 9A).

Wenn nicht alle der neuerlich erzeugten Listenpaare Korrelations- Schwellenwerte aufweisen, die den Korrelations-Schwellenwert des vom Prozessblöck 500 ausgewählten Listenpaars übersteigen, prüft der Entscheidungsblock 524 den größten Korrelations-Schwellenwert aller neuerlich erzeugten Listenpaare. Wenn dieser Korrelations-Schwellenwert ausreichend größer ist als der Korrelations-Schwellenwert des vom Prozessblock 500 ausgewählten Listenpaars, werden alle neuerlich erzeugten Listenpaare in den Prozessblöcken 522 und 518 wie vorstehend beschrieben verarbeitet. Andernfalls wird keines der neuerlich erzeugten Listenpaare verarbeitet und die Verarbeitung beim Entscheidungsblock 512 fortgesetzt. Im vorliegenden Ausführungsbeispiel bestimmt ser Entscheidungsblock 524, dass ein neuerlich erzeugter Korrelations-Schwellenwert ausreichend größer als ein anderer ist, wenn er zumindest um 5% größer oder um zumindest um 0,1 größer ist.If all of the newly generated list pairs do not have correlation thresholds that exceed the correlation threshold of the list pair selected by process block 500, decision block 524 examines the largest correlation threshold of all of the newly generated list pairs. If this correlation threshold is sufficiently greater than the correlation threshold of the list pair selected by process block 500, all of the newly generated list pairs are processed in process blocks 522 and 518 as described above. Otherwise, none of the newly generated list pairs are processed and processing continues at decision block 512. In the present embodiment, decision block 524 determines that a newly generated correlation threshold is sufficiently greater than another if it is at least 5% greater or at least 0.1% greater.

Wenn eine der vorstehend beschriebenen Bedingungen auftritt, so dass der Prozessblock 518 das vom Prozessblock 500 ausgewählte Listenpaar ersetzt, kehrt die Verarbeitung zum Prozessblock 502 zurück. Die vorstehend beschriebene Verarbeitung wird daraufhin mit dem neuen Listenpaar wiederholt, das anstelle des vorher vom Prozessblock 500 ausgewählten Listenpaars verwendet wird. Bis jedoch einige Grenzen auferlegt werden, kann die Verarbeitung wiederholt zum Prozessblock 502 zurückkehren. Der Entscheidungsblock 526 legt fest, wie oft die Verarbeitung zum Prozessblock 502 zurückkehrt. Wenn der Prozessblock 518 dreimal ausgeführt wurde, ohne dabei den Entscheidungsblock 512 auszuführen, verhindert der Entscheidungsblock 526, dass die Verarbeitung zum Prozessblock 502 zurückkehrt Stattdessen wird der Entscheid ungsblock 512 durchgeführt.If any of the conditions described above occur such that process block 518 replaces the list pair selected by process block 500, processing returns to process block 502. The processing described above is then repeated with the new list pair used in place of the list pair previously selected by process block 500. However, until some limits are imposed, processing may repeatedly return to process block 502. Decision block 526 determines how many times processing returns to process block 502. If process block 518 has been executed three times without executing decision block 512, decision block 526 prevents processing from returning to process block 502. Instead, decision block 512 is executed.

Es wird daran erinnert, dass der Prozessblock 502 die Bildpunkte im EPS- Bild entsprechend den Bildpunkten in der Liste mit den hohen Helligkeiten des vom Prozessblock 500 ausgewählten Listenpaars auswählt. Die Liste mit den geringen Helligkeiten des ausgewählten Listenpaares kann auf ähnliche Art und Weise verarbeitet werden. Der Entscheidungsblock 512 stellt fest, ob die Liste mit der geringen Helligkeit des ausgewählten Listenpaars verarbeitet werden soll. In diesem Fall kann das ausgewählte Listenpaar das vom Prozessblock 500 ausgewählte Listenpaar sein oder der vom Prozessblock 518 für dieses Listenpaar erstellte Ersatz. Wenn die ausgewählte Liste ein vom Prozessblock 522 gespeichertes Listenpaar ist oder ein vom Prozessblock 518 gespeichertes Ersatz-Listenpaar ist, wird die Liste mit der geringen Helligkeit des Paares nur dann verarbeitet, wenn der Korrelations-Schwellenwert des ausgewählten Listenpaars geringer ist als der Korrelations-Schwellenwert des ursprünglichen Listenpaars. Wenn die Liste mit der geringen Helligkeit verarbeitet wurde oder nicht verarbeitet werden muss, schreitet die Verarbeitung zum Entscheidungsblock 530, bei dem überprüft wird, ob der Korrelations-Schwel lenwert des ausgewählten Listenpaars einen minimalen Wert, in diesem Fall 1,25, übersteigt. Wenn der Korrelations-Schwellenwert unterhalb dieses Wertes liegt, wird das Listenpaar vom Prozessblock 532 verworfen und wird kein Teil des Modells. Die Verarbeitung wird dann beim Entscheidungsblock 528 fortgesetzt, der die Verarbeitung zum Prozessblock 500 zurückführt, bei dem ein weiteres Listenpaar ausgewählt wird und die gesamte Verarbeitung wiederholt wird.Recall that process block 502 selects the pixels in the EPS image corresponding to the pixels in the high brightness list of the list pair selected by process block 500. The low brightness list of the selected list pair may be processed in a similar manner. Decision block 512 determines whether to process the low brightness list of the selected list pair. In this case, the selected list pair may be the list pair selected by process block 500 or the replacement created for that list pair by process block 518. If the selected list is a list pair stored by process block 522 or is a replacement list pair stored by process block 518, the low brightness list of the pair is processed only if the correlation threshold of the selected list pair is less than the correlation threshold of the original list pair. If the low brightness list has been processed or does not need to be processed, processing proceeds to decision block 530 where it is checked whether the correlation threshold of the selected list pair exceeds a minimum value, in this case 1.25. If the correlation threshold is below this value, the list pair is discarded by process block 532 and does not become part of the model. Processing then continues at decision block 528 which returns processing to process block 500 where another list pair is selected and the entire processing is repeated.

Wenn die Liste mit der geringen Helligkeit des ausgewählten Listenpaars verarbeitet wird, wählt der Prozessblock 502 die Bildpunkte im EPS-Bild entsprechend den Bildpunkten in der Liste mit der geringen Helligkeit aus. Die Verarbeitung dieser ausgewählten Bildpunkte erfolgt in gleicher Weise wie die Verarbeitung der unter Verwendung der Liste mit der hohen Intensität ausgewählten Bildpunkte. Der einzige Unterschied besteht darin, dass der Entscheidungsblock 505 und der Prozessblock 506 auf dem Bildpunkt auf Dreiviertel des Weges vom Boden der sortierten Liste arbeiten, die als gegenüberliegende zum Bildpunkt ein Viertel des Weges vom Boden besitzt.When processing the low intensity list of the selected list pair, process block 502 selects the pixels in the EPS image corresponding to the pixels in the low intensity list. The processing of these selected pixels is performed in the same manner as the processing of the pixels selected using the high intensity list. The only difference is that decision block 505 and process block 506 operate on the pixel three-quarters of the way from the bottom of the sorted list, which is opposite the pixel one-quarter of the way from the bottom.

Sobald vom Entscheidungsblock 528 festgestellt wird, dass alle beibehaltenen Listenpaare verarbeitet wurden, wird das Modellaufbereitungsverfahren abgeschlossen. Die Listenpaare mit ihren entsprechenden Korrelations- Schwellenwerten bilden dann das Modell, das das Ausgangssignal des Refe renzmodell-Generators 34 (Figur 2) darstellt.Once decision block 528 determines that all retained list pairs have been processed, the model preparation process is completed. The list pairs with their corresponding correlation thresholds then form the model that is the output of reference model generator 34 (Figure 2).

Es sei darauf hingewiesen, dass das vom alternativen Ausführungsbeispiel des Referenzmodell-Generators 34 (Figur 2) erzeugte Modell ein Modell mit einer von der des bevorzugten Ausführungsbeispiels des Referenzmodell- Generators 34 (Figur 2) erzeugten Modells aufweist. Daher wird eine Modifikation des Kantenmodell-Korrelators (Figur 2) benötigt.It should be noted that the model generated by the alternative embodiment of the reference model generator 34 (Figure 2) comprises a model having a different frequency from that generated by the preferred embodiment of the reference model generator 34 (Figure 2). Therefore, a modification of the edge model correlator (Figure 2) is required.

Die Figur 10 zeigt die vom alternativen Ausführungsbeispiel des Kantenmodell-Korrelators 42 (Figur 2) durchgeführte Verarbeitung. Ein Prozessblock 300A verschiebt in Verbindung mit dem Entscheidungsblock 326A ein lokales Fenster über dem Zielbereichsbild in gleicher Weise wie der Prozessblock 300 und der Entscheidungsblock 326 (Figur 8).Figure 10 shows the processing performed by the alternate embodiment of the edge model correlator 42 (Figure 2). A process block 300A, in conjunction with decision block 326A, moves a local window over the target region image in the same manner as process block 300 and decision block 326 (Figure 8).

Ein Prozessblock 550 wählt eines von den das Modell bildenden Listenpaaren aus. Jedes Listen paar wird der Reihe nach derart verarbeitet, dass der Prozessblock 550 ein Listenpaar auswählt, welches vorher noch nicht verarbeitet wurde. Ein Entscheidungsblock 552 stellt sicher, dass das ausgewählte Listenpaar sowohl Einträge in der Liste mit der hohen Helligkeit als auch mit der geringen Helligkeit aufweist. Wenn eine der Listen keinen Eintrag besitzt, wird dieses Listenpaar übersprungen. Andernfalls wird die Verarbeitung beim Prozessblock 554 fortgesetzt.A process block 550 selects one of the list pairs that make up the model. Each list pair is processed in turn such that the process block 550 selects a list pair that has not been previously processed. A decision block 552 ensures that the selected list pair has entries in both the high brightness and low brightness lists. If either list has no entry, that list pair is skipped. Otherwise, processing continues at process block 554.

Der Prozessblock 554 berechnet zwei Schwellenwerte für das ausgewählte Listenpaar. Die Schwellenwerte THRP und THRM werden gemäß der folgenden Gleichungen berechnet:Process block 554 calculates two thresholds for the selected list pair. The thresholds THRP and THRM are calculated according to the following equations:

THRP = (SUMP/NPOS)/KTHRP = (SUMP/NPOS)/K

THRM = K (SUMN/NNEG)THRM = K (SUMN/NNEG)

wobeiwhere

K der Korrelations-Schwellenwert für dieses Listenpaar;K is the correlation threshold for this list pair;

SUMP die Summe der Helligkeiten aller Bildpunkte im lokalen Fenster des Zielbereichsbildes entsprechend den Bildpunkten in der Liste mit den hohen Helligkeiten;SUMP the sum of the brightnesses of all pixels in the local window of the target area image corresponding to the pixels in the high brightness list;

SUMN die Summe der Helligkeiten aller Bildpunkte im lokalen Fenster des Zielbereichsbildes entsprechend den Bildpunkten in der Liste mit den geringen Helligkeiten;SUMN the sum of the brightnesses of all pixels in the local window of the target area image corresponding to the pixels in the low brightness list;

NPOS die Anzahl der Bildpunkte in der Liste mit den hohen Helligkeiten; undNPOS the number of pixels in the high brightness list; and

NNEG die Anzahl der Bildpunkte in der Liste mit der geringen Helligkeit ist.NNEG is the number of pixels in the low brightness list.

Ein Prozessblock 556 verwendet die Schwellenwerte THRP und THRM, um zwei binär aufgenommene Bilderlisten, die mit SENB+ und SENB- bezeichnet sind, auszubilden. Die SENB+ Liste besitzt die gleiche Anzahl von Einträgen wie Bildpunkte in der Bildpunktliste für die hohe Helligkeit vorhanden sind. Die SENB- Liste besitzt so viele Einträge wie Bildpunkte in der Bildpunktliste für die geringe Helligkeit vorhanden sind. Für jeden Bildpunkt in der Liste für die hohe Helligkeit wird der entsprechende Bildpunkt im lokalen Fenster des Zielbereichsbildes identifiziert. Wenn die Helligkeit dieses Bildpunkts THRM übersteigt, wird der Eintrag in der SENB+ Liste entsprechend dem Bildpunkt in der Liste für die hohe Helligkeit auf 1 gesetzt. Andernfalls wird der Eintrag in der SENB+ Liste auf -1 gesetzt. In vergleichbarer Weise wird für jeden Bildpunkt in der Liste für die geringe Helligkeit der entsprechende Bildpunkt im lokalen Fenster des Zielbereichsbildes identifiziert. Wenn die Intensität dieses Bildpunkts THRP übersteigt, wird der entsprechende Eintrag im SENB- auf 1 eingestellt. Andernfalls wird er auf -1 gesetzt.A process block 556 uses the thresholds THRP and THRM to form two binary image lists, labeled SENB+ and SENB-. The SENB+ list has the same number of entries as there are pixels in the high brightness pixel list. The SENB- list has as many entries as there are pixels in the low brightness pixel list. For each pixel in the high brightness list, the corresponding pixel in the local window of the target area image is identified. If the brightness of that pixel exceeds THRM, the entry in the SENB+ list corresponding to the pixel in the high brightness list is set to 1. Otherwise, the entry in the SENB+ list is set to -1. Similarly, for each pixel in the low brightness list, the corresponding pixel in the local window of the target area image is identified. If the intensity of this pixel exceeds THRP, the corresponding entry in SENB is set to 1. Otherwise, it is set to -1.

Ein Prozessblock 558 aktualisiert die Variablen R&sub1;, R&sub2;, S&sub1;, S&sub2;, H&sub1;&sub1;, H&sub1;&sub2;, H&sub2;&sub1; und H&sub2;&sub2; auf der Grundlage der den Einträgen in der SENB+ und SENB-Liste zugeordneten Werten. Die Variablen, die vor dem Start der Verarbeitung gemäß Figur 10 auf den Anfangswert 0 gesetzt werden, werden entsprechend der vorliegenden Gleichungen aktualisiert:A process block 558 updates the variables R1, R2, S1, S2, H11, H12, H21, and H22 based on the values assigned to the entries in the SENB+ and SENB- lists. The variables, which are initially set to 0 prior to the start of processing in Figure 10, are updated according to the following equations:

R&sub1; wird um die Anzahl der Bildpunkte in der Liste für die geringe Helligkeit vermehrt;R�1 is increased by the number of pixels in the low brightness list;

R&sub2; wird um die Anzahl der Bildpunkte in der Liste für die hohe Helligkeit vermehrt;R2 is increased by the number of pixels in the high brightness list;

S&sub1; wird um die Anzahl der positiven Einträge in SENB+ und SENB- vermehrt;S1 is increased by the number of positive entries in SENB+ and SENB-;

S&sub2; wird um die Anzahl der negativen Einträge in SENB+ und SENB- vermehrt;S2 is increased by the number of negative entries in SENB+ and SENB-;

H&sub1;&sub1; wird um die Anzahl der positiven Einträge in SENB- vermehrt;H�1;�1 is increased by the number of positive entries in SENB-;

H&sub1;&sub2; wird um die Anzahl der negativen Einträge in SENB- vermehrt;H₁₂ is increased by the number of negative entries in SENB-;

H&sub2;&sub1; wird um die Anzahl der positiven Einträge in SENB+ vermehrt; undH₂₁ is increased by the number of positive entries in SENB+; and

H&sub2;&sub2; wird um die Anzahl der negativen Einträge in SENB+ vermehrt.H₂₂ is increased by the number of negative entries in SENB+.

Sobald die Variablen für ein Listenpaar aktualisiert wurden, stellt der Entscheidungsblock 560 fest, ob irgendein Listenpaar zur Verarbeitung verbleibt. Ist dies der Fall, kehrt die Verarbeitung zum Prozessblock 550 zurück. Das nächste Listenpaar wird ausgwählt und verarbeitet. Wenn alle Listenpaare verarbeitet wurden, leitet der Entscheidungsblock 560 die Verarbeitung zum Prozessblock 322A um. Es wird darauf hingewiesen, dass die Prozessblöcke 322A und 324A sowie der Entscheidungsblock 326A identisch mit den Prozessblöcken 322, 324 und dem Entscheidungsblock 326 (Figur 8) sind. Somit entsprechen die Ergebnisse vom alternativen Ausführungsbeispiel des Kantenmodell-Korrelators 42 (Figur 2) hinsichtlich ihrer Form den vom bevorzugten Ausführungsbeispiel des Kantenmodell-Korrelators 42 (Figur 2) erzeugten Ergebnissen.Once the variables for a list pair have been updated, decision block 560 determines if any list pairs remain to be processed. If so, processing returns to process block 550. The next list pair is selected and processed. When all list pairs have been processed, decision block 560 redirects processing to process block 322A. Note that process blocks 322A and 324A, as well as decision block 326A, are identical to process blocks 322, 324, and decision block 326 (Figure 8). Thus, the results from the alternate embodiment of edge model correlator 42 (Figure 2) are similar in form to the results produced by the preferred embodiment of edge model correlator 42 (Figure 2).

Claims (4)

1. Verfahren zum Abgleichen eines ersten Bildes und eines zweiten Bildes einer gleichen Szenerie, wobei sowohl das erste als auch das zweite Bild ein Bildpunktfeld aufweist, bestehend aus den Schritten:1. A method for matching a first image and a second image of a same scene, wherein both the first and the second image have a pixel array, comprising the steps: Ausbilden (25, 30, 32) einer Referenzkarte eines Abschnitts des ersten Bildes, wobei die Referenzkarte ein Feld von Bildpunkten aufweist, die jeweils einem entsprechenden Bildpunkt des Abschnitts des ersten Bildes entsprechen, und die Werte der Bildpunkte der Referenzkarte die Position einer oder mehrerer Karten angeben, die in diesem Abschnitt des ersten Bildes dargestellt sind, wobei die Referenzkarte aufeinanderfolgend mit den Abschnitten des zweiten Bildes verglichen (42) und für jeden Abschnitt des zweiten Bildes eine Marke berechnet wird (42), wobei die Marke die Wahrscheinlichkeit angibt, dass die Bildpunkte im Abschnitt des zweiten Bildes, die den Bildpunkten in der Referenzkarte entsprechen, Werte aufweisen, die eine oder mehrere Kanten im zweiten Bild angeben; undforming (25, 30, 32) a reference map of a portion of the first image, the reference map comprising an array of pixels each corresponding to a corresponding pixel of the portion of the first image, and the values of the pixels of the reference map indicating the position of one or more maps represented in that portion of the first image, the reference map being successively compared (42) with the portions of the second image and a mark being calculated (42) for each portion of the second image, the mark indicating the probability that the pixels in the portion of the second image corresponding to the pixels in the reference map have values indicating one or more edges in the second image; and Auswählen (42) des Abschnitts des zweiten Bildes, welches die höchste Marke erzeugt, um dem Abschnitt des ersten Bildes zu entsprechen, dadurch gekennzeichnet, dass die Referenzkarte durch die Schritte gebildet wird:Selecting (42) the portion of the second image which produces the highest mark to correspond to the portion of the first image, characterized in that the reference map is formed by the steps of: Ausbilden (28) einer ersten Karte des Abschnitts des ersten Bildes, wobei die erste Karte ein Feld von Bildpunkten aufweist, die jeweils einem entsprechenden Bildpunkt des Abschnitts des ersten Bildes entsprechen und einen Wert aufweisen, der angibt, ob der Bildpunkt in einem lokalen Fenster (120,122,124,126), das den entsprechenden Bildpunkt im ersten Bild umgibt, eine Kante darstellt;forming (28) a first map of the portion of the first image, wherein the first map comprises an array of pixels each corresponding to a corresponding pixel of the portion of the first image and having a value indicating whether the pixel represents an edge in a local window (120,122,124,126) surrounding the corresponding pixel in the first image; Ausbilden (30) einer zweiten Karte des Abschnitts des ersten Bildes, wobei die zweite Karte aus einem Feld von Bildpunkten besteht, die jeweils einem entsprechenden Bildpunkt des Abschnitts des ersten Bildes entsprechen und einen Wert aufweisen, der angibt, ob der entsprechende Bildpunkt im ersten Bild einen Wert besitzt, der einen Schwellenwert überschreitet; und Kombinieren (32) der ersten Karte mit der zweiten Karte, wodurch die Referenzkarte ausgebildet wird.forming (30) a second map of the portion of the first image, wherein the second map consists of an array of pixels each corresponding to a corresponding pixel of the portion of the first image and having a value indicating whether the corresponding pixel in the first image has a value that exceeds a threshold; and combining (32) the first map with the second map, thereby forming the reference map. 2. Verfahren nach Patentanspruch 1, dadurch gekennzeichnet, dass das erste Bild einen Bereich in der Nähe eines Ziels (T) darstellt und durch ein erstes SAR (15A) in einem Flugzeug (14) erzeugt wird, welches eine Lenkwaffe (16) trägt, und das zweite Bild von einem zweiten SAR (18B) in der Lenkwaffe (16) erzeugt wird, nachdem die Lenkwaffe (16) vom Flugzeug (14) abgefeuert wurde; und2. Method according to claim 1, characterized in that the first image represents an area in the vicinity of a target (T) and is generated by a first SAR (15A) in an aircraft (14) carrying a guided missile (16) and the second image is generated by a second SAR (18B) in the missile (16) after the missile (16) has been fired from the aircraft (14); and dass die Nachführung (44) der Lenkwaffe (16) auf der Grundlage des ausgewählten Abschnitts des zweiten Bildes erfolgt, welches die höchste Marke erzeugt.that the tracking (44) of the guided missile (16) is carried out on the basis of the selected section of the second image which produces the highest mark. 3. Verfahren nach Patentanspruch 1 oder 2, dadurch gekennzeichnet, dass die Referenzkarte zum Vergleichen mit den Abschnitten des zweiten Bildes derart verarbeitet wird (34), dass ein Modell entsteht.3. Method according to claim 1 or 2, characterized in that the reference map is processed (34) for comparison with the sections of the second image so that a model is created. 4. Verfahren nach Patentanspruch 3, dadurch gekennzeichnet, dass das Modell ein Listenpaar von Bildpunkt-Helligkeiten aufweist, die die Kanten darstellen.4. Method according to claim 3, characterized in that the model has a list pair of pixel brightnesses that represent the edges.
DE1991626424 1991-03-15 1991-03-15 Compare patterns with confirmed limits Expired - Lifetime DE69126424T2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP91302246A EP0503179B1 (en) 1988-08-29 1991-03-15 Confirmed boundary pattern matching

Publications (2)

Publication Number Publication Date
DE69126424D1 DE69126424D1 (en) 1997-07-10
DE69126424T2 true DE69126424T2 (en) 1997-12-18

Family

ID=8208217

Family Applications (1)

Application Number Title Priority Date Filing Date
DE1991626424 Expired - Lifetime DE69126424T2 (en) 1991-03-15 1991-03-15 Compare patterns with confirmed limits

Country Status (1)

Country Link
DE (1) DE69126424T2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10060090A1 (en) * 2000-12-02 2002-06-13 Lfk Gmbh Procedure for handing over a target to a missile

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10060090A1 (en) * 2000-12-02 2002-06-13 Lfk Gmbh Procedure for handing over a target to a missile

Also Published As

Publication number Publication date
DE69126424D1 (en) 1997-07-10

Similar Documents

Publication Publication Date Title
DE69836079T2 (en) ESTIMATE TARGET FOR RADAR TRACKING
DE69233722T2 (en) Method for determining object images and method for determining the movement thereof
EP2467828B1 (en) Method and system for automatic object detection and subsequent object tracking in accordance with the object shape
DE602004003811T2 (en) OBJECT DETECTION SYSTEM AND METHOD FOR DETECTING AN OBJECT
DE69127968T2 (en) THREE-DIMENSIONAL REAL-TIME SENSOR SYSTEM
DE3588169T2 (en) Method for detecting an image exposure area in an image readout process
EP1316057B1 (en) Evaluation of edge direction information
US5018218A (en) Confirmed boundary pattern matching
US5168530A (en) Confirmed boundary pattern matching
DE69724906T2 (en) Numerical image processing method for the automatic extraction of band-shaped objects
DE10291878B4 (en) Image segmentation detection method in industrial radiation imaging
EP1418444B1 (en) Method for determining the yaw rate of a vehicle
US5168529A (en) Confirmed boundary pattern matching
DE69023787T2 (en) Target location on a target.
DE3685571T2 (en) METHOD FOR BRIDGING GAPS BETWEEN CONTOUR ELEMENTS IN AN IMAGE.
EP0503179A1 (en) Confirmed boundary pattern matching
DE102008056600A1 (en) Method and device for recognizing objects
DE69730733T2 (en) FLIGHT BODY STEERING SYSTEM WITH LOCK AFTER SHOT AND RECONSTRUCTION OF THREE-DIMENSIONAL SCENES
EP1882232B1 (en) Method and device for determining the material interfaces of a test object
DE69126424T2 (en) Compare patterns with confirmed limits
DE112014001697T5 (en) Image processing apparatus, image processing program and operating method for image processing apparatus
EP3214602B1 (en) Method for three-dimensional recording of objects
EP3142068B1 (en) Method for three-dimensional recording of objects
DE102008008499A1 (en) Method for computer-aided calculation of the movement of an object from sensor data
DE102022201679A1 (en) Method and device for training a neural network

Legal Events

Date Code Title Description
8364 No opposition during term of opposition