我希望能够将图像校准到物理距离,这样我就可以将图像裁剪到物理距离,而不是将像素数量裁剪到。 我在ImageJ API中看过Calibration类,我可以设置校准来设置像素尺寸,并通过设置Xorigin和Yorigin变量来说明图像的原点。
如果我的图像不包含原点或者如果一个像素描述原点,即两个像素可以从-0.3cm到0和0到+ 0.3cm运行怎么办。
有没有办法告诉ImageJ,即“左上角像素在物理空间中是(-200mm,200mm)?”
答案 0 :(得分:2)
在ImageJ用户界面中,您可以使用“属性”对话框(在“图像”菜单下方)分配与图像关联的物理尺寸和原点。原点始终以像素表示,但由于您知道每个像素的物理宽度和高度,因此很容易使用除法从您想要的物理空间转换回像素。
由于您提到了Calibration
类,我认为您正在寻找Java解决方案。以下代码演示了您的需求:
double mmPerPixelX = 5.2;
double mmPerPixelY = 6.3;
double mmOriginX = -200.0;
double mmOriginY = 200.0;
ImagePlus imp = IJ.getImage();
Calibration cal = imp.getCalibration();
cal.setUnit("mm");
cal.pixelWidth = mmPerPixelX;
cal.pixelHeight = mmPerPixelY;
cal.xOrigin = -mmOriginX / mmPerPixelX;
cal.yOrigin = -mmOriginY / mmPerPixelY;
您还可以使用Fiji script editor将此代码作为Beanshell脚本执行。