ich bin relaiver Anfänger und versuche gerade eine for-Schleife bei mir in Matlab durch Matrix Selektoren zu ersetzen, da ich gelesen habe dass Schleifen in Matlab sehr langsam sind und die Schleife auch eine gefühlte Ewigkeit zum ausführen braucht. Leider haut das nicht so ganz hin wie ich möchte.
Die Schleife schneidet aus einem Bild ein Teilstück aus und multipliziert es mit einer Filtermatrix und addiert das ganze wieder.
Hier die for Schleife:
Code:
for k= (ydelta+1) : (yimg-ydelta-1);
for l= (xdelta+1) : (ximg -xdelta-1);
tmpr=fltrkernel.*img((k-ydelta):(k+ydelta),(l-xdelta):(l+xdelta),1);
tmpg=fltrkernel.*img((k-ydelta):(k+ydelta),(l-xdelta):(l+xdelta),2);
tmpb=fltrkernel.*img((k-ydelta):(k+ydelta),(l-xdelta):(l+xdelta),3);
y=abs([sum(sum(tmpr)),sum(sum(tmpg)),sum(sum(tmpb))]);
fltrdimg(k,l,:)=y;
end end end
Jetzt vermute ich, dass "fltkernel" die falsch Dimension hat. Versuche es mit "fltrkernel(:, :, ones(1, 3))".
Gruß, Jan
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.