Git Product home page Git Product logo

scifio-bf-compat's Introduction

developer chat

SCIFIO (SCientific Image Format Input & Output) is an extensible Java framework for reading and writing images, particularly N-dimensional scientific images.

This core package supports parsing pixels and metadata for a collection of open formats. Additional formats can be supported simply by downloading SCIFIO plugins and including them in your project.

Purpose

SCIFIO's primary purpose is to provide a clear convention for supporting image input and output. By lowering the barrier for adding new image formats, all SCIFIO-backed software will grow more versatile and powerful.

Supported formats

The SCIFIO core includes support for:

  • APNG
  • AVI
  • BMP
  • DICOM
  • EPS
  • FITS
  • GIF
  • ICS
  • JPEG
  • JPEG2000
  • MNG
  • Micro-Manager
  • NRRD
  • PCX
  • PGM
  • QuickTime
  • TIFF
  • Zipped images

Additionally, Bio-Formats is available as a SCIFIO plugin for supporting more than a hundred additional proprietary formats.

For users

ImageJ2 and Fiji use SCIFIO for image I/O.

For developers

Several software libraries use SCIFIO for image I/O:

  • SCIFIO has built-in support for opening and saving ImgLib2 data structures (see the io.scif.img package).
  • We have updated Bio-Formats to also support SCIFIO plugins, backwards compatibly with existing code.
  • ITK has an ImageIO module for reading and writing images using SCIFIO.

Developer documentation:

More information

For more information, see the SCIFIO FAQ and SCIFIO web site.

Getting help

SCIFIO uses the Image.sc Forum for support. Start a new topic tagged with scifio.

Contributing to SCIFIO

SCIFIO is an open project and anyone is very welcome to submit pull requests to the SCIFIO repository.

With SCIFIO's focus on extensibility, you typically will not need to make upstream changes to get your formats into users' hands. However, if you are interested in submitting a pull request, that's great! All we ask is that you check:

mvn clean test

from the top level.

If you're adding a new feature, it would be fantastic if you could write a unit test for it! Simply base it on JUnit to have it run by the SCIFIO test suite.

scifio-bf-compat's People

Contributors

ctrueden avatar dscho avatar gab1one avatar hinerm avatar ngladitz avatar tpietzsch avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

scifio-bf-compat's Issues

Can't open Metamorph .stk files

I got a bug trying to open .stf file with latest ImageJ build and the following plugins :

$ ls app/ImageJ.app/plugins/
bioformats_package-5.0.0-SNAPSHOT.jar  scifio-0.9.5-SNAPSHOT.jar
ome-formats-0.6.2-SNAPSHOT.jar         scifio-bf-compat-1.5.3-SNAPSHOT.jar

The error is :

