5. Changelog Version 3.0.0

5.1. itom

Version 3.0.0 (2017-04-07)

(more than 250 commits in itom repository)

  • demoDataObject.py modified for a clearer overview of important features

  • demo about image distortion simulation and determination added

  • demo for paramEditorWidget added to demo/ui

  • fixes due to high-dpi display

  • added message in the CMake-files in pluginTemplates to print the plugin name in the CMake output

  • documentation: workaround of vtk linker exception under linux

  • added some classinfo descriptions for motorAxisController and paramEditorWidget

  • added documentation with demo script of how to set legendTitles in a 1d plot with the help of tags.

  • update documentation of 1d and 2d plot

  • updated documentation due to modified widget wrappers (QComboBox::itemText accessible via python call)

  • fix in ItomBuildMacros.cmake, macro POST_BUILD_COPY_FILE_TO_LIB_FOLDER if the given library list is empty

  • added a paramEditorWidget which can for eg. can be used to acess parameters of a geniCam instance

  • added itemText method to qlistview (widgetWrapper) and some code formatting

  • documentation updated for new pickerChanged signal of itom1dqwtplot

  • updated setup documentation of itom

  • added python_unittest function checking the behavior of dstack

  • modified widgetWrapper member function to return ito::RetVal instead of bool, for better error diagnostics

  • style sheet adaptation for plugin documentation

  • fixes for some missing type registrations in Qt meta type system

  • added python-based cameraToolbox, containing a module ‘distortion’ to determine radial distortion, scaling and rotation of a distorted grid of points (including their undistortion). This can be used for characterizing optical systems e.g. based on single chessboard or regular point-grid patterns.

  • incremented AddInInterface to 3.1.0 due to further, binary-compatibility breaking changes in AddInManager and other parts

  • from Qt5.5 on, an automatic parsing of enumerations and their keys in terms of strings is possible. Added this feature to improve python slot-calls.

  • added a static dataObject function called dstack to stack different dataObjects

  • added a new python command to copy the whole dataobject meta information of a dataObject

  • pythonEngine, load Variables: name/key compatibility improvements

  • itom_unittests dataObject saturate_cast_test fix problems with rounding of rgba to gray values.

  • itom_unittests operatorTest changed, that the operation: matrix divided my matrix has no zero values.

  • bugfix in ito::DataObject::deepCopyPartial for 1xm vs. mx1 objects where the lhs object is a roi of a bigger object. Including unittest in python_unittests environment.

  • added marker for docked or undocked scriptEditorWidget

  • improvements in unittest: application will be build in itom-build directory for a better access to required libraries

  • show size of numpy array in detail window

  • unittest and changes in dataObject::copyTo (no reallocation if rhs dataObject has already the right size and type)

  • changed behavior of copyTo, rhs is not reallocated when regionOnly is passed and it already has the correct type and size.

  • improvements in unittest: application will be build in itom-build directory for a better access to required libraries

  • added unittest for externally started AddInManager

  • Qt4 compatible version of AddInManagerDLLr

  • updated German translation

  • some security checks and comments added to new constructor of DataObject.

  • changes in tex_demo.py. There seems to be a bug in matplotlib 2.0.0, when using savefig command in combination with unicode!?

  • added dataobject contructor for single cv::Mat

  • added some documentation about the Latex support for Matplotlib Text layout

  • re-add missing LinguistTools library

  • Integrated changes in commontk project: https://github.com/commontk/CTK/commit/5db3f9320ed50b9d8179236cd3e84694dd7153ec

  • Updates in conf.py of user documentation due to changed default settings in QtHelpBuilder of Sphinx

  • update all-in-one development setup documentation

  • documentation: brief section of the global plot settings. Added some new settings

  • improved documentation about unfound font in Matplotlib

  • added max function for complex valued dataObjects, returning the largest magnitude (and its position)

  • Added function to check for gui support to addInInterfaceBase and AddInBase

  • added more features to some ParamMeta classes

  • contributors adapted

  • removed some memory leaks in Python C-code and removed some unused methods in PythonEngine

  • fixes issues with special characters in filename of itom.loadMatlabMat and itom.saveMatlabMat

  • some test scripts with scipy added (can also be used to check proper installation of scipy)

  • added Redistributable Visual Studio 2015 to setup

  • documentation: package list for linux updated

  • more cmake information for linux

  • added default style settings for qwt plots into the properties

  • redesign of dataObjectFuncs to provide a clearer helper class for verifying, comparing and preparing dataObjects

  • domain itom.bitbucket.org replaced by itom.bitbucket.io

  • ito::ParamBase::Type: flag NotAvailable added for temporarily unavailable parameters

  • added PenCreator Button, BrushCreatorButton and FontButton to UI-Designer

  • ito::Param::getMetaT<_Tp>() added as templated-version for ito::Param::getMeta() such that the C-cast can easily be replaced by the template parameter.

  • Bugfix application stall on closing, when using AddInManager dll

  • overloaded sizeHint in PenCreatorButton and added a brushCreatorButton

  • implemeted a fontButton

  • added “item” slot for qListWidget, which retrieves the text of the “item”th row

  • added version.h (qitom / git) to sdk, added apifunction to read out filter version, author and plugin name

  • added option for Python path as itom subdirectory

  • added commonQtVersion.h and pclVersion.h to SDK files

  • AddInManager now starts an instance of QCoreApplication if none is found

  • unified names between IOHelper and FileSystemDockWidget

  • added some missing metatypes

  • added missing pcl integration

  • pip manager adapted to changes for pip >= 9.0

  • documentation added how to build itom under Fedora (tested with Fedora 25)

  • changed order of methods in dataobj.cpp to support gcc under Fedora

  • CMake syntax fix for CMake < 3.0.0

  • prepare FindOpenCV.cmake to support Fedora

  • moved apiFunctions to addin manager and restructured them, i.e. removing gui related functions. These were moved apiFunctionsGraph (which should be renamed to apiFunctionsGui actually)

  • added addinmanager to sdk lib files, some minor cmake cleanup

  • docstrings of itom.pointCloud, itom.point and itom.polygonMesh improved

  • Clean up of unused includes

  • plugin widgets can now be opened by plugin dock widget even if they have mandatory or optional initialization parameters

  • Move AddInManager to DLL initial version

  • property editor has context menu entry to select between sorted and unsorted representation

  • pointCloud.moveXYZ added (offsets every point in a point cloud, comparable to pointCloud.scaleXYZ)

  • closeItom event can be stopped by click on the Cancel button or press the ESC Key on the keyboard.

  • console: double click on any type of warning (not only runtimeWarning) will open the corresponding script.

  • make matplotlib itom backend backward compatible with matplotlib 1.4.x

  • added openmp to dataObject

  • dialog added to close itom, even if python is still running. User will be asked if itom really should be closed.

  • itom debug icons changed into 64x64 size for 4k optimization. svg files of the icons added, too.

  • itomWidgets: plotInfoDObject can handle rgba32 dataObjects

  • improved error messages

  • fix in matplotlib backend: avoid using single-shot zero-delay timer in “soft-draw” method to only redraw if the gui is idle. However, an itom.timer cannot be used in python multi-threaded applications

  • matplotlib demo about surface3d plot added

  • warning added to itom.timer if it is started in another python thread

  • docked toolbar icons as well as margins of script editor are scaled based on screen dpi

  • set remote search for Python documentation to python version 3.5

  • global rework of all icons

  • support 4k monitors: changed icons to 64x64 px and scaled UI items by the ratio (screen dpi / default dpi: 96)

  • added pyparsing-2.1.10 to setup

  • bugfix in WorkspaceDockWidget::updateActions(). Sometimes the return value of m_pWorkspaceWidget->numberOfSelectedItems() is different to the return item.size() of m_pWorkspaceWidget->selectedItems()

  • pluginTemplates updated

  • many bugfixes under Linux and Windows

