在 MATLAB 中的许多图像上叠加时间戳

Overlay timestamps on many images in MATLAB

我有 400 张像下面这样的图片:

我想为每个图像添加时间戳,所以总共有 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 

但很明显它不起作用,因为我得到了沿 x 轴的时间戳,我希望每个图像都有一个时间戳,最多 400 张图像。任何人都知道如何做到这一点?

这是一个 datestr and, most notably, insertText 的解决方案(来自 Computer Vision System 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

结果: