ImageJ 的默认长度单位是Pixels(像素),所以如果想要测量实际的长度等信息,就必须重新设置长度单位。而这一步骤往往需要参考图像自带的比例尺。
实际拍照过程中,拍照软件可以印入比例尺。但如果遇到忘记设置比例尺的情况,可以利用ImageJ为图像添加合适的比例尺。
一、设置长度单位
1、打开一张有比例尺的照片,利用Magnifying Glass放大比例尺。
2、利用直线工具沿着比例尺画线。
3、设置比例尺(Analyze-Set Scale)。原图的实际像素及大小可用Photoshop得知。例如,像素为442×378,大小为15.59×13.34 cm。由于对拍摄实物放大了640倍,计算出442像素对应拍摄实物的长度为(15.59×10000/640um),再计算一个像素对应长度。如下图,设置参数为1.8像素对应1um,然后点击Global,即可设置完成。
弹出比例尺设置界面:
Distance in pixels:直线的长度
Known distance:这条直线的已知长度
Unit of length:设置单位
Global:对于所有照片应用这一比例
Tips:如果要给没有比例尺的图片添加比例尺,需要勾选Global。
设置完成后点击OK,可见图片的单位变为μm:
二、如果没有比例尺,添加比例尺(Scale Bar)
1、Set Scale后(勾选Global),打开一张没有比例尺的照片。注意:一定是相同拍照设备,同一物镜倍数拍出的照片。
2、打开添加比例尺工具(Analyze-Tools-Scale Bar)
弹出初始化界面,设置比例尺大小,比例尺的外观、字体、颜色等,可以自己选择。注意:不要勾选Overlay。
3、自定义好的比例尺就设置好了,点击OK后比例尺就出现在右下角。最后别忘记保存图片哦!(File –> Save),图片格式一般以TIFF为妙。
三、批量添加标尺
1、打开宏记录器,运行上述第二步,得到宏代码(此宏代码由本人HE图片得到,与上述示例图片参数不一样):
run("Scale Bar...", "width=100 height=5 font=20 color=Black background=None location=[Lower Right] bold");
2、编写Java批处理代码
//Add scale bar
dir=getDirectory("Select the source directory");
//无标尺的源文件夹
dir0=getDirectory("Choose the output directory");
//导出有标尺的文件夹
list=getFileList(dir);
//获取图片list
Array.sort(list);
for(i=0;i<list.length;i++){
filename=dir+list[i];
if(endsWith(filename,"jpg")){
open(filename);
//打开图片
run("Scale Bar...", "width=100 height=5 font=20 color=Black background=None location=[Lower Right] bold");
//添加标尺
saveAs("Jpeg", dir0+list[i]);
//保存图片
run("Close"); //关闭图片窗口
}
}
3、运行批处理代码
plugin–>Macros–>Run–>选择批处理文件–>选择原图片目录–>选择output目录:
自动为source文件夹中所有图片添加标尺,存入output文件夹