Moving Average Image Verarbeitung
Die Wissenschaftler und Ingenieure Leitfaden zur digitalen Signalverarbeitung Von Steven W. Smith, Ph. D. Kapitel 1: Die Breite und Tiefe der DSP-Bilder sind Signale mit besonderen Merkmalen. Erstens sind sie ein Maß für einen Parameter über den Raum (Abstand), während die meisten Signale ein Maß für einen Parameter über die Zeit sind. Zweitens enthalten sie sehr viele Informationen. Zum Beispiel können mehr als 10 Megabyte benötigt werden, um eine Sekunde des Fernsehvideos zu speichern. Das ist mehr als tausendmal größer als bei einer ähnlichen Längenstimme. Drittens ist der endgültige Richter der Qualität oft eine subjektive menschliche Bewertung und nicht ein objektives Kriterium. Diese Besonderheiten haben die Bildverarbeitung zu einer eigenen Untergruppe innerhalb von DSP gemacht. Medizinisch Im Jahre 1895 entdeckte Wilhelm Conrad Rntgen, dass Röntgenstrahlen erhebliche Mengen an Materie passieren könnten. Die Medizin wurde durch die Fähigkeit, in den lebenden menschlichen Körper zu sehen, revolutioniert. Medizinische Röntgensysteme verteilen sich in nur wenigen Jahren weltweit. Trotz seines offensichtlichen Erfolgs wurde die medizinische Röntgenbildgebung durch vier Probleme begrenzt, bis DSP und verwandte Techniken in den 1970er Jahren kamen. Zuerst können sich überlappende Strukturen im Körper hintereinander verbergen. Zum Beispiel könnten Teile des Herzens nicht hinter den Rippen sichtbar sein. Zweitens ist es nicht immer möglich, zwischen ähnlichen Geweben zu unterscheiden. Zum Beispiel kann es möglich sein, Knochen von Weichgewebe zu trennen, aber nicht einen Tumor von der Leber zu unterscheiden. Drittens zeigen Röntgenbilder Anatomie. Die bodys Struktur und nicht Physiologie. Die bodys operation Das Röntgenbild eines lebenden Menschen sieht genauso aus wie das Röntgenbild eines Toten. Weiterhin kann die Röntgenbelichtung Krebs verursachen, was es erfordert, dass es sparsam und nur mit richtiger Begründung verwendet wird. Das Problem der überlappenden Strukturen wurde 1971 mit der Einführung des ersten Computertomographen-Scanners (früher als berechnete Axialtomographie oder CAT-Scanner) gelöst. Computertomographie (CT) ist ein klassisches Beispiel für die digitale Signalverarbeitung. Röntgenstrahlen aus vielen Richtungen werden durch den Abschnitt des untersuchten Patienten geleitet. Anstatt einfach Bilder mit den detektierten Röntgenstrahlen zu bilden, werden die Signale in digitale Daten umgewandelt und in einem Computer gespeichert. Die Informationen werden dann verwendet, um Bilder zu berechnen, die scheinen, Scheiben durch den Körper zu sein. Diese Bilder zeigen viel größere Details als herkömmliche Techniken, was eine deutlich bessere Diagnose und Behandlung ermöglicht. Der Einfluss der CT war fast so groß wie die ursprüngliche Einführung der Röntgenbildgebung selbst. Innerhalb von nur wenigen Jahren hatte jedes große Krankenhaus in der Welt Zugang zu einem CT-Scanner. Im Jahr 1979, zwei der CT-Prinzip-Beitragenden, Godfrey N. Hounsfield und Allan M. Cormack, teilte den Nobelpreis in der Medizin. Das ist gut DSP Die letzten drei Röntgenprobleme wurden durch die Verwendung von durchdringenden Energie außer Röntgenstrahlen, wie Radio - und Schallwellen, gelöst. DSP spielt bei all diesen Techniken eine Schlüsselrolle. Zum Beispiel verwendet die Magnetresonanztomographie (MRT) Magnetfelder in Verbindung mit Funkwellen, um das Innere des menschlichen Körpers zu untersuchen. Die korrekte Einstellung der Stärke und Häufigkeit der Felder bewirkt, dass die Atomkerne in einem lokalisierten Bereich des Körpers zwischen Quantenenergiestatus in Resonanz treten. Diese Resonanz führt zur Emission einer sekundären Funkwelle, die mit einer in der Nähe des Körpers angeordneten Antenne detektiert wird. Die Stärke und andere Eigenschaften dieses detektierten Signals liefern Informationen über die lokalisierte Region in Resonanz. Die Einstellung des Magnetfeldes ermöglicht es, den Resonanzbereich im ganzen Körper abzutasten und die interne Struktur abzubilden. Diese Information wird in der Regel als Bilder präsentiert, genauso wie in der Computertomographie. Neben der hervorragenden Diskriminierung zwischen verschiedenen Arten von Weichgewebe, kann MRT Informationen über Physiologie, wie Blutfluss durch Arterien. MRI stützt sich völlig auf digitale Signalverarbeitungstechniken und konnte nicht ohne sie umgesetzt werden. Space Manchmal musst du nur noch ein schlechtes Bild machen. Dies ist häufig der Fall bei Bildern von unbemannten Satelliten und Weltraumforschungsfahrzeugen. Keiner wird einen Handwerker an den Mars schicken, nur um die Knöpfe auf einer Kamera zu optimieren DSP kann die Qualität der unter extrem ungünstigen Bedingungen aufgenommenen Bilder auf verschiedene Weise verbessern: Helligkeit und Kontrasteinstellung, Kantenerkennung, Rauschunterdrückung, Fokuseinstellung, Bewegungsunschärfe Reduktion usw. Bilder, die eine räumliche Verzerrung aufweisen, wie sie bei einem flachen Bild eines sphärischen Planeten angetroffen werden, können auch in eine korrekte Darstellung verzogen werden. Viele einzelne Bilder können auch zu einer einzigen Datenbank zusammengefasst werden, so dass die Informationen auf einzigartige Weise angezeigt werden können. Zum Beispiel eine Videosequenz, die einen Luftflug über die Oberfläche eines entfernten Planeten simuliert. Commercial Imaging Products Der große Informationsgehalt in Bildern ist ein Problem für Systeme, die in Massenmenge an die breite Öffentlichkeit verkauft werden. Kommerzielle Systeme müssen billig sein. Und das ist nicht gut mit großen Erinnerungen und hohen Datenübertragungsraten. Eine Antwort auf dieses Dilemma ist die Bildkompression. Genau wie bei Sprachsignalen enthalten Bilder eine ungeheure Menge an redundanten Informationen und können durch Algorithmen laufen, die die Anzahl der benötigten Bits reduzieren. Fernsehen und andere bewegte Bilder eignen sich besonders für die Kompression, da der Großteil des Bildes von Frame-to-Frame gleich bleibt. Kommerzielle Imaging-Produkte, die diese Technologie nutzen, gehören: Videotelefone, Computerprogramme, die bewegte Bilder und digitales Fernsehen zeigen. Dieses Tutorial diskutiert, wie man MATLAB für die Bildverarbeitung verwendet. Manche Vertrautheit mit MATLAB wird angenommen (man sollte wissen, wie man Matrizen benutzt und eine M-Datei schreibt). Es ist hilfreich, die MATLAB Image Processing Toolbox zu haben, aber zum Glück sind für die meisten Operationen keine Toolboxen erforderlich. Befehle, die die Image Toolbox benötigen, werden mit der Image Toolbox angezeigt. Bilddarstellung In MATLAB gibt es fünf Arten von Bildern. Graustufen. Ein Graustufenbild M Pixel groß und N Pixel breit wird als Matrix aus doppeltem Datentyp der Größe M N dargestellt. Elementwerte (z. B. MyImage (m, n)) bezeichnen die Pixel-Graustufenintensitäten in 0,1 mit 0black und 1weiß. Truecolor RGB Ein truecolor-rot-grün-blaues (RGB) Bild wird als dreidimensionale M N 3 Doppelmatrix dargestellt. Jedes Pixel hat rote, grüne, blaue Komponenten entlang der dritten Dimension mit Werten in 0,1, zum Beispiel sind die Farbkomponenten von Pixel (m, n) MyImage (m, n, 1) rot, MyImage (m, n, 2) grün, myImage (m, n, 3) blue. Indexed. Indizierte (palettierte) Bilder werden mit einer Indexmatrix der Größe M N und einer Farbmatrix der Größe K 3 dargestellt. Die Farbkarte enthält alle Farben, die im Bild verwendet werden, und die Indexmatrix repräsentiert die Pixel, indem sie auf Farben in der Farbkarte verweisen. Zum Beispiel, wenn die 22. Farbe magenta MyColormap (22, :) 1,0,1 ist. Dann ist MyImage (m, n) 22 ein magentafarbenes Pixel. Binär. Ein binäres Bild wird durch eine logarische M N-Matrix dargestellt, wobei die Pixelwerte 1 (wahr) oder 0 (falsch).uint8 sind. Dieser Typ verwendet weniger Speicher und einige Operationen berechnen schneller als mit Doppel-Typen. Aus Gründen der Einfachheit, dieses Tutorial nicht diskutieren uint8 weiter. Graustufen ist in der Regel das bevorzugte Format für die Bildverarbeitung. In Fällen, die Farbe benötigen, kann ein RGB-Farbbild zerlegt und als drei getrennte Graustufenbilder behandelt werden. Indizierte Bilder müssen für die meisten Operationen in Graustufen oder RGB umgewandelt werden. Im Folgenden finden Sie einige allgemeine Manipulationen und Umbauten. Ein paar Befehle erfordern die Image Toolbox und sind mit Image Toolbox gekennzeichnet. Lesen und Schreiben von Bilddateien MATLAB kann Bilder mit den Imread - und Imwrite-Befehlen lesen und schreiben. Obwohl eine angemessene Anzahl von Dateiformaten unterstützt wird, sind einige nicht. Verwenden Sie Imformate, um zu sehen, was Ihre Installation unterstützt: Beim Lesen von Bildern ist ein unglückliches Problem, dass imread die Bilddaten im uint8-Datentyp zurückgibt, die vor dem Gebrauch in doppelte und wieder skaliert werden müssen. Also, anstatt direkt aufzurufen, verwende ich die folgende M-Datei-Funktion zum Lesen und Konvertieren von Bildern: Klicken Sie mit der rechten Maustaste und speichern Sie getimage. m, um diese M-Funktion zu verwenden. Wenn das Bild baboon. png im aktuellen Verzeichnis (oder irgendwo im MATLAB-Suchpfad) ist, kannst du es mit MyImage getimage (baboon. png) lesen. Sie können auch Teilpfade verwenden, zB wenn das Bild im aktuellen Verzeichnis gtimages mit getimage (imagesbaboon. png) ist. Um ein Graustufen - oder RGB-Bild zu schreiben, Achten Sie darauf, dass MyImage eine Doppelmatrix mit Elementen in 0,1if falsch skaliert ist, wird die gespeicherte Datei wahrscheinlich leer sein. Beim Schreiben von Bilddateien empfehle ich das PNG-Dateiformat. Dieses Format ist eine zuverlässige Wahl, da es verlustfrei ist, unterstützt Truecolor RGB und komprimiert ziemlich gut. Verwenden Sie andere Formate mit Vorsicht. Grundlegende Operationen Unten sind einige grundlegende Operationen auf einem Graustufenbild u. Befehle, die die Image Toolbox benötigen, werden mit der Image Toolbox angezeigt. (Anmerkung: Für jedes Array ist die Syntax u (:) bedeutet, dass du dich in einen Spaltenvektor lenkt, zum Beispiel wenn du 1,50,2 ist, dann ist u (:) 1052.) Beispielsweise wird die Bildsignalleistung verwendet Berechnen des Signal-Rausch-Verhältnisses (SNR) und des Peak-Signal-Rausch-Verhältnisses (PSNR). Angesichts sauberes Bild uclean und Lärm-kontaminiertes Bild du, sei vorsichtig mit Norm. Das Verhalten ist norm (v) auf Vektor v berechnet sqrt (sum (v.2)). Aber die Norm (A) auf der Matrix A berechnet die induzierte L 2 - Matrix-Norm, also ist die Norm (A) sicher nicht sqrt (Summe (A (:) 2)). Es ist doch ein einfacher Fehler, die Norm (A) zu benutzen, wo es Norm sein sollte (A (:)). Lineare Filter Lineare Filterung ist die Ecksteintechnik der Signalverarbeitung. Um kurz einzuführen, ist ein linearer Filter ein Vorgang, bei dem an jedem Pixel x m, n eines Bildes eine lineare Funktion auf dem Pixel und seinen Nachbarn ausgewertet wird, um einen neuen Pixelwert y m, n zu berechnen. Ein linearer Filter in zwei Dimensionen hat die allgemeine Form, wobei x der Eingang ist, y der Ausgang ist und h die Filterimpulsantwort ist. Verschiedene Entscheidungen von h führen zu Filtern, die glatt, schärfen und Kanten erkennen, um einige Anwendungen zu nennen. Die rechte Seite der obigen Gleichung wird präzise als h x bezeichnet und heißt die Faltung von h und x. Räumliche Domänenfilterung Die zweidimensionale lineare Filterung wird in MATLAB mit conv2 implementiert. Leider kann conv2 nur die Filterung in der Nähe der Bildgrenzen durch Nullpolsterung behandeln, was bedeutet, dass Filterergebnisse für Pixel nahe der Grenze normalerweise ungeeignet sind. Um dies zu umgehen, können wir das Eingabebild auffüllen und die gültige Option beim Aufruf von conv2 verwenden. Die folgende M-Funktion tut dies. Klicken Sie mit der rechten Maustaste und speichern Sie conv2padded. m, um diese M-Funktion zu verwenden. Hier sind einige Beispiele: Ein 2D-Filter h soll trennbar sein, wenn es als das äußere Produkt von zwei 1D-Filtern h1 und h2 ausgedrückt werden kann. Das heißt, h h1 (:) h2 (:). Es ist schneller, h1 und h2 als h zu passieren. Wie oben für das gleitende Mittelfenster und den Gaußschen Filter getan wird. In der Tat sind die Sobel-Filter hx und hy auch trennbar, was h1 und h2 ist. Fourier-Domain-Filterung Die räumliche Domain-Filterung mit conv2 ist leicht ein kompliziert teurer Vorgang. Für ein K K-Filter auf einem M N-Bild kostet conv2 O (MNK 2) Additionen und Multiplikationen oder O (N 4) mit M N K. Bei großen Filtern ist die Filterung in der Fourier-Domäne schneller, da die Rechenkosten auf O (N 2 log N) reduziert werden. Unter Verwendung der Faltungs-Multiplikationseigenschaft der Fourier-Transformation wird die Faltung äquivalent berechnet durch Das Ergebnis ist gleichbedeutend mit konv2padded (x, h), außer in der Nähe der Grenze, wobei die obige Berechnung eine periodische Grenzerweiterung verwendet. Die Fourier-basierte Filterung kann auch mit symmetrischer Grenzerweiterung durchgeführt werden, indem der Eingang in jede Richtung reflektiert wird: (Hinweis: Eine noch effizientere Methode ist die FFT-Overlap-Add-Filterung. Die Signal Processing Toolbox implementiert die FFT-Überlappung in one-dimension in fftfilt .) Nichtlineare Filter Ein nichtlineares Filter ist eine Operation, bei der jedes gefilterte Pixel ym, n eine nichtlineare Funktion von xm, n und seinen Nachbarn ist. Hier diskutieren wir kurz einige Arten von nichtlinearen Filtern. Bestellen von Statistikfiltern Wenn Sie die Image-Toolbox haben, können Sie mit den Ordfilt2 und medfilt2 statistische Filter bestellen. Ein Auftragsstatistikfilter sortiert die Pixelwerte über eine Nachbarschaft und wählt den k-ten größten Wert aus. Die Min-, Max - und Medianfilter sind Sonderfälle. Morphologische Filter Wenn Sie die Image Toolbox haben, implementiert bwmorph verschiedene morphologische Operationen auf binären Bildern wie Erosion, Dilatation, Open, Close und Skelett. Es gibt auch Befehle für die Morphologie auf Graustufenbildern: Imerode. Imdilat und imtophat unter anderen. Erstellen Sie Ihren eigenen Filter Gelegentlich möchten wir einen neuen Filter verwenden, den MATLAB nicht hat. Der untenstehende Code ist eine Vorlage für die Implementierung von Filtern. (Anmerkung: Eine häufige fehlgeleitete Behauptung ist, dass Schleifen in MATLAB sind langsam und sollte vermieden werden. Dies war einmal wahr, wieder in MATLAB 5 und früher, aber Schleifen in modernen Versionen sind recht schnell.) Zum Beispiel, die Alpha-getrimmten Mittelfilter Ignoriert die d 2 niedrigsten und d 2 höchsten Werte im Fenster und mittelt die verbleibenden (2 r 1) 2 d Werte. Der Filter ist ein Gleichgewicht zwischen einem Medianfilter und einem mittleren Filter. Der alpha-getrimmte Mittelfilter kann in der Vorlage implementiert werden. Als weiteres Beispiel ist der bilaterale Filter der Wissenschaftler und Ingenieur-Leitfaden zur digitalen Signalverarbeitung Von Steven W. Smith, Ph. D. Kapitel 25: Spezielle Imaging-Techniken Morphologische Bildverarbeitung Die Identifikation von Objekten innerhalb eines Bildes kann eine sehr schwierige Aufgabe sein. Eine Möglichkeit, das Problem zu vereinfachen, besteht darin, das Graustufenbild in ein binäres Bild zu verwandeln. In denen jedes Pixel auf einen Wert von entweder 0 oder 1 beschränkt ist. Die Techniken, die auf diesen Binärbildern verwendet werden, gehen durch solche Namen wie: Blob-Analyse. Konnektivitätsanalyse Und morphologische Bildverarbeitung (aus dem griechischen Wort morph, Sinne Form oder Form). Das Fundament der morphologischen Verarbeitung ist im mathematisch rigorosen Bereich der Satztheorie, aber dieses Niveau der Raffinesse ist selten erforderlich. Die meisten morphologischen Algorithmen sind einfache logische Operationen und sehr ad hoc. Mit anderen Worten, jede Anwendung erfordert eine benutzerdefinierte Lösung, die durch Trial-and-Error entwickelt wurde. Das ist meist mehr Kunst als eine Wissenschaft. Eine Tasche von Tricks wird anstelle von Standardalgorithmen und formalen mathematischen Eigenschaften verwendet. Hier sind einige Beispiele. Abbildung 25-10a zeigt ein Beispiel-Binärbild. Dies könnte ein feindlicher Panzer in einem Infrarotbild, ein Asteroid in einer Raumphotographie oder ein vermuteter Tumor in einem medizinischen Röntgenbild darstellen. Jedes Pixel im Hintergrund wird als weiß dargestellt, während jedes Pixel im Objekt als schwarz dargestellt wird. Häufig werden Binärbilder gebildet, indem ein Graustufenbildpixel mit einem Wert größer als ein Schwellenwert auf 1 gesetzt wird, während Pixel mit einem Wert unterhalb des Schwellenwerts auf 0 gesetzt sind. Es ist üblich, daß das Graustufenbild mit linearen Techniken verarbeitet wird Vor dem Schwellenwert. Beispielsweise kann die Beleuchtungsabflachung (wie in Kapitel 24 beschrieben) oft die Qualität des anfänglichen Binärbildes verbessern. Die Figuren (b) und (c) zeigen, wie das Bild durch die beiden häufigsten morphologischen Operationen, Erosion und Dilatation verändert wird. Bei der Erosion wird jedes Objektpixel, das ein Hintergrundpixel berührt, in ein Hintergrundpixel geändert. Bei der Dilatation wird jedes Hintergrundpixel, das ein Objektpixel berührt, in ein Objektpixel geändert. Erosion macht die Objekte kleiner und kann ein einzelnes Objekt in mehrere Objekte brechen. Dilation macht die Objekte größer und kann mehrere Objekte zu einem zusammenführen. Wie in (d) gezeigt, ist die Öffnung als Erosion, gefolgt von einer Dilatation, definiert. Abbildung (e) zeigt den entgegengesetzten Vorgang des Schließens. Definiert als Dilatation, gefolgt von einer Erosion. Wie durch diese Beispiele veranschaulicht, entfernt das Öffnen kleine Inseln und dünne Filamente von Objektpixeln. Ebenso schließt das Schließen die Inseln und die dünnen Filamente der Hintergrundpixel. Diese Techniken sind nützlich für die Bearbeitung von lärmenden Bildern, bei denen einige Pixel den falschen Binärwert haben. Zum Beispiel könnte man wissen, dass ein Objekt kein Loch enthalten kann oder dass die Objektgrenze glatt sein muss. Abbildung 25-11 zeigt ein Beispiel für die morphologische Verarbeitung. Abbildung (a) ist das binäre Bild eines Fingerabdrucks. Es wurden Algorithmen entwickelt, um diese Muster zu analysieren, so dass einzelne Fingerabdrücke mit denen in einer Datenbank übereinstimmen können. Ein gemeinsamer Schritt in diesen Algorithmen ist in (b) gezeigt, eine Operation namens Skeletonisierung. Dies vereinfacht das Bild durch das Entfernen von redundanten Pixeln, die die entsprechenden Pixel von schwarz nach weiß ändern. Dies führt dazu, dass jeder Ridge in eine Linie nur ein einziges Pixel breit wird. Die Tabellen 25-1 und 25-2 zeigen das Skelettierungsprogramm. Obwohl das Fingerabdruckbild binär ist, wird es in einem Array gehalten, wo jedes Pixel von 0 bis 255 laufen kann. Ein schwarzes Pixel wird mit 0 bezeichnet, während ein weißes Pixel mit 255 bezeichnet ist. Wie in Tabelle 25-1 gezeigt, Algorithmus besteht aus 6 Iterationen, die allmählich die Kämme in eine dünne Linie erodieren. Die Anzahl der Iterationen wird durch Versuch und Irrtum gewählt. Eine Alternative wäre zu stoppen, wenn eine Iteration keine Änderungen vornimmt. Während einer Iteration wird jedes Pixel im Bild ausgewertet, um abnehmbar zu sein, dass das Pixel einen Satz von Kriterien erfüllt, um von Schwarz zu Weiß geändert zu werden. Zeilen 200-240 Schleife durch jedes Pixel in das Bild, während die Subroutine in Tabelle 25-2 die Auswertung macht. Wenn das betrachtete Pixel nicht abnehmbar ist, tut das Unterprogramm nichts. Wenn das Pixel entfernt werden kann, ändert das Subroutine seinen Wert von 0 auf 1. Dies zeigt an, dass das Pixel noch schwarz ist, aber am Ende der Iteration wechselt. Nachdem alle Pixel ausgewertet worden sind, ändern die Zeilen 260-300 den Wert der markierten Pixel von 1 auf 255. Dieser zweistufige Prozess führt dazu, dass die dicken Rippen aus allen Richtungen gleichermaßen erodiert werden, anstatt ein Muster auf der Grundlage der Zeilen Und Spalten werden gescannt. Die Entscheidung, ein Pixel zu entfernen, basiert auf vier Regeln, wie sie in der in Tabelle 25-2 gezeigten Unterroutine enthalten sind. Alle diese Regeln müssen erfüllt sein, damit ein Pixel von schwarz nach weiß geändert werden kann. Die ersten drei Regeln sind ziemlich einfach, während die vierte ziemlich kompliziert ist. Wie in Fig. 25-12a, ein Pixel an der Stelle R, C hat acht Nachbarn. Die vier Nachbarn in horizontaler und vertikaler Richtung (mit 2,4,6,8 bezeichnet) werden häufig als enge Nachbarn bezeichnet. Die diagonalen Pixel (markiert 1,3,5,7) werden entsprechend den entfernten Nachbarn genannt. Die vier Regeln sind wie folgt: Regel eins: Das betrachtete Pixel muss derzeit schwarz sein. Wenn das Pixel bereits weiß ist, muss keine Aktion ergriffen werden. Regel 2: Mindestens einer der Pixel schließt Nachbarn muss weiß sein. Dadurch wird sichergestellt, dass die Erosion der dicken Rippen von außen erfolgt. Mit anderen Worten, wenn ein Pixel schwarz ist und es vollständig von schwarzen Pixeln umgeben ist, soll es auf dieser Iteration allein gelassen werden. Warum nur die Nachbarn benutzen Anstatt alle Nachbarn Die Antwort ist einfach: Das Ausführen des Algorithmus auf beiden Weisen zeigt, dass es besser funktioniert Denken Sie daran, dies ist sehr häufig in morphologischen Bildverarbeitung Versuch und Fehler verwendet wird, um zu finden, wenn eine Technik besser als eine andere führt. Regel drei: Das Pixel muss mehr als einen schwarzen Nachbar haben. Wenn es nur eins hat, muss es das Ende einer Linie sein und sollte daher nicht entfernt werden. Regel vier: Ein Pixel kann nicht entfernt werden, wenn es dazu führt, dass seine Nachbarn getrennt sind. Dies ist so, dass jeder Kamm in eine durchgehende Linie verwandelt wird, nicht eine Gruppe von unterbrochenen Segmenten. Wie aus den Beispielen in Fig. 25-12, verbunden bedeutet, dass alle schwarzen Nachbarn einander berühren. Ebenso bedeutet unverbunden bedeutet, dass die schwarzen Nachbarn zwei oder mehr Gruppen bilden. Der Algorithmus zum Bestimmen, ob die Nachbarn verbunden oder nicht verbunden sind, basiert auf dem Zählen der Schwarz-Weiß-Übergänge zwischen benachbarten benachbarten Pixeln im Uhrzeigersinn. Wenn beispielsweise Pixel 1 schwarz ist und Pixel 2 weiß ist, wird es als Schwarz-Weiß-Übergang betrachtet. Ebenso, wenn Pixel 2 schwarz ist und beide Pixel 3 und 4 weiß sind, ist dies auch ein Schwarz-Weiß-Übergang. Insgesamt gibt es acht Standorte, an denen ein Schwarz-Weiß-Übergang stattfinden kann. Um diese Definition weiter zu veranschaulichen, haben die Beispiele in (b) und (c) ein Sternchen, das von jedem Schwarz-Weiß-Übergang platziert wird. Der Schlüssel zu diesem Algorithmus ist, dass es genau einen Schwarz-Weiß-Übergang gibt, wenn die Nachbarn verbunden sind. Mehr als ein solcher Übergang zeigt an, dass die Nachbarn nicht verbunden sind. Als zusätzliche Beispiele für die binäre Bildverarbeitung sollten die Arten von Algorithmen betrachtet werden, die nach dem Skelett des Fingerabdrucks nützlich sein könnten. Ein Nachteil dieses speziellen Skeletonisierungsalgorithmus ist, dass er eine beträchtliche Menge an Fuzz hinterlässt. Kurze Ableger, die von den Seiten der längeren Segmente haften. Es gibt verschiedene Ansätze zur Beseitigung dieser Artefakte. Zum Beispiel könnte ein Programm durch das Bild, das das Pixel am Ende jeder Zeile entfernt, durchlaufen. Diese Pixel werden mit nur einem schwarzen Nachbarn identifiziert. Tun Sie dies mehrmals und der Fuzz wird auf Kosten der Herstellung jeder der richtigen Linien kürzer entfernt. Eine bessere Methode würde durch die Bild-Identifizierung Zweig Pixel (Pixel, die mehr als zwei Nachbarn) Schleife durchlaufen. Beginnend mit jedem Zweigpixel, zählen die Anzahl der Pixel in jedem Ableger. Wenn die Anzahl der Pixel in einem Ableger kleiner als ein Wert ist (sagen wir 5), deklariere es als Fuzz und ändere die Pixel im Zweig von schwarz nach weiß. Ein anderer Algorithmus könnte die Daten von einer Bitmap zu einem Vektor-abgebildeten Format ändern. Hierbei handelt es sich um die Erstellung einer Liste der im Bild enthaltenen Rippen und der in jedem Ridge enthaltenen Pixel. In der Vektor-abgebildeten Form hat jede Rippe im Fingerabdruck eine individuelle Identität, im Gegensatz zu einem Bild, das aus vielen nicht verwandten Pixeln besteht. Dies kann erreicht werden, indem man durch das Bild schaut, das nach den Endpunkten jeder Zeile sucht, die Pixel, die nur einen schwarzen Nachbar haben. Ausgehend vom Endpunkt wird jede Zeile vom Pixel zum verbindenden Pixel verfolgt. Nachdem das entgegengesetzte Ende der Zeile erreicht ist, werden alle verfolgten Pixel als ein einziges Objekt deklariert. Und in künftigen Algorithmen entsprechend behandelt.
Comments
Post a Comment