09:39:15.449 [SciJava-7b97ab3-Thread-1] DEBUG ome.scifio.io.NIOByteBufferProvider - Using mapped byte buffer? false
09:39:16.971 [SciJava-7b97ab3-Thread-1] INFO  loci.formats.ImageReader - MetamorphReader initializing /media/thor/data/microscopy_data/photoablation/KLP5D-cdc25-ndc80-GFP-atb2-GFP-cdc11-CFP/2014.03.05/movie_2.stk
09:39:16.973 [SciJava-7b97ab3-Thread-1] DEBUG loci.formats.FormatHandler - MetamorphReader initializing /media/thor/data/microscopy_data/photoablation/KLP5D-cdc25-ndc80-GFP-atb2-GFP-cdc11-CFP/2014.03.05/movie_2.stk
09:39:16.973 [SciJava-7b97ab3-Thread-1] DEBUG loci.formats.FormatHandler - loci.formats.in.MetamorphReader.initFile(/media/thor/data/microscopy_data/photoablation/KLP5D-cdc25-ndc80-GFP-atb2-GFP-cdc11-CFP/2014.03.05/movie_2.stk)
09:39:16.977 [SciJava-7b97ab3-Thread-1] INFO  loci.formats.in.MinimalTiffReader - Reading IFDs
09:39:16.981 [SciJava-7b97ab3-Thread-1] INFO  loci.formats.in.MinimalTiffReader - Populating metadata
09:39:17.075 [SciJava-7b97ab3-Thread-1] DEBUG loci.common.services.ServiceFactory - Loaded properties from: services.properties
09:39:17.077 [SciJava-7b97ab3-Thread-1] DEBUG loci.common.services.ServiceFactory - Added interface interface loci.formats.services.POIService and implementation class loci.formats.services.POIServiceImpl
09:39:17.077 [SciJava-7b97ab3-Thread-1] DEBUG loci.common.services.ServiceFactory - Added interface interface loci.formats.services.MDBService and implementation class loci.formats.services.MDBServiceImpl
09:39:17.078 [SciJava-7b97ab3-Thread-1] DEBUG loci.common.services.ServiceFactory - Added interface interface loci.formats.services.JPEGTurboService and implementation class loci.formats.services.JPEGTurboServiceImpl
09:39:17.085 [SciJava-7b97ab3-Thread-1] DEBUG loci.common.services.ServiceFactory - CLASSPATH missing interface: loci.ome.io.services.OMEReaderWriterService
java.lang.ClassNotFoundException: loci.ome.io.services.OMEReaderWriterService
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366) ~[na:1.7.0_51]
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) ~[na:1.7.0_51]
    at java.security.AccessController.doPrivileged(Native Method) ~[na:1.7.0_51]
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) ~[na:1.7.0_51]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425) ~[na:1.7.0_51]
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) ~[na:1.7.0_51]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358) ~[na:1.7.0_51]
    at java.lang.Class.forName0(Native Method) ~[na:1.7.0_51]
    at java.lang.Class.forName(Class.java:270) ~[na:1.7.0_51]
    at loci.common.services.ServiceFactory.<init>(ServiceFactory.java:128) [bioformats_package-5.0.0-SNAPSHOT.jar:na]
    at loci.common.services.ServiceFactory.<init>(ServiceFactory.java:87) [bioformats_package-5.0.0-SNAPSHOT.jar:na]
    at loci.formats.MetadataTools.createOMEXMLService(MetadataTools.java:452) [bioformats_package-5.0.0-SNAPSHOT.jar:na]
    at loci.formats.MetadataTools.<clinit>(MetadataTools.java:449) [bioformats_package-5.0.0-SNAPSHOT.jar:na]
    at loci.formats.in.MinimalTiffReader.initFile(MinimalTiffReader.java:587) [bioformats_package-5.0.0-SNAPSHOT.jar:na]
    at loci.formats.in.BaseTiffReader.initFile(BaseTiffReader.java:544) [bioformats_package-5.0.0-SNAPSHOT.jar:na]
    at loci.formats.in.MetamorphReader.initFile(MetamorphReader.java:350) [bioformats_package-5.0.0-SNAPSHOT.jar:na]
    at loci.formats.FormatReader.setId(FormatReader.java:1360) [bioformats_package-5.0.0-SNAPSHOT.jar:na]
    at loci.formats.ImageReader.setId(ImageReader.java:781) [bioformats_package-5.0.0-SNAPSHOT.jar:na]
    at io.scif.bf.BioFormatsFormat$Parser.typedParse(BioFormatsFormat.java:224) [scifio-bf-compat-1.5.3-SNAPSHOT.jar:1.5.3-SNAPSHOT]
    at io.scif.bf.BioFormatsFormat$Parser.typedParse(BioFormatsFormat.java:206) [scifio-bf-compat-1.5.3-SNAPSHOT.jar:1.5.3-SNAPSHOT]
    at io.scif.AbstractParser.parse(AbstractParser.java:254) [scifio-0.9.4.jar:0.9.4]
    at io.scif.AbstractParser.parse(AbstractParser.java:337) [scifio-0.9.4.jar:0.9.4]
    at io.scif.AbstractParser.parse(AbstractParser.java:54) [scifio-0.9.4.jar:0.9.4]
    at io.scif.AbstractReader.setSource(AbstractReader.java:272) [scifio-0.9.4.jar:0.9.4]
    at io.scif.services.DefaultInitializeService.initializeReader(DefaultInitializeService.java:92) [scifio-0.9.4.jar:0.9.4]
    at io.scif.img.ImgOpener.createReader(ImgOpener.java:377) [scifio-0.9.4.jar:0.9.4]
    at io.scif.img.ImgOpener.openImg(ImgOpener.java:141) [scifio-0.9.4.jar:0.9.4]
    at imagej.data.DefaultDatasetService.open(DefaultDatasetService.java:250) [ij-data-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]
    at imagej.data.io.DatasetIOPlugin.open(DatasetIOPlugin.java:78) [ij-data-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]
    at imagej.data.io.DatasetIOPlugin.open(DatasetIOPlugin.java:50) [ij-data-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]
    at imagej.io.DefaultIOService.open(DefaultIOService.java:83) [ij-core-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]
    at imagej.plugins.commands.io.OpenFile.run(OpenFile.java:81) [ij-commands-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]
    at imagej.command.CommandModule.run(CommandModule.java:193) [ij-core-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]
    at imagej.module.ModuleRunner.run(ModuleRunner.java:166) [ij-core-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]
    at imagej.module.ModuleRunner.call(ModuleRunner.java:127) [ij-core-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]
    at imagej.module.ModuleRunner.call(ModuleRunner.java:66) [ij-core-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]
    at java.util.concurrent.FutureTask.run(FutureTask.java:262) [na:1.7.0_51]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_51]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_51]
    at java.lang.Thread.run(Thread.java:744) [na:1.7.0_51]
