私は次のMATLABコードを持っています:
files = dir(fullfile(matlabroot,'toolbox','semjudge',bpic,'*.png'));
nFiles = numel(files);
combos = nchoosek(1:nFiles, 2);
index = combos(randperm(size(combos, 1)), :);
picture1 = files(index(nRep,1)).name;
picture2 = files(index(nRep,2)).name;
image1 = fullfile(matlabroot,'toolbox','semjudge',bpic,picture1);
image2 = fullfile(matlabroot,'toolbox','semjudge',bpic,picture2);
subplot(1,2,1); imshow(image1);
subplot(1,2,2); imshow(image2);
指定されたディレクトリ内の画像ファイルをランダム化し、画面に表示します。ただし、2つの問題があります。
1)画像ファイルの数が非常に多いので、被写体ごとに3〜4ブロックに分割したいと思います。どうすればこれを行うことができますか?すべてのブロックの過程で、可能なすべての画像ペアが必要になるため、異なるディレクトリからそれらをプルすることはできません。これをMATLABでブロックに分割する方法がわかりません。
2)プログラムを実行するたびに、写真は同じ順序で表示されますか?なぜこれが起こるのですか?完全にランダムなはずですよね?