使用 Matlab,我想根據名稱將同一目錄中的影像移動到兩個新目錄中。
在目錄中有兩組影像'名稱:'neg-0.pgm'、'neg-1.pgm'、'neg-2.pgm'、...和'pos-0.pgm'、'pos -1.pgm', 'pos-2.pgm', ...
我嘗試了不同的功能來更改影像目錄,但無法成功進行操作。
我的代碼是:
if not(exist('./CarDataset/TrainImages/PosImages', 'dir'))
mkdir ./CarDataset/TrainImages PosImages
end
if not(exist('./CarDataset/TrainImages/NegImages', 'dir'))
mkdir ./CarDataset/TrainImages NegImages
end
trainIm = dir('./CarDataset/TrainImages/*.pgm');
for i = 1:size(trainIm, 1)
if(strcmp(trainIm(i).name, 'neg*.pgm'))
save(fullfile('./CarDataset/TrainImages/NegImages', ['neg-' num2str(i) '.pgm']))
end
end
我沒有收到任何錯誤,但新目錄仍然是空的。
uj5u.com熱心網友回復:
我認為有兩個問題正在發生:
1 -strcmp在 if 陳述句中使用通配符 (*) 可能無法正常作業
2 - 使用movefile而不是save.
https://www.mathworks.com/help/matlab/ref/movefile.html
請參閱以下代碼(在創建新目錄后使用):
origDir = './CarDataset/TrainImages/';
trainIm = dir([origDir '*.pgm']);
for i = 1:size(trainIm, 1)
origFile = trainIm(i).name;
if contains(trainIm(i).name, 'neg'))
newDir = './CarDataset/TrainImages/NegImages/';
else
newDir = './CarDataset/TrainImages/PosImages/';
end
movefile([origDir trainIm(i).name], newDir);
end
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/389991.html