09:39:17.087 [SciJava-7b97ab3-Thread-1] DEBUG loci.common.services.ServiceFactory - Added interface interface loci.formats.services.JAIIIOService and implementation class loci.formats.services.JAIIIOServiceImpl
09:39:17.088 [SciJava-7b97ab3-Thread-1] DEBUG loci.common.services.ServiceFactory - Added interface interface loci.formats.services.WlzService and implementation class loci.formats.services.WlzServiceImpl
09:39:17.089 [SciJava-7b97ab3-Thread-1] DEBUG loci.common.services.ServiceFactory - Added interface interface loci.formats.services.NetCDFService and implementation class loci.formats.services.NetCDFServiceImpl
09:39:17.090 [SciJava-7b97ab3-Thread-1] DEBUG loci.common.services.ServiceFactory - CLASSPATH missing implementation or implementation dependency: loci.ome.notes.services.OMENotesServiceImpl
java.lang.ClassNotFoundException: loci.ome.notes.services.OMENotesServiceImpl
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366) ~[na:1.7.0_51]
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) ~[na:1.7.0_51]
    at java.security.AccessController.doPrivileged(Native Method) ~[na:1.7.0_51]
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) ~[na:1.7.0_51]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425) ~[na:1.7.0_51]
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) ~[na:1.7.0_51]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358) ~[na:1.7.0_51]
    at java.lang.Class.forName0(Native Method) ~[na:1.7.0_51]
    at java.lang.Class.forName(Class.java:270) ~[na:1.7.0_51]
    at loci.common.services.ServiceFactory.<init>(ServiceFactory.java:136) [bioformats_package-5.0.0-SNAPSHOT.jar:na]
    at loci.common.services.ServiceFactory.<init>(ServiceFactory.java:87) [bioformats_package-5.0.0-SNAPSHOT.jar:na]
    at loci.formats.MetadataTools.createOMEXMLService(MetadataTools.java:452) [bioformats_package-5.0.0-SNAPSHOT.jar:na]
    at loci.formats.MetadataTools.<clinit>(MetadataTools.java:449) [bioformats_package-5.0.0-SNAPSHOT.jar:na]
    at loci.formats.in.MinimalTiffReader.initFile(MinimalTiffReader.java:587) [bioformats_package-5.0.0-SNAPSHOT.jar:na]
    at loci.formats.in.BaseTiffReader.initFile(BaseTiffReader.java:544) [bioformats_package-5.0.0-SNAPSHOT.jar:na]
    at loci.formats.in.MetamorphReader.initFile(MetamorphReader.java:350) [bioformats_package-5.0.0-SNAPSHOT.jar:na]
    at loci.formats.FormatReader.setId(FormatReader.java:1360) [bioformats_package-5.0.0-SNAPSHOT.jar:na]
    at loci.formats.ImageReader.setId(ImageReader.java:781) [bioformats_package-5.0.0-SNAPSHOT.jar:na]
    at io.scif.bf.BioFormatsFormat$Parser.typedParse(BioFormatsFormat.java:224) [scifio-bf-compat-1.5.3-SNAPSHOT.jar:1.5.3-SNAPSHOT]
    at io.scif.bf.BioFormatsFormat$Parser.typedParse(BioFormatsFormat.java:206) [scifio-bf-compat-1.5.3-SNAPSHOT.jar:1.5.3-SNAPSHOT]
    at io.scif.AbstractParser.parse(AbstractParser.java:254) [scifio-0.9.4.jar:0.9.4]
    at io.scif.AbstractParser.parse(AbstractParser.java:337) [scifio-0.9.4.jar:0.9.4]
    at io.scif.AbstractParser.parse(AbstractParser.java:54) [scifio-0.9.4.jar:0.9.4]
    at io.scif.AbstractReader.setSource(AbstractReader.java:272) [scifio-0.9.4.jar:0.9.4]
    at io.scif.services.DefaultInitializeService.initializeReader(DefaultInitializeService.java:92) [scifio-0.9.4.jar:0.9.4]
    at io.scif.img.ImgOpener.createReader(ImgOpener.java:377) [scifio-0.9.4.jar:0.9.4]
    at io.scif.img.ImgOpener.openImg(ImgOpener.java:141) [scifio-0.9.4.jar:0.9.4]
    at imagej.data.DefaultDatasetService.open(DefaultDatasetService.java:250) [ij-data-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]
    at imagej.data.io.DatasetIOPlugin.open(DatasetIOPlugin.java:78) [ij-data-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]
    at imagej.data.io.DatasetIOPlugin.open(DatasetIOPlugin.java:50) [ij-data-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]
    at imagej.io.DefaultIOService.open(DefaultIOService.java:83) [ij-core-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]
    at imagej.plugins.commands.io.OpenFile.run(OpenFile.java:81) [ij-commands-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]
    at imagej.command.CommandModule.run(CommandModule.java:193) [ij-core-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]
    at imagej.module.ModuleRunner.run(ModuleRunner.java:166) [ij-core-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]
    at imagej.module.ModuleRunner.call(ModuleRunner.java:127) [ij-core-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]
    at imagej.module.ModuleRunner.call(ModuleRunner.java:66) [ij-core-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]
    at java.util.concurrent.FutureTask.run(FutureTask.java:262) [na:1.7.0_51]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_51]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_51]
    at java.lang.Thread.run(Thread.java:744) [na:1.7.0_51]
