Salve ho un problema con Matlab:
Dopo aver scomporto con ffmpeg un video a 25 fps passo ogni singolo frame attraverso questo algoritmo:
for i=1:883 %mettete il numero di frame qui
nome=['image',num2str(i),'.bmp'];
nomesal=['sal',num2str(i),'.bmp'];
img=imread(nome);
% fate girare gbvs su img
map = gbvs(img); % map.master_map contains the actual saliency map
map_itti = ittikochmap(img); % map_itti.master_map contains the actual saliency map
%silencymap
imwrite(map_itti.master_map_resized,nomesal,'bmp'); % img ridava l'immagine stessa,master_map_resized è la silency map dell'immagine
end
e dal un singolo frame video riesco a salvare tramite imwrite la corrispondente mappa di calore in bianco e nero.
passando la mappa di calore b/n attraverso il secondo algoritmo:
img = imread('sal120.bmp');
map = gbvs(img);
map_itti = ittikochmap(img);
show_imgnmap( img , map );
riesco ad ottenere la mappa di calore a colori, il problema sorge al momento della scrittura dell'immagine ottenuta in quando non riesco a salvare(tramite imwrite) e ad iterare il processo per ogni frame con un ciclo for(come gia fatto in precedenza per i frame b/n).
Visto che per ogni video ottengo all'incirca 700/800 frame (30-40 secondi) vorrei sapere se fosse possibile passare tutte quante le mappe in b/n attraverso un algoritmo per ottenere lo stesso risultato che ottengo con show_imgnmap( img , map ); come alternativa a salvare a mano ogni singolo file (ho 8 video con una media di 500 frame ognuno sarebbero 4000 frame da salvare a mano e ci vorrebbe un'eternità)
grazie in anticipo