Ich arbeite an einem Algorithmus (in MATLAB), der Hu-Momente von überlappenden Blöcken in einem Bild finden muss. Ich konvertiere das Bild in der Spaltenmatrix (im2col (..., 'gleitend')) und berechne dann Hu-Moments für jede Spalte einzeln. Für die Berechnung der Hu-Momente für die Blöcke eines Bildes von 512X512 dauert mein System 14-15 Minuten. Code ist wie unten angegeben:Leistungsprobleme beim Auffinden von Hu-Momenten überlappender Blöcke in Bild
d=im2col(A,[m n],'sliding');
[mm nn]=size(d);
for j=1:nn
d_temp=d(:,j);
d_pass_temp=col2im(d_temp,[n n], [n n], 'distinct');
[mn_t vr_t]=new_hu_moment(d_pass_temp);
[mn]=[mn mn_t];
[vr]=[vr vr_t];
end
‚new_hu_moment‘ ist meine eigene gemacht Funktion Mittelwert und die Varianz von hu Momente für den jeweiligen Block zurück.
Meine Systemkonfiguration ist I3-Prozessor mit 6 GB RAM.
- schlagen Sie bitte für die Leistungssteigerung dieses Codes vor.
- Gibt es irgendeine Funktion in Matlab, die 7 Hu-Momente für überlappende Blöcke berechnen kann.