09:39:17.091 [SciJava-7b97ab3-Thread-1] DEBUG loci.common.services.ServiceFactory - Added interface interface loci.common.services.OMENotesService and implementation null
09:39:17.092 [SciJava-7b97ab3-Thread-1] DEBUG loci.common.services.ServiceFactory - Added interface interface loci.formats.services.MetakitService and implementation class loci.formats.services.MetakitServiceImpl
09:39:17.093 [SciJava-7b97ab3-Thread-1] DEBUG loci.common.services.ServiceFactory - Added interface interface loci.formats.services.LuraWaveService and implementation class loci.formats.services.LuraWaveServiceImpl
09:39:17.095 [SciJava-7b97ab3-Thread-1] DEBUG loci.common.services.ServiceFactory - Added interface interface loci.formats.services.OMEXMLService and implementation class loci.formats.services.OMEXMLServiceImpl
[ERROR] Module threw error
java.lang.NoSuchMethodError: org.joda.time.Instant.parse(Ljava/lang/String;Lorg/joda/time/format/DateTimeFormatter;)Lorg/joda/time/Instant;
    at ome.xml.model.primitives.Timestamp.<init>(Timestamp.java:82)
    at loci.formats.MetadataTools.setDefaultCreationDate(MetadataTools.java:404)
    at loci.formats.MetadataTools.populateMetadata(MetadataTools.java:234)
    at loci.formats.MetadataTools.populatePixels(MetadataTools.java:138)
    at loci.formats.MetadataTools.populatePixels(MetadataTools.java:101)
    at loci.formats.in.MinimalTiffReader.initFile(MinimalTiffReader.java:587)
    at loci.formats.in.BaseTiffReader.initFile(BaseTiffReader.java:544)
    at loci.formats.in.MetamorphReader.initFile(MetamorphReader.java:350)
    at loci.formats.FormatReader.setId(FormatReader.java:1360)
    at loci.formats.ImageReader.setId(ImageReader.java:781)
    at io.scif.bf.BioFormatsFormat$Parser.typedParse(BioFormatsFormat.java:224)
    at io.scif.bf.BioFormatsFormat$Parser.typedParse(BioFormatsFormat.java:206)
    at io.scif.AbstractParser.parse(AbstractParser.java:254)
    at io.scif.AbstractParser.parse(AbstractParser.java:337)
    at io.scif.AbstractParser.parse(AbstractParser.java:54)
    at io.scif.AbstractReader.setSource(AbstractReader.java:272)
    at io.scif.services.DefaultInitializeService.initializeReader(DefaultInitializeService.java:92)
    at io.scif.img.ImgOpener.createReader(ImgOpener.java:377)
    at io.scif.img.ImgOpener.openImg(ImgOpener.java:141)
    at imagej.data.DefaultDatasetService.open(DefaultDatasetService.java:250)
    at imagej.data.io.DatasetIOPlugin.open(DatasetIOPlugin.java:78)
    at imagej.data.io.DatasetIOPlugin.open(DatasetIOPlugin.java:50)
    at imagej.io.DefaultIOService.open(DefaultIOService.java:83)
    at imagej.plugins.commands.io.OpenFile.run(OpenFile.java:81)
    at imagej.command.CommandModule.run(CommandModule.java:193)
    at imagej.module.ModuleRunner.run(ModuleRunner.java:166)
    at imagej.module.ModuleRunner.call(ModuleRunner.java:127)
    at imagej.module.ModuleRunner.call(ModuleRunner.java:66)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:744)

