List of WiT 8.4 Features and Bug Fixes
New Features
WiT
- Link corners can now be individually selected, allowing portions
of a link to be dragged or deleted.
- When dragging links with multiple segments, 90 degree corners
are now maintained if possible, resulting in generally more pleasant
looking links.
- Links segments that are horizontal or vertical now maintain
their direction when dragged.
- New feature allows inputs to a operator to be redirected to
a label operator when that operator fails in execution.
This allows versatile error handling.
- In previous versions when a new igraph is started, the first
step was always to make an instance of the 'start' operator.
Although this was an easy step, it still became annoying.
Now whenever a new igraph is started, a 'start' operator is
automatically created near the upper left corner.
- Popup window position and sizes can now be remembered and
saved as part of an igraph.
Basic window position ability was available before but now
this feature is much improved.
More window types are supported, such as graph and image
profiles.
In particular, the image magnifier position and size can
now be remembered so that it always comes up with the
desired setting.
Also, scale and min/max window sizes are also supported for
some window types.
- New interactive parameter option allows an operator parameter
to be updated immediately when its value is changed on the
property panel, without having to click the OK button.
This allows interactive viewing of the effect of a parameter
change while an igraph is running.
This is particularly useful for parameters with a slider or choice
control.
- Added operator output port property to allow user to indicate
that an output will re-use the data area from one of the forced
consume inputs.
This will allow data that are stored in memory cells or are
being displayed to be consumed.
Previously if 'force' is selected, in general WiT will crash
on repeated execution of such an operator because the output
is freed.
By telling WiT that an output will adopt a consumed input,
WiT can correctly keep track of when to safely free the data.
- Added operator group control to allow changing parameter
display options and values of all selected operators by
common parameter name
- Changed image display behavior such that when an image is
displayed in an existing window with the same image type and size,
and the X and Y scale parameters are set to 0,
the display settings, especially the zoom scale and position,
are not reset as in previous versions of WiT.
This behavior is useful when studying changes in a magnified
portion of a sequence of images.
- The 'in' and 'out' operators normally only used for subgraphs
can now be executed at the top igraph level also.
The input operator behaves like a 'rdObj' operator,
with the operator name used as the file name to read from.
The output operator behaves like a 'display' operator,
with the operator name used as the display name.
This makes it easier to test the behavior of a sub-WIC without
having to first embed it in another igraph.
- A new option for the 'display' operator allows the equalization
settings to be maintained when a new image is sent to the
same 'display' operator.
This allows the user to adjust the equalization interactive
while the image data is continuously updated.
Engine
- The new 'in' and 'out' operator execution behavior works the
same way as 'rdObj' and 'display' operators,
allowing 'in' and 'out' operators to be used for interfacing
with user applications.
- All windows can now be mapped to user windows.
Previously only specific window types such as 'display'
operator or graph could be mapped.
Now windows such as image profiles and the getData mini-toolset
window can be mapped.
Standard Libraries
- New operators 'onEmptyGoto' and 'onFailGoto' to allow more
convenient handling of exceptions
- 'memRecall' has new parameter that allows it to fail if the
named memory does not exist
- Added auto ranging and bin size options to 'histogram'
- New 'matchROI' operator set ROIs in image vector to intersection
of ROIs.
- 'rasterize' now calculates a gray value from the graphic colors
when forced to a gray scale output image
- 'createRect' now has 'fillColor' and 'penColor' parameters.
- Added 'createPt', 'createCircle', 'createTextGraphic',
and 'createLine' operators to work
in a similar fashion as 'createRect', for easy setting of individual
coordinate values.
- Added elliptical arc to scan utilities, so elliptical arcs can be
rasterized and used as masks.
- 'zoomScale' and 'zoomSize' operators were extended to convert points,
real points, vectors of points and vectors of real points.
- added a random permutation mode to 'shuffleVector' and moved random
number generator into utils.
Smart Libraries
- Added MMX support for Search library for 64 bit Windows version.
- Improved speed of the perspective calibration calculation.
- Improved speed of the perspective calibration restoration.
- Calibration is able to process grid images seen from the
steep angle.
- Perspective calibration could be done for images with horizon line
inside image.
- Perspective calibration could be done for two sets of arbitrary
correspondent points. They still should be wrapped into grid structure.
$ COR_CALIB_DEVIATION behavior has been modified. Reference points
are found on the input image then it is subject to
conversion and another set of reference points is found.
Then sum of squares difference is calculated. In the previous version
comparison was made with perfect square grid.
$ COR_CALIB_GRID_DEVIATION: there are two input grids now. First
grid is converted and sum of squares difference with second
one is found.
Bug Fixes and Incompatibilities
WiT
- When dragging selected links that were connected to non-selected
operator ports or link junctions, garbage graphics near the
fixed ends was left behind sometimes.
- On image properties panel, color channels were shown in the order
BGR. Now it is shown in the more familiar RGB order.
- Previously, if the profile or magnifier check boxes for the
'display' operator were unchecked,
then when the 'display' operator is
repeatedly executed, it was impossible to interactively turn
on the profile or magnifier windows.
Now the behavior has been changed such that if the profiles or
magnifier windows are displayed,
then even if the operator properties check boxes are not checked,
the profile and magnifier windows will stay up.
- When an image is displayed and the image properties panel is
shown, sending a new image to the same 'display' operator
caused the properties panel to snatch the focus,
making it sometimes very difficult to stop the igraph
because the main WiT window kept losing the focus to the
image properties panel.
Now the image properties does not grab the focus when the
image is changed.
- When a warning was issued, the status window always grabbed
the focus,
making stopping an igraph impossible if a flood of warnings
were continuously issued.
Now the status window does not grab the focus when a warning
is shown.
- When an image had been zoomed in and 'normal size' was selected
from the image menu,
the origin was always reset to the upper left corner of the
image.
Now the origin is set so that the center position is maintained.
- When 'View all' was selected for a displayed image, the pixel
scale was always reset to 1. Now the X and Y pixel scales
are adjusted so that the pixel aspect ratio is maintained and
the new image fits inside the existing window.
- When using MRU to load a previous file and the file was not there,
WiT did not issue a warning message.
Now WiT issues an appropriate message.
Standard Libraries
- 'graph' operator only displayed first word of curve name if name
has multiple words. Now it correctly displays the entire name.
- 'ocrPerimRun' matching to first or second character in font with
score of 1.0 in Range rotation mode.
- 'overlayData' showed labels on points too far from the point when
at very large zoomed in scale.
- 'createRect' used to reject negative coordinates.
Now negative coordinates are accepted.
- Default port positions for the 'K' parameter for operators like
'addK', 'subtractK', etc. now changed to 0 to line up the port with
the icon graphic.
- random integer generator was producing a beating pattern in the
generated numbers. Affected 'random', 'randSequence', and 'addNoise'.
- 'shuffleVector' operator was giving incorrect output vector length in
the "Indexes" mode.