Python
Example 2.5: Interactions via Python scripting
Example 2.5: Module Interactions Using Python Scripting
Introduction
This chapter will give you an overview over Python scripting in MeVisLab. Here, no introduction into Python will be given. However, basic knowledge in Python is helpful. Instead, we will show how to integrate and use Python in the MeVisLab SDK.
In fact, nearly everything in MeVisLab can be done via Python scripting: You can add modules to your network, or remove modules, you can dynamically establish and remove connections and so on. But, much more important: You can access module inputs and outputs, as well as module fields to process their parameters and data. You can equip user interfaces and panel with custom functionalities. Python can be used to implement module interactions. When you open a panel or you press a button in a panel, the executed actions are implemented via Python scripting.
Example 2.5.1: The module RunPythonScript
Example 2.5.1: The module RunPythonScript
Introduction
The module RunPythonScript
allows to execute Python scripts from within a MeVisLab network. You can draw parameter connection from modules to RunPythonScript
and back, to process parameter fields using Python scripting.
Steps to do
Develop your network
In this example, we like to dynamically change the color of a cube in an Open Inventor scene. For that, add and connect the following modules as shown.
Example 2.5.2: Module interactions via Python scripting
Example 2.5.2: Module interactions via Python scripting
Introduction
In this example, you will learn how to add Python scripting to your User Interface. The network used in Chapter V will be used for creating the macro module.
Steps to do
Creating the macro module
First, we condense the example network into a macro module and then we create a panel for that module. To create a macro module use the Project Wizard, which you find under [ File → Run Project Wizard ]. Select Macro module and press Run.
Example 3: Creating a simple application
Example 3: Creating a simple application
Introduction
In the previous examples, you already learned how to create macro modules, user interfaces and how to interact with your UI via Python scripting.
In this example, you will learn how to create a simple Prototype application in MeVisLab including a User Interface with 2D and 3D viewer. You will learn how to implement field listeners and react on events.
Steps to do
Create your network
Start with an empty network and add the Module ImageLoad
to your workspace. Then add a View2D
and View3D
to your workspace and connect the modules as seen below.
Example 4: Installing additional Python packages using the PythonPip module
Example 4: Installing additional Python packages using the PythonPip module
Introduction
MeVisLab already comes with a lot of integrated third party software tools ready to use. Nevertheless it might be necessary to install additional Python packages for your specific needs. This example will walk you through the process of adding packages through usage of/using the PythonPip
module.
The PythonPip
module allows to work with the Python package manager pip. It can be used to install Python packages into the site-packages of the MeVisLab Python installation.
Chapter VI: Testing
MeVisLab Tutorial Chapter VI
Testing, Profiling and Debugging in MeVisLab
The MeVisLab Integrated Development Environment (IDE) provides tools to write automated tests in Python, profile your network performance and to debug your Python code. All of these funtionalities will be addressed in this chapter.
Testing
The MeVisLab TestCenter is the starting point of your tests. Select [ File → Run TestCaseManager ] to open the user interface of the TestCaseManager.
Example 1: Writing a simple test case in MeVisLab
Example 1: Writing a simple test case in MeVisLab
Introduction
In this example, you will learn how to write an automated test for a simple network using the DicomImport
, MinMaxScan
and View3D
modules. Afterwards, you will be able to write test cases for any other module and network yourself.
Steps to do
Creating the network to be used for testing
Add the following modules to your workspace and connect them as seen below:
Example 3: Iterative tests in MeVisLab with Screenshots
Example 3: Iterative tests in MeVisLab
Introduction
In this example, you are writing an iterative test. Iterative test functions run a function for every specified input. They return a tuple consisting of the function object called and the inputs iterated over. The iterative test functions are useful if the same function should be applied to different input data. These could be input values, names of input images, etc.
Step 3: Prototyping - User Interface and Python scripting
Step 3: Prototyping - User Interface and Python scripting
Introduction
In this step, we will develop a user interface and add Python scripting to the macro module you created in Step 2.
Steps to do
Develop the User Interface
A mockup of the user interface you are going to develop is available here. The interface provides the possibility to load files and shows a 2D and a 3D viewer. In addition to that, some settings and information for our final application are available.
Step 4: Review - Automated Tests
Step 4: Review - Automated Tests
Introduction
In the previous chapters you developed a macro module with User Interface and Python scripting. In this step you will see how to implement an automated test to verify and validate the Requirements defined in Overview.
Steps to do
Create a test network using your macro module
Create a new and empty network and save it as *.mlab file. Remember the location.
OpenCV
Open Source Computer Vision Library (OpenCV)
Introduction
OpenCV (Open Source Computer Vision Library) is an open source computer vision and machine learning software library.
This chapter provides some examples how to use OpenCV in MeVisLab.
Other resources
You can find a lot of OpenCV examples and tutorials on their website.
Example 1: WebCam access with OpenCV
Example 1: WebCam access with OpenCV
Introduction
In this example, we are using the PythonImage
module and access your WebCam to show the video in a View2D
.
Steps to do
Creating the network to be used for testing
Add the modules to your workspace and connect them as seen below.
The viewer is empty because the image needs to be set via Python scripting.
Example 2: Face Detection with OpenCV
Example 2: Face Detection with OpenCV
Introduction
This example uses the OpenCV WebCam Python script and adds a basic face detection.
Steps to do
Open Example 1
Add the macro module developed in Example 1 to your workspace.
Example 1: Installing PyTorch using the PythonPip module
Example 1: Installing PyTorch using the PythonPip module
Introduction
The module PythonPip
allows you to install additional Python packages to be used in MeVisLab.
The module either allows to install packages into the global MeVisLab installation directory, or into your defined user package. We will use the user package directory, because then the installed packages remain available in your packages even if you uninstall or update MeVisLab. In addition to that, no administrative rights are necessary if you did install MeVisLab for all users.
Example 2: Brain Parcellation using PyTorch
Example 2: Brain Parcellation using PyTorch
Introduction
In this example, you are using a pre-trained PyTorch deep learning model (HighRes3DNet) to perform a full brain parcellation. HighRes3DNet is a 3D residual network presented by Li et al. in On the Compactness, Efficiency, and Representation of 3D Convolutional Networks: Brain Parcellation as a Pretext Task.
Steps to do
Add a LocalImage
module to your workspace and select the file MRI_Head.dcm. For PyTorch it is necessary to resample the data to a defined size. Add a Resample3D
module to the LocalImage
and open the panel. Change Keep Constant to Voxel Size and define Image Size as 176, 217, 160.
Example 3: Segment persons in webcam videos
Example 3: Segment persons in webcam videos
Introduction
This tutorial is based on Example 2: Face Detection with OpenCV. You can re-use some of the scripts already developed in the other tutorial.
Steps to do
Add the macro module developed in the previous example to your workspace.
Open the internal network of the module via middle mouse button and right click on the tab of the workspace showing the internal network. Select Show Enclosing Folder.