Let me know if you need an .stk file to test.

Turn each Bio-Formats reader/writer pair into its own Format

Smushing all Bio-Formats Readers into a single SCIFIO Format and putting at the highest priority is technically incorrect as it skews priority of individual formats, which forces non-optimal (and potentially incorrect) Checker results.

Furthermore, relying on construction of new ImageReaders can be detrimental to performance.

A better solution would be to wrap each Bio-Formats Reader(/Writer) in a SCIFIO Format which could be injected into the FormatService.

We could then use the blacklist of formats implemented in SCIFIO to determine relative priority for each Bio-Formats wrapped format.

OutOfMemoryError: .pst format

The following exception is thrown when I try to read in .pst files:

java.lang.OutOfMemoryError: Requested array size exceeds VM limit
at loci.poi.poifs.storage.HeaderBlockReader.(HeaderBlockReader.java:97)
at loci.poi.poifs.filesystem.POIFSFileSystem.(POIFSFileSystem.java:114)
at loci.formats.services.POIServiceImpl.initialize(POIServiceImpl.java:86)
at loci.formats.services.POIServiceImpl.initialize(POIServiceImpl.java:73)
at loci.formats.in.TillVisionReader.initFile(TillVisionReader.java:227)
at loci.formats.FormatReader.setId(FormatReader.java:1317)
at loci.formats.ImageReader.setId(ImageReader.java:753)
at io.scif.bf.BioFormatsFormat$Parser.typedParse(BioFormatsFormat.java:405)
at io.scif.bf.BioFormatsFormat$Parser.typedParse(BioFormatsFormat.java:387)
at io.scif.AbstractParser.parse(AbstractParser.java:252)
at io.scif.AbstractParser.parse(AbstractParser.java:220)
at io.scif.AbstractParser.parse(AbstractParser.java:316)
at io.scif.AbstractParser.parse(AbstractParser.java:52)
at org.knime.knip.io.ScifioImgSource.getReader(ScifioImgSource.java:401)
at org.knime.knip.io.ScifioImgSource.getSeriesCount(ScifioImgSource.java:219)
at org.knime.knip.io.nodes.imgreader.ReadFileImgTable$2.next(ReadFileImgTable.java:384)
at org.knime.core.node.ExecutionContext.createBufferedDataTable(ExecutionContext.java:245)
at org.knime.knip.io.nodes.imgreader.ImgReaderNodeModel.execute(ImgReaderNodeModel.java:402)
at org.knime.core.node.NodeModel.execute(NodeModel.java:706)
at org.knime.core.node.NodeModel.executeModel(NodeModel.java:555)
at org.knime.core.node.Node.invokeFullyNodeModelExecute(Node.java:1131)
at org.knime.core.node.Node.execute(Node.java:927)
at org.knime.core.node.workflow.NativeNodeContainer.performExecuteNode(NativeNodeContainer.java:559)
at org.knime.core.node.exec.LocalNodeExecutionJob.mainExecute(LocalNodeExecutionJob.java:95)
at org.knime.core.node.workflow.NodeExecutionJob.internalRun(NodeExecutionJob.java:179)
at org.knime.core.node.workflow.NodeExecutionJob.run(NodeExecutionJob.java:110)
at org.knime.core.util.ThreadUtils$RunnableWithContextImpl.runWithContext(ThreadUtils.java:328)
at org.knime.core.util.ThreadUtils$RunnableWithContext.run(ThreadUtils.java:204)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at org.knime.core.util.ThreadPool$MyFuture.run(ThreadPool.java:125)
at org.knime.core.util.ThreadPool$Worker.run(ThreadPool.java:248)

