2015-03-28 2 views
2

У меня есть 400 изображений, как следующий:наложения меток времени на многих изображениях в MATLAB

enter image description here

Я хочу, чтобы добавить метки для каждого изображения, так что я буду иметь 400 отметок времени в общей сложности. Каждая метка времени содержит часы, минуты и секунды («HHMMSS»).

Для Image1 => Timestamp1 ... Image400 => Timestamp400.

Я пытался использовать следующий код:

for i = 1:400 
    startDate = datenum('02-Nov-2013 13:30:06'); 
    endDate = datenum('02-Nov-2013 13:30:51'); 
    xdate = linspace(startDate,endDate,400); 
    ... code to generate image 
    set(gca,'XTick',xdate); 
    datetick('x','HHMMSS'); 
end 

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

+0

Я не понимаю. Вы хотите наложить текстовую метку времени, скажем, на верхний левый угол каждого изображения? Или вы хотите, чтобы метка времени была «xlabel»? Установка временных меток в 'XTick' не имеет смысла ... – Ratbert

+0

Я хочу наложить его на верхний левый угол или верхний правый угол или верхнюю часть каждого изображения. Так что 'XTick' не имеет смысла, правильно. Поэтому я действительно не знаю, как это сделать. – Bowecho

+0

Хорошо, я опубликую ответ позже сегодня (сейчас я нахожусь на моем телефоне), если никто не будет быстрее. – Ratbert

ответ

4

Вот решение с datestr и, в первую очередь, insertText (от компьютерной системы видения Toolbox), что делает в значительной степени все работы:

% --- Get date list 
startDate = datenum('02-Nov-2013 13:30:06'); 
endDate = datenum('02-Nov-2013 13:30:51'); 
xdate = linspace(startDate,endDate,400); 

for i = 1:numel(xdate) 

    % --- Code to generate image 
    Img = imread('test.jpg'); 

    % --- Insert timestamp 
    s = datestr(xdate(i), 'HH:MM:SS'); 

    Res = insertText(Img, [0 0], s, 'AnchorPoint','LeftTop', ... 
     'BoxColor', 'white', 'fontsize', 40); 

    % --- Display and break (to remove) 
    imshow(Res) 
    break; 

end 

и результат:

enter image description here

+0

Это выглядит интересно. Я больше не в офисе, поэтому я не могу проверить код. Я собираюсь вернуться к вам в понедельник утром. Спасибо за ваш интерес. – Bowecho

+0

Все работает хорошо. Спасибо еще раз за помощь. ура – Bowecho

Смежные вопросы