5.2. Plugins

Version 3.0.0 (2017-04-07)

(nearly 100 commits in plugins repository)

  • PGRFlyCapture: parameter ‘start_delay’ added to possibly allow blue screens when starting the device, followed by an immediate image acquisition

  • test string parameters with different meta information added to DummyGrabber in order to better test the ParamEditorWidget and its demo, that is based on the DummyGrabber and DummyMotor.

  • NITWidySWIR message, that NUC file was loaded deleted.

  • parameter “name” in some plugins set to readonly

  • updated plugin rst changelog

  • DummyGrabber, DummyMotor: enhanced meta information for parameters to be better rendered with ParamEditorWidget

  • fixes in GenICam if camera does not provide enough information about the image buffers

  • GenICam plugin (currently only B/W cameras implemented) added. Requires GenICam v3.0 or higher to compile.

  • adapted all ui files of plugins for the use of high dpi screens

  • NITWidySWIR added message to print the plugin name in the CMake output

  • Bugfix in DummyMotor jogging

  • CyUSB plugin compiled with version 1.3.3

  • MeasurementComputing plugin compiled with SDK Version 1.89

  • added NITWidySWIR plugin

  • inserted params into documentation of ThorlabsPowerMeter

  • ThorlabsBP and ThorlabsISM updated to Kinesis 1.9.3 (from Kinesis 1.8.0 on, the parameters ‘slewRate’ of brushless piezos have been removed, since they were never implemented in the controller).

  • removed wait_for_event from DslrRemote2 capture, as in the current form not working with Nikon Dslr - needs checking

  • removed unused opencv calib3d from BasicFilters

  • added automatic normalization to labeling filter, as without this the filter does not work correctly

  • Moved labeling and findEllipses filter from ito internal plugins to BasicFilters

  • BasicFilters: calcMeanZ: max z-depth is not limited

  • DslrRemote2: Added execfunc to retrieve file list and to download file by name

  • Working on DslrRemote2, first working version (windows), Linux still needs to be checked; Currently reading properties, capturing images and basic version of image download are working

  • dataObjectArithmetic: improved mode 4 of filter ‘findMultiSpots’

  • dataObjectArithmetic: improvements in findMultiSpots

  • added filter ‘findMultiSpots’ to DataObjectArithemtic in order to quickly find multiple spots (using the center of gravity) within one image (or a stack of images).

  • DslrRemote, next try … this time without libgphoto and only with libptp2 (strongly modified version, using new libusb)

  • MSMediaFoundation: improvements to support more parameters especially for new HD webcams with full focus and white-balancing control

  • rawimport added clean up of temporary directory and detection of dcraw output format (pgm or tiff)

  • creation of all dock widgets protected by check if plugins are loaded by GUI-itom (not directly by externally loaded AddInManager)

  • OpenCVFilters: corrected docstring of cvCalibrateCamera

  • changed CMake to follow changed rules of CMake > 3.0.0 in order to prevent policy warnings

  • Vistek: add missing VistekGigESDK files

  • division of pclTools ModelFitGeneric file into various files due to linker bogobj issue

  • SVS Vistek GigE SDK updated to 1.5.2

  • DemoAlgorithms: demoWidget added

  • more robust implementation of saveDataToTxt in DataObjectIO (concerning empty wrapSign and linux compilation)

  • Config dialog of FireGrabber adapted to modern style. Parameter ‘roi’ added.

  • added basci ascii export filter

  • modification in ptgrey path detection

  • Added newer MSVS version to PtGrey find library / binary

  • DataObjectIO: filter ‘loadTXT’ adapted and optional encoding of text file added. If this is not given, the encoding of the text file is guessed.

  • timeout parameter added to UhlText and UhlRegister

  • IDSuEye prepared for SDK 4.81 which has a better support for some modern USB3 cameras

  • added optional limit switches and jogging capability to dummyMotor, enabled event processing in waitfordone so asynchrone getpos are possible

  • PCOCamera: this plugin can now also operate PCO.edge cameras (tested with PCO.edge 3.1)

  • AndorSDK3: delay inserted into stopDevice() to avoid feature access errors

  • IDSuEye also works with Thorlabs DCC and DCU cameras. The plugin ThorlabsDCxCam is obsolete now.

  • PclTools: fix in loadPolygonMesh and loadPointCloud for ply format. Some docstrings improved

  • ThorlabsISM: Character encoding fix

  • ThorlabsPowerMeter: docstring fixes

  • All work done… ready to use the ThorlabsPowerMeter plugin

  • docstring fix in deviationValue of dataobjectarithmetic

  • Bugfix in filter histogram; the parameter for definition of bin numbers is now used for 8bit images correctly

  • many bugfixes under Linux and Windows

