使用Matlab确定照片拍摄的准确时间

使用Matlab确定照片拍摄的准确时间,matlab,Matlab,我有一个精确性的问题。 我在一次实验中拍摄了许多照片。我想记下这张照片拍摄的时间。要获取我正在使用的文件信息,请执行以下操作: fileinfo = dir('myfile.jpg') fileinfo = name: 'myfile.jpg' date: '16-Mar-2006 13:34:01' %My problem is here!! bytes: 251 isdir: 0 datenum: 7.3275e+005 这些照片是快速连续拍摄的,我希望得到小数精度

我有一个精确性的问题。 我在一次实验中拍摄了许多照片。我想记下这张照片拍摄的时间。要获取我正在使用的文件信息,请执行以下操作:

fileinfo = dir('myfile.jpg')

fileinfo = 
   name: 'myfile.jpg'
   date: '16-Mar-2006 13:34:01' %My problem is here!!
  bytes: 251
  isdir: 0
datenum: 7.3275e+005
这些照片是快速连续拍摄的,我希望得到小数精度,但Matlab将其四舍五入到最接近的秒。 你知道如何获得类似于
13:34:01.34
的东西吗。
datenum
是否更准确?谢谢你的一些建议

  • 绘制所有照片的
    datenum
    值,看看是否有意义

    >> fls = dir( '*.jpg' ); % list all files
    >> plot( [fls(:).datenum], '-+'); % see if all images has unique datenum
    
  • 您可能在中存储了其他信息


  • 您是否尝试过使用命令
    imfinfo
    而不是
    dir
    返回的信息
    imfinfo
    返回一个包含图像文件的EXIF数据的结构,我相信该结构在
    ImageModTime
    字段中包含了关于图像拍摄时间的更详细信息


    在旧版本的MATLAB中,使用命令
    exifread
    而不是
    imfinfo

    日期数是否更准确?当然可能,您是否尝试过从
    fileinfo
    结构中提取它并更仔细地检查它?我有@HighPerformanceMark,但当我将其转换回datevector格式(我可以理解)时,它仍然没有精确度Matlab datevec的秒组件包括一个小数部分。如果在将datenum转换为datevec时,秒的小数部分等于0,则表明您所寻求的亚秒精度无法从jpg文件中获得。@HighPerformanceMark在Picasa 3中有一个“修改的日期”具有亚秒精度,而“文件日期”不具有亚秒精度。我怀疑是
    dir
    返回的文件日期。如果是这种情况,是否仍有方法获取修改的日期?我认为
    fileinfo.datenum
    是来自o/s的文件日期/时间,取决于o/s和文件系统的精度。我不知道那可能是什么。我也不知道jpeg中的元数据是否包括以亚秒分辨率创建图像的时间。但是格式是有很好的文档记录的,我相信谷歌搜索一下会帮你回答这个问题。谢谢。我接受了你的建议,但这些文件没有唯一的datenum@user1002744-如果是这种情况,则两次放炮之间的时间间隔似乎小于当时的机器精度。如果有更准确的信息,请检查exif数据。imfinfo当然有更多的信息,但它仍然不是十进制精度。我看得更深一点-我认为可能有一种方法可以修改
    imfinfo
    的内部结构,更改对
    datestr
    的某些调用的输出格式。不幸的是,当您进一步深入研究时,您发现,
    imfinfo
    返回的信息是由mex文件
    matlabroot\toolbox\matlab\imagesci\private\imjpg8.mexw64
    收集的,该文件不可修改。很抱歉
    >> xif = exifread( 'myfile.jpg' )