最近GMS更新后,.dm3图像文件的Matlab导入被破坏

时间:2018-02-08 17:53:12

标签: matlab import export dm-script

我正在尝试使用Sigworth的Matlab脚本读取dm3文件(找到ReadDMFile.m here

脚本尝试提取这些标记:

  • 'ImageList 2 ImageData Calibrations Dimension 1 Scale'
  • 'ImageList 2 ImageData Calibrations Dimension 1 Units'
  • 'ImageList 2 ImageData Dimensions 1'
  • 'ImageList 2 ImageData Dimensions 2'
  • 'ImageList 2 ImageData Dimensions 3'
  • 'ImageList 2 ImageData Data'

但是应该包含结果的单元格('output')是空的。

在GMS3获得更新(安装新库)之前不久,同一个脚本在读取由相同硬件记录并保存在同一台机器上的dm3文件时没有问题。因此,我怀疑问题在于安装而不是脚本。

2 个答案:

答案 0 :(得分:1)

这听起来更像是 Matlab 问题,而不是 DM-scripting 问题。如果软件版本发生了变化,并且更改了文件格式,则 DM-scripting 中没有任何内容可以为您修复文件。

但是,您可以考虑采用相反的方式和

  • 让DM 以matlab可读格式导出数据
  • 或者让DM 导出数据采用matlab脚本可以读取的中间格式。

这两个选项都是' DM-scripts'。可能最简单的中间格式是"仅限数据"格式只包含数据值而没有元信息。元信息可以单独保存。用于将图像保存在"仅数据中的脚本"很简单:

image img := GetFrontImage()
string path = "C:\\filename"
if ( !SaveAsDialog( NULL, "Please choose a saving location.", path, path ) ) exit(0)

img.SaveAsRawData( path )
Result( "\nFile saved as: " + path + ".dat" )

答案 1 :(得分:0)

在研究"如何修复"在Matlab脚本中,比较作为标签结构加载的两个图像(工作/不工作)可能会有所帮助。

DM图像就像任何TagGroup一样是TagStructure。找到元信息"一个层次结构层"当你看图像标签时你正常得到的东西。

以下脚本显示如何将DM图像作为tagGroup打开:

if (UIApplication.sharedApplication().canOpenURL(NSURL(string:"comgooglemaps://")!)) {
        UIApplication.sharedApplication().openURL(NSURL(string:
            "comgooglemaps://?saddr=\(fromLatitude),\(fromLongitude)&daddr=\(toLatitude),\(toLongitude)&directionsmode=driving")!)
    }else{
        showAlert()
    }

string path = "C:\\test.dm3" if ( !OpenDialog( NULL, "Please select the file.", path, path ) ) exit(0) TagGroup tg = NewTagGroup() if ( tg.TagGroupLoadFromFile( path ) ) tg.TagGroupOpenBrowserWindow( path, 0 ) 格式将值存储在具有数据排序的图像的数据类型中:

data-only

即。 "逐行",然后"逐个平面",并因此获得更高的尺寸。