我希望能够将图像校准到物理距离,这样我就可以将图像裁剪到物理距离,而不是给出要裁剪的像素数。我已经在 ImageJ API 中看到了 Calibration 类,我可以通过设置 Xorigin 和 Yorigin 变量来设置校准以设置像素尺寸并说明图像的原点在哪里。
如果我的图像不包含原点,或者如果一个像素确实描述了原点,即两个像素可能从 -0.3cm 到 0 和从 0 到 +0.3cm,该怎么办。
有没有办法告诉 ImageJ,即“物理空间中的左上角像素是 (-200mm,200mm)?
在 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 脚本编辑器将此代码作为 Beanshell 脚本执行。