Wie werden bewegte Fenster in MATLAB auf eine 2D-Matrix angewendet?

8

Ich mache Feature-Extraktion von einem Bild in Matlab. Ich muss zu diesem Zweck viele Funktionen über nXn-Fenster anwenden (zB um die Varianz über jedes 3X3-Fenster usw. zu finden) Gibt es eine einfache und effiziente Möglichkeit, dies in Matlab zu tun, außer das Schleifen der Matrix und das Sammeln der Fensterelemente jedes Mal? Für einige Funktionen konnte ich eine äquivalente Maske finden und sie mit filter2 anwenden, aber für viele andere habe ich keinen solchen Luxus (ein gutes Beispiel: Median eines 3X3 Fensters).
Was ich möchte ist etwas wie arrayfun, aber etwas, das für nXn-Fenster gilt, nicht einzelne Elemente.
Danke, Danke Sundar

    
sundar 25.03.2009, 14:36
quelle

1 Antwort

4

Wenn Sie die Bildverarbeitungs-Toolbox haben, können Sie blkproc verwenden, um nxm Blöcke Ihres Bildes mit benutzerdefinierten Funktionen zu verarbeiten. Hier ist ein Beispiel

%Vor%

Hinweis:

Ab der MATLAB 2009b Image Processing Toolbox wurde blkproc dekrektiert und durch blockproc ersetzt (siehe Abschnitt R2099b hier ). Die letzten beiden Zeilen könnten also wie folgt geändert werden:

%Vor%     
Azim 25.03.2009, 16:03
quelle