5.3. Designer Plugins

Version 3.0.0 (2017-04-07)

(more than 30 commits in designerPlugins repsository)

  • others: from Qt5.5 on, an automatic parsing of enumerations and their keys in terms of strings is possible. Added this feature to improve python slot-calls.

  • others: changed Icons to 64x64 size.

  • others: linux Qt4 bugfixes, thanks to Goran

  • others: bugfix in vtk3dVisualizer: yAxisLabel and zAxisLabel showed the same value

  • others: corrected format of menu and messages

  • others: re-add missing LinguistTools library

  • others: changed CMake to follow changed rules of CMake > 3.0.0 in order to prevent policy warnings

  • itom1dqwtplot: fix for setting legend fonts if some legends are hidden

  • itom1dqwtplot: legendTitles can again be set via dataObject tags

  • itom1dqwtplot: added “active picker” to 1DPlot, i.e. active picker can be get/set via the property …CurrentPickerIndex, in addition the signal pickerChanged when a picker has been altered

  • itom1dqwtplot: docstring added for pickerChanged signal

  • itom2dqwtplot: fixes in automatic linecuts at horizontal or vertical lines containing the min/max value

  • itom2dqwtplot: fix to rescale color bar to right values if the value range is set to ‘automatic’.

  • itom2dqwtplot: color bar can now display a logarithmic or double-logarithmic scale

  • itom2dqwtplot: a zStack or a lineCut is now of the same complex type as the parent plot

  • itom2dqwtplot: added api settings to individualize the z stack picker… added api settings to individualize the label of a drawed item… renamed some api functions

  • itom1dqwtplot, itom2dqwtplot: fixes when copying to clipboard or saving to a file (dpi related canvas size corrected). Screen dependent dpi has to be added in the future.

  • itom1dqwtplot, itom2dqwtplot: meta information widgets are copied to clipboard if visible

  • itom1dqwtplot, itom2dqwtplot: improved styles of picker, shapes, zoomer…

  • itom1dqwtplot, itom2dqwtplot: moved all tracker and shape labels by default on a white background. The Color of the letters are no longer changed by changing the color palette of a plot. The geometric element style is now accessible over the api

  • itom1dqwtplot, itom2dqwtplot: better acceptance for 2D dataObjects with more than 2 dimensions (e.g. [1,3,3]) in ‘plotMarkers’ slot

  • itom1dqwtplot, itom2dqwtplot: added property complexStyle to set whether the real, imag, abs, or phase in a 1D or 2D plot is displayed

  • itom1dqwtplot, itom2dqwtplot: fix to reset cursor in some state transitions (e.g. from panner to line-cut)

  • many bugfixes under Linux and Windows