Сохранение в новый файл каждый раз - PullRequest
0 голосов
/ 17 сентября 2011

ранее я написал код для выполнения LBP.Проблема, с которой я сталкиваюсь, заключается в том, что мне нужны данные из гистограммы каждый раз, а не один и тот же файл.Как мне это сделать?Нужно некоторое руководство по этому.Код ниже тот, который я написал для LBP.

%% LBP
scale = 2.^[7 6 5; 0 -inf 4; 1 2 3]; 
for i=2:6:m-1
    for j=2:6:n-1
        for k=i:i+6
           for l=j:j+6
             J0=I2(i,j);
             I3(i-1,j-1)=I2(i-1,j-1)>J0;
             I3(i-1,j)=I2(i-1,j)>J0;
             I3(i-1,j+1)=I2(i-1,j+1)>J0; 
             I3(i,j+1)=I2(i,j+1)>J0;
             I3(i+1,j+1)=I2(i+1,j+1)>J0; 
             I3(i+1,j)=I2(i+1,j)>J0; 
             I3(i+1,j-1)=I2(i+1,j-1)>J0; 
             I3(i,j-1)=I2(i,j-1)>J0;
             LBP(i,j)=I3(i-1,j-1)*2^7+I3(i-1,j)*2^6+I3(i-1,j+1)*2^5+I3(i,j+1)*2^4+I3(i+1,j+1)*2^3+I3(i+1,j)*2^2+I3(i+1,j-1)*2^1+I3(i,j-1)*2^0;
           end
        end
        LBP=uint8(LBP);
        LBPv=reshape(LBP,1,size(LBP,1)*size(LBP,2));
        Hist=hist(LBPv,0:255);
        save('C:\Users\Lakshmen\Documents\MATLAB\HistInf','Hist');
    end
end

Ответы [ 2 ]

3 голосов
/ 18 сентября 2011

Вы можете создать переменную счетчика, которую вы увеличиваете каждый раз, когда вызываете функцию SAVE.Вы можете использовать этот счетчик для генерации имен файлов, добавляя его.

BASE_DIR = 'C:\Users\Lakshmen\Documents\MATLAB';

counter = 1;
for i=..
    for j=...
        Hist = hist(..);

        fname = sprintf('HistInf%03d.mat', counter);
        save(fullfile(BASE_DIR,fname), 'Hist');
        counter = counter + 1;
    end
end

В противном случае вы можете просто использовать целочисленный массив для сохранения значений на каждой итерации, а затем сохранить эту переменную в одном MAT-файле в конце..

1 голос
/ 18 сентября 2011

Лучший способ создания уникальных идентификаторов - это:

fname=sprintf('myalgo%i.mat',sum(floor(1000*clock))

Таким образом, идентификатор файла меняется каждую миллисекунду ...

Лучший AL

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...