* Fixed bug where clicking "Browse" when using an image source which had a filename as not the final input raised an exception.
* Fixed bug where Loading chessboard images for intrinsics calibration in the alignment calibration tool reset the image orientation after clicking "apply".
* Fixed exception when loading a multi sub-view image and then running a fit in the fitting calibration tool.
* Fixed bug when loading R,Z,phi data from a file to plot in the 3D viewer which caused the data to be displayed incorrectly
* Fixed issue where config.get_cadmodels() raised an exception if one (or more) CAD model file(s) is not readable.
* Fixed a bug in the CAD model editor where browsing for a mesh file to add, then clicking cancel on the browse window, raised an exception.
* Fixed a bug where an image could be loaded in the wrong orientation when loading a new image in to the fitting calibration tool.
Patch 2.2.3 (2nd Apr 2019)
--------------------------
Fixes:
* Replacing a mesh file with one of the same filename in the CAD model editor no longer results in a broken .ccc file.
* Fix default 2D array flattening order in GeometryMatrix being different from NumPy's default (resulted in transposed images).
* Fix exceptions raised when opening a calibration with a CAD model not available on your install.
* Fix image rendering from 3D viewer GUI always rendering in display orientation regardless of selected settings.
* Fix re-arrangement of model features between groups in the CAD model editor not being saved.
* Make error message less obnoxious when trying to load the Calcam GUI with the launcher script on a system without the GUI available.
* Remove redundant debug message box in Image Anslyser.
Patch 2.2.2 (26th Feb 2019)
---------------------------
Fixes:
* Fix bug raising exceptions from raycast_sightlines when using status_callback=None.
Patch 2.2.1 (25th Feb 2019)
---------------------------
Changed:
* Latest version check in launcher GUI now checks GitHub tags instead of releases (and gives download link).
Fixes:
* "--user" option to setup script now correctly carries through to pip for dependency installations (Issue 38)
* Fix exception when prompted to browse for CAD models under python 2.x (Issue 39)
* Fix various typos and tweaks to docs
Minor Release 2.2.0 (25th Feb 2019)
-----------------------------------
New & Enhancements:
* Replaced undocumented geometry matrix functionality in calcam.geometry_matrix with new calcam.gm module and add corresponding documentation.
* Re-written setup script with better dependency handling (checks presence and tries to use PIP to get them) and better messages. Update docs accordingly.
* Added provenance tracking capabilities to RayData class.
Fixes:
* Fix bug where loading chessboard images in the fitting calibration tool would cause an exception.
* Fix bug where calcam.gui and matplotlib could try to use different PyQt versions leading to exceptions.
* Fix bugs in VirtualCalib.__init__ and AlignmentCalib.__init__ which caused segfaults when launching virtual and alignment calibration GUIs on some platforms.
* Fix broken Fitter.set_fitflags_strings() method.
* Fix loading of calibrations with intrinsics constraints in fitting calib tool (previously intrinsics constraints disappeared)
* Fix incorrect number of point pairs reported when using another calibration for intrinsics constraints.
* Various typo fixes and minor tweaks in docs
* Fix a bug in CoordTransformer which resulted in strange image point types in transformed pointpairs objects, leading to exceptions
Bug fix release 2.1.2 (5th Feb 2019)
------------------------------------
Hot on the heels of yesterday's serious bug...another!
Fixes:
* Change explicit check for OpenCV major version == 3 to major version > 2, for compatbility with OpenCV 4.
Bug fix release 2.1.1 (4th Feb 2019)
------------------------------------
Fixes:
* Performing a fit in a newly created calibration raises an exception
Minor Release 2.1.0 (18 Jan 2019)
---------------------------------
New & Enhancements:
* Add Calibration.get_undistort_coeffs() method (Issue 24)
* Add ability to customise the colour of the wireframe overlay including transparency in fitting tool (Issues 31 & 25)
* Add fallback method for histogram equilisation if OpenCV hist eq unavailable, and adjust OpenCV Hist Eq parameters (Issue 25)
* In fitting tool, the current points, fit and display are preserved when loading another image of compatible dimensions (Issue 30 + general improvement)
* Add ability to load another calibration for overlay comparison in fitting tool (Issue 32)
* Add ability to specify camera extrinsics by roll instead of upvec in Calibration.set_extrinsics() and also add check that upvec and viewdir are orthogonal.
* Add ability to manually specify source directory in Calcam 1.x file converter
* Various GUI appearance enhancements for non-Windows OSs.
* Added friendlier error message if permission denied trying to save a file.
Fixes:
* Fix bug in Calcam 1.x file converter which caused fit results not to be converted properly.
* Fixed incomplete reset of GUI state when resetting the fit (Issue 30)
* Fix mesh files not being loadable in the CAD model editor under python 2.x
* Fix incorrect classification of "user code" in exception handling
* Add QVTKRenderWindowInteractor.py to Calcam distribution to work around compatibility issue with VTK + PyQt5 as distributed with Enthought Canopy.
* Fix exceptions when opening calibrations not containing images.
Bug fix release 2.0.1 (18 Dec 2018)
-----------------------------------
Fixes:
* Fixed bug in CAD model editor causing exceptions when removing model features which had been moved between groups.
* Fixed CAD model editor often spuriously reported that there were unsaved changes to the CAD model.
* Fixed reloading of user coordinate formatter in CAD model editor hitting recursion limit.
* Fixed missing "Are you sure" prompt when removing viewports in CAD model editor.
* Fixed some GUI elements not being reset properly when un-loading a model in the CAD model editor.
* Changed exception raised in CAD model editor when loading UTF8 encoded data to a friendlier message.
* Fixed exceptions raised in calibration tools when loading calibrations if the CAD model has a different set of features than expected.
* Fixed checked features in CAD model feature tree becoming out of sync when loading calibrations.
* Fixed bug which could cause CAD model definitions to be corrupted if they did not close cleanly.
* Fixed undesirable behaviour which caused 1 broken CAD definition file to stop all others being detected.
* Fixed bug where custom coordinate formatters were not properly reloaded when reloading CAD models (can cause exceptions in some circumstances).
* Minor typo fixes
* Added missing image + notes on user code structure in documentation