I uploaded a sample to FIJI (dbb4A.pst)!

Consider switching to BSD-2 license

This component no longer depends on any GPL components (notably: formats-gpl). It could be BSD-2. The only lingering GPL-licensed code comes in the form of some XSLT stylesheets in src/main/resources/io/scif/ome/xml/meta, which I doubt are actually relevant to the project any longer: they were originally added as part of 225aa9c, but that code has since migrated to scifio-ome-xml (without the stylesheets, worryingly...).

Problem with reading DCM images

Uploaded sample name: I20140108095545_download.dcm

Problem: Images is read in as UnsignedShortType, but should be read in as ShortType.
Problems with: SCIFIO switched on in FIJI (latest updates installed).
No Problems: ImageJ/BioFormats

Bioformats v4.4.10

Hi Mark,
is it possible to make scifio-bf-compat already dependent on the latest bioformats release v4.4.10?
Best,
Martin

Too many ColorTables created

Hi @hinerm,

I found a minor problem in the BioFormatsFormat$Metadata class. Assume you have an image X,Y,Z,Channel,Time. If your read it in and there is no color table attached to it, the method getColorTable(int imageIndex, final long planeIndex) creates Z_Time_Channel ColorTables and stores them. Then problem is, that if you have 16bit ColorTables this may become pretty memory intense. May it be possible, that you only create three ColorTables (as they are all the same) for the Channel dimension?

Thanks!!

Christian

Group files-flag set repeatedly

Hi Mark,
there is a little problem in Line 243 of the BioFormatsFormat class: you are again setting the group-files flag that was already been set in Line 223. Thus, the ImageReader is complaining in Line 522 that the id was already set, but the file should actually be null.

Best,
Martin

setGroupFiles(...) has no effect if on wrapped BioFormats-Reader

Hi Mark,
I faced a little problem when trying to enforce the a BioFormats-Reader not to group the files (e.g. CellomicsReader). The group-files property is not passed to the BioFormats-Reader and therewith will always be 'true'.

In principle before line 214 in BioFormatsFormat (reader.setId(...)) the group-property should be set (reader.setGroupFiles(..)) but, to be honest, I don't know from where to get it. Many BioFormats-Readers already need it during initialization (initFile(..)).

But as probably all BioFormats-Readers are going to be converted to scifio anyway, a fix is maybe not worthwhile ...

Best,
Martin

NoSuchMethod: loci.formats.FormatTools.getPhysicalSizeX(Ljava/lang/Double;Ljava/lang/String;)Lome/units/quantity/Length;

