How to solve this batch process error: "Error using movefile The process cannot access the file because it is being used by another process" ?
Afficher commentaires plus anciens
I'm trying to run this code to batch process some image stacks. I get an error code in the end, when I try to rename each 'test.tif' file I get at the end of the second for loop using a movefile function. I want to rename them as test_1.tif, test_2.tif as they are being processed within the first for loop. When I run the code using the Image-BatchProcess App, I get an error message "Error using movefile The process cannot access the file because it is being used by another process". I am not able to figure out which process is still using the 'test.tif' file that I generate at the end of the second for loop. I'd appreciate any thoughts/help here.
Here is my code:
Image_folder= uigetdir;
Diff_stack_folder=uigetdir;
Image_Dir=dir([Image_folder '/*.tif']);
total_images=size(Image_Dir, 1);
for n= 1: total_images
filename= Image_Dir.name;
fid=fopen(filename);
info = imfinfo(filename);
num_images = numel(info);
for k = 1:num_images - 1
A = imread(filename, k, 'Info', info);
B = imread(filename, k + 1, 'Info', info);
Q = A - B;
imshow(Q, []);
imwrite(Q,'test.tif','WriteMode', 'append')
end
[~, f,ext] = fileparts(Image_Dir(n).name);
rename = sprintf('test_%d.tif',n);
movefile(Image_Dir(n).name, rename);
end
Réponse acceptée
Plus de réponses (0)
Catégories
En savoir plus sur Other Formats dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!