1000枚以上あるようなTIFF画像にImageJで一律の処理を行いたい。
とてもじゃないが手ではやってられないのでマクロを使って自動運転する。
File>New>Text Window
を開き、次のようなスクリプトを作成して、Runする。
from ij import IJ from ij.io import DirectoryChooser import os def Analysis(imagepath): imp = IJ.openImage(imagepath) savefilepath = os.path.join(os.path.dirname(imagepath), "../bc/") filename = os.path.basename(imagepath) IJ.run(imp, "Median 3D...", "x=3 y=3 z=3") #ノイズを和らげる IJ.run(imp, "Enhance Contrast...", "saturated=0.1 normalize") #コントラストをつける IJ.saveAs(imp, "Tiff", savefilepath + filename) #出来上がったファイルを保存する imp.close() srcDir = DirectoryChooser("Choose Folder").getDirectory() IJ.log("directory: " + srcDir) for root, directories, filenames in os.walk(srcDir): for filename in filenames: if filename.endswith(".tif"): path = os.path.join(root, filename) IJ.log(path) Analysis(path) IJ.log("Finish")
ファイルの在処を聞いてくるので指定してやる
それだけ。