2013-11-20 34 views
1

如何爲一批圖像提取元數據?我的第一個想法是錄製一個宏,然後修改它以在文件名列表上進行操作。如何使用ImageJ從DM3文件批量提取元數據?

本着這種精神,我嘗試錄製宏做這樣的事情:

按Ctrl-O# Open a file
12.dm3 輸入# Select file to open
CTRL-I# Open metadata in a new window
按Ctrl - s# Save file
12.txt的信息輸入# Name of file being saved
CTRL-W# Close current window
CTRL-W# Close current window

當我手算,這些步驟起作用。這導致下面的宏,這似乎是最缺少什麼,我試圖記錄:

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

回答

2

修改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)。

+1

另請參閱http://openmicroscopy.org/site/support/bio-formats4/users/imagej/瞭解如何在ImageJ宏中使用Bio-Formats的更多示例。 – ctrueden

1

您可以使用getImageInfo()而不是run(「Show Info ...」)。這將在包含run(「Show Info ...」)輸出的宏中創建一個字符串,但可以隨意修改。有關更多信息,請參閱http://rsb.info.nih.gov/ij/developer/macro/functions.html#getImageInfo

+0

在Jython中爲ImagePlus提供的getImageInfo()方法'imp'從ij.plugin導入ImageInfo; StringWithImageInfo = ImageInfo()。getImageInfo(imp)' –

相關問題