版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44217573/article/details/115181039
前言
Imagej是生物和光学显微成像领域的一款非常实用,强大的软件。但是其GUI的界面往往不利于对批量的图像进行操作,FIJI可以通过Jython编写脚本,来实现.py
文件的运行。
由于python执行速度较慢,imagej基于java编写而成,运行速度快,因此一些imagej里的操作可以通过编写python脚本的方式来代替python的算法,从而加快运行速度
读取图像
from ij import IJ, ImagePlus
# read a image
imp = IJ.getImage()
# get its ImageProcessor
ip = imp.getProcessor()
操作
找到使用某一个函数对应的Java类
比如说,我想使用ImageJ对一幅图像进行高斯滤波,先打开Plugins -- Utilities -- Find Commands..
,
在search一栏中搜索gauss
可以知道Gaussian Blur...
对应的Java类 ij.plugin.filter.GaussianBlur
from ij.plugin.filter import GaussianBlur
对一个函数,如何知道需要输入那些参数?
1、通过ImageJ宏命令的记录, 来确定需要函数需要什么输入
然后再FIJI里找到你想使用的函数:
这样就会记录下你刚才点击的函数所对应的imagej宏操作
2、查找ImageJ官方文档, 来确定需要函数需要什么输入
imagej 的API的查询
https://imagej.net/developer/api/
GaussianBlur函数调用的参数的查询
https://imagej.net/developer/api/ij/plugin/filter/GaussianBlur.html
可以找到该类下面所对应的方法:
保存
from ij.io import FileSaver
# save picture
fs = FileSaver(imp)
folder = "E:\\Desktop\\pictures\\"
filepath = folder + "\\" + "galaxy256_blur.tif"
fs.saveAsTiff(filepath)
code
from ij import IJ, ImagePlus
from ij.plugin.filter import GaussianBlur
from ij.process import FloatProcessor
from ij.io import FileSaver
# read a image
imp = IJ.getImage()
# get its ImageProcessor
ip = imp.getProcessor()
GaussianBlur().blurGaussian(ip,2)
# show results
imp = ImagePlus( "galaxy256_blur", ip)
imp.show()
# save picture
fs = FileSaver(imp)
folder = "E:\\Desktop\\pictures\\"
filepath = folder + "\\" + "galaxy256_blur.tif"
fs.saveAsTiff(filepath)
效果展示
如果对您有启发,欢迎您给我点赞👍支持!
参考资料
https://syn.mrc-lmb.cam.ac.uk/acardona/fiji-tutorial/#command-finder
https://imagej.net/Jython_Scripting_Examples.html#Language_basics