Now, you have installed OpenWalnut and are ready to go? Then have a look at this tutorial. We will give you a short overview on OpenWalnut's GUI and how you can load, manipulate, and visualize data.
The first thing you will see on first start is the welcome dialog. It contains a lot of useful links:
If you do not want to see this screen again, simple check the "Do not show again" box and close the dialog. Now you are in the main GUI of OpenWalnut. The next image helps you to understand the different main elements of the GUI:
1, 2, 3 - The navigation windows. They show the loaded data in axial, coronal, and sagittal view directions when the navigation slices module is active. These windows are not shown by default. You can activate them from the menu "Settings > View > Show Navigation Views"
4 - The main 3D View. It shows your visualization in 3D. It allows you to interact with the data and the camera.
5 - The module graph. With this, you are able to combine data with modules. It allows you to build a data flow network of data, processing steps and visualizations.
6 - The control panel. It provides parameters and options for the current module, selected in the module graph.
Menu and toolbar (optional) - In the menu you can find several options and commands (like loading data). Optional toolbars can be activated in a context menu obtained by right-clicking in the empty space next to the last entry of the menu bar. One toolbar also provides a list of modules which are compatible with the currently selected module.
After opening the file, you can right-click in the module graph and select "Add Module and Connect > Navigation Slices". This module allows you to orthogonally slice through your data. Just try it. Use the sliders in the navigation windows, or right-click on a slice in the 3D view. Dragging the mouse will move the slices.
You will also notice that the module graph now contains an entry for the Navigation Slices module and the data. In OpenWalnut, everything you load and every module you use will appear in the module graph. In the remaining tutorial, you will learn how to use the module graph and control panel to create custom and complex processing/visualization pipelines.
At this point, we already loaded a T1 dataset. We will use this as context. Now, we load a FMRI dataset. Therefore, double-click in the module graph again and select the dataset. The dataset now appears in the module graph and is shown on the navigation slices.
You will realize that too much of the dataset is shown and that it hides the T1 data. To filter what is shown, select the data module for the FMRI in the module graph and activate "Enable Threshold" in the Settings in the Control Panel. By selecting sensible values for Lower Threshold and Upper Threshold you can achieve an image like the following:
We want to see the activation in 3D. So, we apply an isosurface to it. To do this, right-click on the FMRI dataset in the module graph and choose the Isosurface Raytracer module from the "Add Module and Connect" submenu. After doing this, the isosurface appears in the 3D view. The Isosurface Raytracer module appears in the module tree and si connected to the FMRI dataset. We can now manipulate the isosurface by changing the isovalue. Select the Isosurface Raytracer module and modify the Isovalue parameter in the control panel:
At this point, the basic usage of the module graph and the control panel is clear. In OpenWalnut, almost everything has tool-tip mini-help. Just hover with the mouse over a module, dataset or parameter and a small help will pop up. Lets summarize basic usage:
Load data by double clicking in the module graph area (can also be done viea the File menu).
Apply modules to data and other modules by selecting them and choosing the desired module in the right-click (context) menu. The menu will only show modules whose inputs are compatible with the output data of the selected module.
Manipulate modules by changing parameters in the control panel.
Now, lets continue by extending the data flow network. Let us assume we consider the isosurface for the FMRI data being too rough; lets smooth it. We, therefore, apply the Gauss Filtering module to it. How can this be done? Do you remember how we have applied the isosurface module to the FMRI data? In the same way, we apply the Gauss Filtering module. Select the FMRI dataset by right-clicking on it. The context menu will show up. Choose the submenu "Add Module and Connect". In there, you will find all the modules which are compatible with the data. Select the Gauss Filtering module:
When done, the Gauss Filtering module appears just below and connected by a line to the FMRI data, similar to the Isosurface module. This, again, shows that you use the output data of the FMRI dataset module as input for the Gauss Filtering module. Unfortunately, we already applied the Isosurface module directly to the original FMRI data. As we want the isosurface for the smoothed data, we reconnect the isosurface module to the Gauss_Filtering output. This is as simple as clicking the output connector (small box at the bottom of the _Gauss_Filtering module) in the module graph and drag is to the input of the isosurface module. A line connecting the modules will appear and represent the data flow.
Now, the isosurface looks nicer. But we want it even smoother. You will now remember that we have changed parameters of the isosurface by selecting it and modifying it in the control panel. We can do the same for the Gauss Filtering module. Select it and increase the number of iterations in the control panel. A tool-tip always gives you a hint on the meaning of a parameter:
After changing the value, the Gauss Filter starts. A progress bar in the module box (graph node) indicates that the module is currently working. A percentage information always tells you the progress. Please also note that OpenWalnut is still responsive. You do not need to wait for the Gauss Filtering module to finish. You can continue loading data or modifying other modules.
While the Gauss Filtering module is working, we load another dataset. We load a vector dataset called brain_vector.nii.gz from http://research.awmw.org/Data. After loading, it directly appears on the navigation slices, in the navigation views and on the isosurface. Unfortunately, we do not see any context anymore. We can modify the color-mapping properties of each loaded dataset by selecting it in the module graph. Simply change the property of interest in the control panel:
You can also modify the used colormap, thresholds, and interpolation features. Sometimes it is needed to change the ordering of color-mops. You can use the "Colormaps" tab in the module tree for doing this. This defines the order in which the color-maps of each dataset are blended. Additionally, disabling the data module in the module tree, using the little checkboxes, hides the colormap of this dataset completely.
At this point, we know how to load data, apply modules to them, and how to apply modules to others. In OpenWalnut, modules may also have multiple inputs and outputs. In the following, we show how to work with these modules in the module graph. A quite prominent example for a module with multiple inputs is the Scalar Operator module. It allows you to do algebra with two scalar datasets. Of course, this will need two operands. We now apply the Scalar Operator to the FMRI dataset. You will now notice that the Scalar Operator module has a submenu. This is due to the fact that OpenWalnut can not automatically decide which input is the best matching for your data. We select the input "operandA":
After clicking, the Scalar Operator module appears connected the FMRI dataset, exactly like the Gauss Filtering module, since they both use the output of the FMRI dataset module as their input. As we want to know the difference between the FMRI data and the filtered FMRI data, we want to have the output of the Gauss Filtering module as second operand. To achieve this, select click and drag the output connector of the Gauss Filtering module in the module graph and connect it to the second input connector of the the Scalar Operator module.
While having Scalar Operator activated in the graph, we now choose the operation "A-B" in the control panel.
But how can we see this difference now? Scalar Operator simply provides an output with the difference data now. You can apply every module you want, which supports scalar data; like the Isosurface Raytracer. But we want to see the difference as colormap. Generally, OpenWalnut handles colormapping automatically. Loaded data, which can be shown as colormap, will automatically appear on surfaces and the navigation slices. Data, which was derived from other data, maybe by using processing modules (Gauss Filtering, Scalar Operator, ...) are not automatically used as colormap. But you can tell OpenWalnut to do so. Simply apply the Colormapper module to the output you want to see:
We choose a Negative to Positive colormap here and disabled all the other colormaps by disabling them in the Colormaps tab. You can see, that the colormap also appears on the isosurface. You can modify alpha values and treshold to combine the difference colormap with the other colormaps we already have.
To get an overview on a module's description, inputs and outputs, as well as its status, you can always hover over it with the mouse. A tool-tip will give you useful information about the module. This is also the case for module parameters in the control panel and module buttons in the module toolbar.
What have we learned so far? We got used to the OpenWalnut GUI and learned how to load and process data.
Loading data is done using "Load" button in toolbar or File-menu or double-clicking in the module graph area
Apply modules using the context menu
Modify module parameters using the control panel
Combine modules with multiple inputs using the connectors in the module graph
Remove modules using context menu or "Del" key
Colormapping is done automatically. Modify colormapping parameters by selecting the dataset.
Colormap- ordering is done in Colormaps-tab
Apply Colormapping module to show resulting data from other modules as colormap