Verfasst am: 01.04.2009, 17:42
Titel: Probleme mit medfilt2
Guten Abend,
ich habe die Aufgabe lokale Operatoren im Matlab darzustellen. Genauer gesagt soll ich die Glättung darstellen, ich nehme an es geht in erster Linie um Rauschunterdrückung.
Dazu habe ich mal ein Bild eingelesen, ein Rauschen darübergelegt um dann die verschiedenen Filter anzuwenden.
Wenn es wahr ist habe ich einen Gauß und einen Mittelwerfilter bereits umgesetzt, der Medianfilter bereitet mir jedoch Probleme.
Original=imread('FHTW.jpg'); %Öffnen des Bildes
Rauschen = imnoise(Original, 'salt & pepper',0.02);%gaussian'); %Einbringen von Rauschen in das Bild
figure %Erstellen eines Ausgabefensters
subplot(2,2,1); %Unterteilen des Ausgabefensters in 2x2 Matrix, erste Position
image(Original);title('Originalbild'); %Ausgabe des Bildes und Betitelung
subplot(2,2,2); %zweite Position im unterteilten Fenster
image(Rauschen);title('verrauschtes Bild'); %Ausgabe des Bildes und Betitelung
Gauss3x3_05 = fspecial('gaussian'); %Filter nach Gauß mit 3x3 Matrix und Varianz von 0,5
Gauss7x7_1 = fspecial('gaussian',7,1); %Filter nach Gauß mit 7x7 Matrix und Varianz von 1
Gefiltert3x3_05 = imfilter(Rauschen, Gauss3x3_05); %Anwendung des Gaußfilters (3x3 Matrix) subplot(2,2,3); %dritte Position im unterteilten Fenster
image(Gefiltert3x3_05);title('gefiltertes Bild nach Gauß 3x3'); %Ausgabe des gefilterten Bild
Gefiltert7x7_1 = imfilter(Rauschen, Gauss7x7_1); %Anwendung des Gaußfilters (7x7 Matrix) subplot(2,2,4); %vierte Position im unterteilten Fenster
image(Gefiltert7x7_1);title('gefiltertes Bild nach Gauß 7x7'); %Ausgabe des gefilterten Bild
figure %Erstellen eines Ausgabefensters
subplot(2,2,1); %Unterteilen des Ausgabefensters in 2x2 Matrix, erste Position
image(Original);title('Originalbild'); %Ausgabe des Bildes und Betitelung
subplot(2,2,2); %zweite Position im unterteilten Fenster
image(Rauschen);title('verrauschtes Bild'); %Ausgabe des Bildes und Betitelung
GefiltertMittel3x3 = imfilter(Rauschen, Mittel3x3); %Anwendung des Mittelwertfilters (3x3 Matrix) subplot(2,2,3); %dritte Position im unterteilten Fenster
image(GefiltertMittel3x3);title('gefiltertes Bild nach Mittelwert 3x3'); %Ausgabe des gefilterten Bild
GefiltertMittel7x7 = imfilter(Rauschen, Mittel7x7); %Anwendung des Mittelwertfilters (7x7 Matrix) subplot(2,2,4); %vierte Position im unterteilten Fenster
image(GefiltertMittel7x7);title('gefiltertes Bild nach Mittelwert 7x7'); %Ausgabe des gefilterten Bild
figure %Erstellen eines Ausgabefensters
subplot(2,2,1); %Unterteilen des Ausgabefensters in 2x2 Matrix, erste Position
image(Original);title('Originalbild'); %Ausgabe des Bildes und Betitelung
subplot(2,2,2); %zweite Position im unterteilten Fenster
image(Rauschen);title('verrauschtes Bild'); %Ausgabe des Bildes und Betitelung
GefiltertMedian = medfilt2(J,'symmetric'); %Anwendung des Mittelwertfilters (3x3 Matrix) subplot(2,2,3); %dritte Position im unterteilten Fenster
image(GefiltertMedian);title('gefiltertes Bild nach Median 3x3'); %Ausgabe des gefilterten Bild
GefiltertMedian7x7 = medfilt2(Rauschen); %Anwendung des Mittelwertfilters (7x7 Matrix) subplot(2,2,4); %vierte Position im unterteilten Fenster
image(GefiltertMedianl7x7);title('gefiltertes Bild nach Median 7x7'); %Ausgabe des gefilterten Bild
??? Error using ==> iptcheckinput
Function ORDFILT2 expected its first input, A, to be two-dimensional.
Error in ==> ordfilt2>ParseInputs at 135
iptcheckinput(A, {'numeric','logical'}, {'2d','real'}, mfilename, 'A', 1);
Error in ==> ordfilt2 at 51
[A,order,domain,s,padopt,msg] = ParseInputs(varargin{:});
Error in ==> medfilt2 at 53
b = ordfilt2(a, order, domain, padopt);
Error in ==> gaussian at 68
GefiltertMedian = medfilt2(J,'symmetric'); %Anwendung des Mittelwertfilters (3x3
Matrix)
wäre sehr dankbar wenn mir jemand helfen könnte!
mfg Schafscherer
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 06.04.2009, 13:08
Titel:
Hallo,
medfilt2 erwartet eine 2D-Matrix als Eingabe. Wenn das Eingabebild z.B. ein RGB-Farbbild (3D) ist, dann gibt MATLAB die beschriebene Fehlermeldung aus. In diesem Fall vor der Filterung das Bild in ein Grauwertbild umwandeln (mit z.B. rgb2gray).
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
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.