Friday, 6 October 2017

Moving Average 2d Matlab


Dies ist eine sehr gute Funktionsdatei auf Matlab Central File Exchange. Diese Funktionsdatei ist total vektorisiert und daher sehr schnell. Plus, im Vergleich zu der Funktion, die in aioobes Antwort erwähnt wird, verwendet diese Funktion nicht die Akkumarray-Funktion, weshalb dies sogar mit älteren Versionen von Matlab kompatibel ist. Auch funktioniert es für Zellen-Arrays sowie numerische Arrays. LÖSUNG. Sie können diese Funktion in Verbindung mit der eingebauten Matlab-Funktion verwenden, einzigartig. Occurancecount wird ein numerisches Array mit der gleichen Größe wie das von unique (M) sein und die verschiedenen Werte des occurancecount Arrays entsprechen der Anzahl der entsprechenden Werte (gleicher Index) in eindeutig (M). Antwortete Sep 29 11 um 10:37 Dies wäre perfekt, weil wir die Operation auf Matrix tun, und die Antwort sollte eine einzige Nummer beantwortet werden 27. Juni 13 um 15:37 Verwenden Sie nnz anstelle von Summe. Keine Notwendigkeit für den Doppelruf, um Matrizen zu Vektoren zusammenzubrechen und es ist wahrscheinlich schneller als Summe. Beantwortet Aug 31 15 at 21:08 Deine Antwort 2017 Stack Exchange, IncThis 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 mittlere Filter kann in der Vorlage implementiert werden. Als ein anderes Beispiel ist der bilaterale FilterAdvanced Source Code. Com Klicke hier zum herunterladen. Die Iris jedes Auges ist einzigartig. Keine zwei Iris sind gleich in ihrem mathematischen Detail - auch zwischen identischen Zwillingen und Drillinge oder zwischen den eigenen linken und rechten Augen. Anders als die Netzhaut ist es jedoch aus der Ferne deutlich sichtbar und ermöglicht eine einfache Bilderfassung ohne Eindringen. Die Iris bleibt während der gesamten Lebensdauer stabil, mit seltener Krankheit oder Trauma. Die zufälligen Muster der Iris sind das Äquivalent eines komplexen quothumanischen Barcodes, der durch ein verworrenes Meshwork von Bindegewebe und anderen sichtbaren Merkmalen geschaffen wird. Der Iriserkennungsprozess beginnt mit der Video-basierten Bildaufnahme, die das Auge und die Iris lokalisiert. Die Grenzen der Pupille und der Iris sind definiert, die Augenlid-Okklusion und die spiegelnde Reflexion werden abgezinst, und die Qualität des Bildes wird für die Verarbeitung bestimmt. Das Irismuster wird verarbeitet und in einen Datensatz (oder quottemplatequot) codiert, der gespeichert und zur Erkennung verwendet wird, wenn eine Live-Iris zum Vergleich dargestellt wird. Die Hälfte der Informationen in der Aufzeichnung beschreibt digital die Merkmale der Iris, die andere Hälfte der Aufzeichnung steuert den Vergleich, eliminiert spiegelnde Reflexion, Augenlid droop, Wimpern, etc. Ein biometrisches System ermöglicht die automatische Identifizierung eines Individuums auf der Grundlage eines einzigartigen Merkmals Oder charakteristisch besessen vom Individuum. Iris-Erkennung gilt als das zuverlässigste und genaueste biometrische Identifizierungssystem. Die meisten kommerziellen Iriserkennungssysteme verwenden patentierte Algorithmen, die von Daugman entwickelt wurden, und diese Algorithmen sind in der Lage, perfekte Erkennungsraten zu erzeugen. Allerdings wurden die veröffentlichten Ergebnisse in der Regel unter günstigen Bedingungen produziert, und es gab keine unabhängigen Versuche der Technologie. Das Iriserkennungssystem besteht aus einem automatischen Segmentierungssystem, das auf der Hough-Transformation basiert und in der Lage ist, die kreisförmige Iris - und Pupillenregion zu lokalisieren, Augenlider und Wimpern zu verschließen und Reflexionen. Die extrahierte Irisregion wurde dann in einen rechteckigen Block mit konstanten Dimensionen normalisiert, um die Imaging-Inkonsistenzen zu berücksichtigen. Schließlich wurden die Phasendaten von 1D Log-Gabor-Filtern extrahiert und auf vier Ebenen quantisiert, um das einzigartige Muster der Iris in eine bitweise biometrische Schablone zu codieren. Die Hamming-Distanz wurde für die Klassifizierung von Iris-Schablonen verwendet, und es wurden zwei Vorlagen gefunden, wenn ein Test der statistischen Unabhängigkeit fehlgeschlagen ist. Das System wurde mit einer perfekten Erkennung auf einem Satz von 75 Augenbildern durchgeführt, aber Tests auf einem anderen Satz von 624 Bildern führten zu falschen Akzeptanz - und falschen Ausschussraten von 0,005 bzw. 0,238. Daher ist die Iriserkennung eine zuverlässige und genaue biometrische Technologie. Index Begriffe: Iris, Anerkennung, Verifikation, Gabor, Augenerkennung, Matching, Verifizierung. Abbildung 1. Iris-Bild Ein einfacher und effektiver Quellcode für Iris-Erkennung. Dieser Code basiert auf Libor Maseks hervorragende Implementierung hier. Libor Masek, Peter Kovesi. MATLAB Quellcode für ein biometrisches Identifikationssystem basierend auf Iris Patterns. Die Schule für Informatik und Software Engineering, die University of Western Australia, 2003. Unsere Umsetzung kann beschleunigen die Erkennung Prozess Reduzierung der Programmdurchführung Zeit von etwa 94 (mehr als 16 mal schneller). Weitere Optimierungen sind auf Anfrage möglich. Alle Tests wurden mit CASIA Iris Image Database durchgeführt, die unter cbsr. ia. ac. cnIrisDatabase. htm verfügbar ist.

No comments:

Post a Comment