Frequently Asked Questions
short URLFrom Fiji
Input/Output
The image I loaded is displayed all black! But it is not black!
This problem usually arises when 12-bit or 14-bit images are loaded into Fiji without autoscaling. In that case, they are treated as if they were 16-bit images, and therefore the dynamic range is all wrong. You can fix this by clicking on Image>Adjust>Brightness/Contrast... and hitting the Auto button.
Installing/Updating
How do I install Fiji?
The installation of Fiji is described on specific pages for MacOSX, Windows and Linux.
How do I install additional plugins?
You can drag 'n drop the .jar files onto the Fiji window, or use Plugins>Install Plugin... with .jar, .class and .java files, or copy the plugins to Fiji.app/plugins/ and call Help>Refresh Menus manually. A walk-through with screenshots is available here.
To be picked up as a plugin, the .jar's file name must contain an underscore, and it either needs to contain an appropriate plugins.config file or the class name needs to contain an underscore, too.
The safest way to ensure these conventions is to use the File>Export as .jar file menu item.
I updated Fiji via Help>Update Fiji, and now it does not start anymore!
If you are on MacOSX, most likely you did not update in some time, and you were bitten by a bug in the updater that is already fixed (but you did not get the fix in time). Please follow these instructions.
The Updater always says Connection refused. Maybe it does not use the proxy?
Indeed, an earlier version of the Updater does not use your system-wide network proxy settings. This is fixed in the meantime, but you need to update the updater using this script (just download it and open it in Fiji).
Alternatively, you can update the updater manually like this:
- open the Script Editor with File>New>Script
- set the language to Beanshell in the Language menu of the editor
- paste the following code (and adjust it to match your settings):
import ij.IJ;
System.setProperty("java.net.useSystemProxies", "true");
IJ.run("Update Fiji");
- run the script via the Run menu
I updated to Ubuntu 11.04 and now I no longer see the Title bar when I close Fiji
I can no longer move any windows or use the X button on the title bar to close them (the window decorations all disappear).
If you are really on Ubuntu 11.04, an update should fix the problem. If you are not on Ubuntu 11.04, or if the update does not fix the problem, please read on for possible workarounds.
This is not a Fiji problem but a bug in the NVIDIA driver. One solution is described in: http://www.pendrivelinux.com/ubuntu-desktop-effects-fixing-the-missing-titlebar/
Edit (as root) the file /etc/X11/xorg.conf and add the following 2 options in Section "Device" before the EndSection line:
Option "AddARGBVisuals" "True" Option "AddARGBGLXVisuals" "True"
The above eases the problem but does not completely solve it. The solution will be an updated driver from NVIDIA when it is available. If you choose to remain with Unity or Ubuntu Classic, you may log out and then log in again when the problem appears. You can also restart the window manager without logging out by running
compiz --replace &
in a terminal. This restores the window decorations but all windows from all virtual desktops end in the first one.
Another solution is to install Unity-2D and choose it when you log in. This seems to work well. It also solves a number of general display problems.
3D Viewer
The 3D Viewer opens a window saying An unexpected exception occurred.
If in the same window, it also says:
java.lang.NullPointerException:Canvas3D: null GraphicsConfiguration
the reason is most likely that your graphics setup does not have any hardware 3D acceleration. This can happen e.g. when you run Fiji via a remote X11 connection (3D acceleration works only when the graphics are displayed on the same machine as the program runs).
Unfortunately, there is not workaround/fix for this situation yet, except to use Fiji locally when you want to use the 3D Viewer.
Problem with Intel graphics cards
There is a known problem with older Windows drivers for some Intel graphics cards. Usually, this is fixed by installing new drivers. If you would like to help make Fiji nicer by detecting faulty driver versions, please contact us.
The 3D Viewer simply crashes
Unfortunately, there are quite a large number of possible reasons. Please help us by debugging the issues and contacting us (mailing list or IRC) with the information. You can also report a Bug, which will provide a lot of addidtional, potentially useful information.
Only a gray rectangle is shown by the 3D Viewer
As with 3D Viewer crashes, there are quite a large number of possible reasons. Please help us by debugging the issues and contacting us (preferably via mailing list) with the information. You can also report a Bug, which will provide a lot of addidtional, potentially useful information.
Development
How can I build Fiji myself?
Download and build it. You need Git for that (if you are on Windows, please use Git for Windows).
I cloned fiji.git, but have a compile error regarding a class Appearance.
If you get an error similar to this:
Building plugins/VIB_.jar <- src-plugins/VIB_/Align_Image.java src...
Building plugins/3D_Viewer.jar <- src-plugins/3D_Viewer/ImageJ_3D_...
src-plugins/3D_Viewer/customnode/CustomLineMesh.java:6: cannot find symbol
symbol : class Appearance
location: package javax.media.j3d
import javax.media.j3d.Appearance;
^
it means that you do not have Java3D installed. This happens typically when you have an environment variable JAVA_HOME set to an existing JDK without Java3D. To force the Fiji Build system to clone Fiji's known-good JDK, call
unset JAVA_HOME
Alternatively, if you have write permissions to the path JAVA_HOME points to, you could install Java3D manually.
I tried to build Fiji, but get Target misc/headless.jar was not built!
You need to update the ImageJA submodule:
git submodule update ImageJA
Community
Why is there Fiji when there is already ImageJ? And what is this ImageJ2 about?
The ImageJ, Fiji and ImageJ2 projects are very closely related. Here are two attempts to clarify the situation:
- in ImageJ2's Frequently Asked Questions
- an ImageJ2 blog post clarifying specifically the relationship between ImageJ and the version used in Fiji
- an ImageJ2 blog post illustrating that we move code from Fiji to ImageJ2 as appropriate
In short: we all collaborate, but have slightly different focus, hence the different projects and names.
This is a Wiki but I cannot edit it! Why?
We do not want to spend resources on spam reduction, so we settled on the following strategy: anybody with an account can add new accounts. So please ask in our chat room or on one of our mailing lists and direct the good people at this page. You should have an account in less than 5 minutes after asking for it.
The Wiki is lacking documentation about X, Y and Z
Please ask any person with a Wiki account to register a new account for you (this procedure should help prevent spam without requiring anybody to play sanitor), and enhance the Wiki. We are thankful for all contributions!
I have a problem that is not covered on this page!
If you have an issue that is not mentioned here, you might want to ask on one of the mailing lists, or via IRC, or enter a bug report.
Miscellaneous
Why do you program in Java? Is C++ not much faster?
While it used to be true that Java is always slower than the equivalent in C++, this is no longer true. There have been quite a few benchmarks comparing Java vs C++ performance, this one probably being the grandfather of all.
Pragmatically, one should note that there is not really a big difference in performance when comparing Java to C++.
The real reason why Fiji is written in Java is that ImageJ is written in Java.
The reason why we chose ImageJ as the core of Fiji is that it runs without trouble and without recompiling on the major platforms: Windows, MacOSX and Linux. And plugins compiled on one platform also execute on all other platforms without recompiling. And profiling and debugging is easier with Java than with C++. And all programs/plugins double as libraries.
So the true reason why we use Java is probably: it makes Fiji accessible.
What is this headless mode and what do I need it for?
The term headless refers to running Fiji without a graphical desktop, e.g. on a cluster.
For technical reasons, GUI elements such as a menu or a button cannot be used when running Java on Linux in headless mode. That is the reason why we put custom classes into a file called headless.jar which override specific ImageJ classes that would try to instantiate GUI elements. In headless mode, that .jar file is inserted into the Java class path. In non-headless mode, the .jar file is not inserted into the class path (that is the reason why headless.jar is not in the jars/ subdirectory).