|
|
Rel. Extrema in einer Matrix detektieren |
|
Markus87 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.07.2011, 15:04
Titel: Rel. Extrema in einer Matrix detektieren
|
|
Hallo,
ich habe folgendendes Problem ich hab eine Matrix einer beliebigen Größe. Nun möchte ich die Werte die eine zu Große Abweichung von den umliegenden Werten der Matrix haben detektieren.
Bsp.: 3 3 3
3 10 3
2 3 4
Hier möchte ich die 10 als zu große Abweichung detektieren.
Vielen dank für Eure Hilfe
Markus
|
|
|
|
|
Sco |
Forum-Meister
|
|
Beiträge: 699
|
|
|
|
Anmeldedatum: 15.08.10
|
|
|
|
Wohnort: Dundee
|
|
|
|
Version: 2008a, 2010a
|
|
|
|
|
|
Verfasst am: 16.07.2011, 23:35
Titel:
|
|
Hallo,
leider fehlen bei deiner Frage genauere Angaben um dir zu Helfen. Wie definiert du "große" Abweichung. Ist die Differenz von 1, 5 , oder 10 groß. Weiterhin ist die Frage ob die Differenx nur in x- oder y-Richtung betrachtet werden soll. Oder vielleicht auch von der gesamten Nachbarschaft abhänig gemacht werden soll (4 oder 8 Nachbarn?). Ehe diese Fragen nicht geklärt sind ist es schwer zu helfen. Prinzipiell könntest du dr einmal die Hilfe der Befehle:
anschauen. Andere Ansätze wären ahnlich der Faltung bzw. Korellation, heisst wir bestimmen für jeden Punkt die gewünschten Nachbarn und führen dann unsere Rechenoperation aus. Dies müsste man dann aber wohl manuell umsetzen, was etwas aufwändiger wäre. Vielleicht kann man auch die in Matlab bereits implementierten Funktionen für die Faltung (conv, conv2, convn) irgendwie für dein Problem direkt verwenden um sich der manuellen Umsetzung zu entziehen?
MFG
Sco
|
|
|
Markus87 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 18.07.2011, 18:51
Titel:
|
|
|
|
|
Hallo,
ich habe mich jetzt etwas intensiver mit meinem Problem beschäftigt. Also um etwas konkretter zu werden. Aus einer bestimmten Anzahl von Bildern mit annährend konstantem Helligkeitswert (homogene Ausleuchtung) berechne ich die Varianz von Pixel zu Pixel, sodass ich eine Matrix bekomme. Ich erwarte dass in dieser Matrix sehr viele Werte mit einer kleinen Streuung vom Mittelwert und ein paar Werte mit einer großen Streuung zum Mittelwert befinden. Diese Werte die eine zu große Streuung haben sollten erkannt werden.
Ich nehme dazu nochmals eine Beispielmatrix:
Ich möchte nicht wie beschrieben die kleinen Abweichungen erkennen sondern z.B. hier die 2.545.
Ich besitze eine Image Processing Toolsbox und daher habe ich mit den Funktionen
imextendedmax
imregionalmax
beschäftigt. Mir ist nicht so ganz klar wie die Funktion imextendedmax(I,H) funktioniert.Welchen Einfluss hat die Angabe H gibt sie die realtive Abweichung zu den Umgebungspixeln an?
Für mein Problem wird es sicher ausreichen mit der 6 sigma Methode zu arbeiten Oder gibt es vllt noch eine besere Möglichkeit mit Filtern z.B. ?
Vielen Danke für die Unterstützung
Gruß Markus
|
|
|
Sco |
Forum-Meister
|
|
Beiträge: 699
|
|
|
|
Anmeldedatum: 15.08.10
|
|
|
|
Wohnort: Dundee
|
|
|
|
Version: 2008a, 2010a
|
|
|
|
|
|
Verfasst am: 18.07.2011, 22:00
Titel:
|
|
Hallo,
also es bleibt prizipiell die Frage was eine große Abweichung bzw. Varianz heisst. Kannst du eine Art Grenzwert festlegen dann ginge dies sehr einfach. Nehmen wir an der Grenzwert wäre eine Varianz von 1:
Ich weiss leider nicht was eine 6 Sigma Methode ist.
MFG
Sco
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 19.07.2011, 16:48
Titel: Re: Rel. Extrema in einer Matrix detektieren
|
|
HAllo Markus,
Du kannst per CONV2 jeden Punkt durch den Mittelwert der umgebenen Punkte ersetzen und den Abstand zum Orginalbild berechnen:
Soetwas bleibt aber immer tückisch. Z.B. können ein besonders hoher und ein besonders niedrieger Peak direkt nebeneinander liegen. Die 8-Umgebung ist deshalb empfindlich, und ich würde eine größere Umgebung bevorzugen.
Gruß, Jan
|
|
|
Markus87 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.07.2011, 19:36
Titel:
|
|
Hallo,
erstmal Danke für die Unterstützung.
Durch eine größer Filtermaske und Anhebung der IsPeak Grenze komme ich meiner gewünschten Erkennung schon recht nahe.
Das Problem ist:
Durch die kleine Filtermaske und der geringen Grenze von Ispeak werden die besonders Extremen Werte auf die Nachbarschaft übertragen. Sprich es wird ein Peak erkannt wo eigentlich keiner ist.
-->Eine automatische Anpassung von Ispeak wäre hier vllt noch Sinnvoll.
Viele Grüße
Markus
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|