Hi @hinerm,

I just updated the dependencies of KNIME Image Processing to pom-imagej 7.1.0. Since then, when I try to read in a Tiff-File I get the following stack-trace:

java.lang.NoSuchMethodError: loci.formats.FormatTools.getPhysicalSizeX(Ljava/lang/Double;Ljava/lang/String;)Lome/units/quantity/Length; at loci.formats.in.BaseTiffReader.initMetadataStore(BaseTiffReader.java:469) at loci.formats.in.SISReader.initMetadataStore(SISReader.java:237) at loci.formats.in.BaseTiffReader.initMetadata(BaseTiffReader.java:98) at loci.formats.in.BaseTiffReader.initFile(BaseTiffReader.java:576) at loci.formats.FormatReader.setId(FormatReader.java:1395) at loci.formats.ImageReader.setId(ImageReader.java:835) at io.scif.bf.BioFormatsFormat$Parser.typedParse(BioFormatsFormat.java:424) at io.scif.bf.BioFormatsFormat$Parser.typedParse(BioFormatsFormat.java:406) at io.scif.AbstractParser.parse(AbstractParser.java:253) at io.scif.AbstractParser.parse(AbstractParser.java:220) at io.scif.AbstractParser.parse(AbstractParser.java:317) at io.scif.AbstractParser.parse(AbstractParser.java:52) at org.knime.knip.io.ScifioImgSource.getReader(ScifioImgSource.java:401) at org.knime.knip.io.ScifioImgSource.getSeriesCount(ScifioImgSource.java:219) at org.knime.knip.io.nodes.imgreader.ReadFileImgTable$2.next(ReadFileImgTable.java:431) at org.knime.core.node.ExecutionContext.createBufferedDataTable(ExecutionContext.java:245) at org.knime.knip.io.nodes.imgreader.ImgReaderNodeModel.execute(ImgReaderNodeModel.java:353) at org.knime.core.node.NodeModel.execute(NodeModel.java:706) at org.knime.core.node.NodeModel.executeModel(NodeModel.java:555) at org.knime.core.node.Node.invokeFullyNodeModelExecute(Node.java:1131) at org.knime.core.node.Node.execute(Node.java:927) at org.knime.core.node.workflow.NativeNodeContainer.performExecuteNode(NativeNodeContainer.java:559) at org.knime.core.node.exec.LocalNodeExecutionJob.mainExecute(LocalNodeExecutionJob.java:95) at org.knime.core.node.workflow.NodeExecutionJob.internalRun(NodeExecutionJob.java:179) at org.knime.core.node.workflow.NodeExecutionJob.run(NodeExecutionJob.java:110) at org.knime.core.util.ThreadUtils$RunnableWithContextImpl.runWithContext(ThreadUtils.java:328) at org.knime.core.util.ThreadUtils$RunnableWithContext.run(ThreadUtils.java:204) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at org.knime.core.util.ThreadPool$MyFuture.run(ThreadPool.java:125) at org.knime.core.util.ThreadPool$Worker.run(ThreadPool.java:248)

Actually, I think the method in FormatTools as changed (String unit removed), but the BaseTiffReader has not been updated / released accordingly?

Thanks for your help,

Christian

Add scifio->bio-formats layer

This repository is the appropriate location for the SCIFIOReader and SCIFIOWriter, which are essentially the reverse of the BioFormatsFormat.

These will be IFormatReader/IFormatWriter implementations that use the SCIFIO API. Thus this library will become a plugin for both Bio-Formats and SCIFIO.

Rename/Move package: io.scif.common

Hi @hinerm,

could you rename the package https://github.com/scifio/scifio-bf-compat/tree/master/src/main/java/io/scif/common? Same problem as with imglib2.meta in imagej.commons: OSGi does not allow packages with the same name in different bundles. There is already a package with the same name in: io.scif (https://github.com/scifio/scifio/tree/master/src/main/java/io/scif/common). If its not possible to resolve this conflict, there are ways (hacks ;-)) to do that on OSGi side. However, it would be great if we could resolve it here.

Thanks!

Christian

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.