【问题标题】:Overlay timestamps on many images in MATLAB在 MATLAB 中的许多图像上叠加时间戳
【发布时间】:2015-03-28 12:48:51
【问题描述】:

我有 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 个图像。任何人都知道如何做到这一点?

【问题讨论】:

  • 我不明白。你想在每张图片的左上角叠加一个文本时间戳吗?还是您希望时间戳为 xlabel ?将时间戳放在XTick 中毫无意义...
  • 我想把它叠加在每张图像的左上角或右上角或顶部中心。所以XTick 没有意义,正确。所以我真的不知道该怎么做。
  • 好的,如果没有人更快的话,我会在今天晚些时候发布答案(我现在在手机上)。
  • 同时,我也会尝试一些其他的东西。谢谢

标签: matlab image-processing matlab-cvst


【解决方案1】:

这是一个使用 datestr 的解决方案,最值得注意的是,insertText(来自计算机视觉系统工具箱)几乎可以完成所有工作:

% --- 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

结果:

【讨论】:

  • 这看起来很有趣。我不在办公室了,所以我无法测试代码。我将在星期一早上回复你。感谢您的关注。
  • 一切正常。再次感谢您的帮助。干杯
猜你喜欢
  • 1970-01-01
  • 2011-11-04
  • 2013-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多