Ich verwende Matlab 2016a und verwende imopen auf einem 301x301x271 logischen Image. Beispielcode:Warum sind morphologische Operationen an 3D-Bildern in Matlab so langsam?
A = randi([0 1], 301, 301, 271);
A = logical(A);
se = strel('sphere',12);
tic;
A = imopen(A, se);
toc;
verstrichene Zeit 294,313918 Sekunden.
Verwenden aller 4 CPU-Kerne. Das Aufrufen desselben Codes innerhalb einer Funktion verwendet aus irgendeinem Grund nur einen Kern (600s).
function CreateExample()
...code...
end
das gleiche tun mit MITK (die im Grunde itkBinaryMorphologicalOpeningImageFilter nur verwendet) dauert weniger als 10 Sekunden.
Irgendwelche Ideen für Optimierungen? Gpuarray ist nicht möglich, weil es 3D ist.
Probieren Sie den Profiler, um herauszufinden, was so lange dauert. – flawr