主题:【原创】利用Image J实现TIA(ser)和DM(dm3)TEM图片格式批量转换

浏览 |回复2 电梯直达
我不是龙哥
结帖率:
100%
关注:0 |粉丝:0
新手级: 新兵
我们拿到的透射电镜原始数据格式,主要是TIA拍摄的.ser(.emi为TIA内部格式,第三方软件较难读取)以及DM拍摄的dm3格式。对于dm3格式转成普通图片比较容易,因为新版DM已经免费,网上也还有各种旧版可以搜到。然而.ser格式对于部分同学可能还是比较麻烦,虽然也有TIA安装包和教程(鄙人也上传过,需要的可以自行查看),但是还是有部分人会装不上。

    那么还有没有其他软件可以实现将.ser直接转换成图片呢?当然是有的,那就是Image J。其实这也是一个功能强大的软件,可以添加各种插件,功能很多,我们利用它可以将.ser文件批量转为图片。下面介绍怎么使用Image J进行.ser文件读取和批量转换。

软件下载地址:https://imagej.nih.gov/ij/download.html

Image J软件下载页面,选择对应系统版本下载即可。



插件下载地址:https://imagej.nih.gov/ij/plugins/index.html#io
插件下载页面

对于我们处理dm3和ser文件,只需要下载TIA Reader就行了,其他插件可以自行探索。将下载的软件压缩包解压,把下载的TIA Reader插件复制到文件夹:ImageJ\plugins\Input-Output。此时直接运行Image J文件夹下的Image J.exe就可以打开软件:
Image J 软件主界面

可以看到Plugins->Input-Output下有了TIA Reader插件:
Input-Output下TIA Reader插件

利用TIA Reader便可以直接打开ser格式TEM图片:
Image J打开ser格式图片窗口,虽然没有标尺,但是窗口顶部有整张图片的尺寸信息,利用这个信息便可以添加标尺。

可以看到Image J还自带了dm3插件,因此也可以直接读取dm3格式TEM图片。下一步我们讲如何实现批量转换。批量转换需要添加另一个插件,该插件可以将文件夹下的ser和dm3文件同时转换为普通图片,名称为TEM_Ser_dm3_batch_convert.ijm,插件由github上IMBalENce发布,原地址:https://github.com/IMBalENce/EM-tool。部分愿意折腾的同学可以在文末获取该插件源码,将源码复制到文本文档中便可进行修改调试,然后将名称及后缀修改为TEM_Ser_dm3_Folder_Export.ijm,同样复制到文件夹ImageJ\plugins\Input-Output。不愿麻烦的直接下载(链接:https://pan.baidu.com/s/1gcCW2sW4_01knRis7Hvc3Q
提取码:2ueq 复制这段内容后打开百度网盘手机App,操作更方便哦),然后复制到对应文件夹,重启软件就可以看到该插件:
TEM_Ser_dm3_Folder_Export

好了,这回愉快地进行批量格式转换吧!点击插件后选择源文件夹和导出目标文件夹:
选择源文件夹和导出目标文件夹,可以复制目录填入

软件会自动完成转换,转换出的图片标尺信息在文件名末尾,为整图横向尺寸信息。如下图所示:
导出图片尺寸信息在文件名末尾,为整图尺寸

说明:试用过程发现转换为tif格式会出现图片衬度不对,即整图全黑。因此,此处给出的插件已经自行修改为导出jpg格式,如果需要其他格式请自行研究。

注意:如果数据中有EDS面扫和线扫,请将对应的文件先拿出再进行转换,否则插件会读取每个点的谱图造成速度缓慢,不过没有其他问题。

TEM_Ser_dm3_batch_convert插件源码:

// Batch convert TIA or Gatan dm3 image file to tiff
// by Zhou XU
// 2020/05/05
// at Monash Centre for Electron Microscopy
// Windows 10 Enterprise Ver. 1803
// ImageJ ver. 1.52p

List.setCommands;
if (List.get("TIA Reader")!="") {
    // Check to make sure TIA reader plugin is installed
    //open directory of images
    input = getDirectory("location where images are stored");
    output = getDirectory("Location for results");

    // determine number of Files of given FileFormat
    list = getFileList(input);
    ImgNumber=0;
    for (i=0; i<list.length; i=i+1) {
        if (endsWith(list, ".ser")) {
            ImgNumber=ImgNumber+1;
            filename = input + list;
            print(filename);
            run("TIA Reader", ".ser-reader...=filename");
 
            // get the pixel size and unit of image, TIA reader should have set the scale when import in
            getPixelSize (unit, pixelWidth, pixelHeight);
            imageWidth = getWidth();
            HFW = imageWidth * pixelWidth;
 
            filename_short = substring(list, 0, lastIndexOf(list, "."));
            exportFile = output + filename_short +"_HFW"+ HFW + unit + ".jpg";
            saveAs("JPEG", exportFile);
            run("Close All");
        }

        else if (endsWith(list, ".dm3")) {
        // for gatan dm3 files
        ImgNumber=ImgNumber+1;
        filename = input + list;
        print(filename);
        open(filename);
 
        // get the pixel size and unit of image, TIA reader should have set the scale when import in
        getPixelSize (unit, pixelWidth, pixelHeight);
        imageWidth = getWidth();
        HFW = imageWidth * pixelWidth;
 
        filename_short = substring(list, 0, lastIndexOf(list, "."));
        exportFile = output + filename_short +"_HFW"+ HFW + unit + ".jpg";
        saveAs("JPEG", exportFile);
        run("Close All");
        }
    }
}

else {

    Dialog.create("Error");
    Dialog.addMessage("TIA Reader plugin is not intalled, \nplease download and install from    \nhttps://imagej.nih.gov/ij/plugins/tia-reader.html \n ");
    //Dialog.addHelp("<html>https://imagej.nih.gov/ij/plugins/tia-reader.html");
    Dialog.show();

}

该帖子作者被版主 洪星二锅头10积分, 2经验,加分理由:非常好的教程贴,有利于TAI数据的个人化处理
为您推荐
洪星二锅头
结帖率:
100%
关注:0 |粉丝:0
新手级: 新兵
非常好的教程贴

我记得之前版里就有人咨询前FEI的TAI文件如何读取,当时的路径好像只有通过离线的TAI转换,比较麻烦
我不是龙哥
结帖率:
100%
关注:0 |粉丝:0
新手级: 新兵
原文由 洪星二锅头(coime) 发表:
非常好的教程贴

我记得之前版里就有人咨询前FEI的TAI文件如何读取,当时的路径好像只有通过离线的TAI转换,比较麻烦
是的,主要是TIA虽然离线版也放出来了,但是总会有人怎么都装不好!