| genre | FlowControl |
| status | stable |
| author | Wolf Spindler |
| package | MeVisLab/Standard |
| dll | MLImageIterator |
| definition | MLImageIterator.def |
| see also | ImageIteratorStart |
| keywords | iteration, iterator, induction, loop, cycle, start, end, image |
The modules ImageIteratorStart and ImageIteratorEnd permit the iteration of an image on network level.
Both modules need to be used as a pair for proper operation as explained below. Between those two modules, a module network can be used to filter an image a specified number of times.
Create the ImageIteratorStart and the ImageIteratorEnd and connect output 0 of ImageIteratorStart to input 0 of ImageIteratorEnd so that both modules can transfer iterated images between them.
To input 1 of ImageIteratorStart connect the image to be iterated and at output one connect the network which shall filter the image during iterations. The output of that network is connected to the second input of ImageIteratorEnd.
Then set the number of iterations in field Num Iterations, the maximum limit of iterations to be done and activate the iterations e.g. by using Iterate Once or Do Num Iterations. At the output of ImageIteratorEnd the result of the iteration process is available.
- Intermediate filtering and/or iteration results are buffered in a memory or file buffer inside the ImageIteratorEnd module dependent on the selected Buffering Mode.
Intermediate results are transported internally between both modules via the connection between output 0 and input 0. Iterations will not work without that connection.
- The buffering mode File even allows for iterating images larger than the physical or even the virtual memory size of the system if page extents have been set adequately such that all intermediate page results can be stored in memory. The maximum size for iterated images is given by the file system which must be able to store twice the image.
- During operation notifications and presses on buttons are usually suppressed and not detected by most modules. The Stop Iteration button, however, also detects them. This behavior is useful to make the number of iterations dependent on other modules or scripts which send a notification as an "end" signal via a field connection to this button.
Advanced technical note:
Be aware that changes on fields/buttons from inside any Module::calculate* method will still not be detected, because notifications from those fields are generally not sent during image processing.
| Auto Iterate: Bool | Reset To Start: Trigger |
| Buffer Mode: Enum | Stop Iteration: Trigger |
| Do Num Iterations: Trigger | Tmp File Prefix: String |
| Done Iterations: Integer | |
| Info: String | |
| Iterate Once: Trigger | |
| Max Iteration Num: Integer | |
| Num Iterations: Integer |
If pressed, the module iterates as often as specified in Num Iterations.
If pressed, the current iteration is being stopped.
If pressed, the current iteration number is reset to 0.
Defines where to store the temporary image.
Values:
| Title | Name | Description |
|---|---|---|
| Memory | InMemory | Stores the intermediate result in memory. |
| File | InFile | Stores the intermediate result in a file. |
Sets the number of iterations that are to be performed.
Sets a maximum iteration step which is not exceeded.
Shows the iterations that are already done.