How to solve this batch process error: "Error using movefile The process cannot access the file because it is being used by another process" ?
古いコメントを表示
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
採用された回答
その他の回答 (0 件)
カテゴリ
ヘルプ センター および File Exchange で Other Formats についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!