Ich habe diese Funktion, die den Wert des Binärmusters eines 3*3-Blocks berechnet, der sich aus der Schwellenwertbildung der 8 umgebenden Pixel mit dem Zentralpixel ergibt, und zwei Ausgaben zurückgibt: den Dezimalwert des Binärcodes, den gleichen Dezimalwert, wenn er einheitlich ist, oder 59, wenn nicht.
function [out1, out2] = lbpblock(im)
%... Implementierungsdetails
out1 = dezimal;
out2 = einheitlich;
end
Das Problem tritt auf, wenn versucht wird, blockproc wie folgt zu verwenden
Ergebnis = blockproc(im,[3 3],@lbpblock);
Das Ergebnisarray hat nur zwei Dimensionen (z. B. 85*85) und enthält nur die erste Ausgabe.
Als ich versuchte
[res1 res2] = blockproc(im,[3 3],@lbpblock);
Erhalte ich die Fehlermeldung "Fehler bei der Verwendung von ==> blockproc Zu viele Ausgabeargumente".
Ich versuchte, die Funktionssignatur zu ändern
function out = lbpblock(im)
%... Implementierungsdetails
out = [dezimal, einheitlich];
end
Das Ergebnisarray hat wieder nur zwei Dimensionen, jetzt jedoch (85*170), wobei die erste Ausgabe in ungeraden Spalten und die zweite in geraden gespeichert wird.
Gibt es einen Trick, um blockproc dazu zu bringen, das Ergebnis in einem 85*85*2-Array zu speichern??