How to solve this batch process error: "Error using movefile The process cannot access the file because it is being used by another process" ?
Mostrar comentarios más antiguos
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
Respuesta aceptada
Más respuestas (0)
Categorías
Más información sobre Other Formats en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!