自定义比例尺下Fiji图像点选取错位问题咨询
现象成因
- Fiji/ImageJ的测量结果返回的
X、Y质心坐标,是已经通过Set Scale设置的比例尺换算后的校准单位坐标,匹配你设定的实际物理单位体系 - 而
makePoint这类图像绘制类内置函数的入参要求为原始像素坐标,默认不会自动做单位换算,直接将校准坐标作为像素值传入定位,就会出现严重错位。
解决方法
将测量得到的校准坐标换算为像素坐标后,再传入makePoint函数即可,换算需要调用内置函数获取当前图像的像素校准系数。修改后的完整代码如下:
run("Set Measurements...", "area centroid fit display redirect=None decimal=3"); run("Measure"); XPos=getResult("X", nResults-1); YPos=getResult("Y", nResults-1); // 新增坐标换算逻辑 getPixelSize(xScale, yScale); X_pixel = XPos / xScale; Y_pixel = YPos / yScale; print("Point placed at X "+XPos+" and Y "+YPos+"."); makePoint(X_pixel, Y_pixel, "small yellow hybrid");
如果需要同时保留校准坐标的测量输出,不需要修改其他测量逻辑,仅添加上述坐标换算步骤即可。
内容的提问来源于stack exchange,提问作者maxgotstuck
相关产品推荐
相关产品推荐

