Using Matlab apps sequentially in a loop
이전 댓글 표시
I'd like to use different Matlab apps in a loop where the loop waits for the application to finish. A specific example would be to review and threshold images in a directory using the imageSegmenter app. Something like:
files = dir('*.bmp');
for f=1:length(files)
im = imread(files(f).name);
BW = [];
imageSegmenter(im);
if ~isempty(BW)
% Save the mask.
end
end
But, if I have 10 images in the directory, that will spawn 10 instances of imageSegmenter. With many images, this is simply impractical.
I've looked at uiwait and waitfor, but these do not work with apps (as best I can tell). Putting pause(0) after the call doesn't help either.
Any help or ideas here would be greatly appreciated. Thanks in advance.
답변 (1개)
Walter Roberson
2019년 8월 31일
Are Matlab apps designed to be essentially autonomous?
Yes, they create new non-modal GUI figures, and like any other MATLAB figures, they work on callbacks.
Why can one not get some handle on them to allow execution of something - i.e., scripts - to wait until completion.
You can, for some of them, if you know what you are looking for.
set(groot, 'Showhiddenhandles', true);
fig = findobj(groot, 'name', 'Segmentation');
Now you can waitfor(fig) . This does, however, require that you close the app each time
카테고리
도움말 센터 및 File Exchange에서 Startup and Shutdown에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!