SCientific Image Format Input & Output: a flexible, extensible framework for image I/O. *EXPERIMENTAL* All API is subject to change, so depend at your own risk! See also @openmicroscopy/bioformats.
--ij2 --headless --run
. I was not yet able to reproduce using jgo to run the SCIFIO command line tool, not at the most recent release, nor the latest SCIFIO snapshot version. I think I'll start digging a bit in Eclipse. Once I have an idea what might be wrong, I'll update here again.
fiji-2.1.0
. Imported into Eclipse. Launched in debug mode. Loaded the MCVE script into the script editor. Back in Eclipse, navigated to FormatService
, getFormat(Location)
method. It's an interface, used ctrl+T to bring up implementations, navigated into DefaultFormatService
, same method. Saw it delegates to another method, hit F3
to jump there, which led me to this code in scifio 0.41.0 (the version associated with fiji 2.1.0). Put a breakpoint there, ran the script in Fiji, and then back in Eclipse, I see that getFormatList
returns null. Hit F8 to continue, then go back to Fiji and run the script again to trigger the breakpoint again. Rinse and repeat while stepping through the code with F5/F6/F7 to learn more about what's going wrong. I know this is a lot of detail, and that @imagejan probably doesn't need it, but I write it here for anyone wondering how we debug this stuff. The Script Editor + IDE combination is very powerful.
BioFormatsFormat
is supposed to be the format handling STK files, so in the formats for loop, I'm digging in to that one first. Fortunately, it's the first one on the list right now. (If it weren't, you could use a conditional breakpoint to step straight to it by pressing F8.)
java.io.FileNotFoundException: .../benchmark_v1_2018_x64y64z1c2s4t11_w1Laser4054BD4BP.stk (Permission denied)
BioFormatsFormat
only looks at the file contents if the SCIFIOConfig
's checkerIsOpen
flag is set to true
, but it is false
by default; and:.stk
extension sufficient for the MetamorphReader
to return true
from isThisType
; when open
is false
, it simply returns false
.TIFFFormat.Writer
: scifio/scifio#455@ctrueden I tried to upload the new scifio-0.42.0.jar
after having tested it a bit in Fiji, but I get the following error when uploading (with my account Eglinger
):
[ERROR] org.apache.http.conn.HttpHostConnectException: Connect to sites.imagej.net:443 [sites.imagej.net/144.92.48.186] failed: Connection refused: connect
at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:156)
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:376)
at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:393)
at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236)
at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186)
at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)
at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:56)
at net.imagej.plugins.uploaders.webdav.WebDAVUploader.runMethodOnClient(WebDAVUploader.java:525)
at net.imagej.plugins.uploaders.webdav.WebDAVUploader.runMethodOnClient(WebDAVUploader.java:514)
at net.imagej.plugins.uploaders.webdav.WebDAVUploader.lock(WebDAVUploader.java:314)
at net.imagej.plugins.uploaders.webdav.WebDAVUploader.upload(WebDAVUploader.java:202)
at net.imagej.updater.FilesUploader.upload(FilesUploader.java:260)
at net.imagej.ui.swing.updater.UpdaterFrame.upload(UpdaterFrame.java:803)
at net.imagej.ui.swing.updater.UpdaterFrame$5$1.run(UpdaterFrame.java:309)
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:368)
at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:142)
... 16 more
Is that expected, i.e. wrong account, wrong password? I would have expected a bit informative error message, so I’m unsure if the issue is on my side now, or on the server side :-)
scifio-javacv
update to the FileLocation
API, I tried to update MovieFormat
, but wasn’t able to fix the test (that was failing independently of the FileLocation
API changes)…openPlane
is never called despite the format matches and setDest
is called.With SCIFIO (File > Import > Image...) I get a much weirder error:
[ERROR] java.io.IOException: io.scif.img.ImgIOException: java.io.FileNotFoundException: /home/curtis/Downloads/dicom_viewer_0002/0002.DCM (Permission denied)
I've not seen this happen before.
io.scif.io.ByteArrayHandle
. That seems a bit old to me?https://github.com/ilastik/ilastik4ij/blob/c3f2b21f094f3a66b537f26663fc5d6149a6cfb3/src/test/java/org/ilastik/ilastik4ij/ObjectClassificationDemo.java#L3
Location
that is not backed by a file, and as long as there is a DataHandle
plugin for that location type, SCIFIO should be able to read it. For example, there is a BytesLocation
for wrapping a byte[]
of data. It works well because byte[]
does allow for fast random access.