Überlappendes Schiebefenster über einem Bild mit blockproc oder im2col?

Ich muss mich bewerbendct2 zu kleinen Fenstern meines Bildes, vorzugsweise unter Verwendung eines überlappenden Fensters.

Ich habe herausgefunden, dass es in Matlab zwei Funktionen gibt, die dies ermöglichen könnenblockproc undim2col. Ich habe auch Probleme mit dem Verständnis und würde mich über eine Klarstellung freuen.

blockprocit @ kann meine Funktion in einem Schiebefenster mit dem @ implementiert werdBorderSize undTrimBorder Argumente

B = blockproc(A,[64,64],fun,'BorderSize',[5,5], 'TrimBorder', 'false');

Ich merke, dass dies einen Block von @ erstel[64 + 2*5, 64 + 2*5] und wendet die Funktion @ @fun auf jedem Block. Da ich aber nicht in meine Funktion gehen kann@funch kann beim Debuggen nicht sicher sein, ob dies das ist, was ich brauche. Ist mein oben genannter Code für das, was ich brauche, korrekt? Ich weiß, dass ich ein verkettetes Ergebnis in @ erhaltB aber es sollte sich auf einem überlappenden Kulissenstein befinden. Erreicht das, was ich brauche?

Die Sekunde istim2col. im2col(A,[m n],block_type) teilt den Block in m mal n Blöcke und ordnet sie in Spalten an, sodass jede Spalte ein Block ist. Wenn ja, wie wird die Überlappung kontrolliert? Und wenn jeder Block eine Spalte ist, kann ich das @ erfolgreich anwenddct2 Funktion für jede Spalte? Weil ich bezweifle, dass Vektoren als Eingabe verwendet werden?

Einige Klarstellung wäre sehr dankbar.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage