1. Changelog Version 3.0.0

1.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

1.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

1.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