WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Medianfilter

 

pia77

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.03.2014, 11:26     Titel: Medianfilter
  Antworten mit Zitat      
Hallo liebe Community,

ich steh grad mal wieder total auf der Leitung. Ich habe eine Matrix M mit der Größe 896x360, wobei sich die Zeilen auf die Entfernung beziehen und die Spalten auf die Höhe.
Jetzt möchte ich diese Matrix mittels eines Medianfilters glätten, und zwar nur über die Zeilen, und eine Entfernung über 6 km. Am Ende sollte wieder eine Matrix rauskommen, die für jede Höhe geglättete Entfernungswerte enthält.

Ich hab jetzt etwas recherchiert und die Funktion 'medfilt1' und 'medfilt2' gefunden. Bin mir jetzt aber nicht sicher, welche von den Beiden für mein Problem am besten passt. Ich hab zwar eine Matrix, was für medfilt2 sprechen würde, möchte aber nur über die Zeilen mitteln (medfilt1).

Vielleicht kann mir von euch profis einer weiterhelfen. Sorry, falls die Frage hier vielleicht unpassend erscheint.

Schönen Tag,
Pia


Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 13.03.2014, 19:35     Titel:
  Antworten mit Zitat      
Moin,

du kannst eine Matrix mit "reshape" in einen Vektor wandeln, filtern und wieder in eine Matrix zurück verwandeln. Beispiel:

Code:
I=imread('Farbtafel.tif');     %% muß 3-dimensional sein
figure; imshow(I)
I2=im2double(I);
[heigth,width,nchannels]=size(I2);
X=reshape(I2,[heigth*width,nchannels])';
A=[0 0 1;0 1 0;1 0 0];
Y=A*X;
IM=reshape(Y',[heigth width nchannels]);
figure; imshow(IM)


Musst nur für deinen Zweck den Code anpassen

Grüße - Hubertus
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.03.2014, 20:37     Titel:
  Antworten mit Zitat      
Hallo,

deinen Ansatz versteh ich nicht so wirklich.
Hätte es jetzt mal so probiert:

Code:

M = randn(896,360)*1.789; %meine Matrix
M_mean = medfilt1(M,6) %Medianfilter über 6 km
 


Aus Ergebnis bekomm ich zwar eine Matrix mit der gleichen Größe, bin mir jetzt aber nur nicht sicher, ob es so stimmt, oder ob ich eine Schleife darüber bauen sollte.

Danke für eure Hilfe.
Pia
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 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.