透射电镜两大图像格式,dm3和ser,分属Gatan和ThermoFisher(原FEI)。Gatan放出了公开版的GMS,可以免费使用和转换dm3格式为tif,但是ThermoFisher就很抠,离了电镜没有公开的TIA软件可用于处理和转换图像,已知的一些破解版本都很老旧。

现在试出一种方法,用 ImageJ 软件配合 插件 批量将ser文件转换成jpg文件 ,就可以进行后续处理了。

ImageJ软件版本很重要,版本不对,插件里使用的函数识别不出来,已知Fiji版本( https://fiji.sc/ )可以满足需求,注意 下载后Fiji文件夹放置路径不能有中文名

使用方法:

1.下载Fiji

2.下载TIA_reader.jar 插件放入plugins文件夹

3.下载TEM_Ser_dm3_Folder_Export.ijm插件放入plugins文件夹

4.在ImageJ的plugins下面找到TEM_Ser_dm3_Folder_Export即可使用。

感谢“我不是龙哥”文章的帮助,以下为“我不是龙哥”原文原版转载

https://www.bilibili.com/read/cv10923101

我们拿到的透射电镜原始数据格式,主要是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[i], ".ser")) {
ImgNumber=ImgNumber+1;
filename = input + list[i];
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[i], 0, lastIndexOf(list[i], "."));
exportFile = output + filename_short +"_HFW"+ HFW + unit + ".jpg";
saveAs("JPEG", exportFile);
run("Close All");
}

else if (endsWith(list[i], ".dm3")) {
// for gatan dm3 files
ImgNumber=ImgNumber+1;
filename = input + list[i];
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[i], 0, lastIndexOf(list[i], "."));
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();

} 作者:我不是龙哥 https://www.bilibili.com/read/cv10923101 出处:bilibili

原文链接: https://www.bilibili.com/read/cv10923101 这是一个实现 ImageJ 1.x 插件 的最小 Maven 项目 它旨在作为在您选择的 IDE 中开发新 ImageJ 1.x 插件 的理想起点。 您甚至可以与使用与您不同的 IDE 的开发人员协作。 例如,在,它就像File>Import...>Existing Maven Project一样简单 在,它甚至更简单:文件>打开项目。 同样适用于 。 如果是您的首选 IDE,您将需要。 铁杆命令行开发者可以通过在项目根目录中调用mvn直接使用 Maven。 无论您如何构建项目,最终您都会在target/子目录中拥有.jar文件(在 Maven 中称为artifact )。 要将工件复制到正确的位置,您可以调用mvn -D imagej .app.directory=/path/to/Fiji.app/ 。 这不仅会复制您的工件,还会复制所有依赖项。 重新启动 ImageJ 或调用Hel 扫描电镜和 透射电镜 图像上色,通常是用Photoshop来完成的。其实只要懂得原理, ImageJ 也能完成这一操作,不需要额外下载和学习PS。这篇文章也是对ROI Manager,Image Calculator功能的补充。以2019-nCoV的 透射电镜 图像为例,介绍怎样用 ImageJ 进行电镜图像上色:图片来源:http://nmdc.cn/#/nCoV利用 ImageJ 进行电镜上色的可以分为三步:1、... image = cv2.imread(input_img_path) print(image.shape) cropped = image[0:512, 0:512] # 裁剪坐标为[y0:y1, x0:x1] cv2.imwrite(output_img_path, cropped) # 图片所在路. //This macro works for transforming multi-channel vsi image from Olympus to tiff files. //The default channnel number is three. dir = getDirectory("Choose a Directory of input"); list = getFileList(dir); setBatchMode(true);// runs up to 6 times faster 在以前的博文中也介绍过看Raw图的方法,自己平常也使用windows上的一些插值工具来看raw图,最近发现了一个宝贝---- ImageJ ,最让我惊喜的是它可以完美的在Windows以及Ubuntu中使用,避免了我抓取Raw图之后拷贝到windows才能用工具打开的尴尬。。。。。 可以在如下地址下载各个平台的版本,我下载的是Ubuntu和 ImageJ 的界面非常简洁。菜单栏包含File,Edit,Image,Process,Analyze,Plugins,Window和Help。接下来的文章会介绍一些比较常用又简单的功能。 ImageJ 是处理图片的软件,打开图片自然是万事的第一步。下面介绍一些打开图片的方法:1. 打开已存在于电脑中图片最简单的方法:拖拽图片到状态栏,松手即可。如图:拖拽一张名为“gel”的图片到状态栏,此时状态栏显示... 该脚本用于将文件从 Gatan 的 .DM3 文件格式(用于电子显微镜)导入到 MATLAB 结构中。 然后可以使用点运算符引用 MATLAB 结构体的字段。 例如,可以使用以下示例脚本加载和显示具有以纳米和电子为单位的适当缩放轴的文件: dm3struct = DM3Import('RandomBrightfieldImage.dm3'); N = 长度(dm3struct.image_data); imagesc( (1:N).*dmstruct.xaxis.scale (1:N).*dmstruct.yaxis.scale, ... dm3struct.image_data.*dm3struct.intensity.scale ); 此脚本当前导入图像、EELS 光谱和光谱图像。 现在也导入写在图像上的注释(文本)。 该脚本主要是通过使用十六进制编辑器解析示例 DM3 文件 <br />1. 资源后缀列表<br /><br />限定词<br />值<br />语言<br />两字节 ISO 639-1 低位的语言编码,比如: en , fr , es<br />区域<br />两字节 ISO 3166-1-alpha-2 带有小写 "r" 前缀的大写地区编码。如: rUS , rFR , rES<br />屏幕方向<br />port , land , square<br />屏幕像素密度<br />92dpi , 108dpi , etc.<br />触摸屏类型<br open("K:\\20140404\\inneruint8\\"+i+".raw"); run("Skeletonize (2D/3D)"); saveAs("Raw Data", "K:\\skeleton\\"+i+".raw"); close();