How do I batch extract metadata from DM3 files using ImageJ?

点点圈 提交于 2019-12-11 11:29:16

问题


How can you extract metadata for a batch of images? My first thought was to record a macro and then modify it to operate on a list of file names.

In that vein, I tried recording a macro doing something like this:

Ctrl-o # Open a file
12.dm3Enter # Select file to open
Ctrl-i # Open metadata in a new window
Ctrl-s # Save file
Info for 12.txtEnter# Name of file being saved
Ctrl-w# Close current window
Ctrl-w# Close current window

These steps work when I do them manually. This results in the following macro, which seems to be missing most of what I tried to record:

open("/path/to/file/12.dm3");
run("Show Info...");
run("Close");
run("Close");

回答1:


Modifying a Jython script that is supposed to extract dimension metadata from an image:

from java.io import File
from loci.formats import ImageReader
from loci.formats import MetadataTools

import glob

# Create output file
outFile = open('./pixel_sizes.txt','w')

# Get list of DM3 files
filenames = glob.glob('*.dm3')

for filename in filenames:

        # Open file
        file = File('.', filename)

        # parse file header
        imageReader = ImageReader()
        meta = MetadataTools.createOMEXMLMetadata()
        imageReader.setMetadataStore(meta)
        imageReader.setId(file.getAbsolutePath())

        # get pixel size
        pSizeX = meta.getPixelsPhysicalSizeX(0)

        # close the image reader
        imageReader.close()

        outFile.write(filename + "\t" + str(pSizeX) + "\n")

# Close the output file
outFile.close()

(Gist).




回答2:


You could use getImageInfo() instead of run("Show Info..."). This will create a string in the macro containing the run("Show Info...") output, but can then be modified as you like. See http://rsb.info.nih.gov/ij/developer/macro/functions.html#getImageInfo for more information.



来源:https://stackoverflow.com/questions/20106998/how-do-i-batch-extract-metadata-from-dm3-files-using-imagej

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!