forked from euratom-software/calcam
-
Notifications
You must be signed in to change notification settings - Fork 1
/
CHANGELOG.txt
557 lines (423 loc) · 34.7 KB
/
CHANGELOG.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
Calcam Changelog
================
Changes on Master branch since last release (2.14.dev3)
--------------------------------------------------------
New & Enhancements:
* Added feature to build and export a list of 3D coordinates based on cursor clicks in 3D Viewer tool.
* Added option in fitting calibration GUI to fix the optical centre at the image centre (contribution from Koyo Munechika)
Compatibility:
* Fix compatibility with Matplotlib 3.9.0
* Restore compatibility with Python 3.5
Fixes:
* Geometry matrix generation now works correctly with RayData objects where RayData.set_detector_window() has been used (previously the detector window setting was ignored by the geometry matrix building)
* Improved handling of "missed" ray-cell intersections in geometry matrix generation caused by numerical accuracy near grid cell intersections (now less likely to raise exceptions)
* Fixed issue with numerical precision causing errors in geometry matrix building
* Fixed incorrect logic related to use of additional intrinsics constrains in fitting calibration tool with transformed images (sometimes caused exceptions; may also have affected calibration accuracy)
Minor Release 2.13.0 (February 2024)
------------------------------------
New & Enhancements:
* Support MATLAB 7.3 HDF5 files when loading geometry matrices from MATLAB format (#118, contributiobn from Artur Perek).
* GUI visual accessibility improvements: change marker colours to more colorblind-friendly palette and increase size of 3D cursors.
Compatibility:
* Changed from MeshPy for triangular grid generation in calcam.gm to using "triangle" module directly (#115)
* Fix compatibility of calcam.movement.detect_movement(),phase_calibration_movement() and filter_points() with openCV 4.6 and newer (#117)
Fixes:
* Fixed a bug where loading a fitted calibration with tangential distortion disabled in the calibration GUI would not disable the tangential distortion checkbox on the fitting tab.
* Fixed exceptions raised by set_detector_window() and raycast_sightlines() for multi-subview calibrations with some sub-views not fit. (#119)
* Attempt to fix broken Anaconda build & publish action (#114)
Note that this release introduces two new dependencies: h5py and triangle.
Minor Release 2.12 (November 2023)
----------------------------------
New & Enhancements:
* Add ability to create tomographic reconstruction grids based on SOLPS-ITER DivGeo-Carre files (#109; contribution from Rhys Doyle).
* Added option in fitting calibration tool to display CAD model as either wireframe or solid model.
* Change name of calcam.gui.executable_path to calcam.gui.exe_path to make it easier to type.
* Added more options for working with different mesh file coordinate system conventions in model definition editor (#108)
* Improved behaviour of the CAD model definition editor if importing the same mesh file multiple times.
* Calcam is now available as a conda package on Anaconda.org/calcam (#106)
Fixes:
* Fix issue where calcam.gui.icons_path could be inaccurate on Windows if Python was installed from the Microsoft Store.
* Improve handling of insufficient disk space errors so now the error message makes the cause of the problem much clearer. (#110)
* Fixed image export from Image Analyser tool which was broken (raised an exception) (#111)
* Fixed a bug which caused new version notifications not to work since v2.8.3, or if using a pre-release of the current version.
Minor Release 2.11.0 (August 2023)
----------------------------------
New & Enhancements:
* Added ability to turn off automatic trimming of geometry matrix rows and columns when creating GeometryMatrix objects.
* Add input fields for both vertical and horizontal FOV in virtual calibration editor so the user can specify either instead of only vertical.
* Added function intersect_with_line() to CADModel class and include in pbulic API.
* Improved performance of generating field of view representations and mapping camera images to CAD surface.
* Improved behaviour of "Set CAD view to match fit" button when using images with multiple sub-views in the fitting calibration tool.
* Added basic documentation of file formats.
* Improved image enhancement for some images where it previously had little effect
Compatibility:
* Move to new style packaging with pyproject.toml for compatibility with pip > 23. This means less flexible dependency management, but the dependencies are readily available enough now that this should be OK. (#83, #100)
* Fixed various additional compatibility issues under Python 3.9+ which raised exceptions due to floats being passed to PyQt calls which now require ints.
* Fixed ray casting compatibility with VTK7 which was inadvertently broken by 2.10.0
* Fixed compatibility of movement correction with newer versions of OpenCV.
* Fixed compatibility with NumPy >=1.24 which previously caused exceptions when using chessboard images (#99)
Fixes:
* When trying to save images, if an image file cannot be written (e.g. no disk space, permissions wrong etc) the user now gets an error message instead of silent failure.
* Fixed a bug which caused erratic behaviour in image analyser when using a calibration with multiple sub-views and movement correction.
* Fixed an exception which could be raised by certain combinations of clicks & key presses on VTK GUI elements.
* Fixed an issue which could raise exceptions if trying to perform a calibration fit with < 6 points (fit button is now disabled in this case).
* Field of view now updates correctly when changing pixel size or number of pixels in virtual calibration editor.
* Fixed issue with "lefover image" staying visible when changing sensor aspect ratio in the virtual calibration editor.
* Fixed a bug in the 3D viewer which caused a calibration legend with multiple entries to appear when rendering images with only 1 calibration visible.
* Fixed a bug which raised exceptions when using the "Set CAD view to match fit" button in the fitting calibration editor, for images with multiple sub-views if not all sub-views were fitted.
* Improved reliability of fitting calibration for high resolution images.
* Fixed PyQt error message to correctly reflect supported PyQt versions.
* Fixed bug in render.get_wall_coverage_actor() which caused status not to be reported properly when verbose=True
* Fixed bug in render.get_wall_coverage_actor() where providing a binned image caused the calculation to happen at higher instead of lower resolution.
* Fixed bug with 60s / 1min roll-over in duration estimate for long calculations which caused estimated times such as "0 min 60 sec"
* Fixed some typos / wording issues in GUI
* Switch from using 32bit int to 32bit float for saving pixel coordinates and binning values in Raycast NetCDF files, to allow correct saving & loading of raycasting witj sub-pixel sampling.
* Fixed bug in detection of monochrome images in enhance_image.scale_to_8bit()
* Fixed a bug in Calibration.set_detector_window() when using a detector window not completely overlapping the originally calibrated one.
* Fixed a bug which could raise exceptions in the image analyser if using a detector sub-window and movement correction.
* Removed some RuntimeWarnings raised by enhance_image() for some images.
Minor Release 2.10.0 (November 2022)
------------------------------------
New & Enhancements:
* Improved handling of errors which prevent the GUI from starting, so the user should always at least get an error message instead of silent failure.
* Added missing documentation for calcam.movement.phase_correlation_movement() so this is now part of the public API.
* Added WSAD & Up/Down/Left/Right keyboard controls for "walking" in the 3D views (#93)
* Switched to using vtkStaticCellLocator() for ray-casting because it's much faster but also for some reason much more accurate with newer versions of VTK.
* Minor documentation improvements
Compatibility:
* Removed support for PyQt6, because it causes more problems than it's worth on most platforms so sticking with PyQt5 for now gives an easier / more reliable user experience.
* Fixed various problems with the GUI under Python 3.10:
* Fixed an issue which prevented the main GUI tools from opening at alll (silent failure) (#94)
* Fixed non-working colour chooser (#95)
* Fix exceptions related to sliders (part of #78)
* Fixed exception raised when rendering unfolded wall in Viewer tool
* Added workaround / mitigation for silent Python crashes with VTK => 9.1 when setting some CAD models to wireframe (#78)
* Removed restriction of VTK version < 9.1 in setup.py and updated docs accordingly.
Fixes:
* Fixed an exception raised when adding CAD viewports from a calibration file in the Viewer GUI if the user had not manually resized the window since it was opened. (#96)
* Fixed an exception raised by Calibration.project_points() for fisheye lens calibrations if it was called with only a single 3D point to project.
* Fixed a bug where calling get_model_normals() on a raycast result with no model normals would return an exception class, instead of raising an exception.
* Fixed a couple of left-over legacy variable names in the CADModel class
Patch Release 2.9.1 (23rd July 2022)
------------------------------------
Fixes:
* Fixed bug which caused the Settings GUI to fail to open under PyQt6 in some circumstances.
* Fixed bug in RayData class where getting a data array from a Raydata object loaded from disk could produce garbled results.
* Fixed exception raised by QVTKRenderWindowInteractor in PyQt6 if QGLWidget is not available.
* Fixed (hopefully) invalid .zenodo.json so future releases get successfully published on Zenodo.
* Try to save a little memory by adding de-registration of ZipSaveFile.close() method from atexit when the file is closed.
Minor Release 2.9.0 (17th July 2022)
------------------------------------
New & Enhancements:
* Calcam now available on PyPi (but could use improvements to make distribution more PEP compliant in future) (#83)
* Support masking of images (i.e marking parts of the image which do not contain any actual image) in fitting and manual alignment calibration tools (#46).
* Add vertical field of view input in virtual calibration editor as an alternative to focal length (#85).
* Remove error message if fitting determines the camera is upside-down; camera roll now settable in range -180,180 instead of -90,90 degrees.
* In the virtual calibration editor, hide pinhole model parameters if another intrinsics type is selected (otherwise could be misleading).
* In the virtual calibration editor, when using intrinsics from an existing calibration, display the filename of that calibration.
* Add button to save image to use as a template for creating image masks.
* Add ability to place a default configuration file in the calcam directory which will be checked for new users on multi-user systems.
* Version number is now stored in 1 place (calcam/__version__) instead of 3 different places.
* Re-work setup.py for compatibility with PyPi and pip.
* Make handling of missing dependencies smoother & error messages more helpful (hopefully), including raising ImportWarnings at import instead of print statements.
* Try to improve documentation for installation & setup.
* Change new version update prompt link from linking to code archive to linking to the relevant doc page.
* Improve image quality and status printing in render_unfolded_wall()
* Added function GeometryMatrix.unformat_image() to do the inverse of format_image(). This is convenient to have when using the new masking functions.
Fixes:
* Fix issue where setting the 3D CAD view to match a calibration result set the camera roll inaccurately.
* Fix a bug which caused invisible wall coverage shading on some platforms (#86).
* Fix an exception raised in the CAD definition editor when deteling model variants in a new CAD model definition (#87).
* Fix exception raised when opening calibration info box with PyQt6 (#88)
* Fix a bug where the filename of a calibration is not updated in the calibration info after "Save As"
* Fix a bug in the virtual calibration editor where changing intrinsics type did not enable the correct set of options.
* Fix a bug where the virtual calibration editor would prompt to save changes even with no CAD model loaded.
* Fixed a bug where the "new version available" prompt could be shown incorrectly.
* Fixed a bug in 3D viewer where loading a calibration while "CAD model shading" view type was selected raised an exception.
* Fixed an issue which sometimes caused exceptions from MatPlotLib if plotting a tomography grid without data.
* Fitting options no longer reset for no reason when changing image masking in fitting calibration tool.
* Fix an exception raised when pressing Alt+Shift keys together over VTK views.
* Replace exception raised in image analyser if the image window metadata does not match calibration with a more helpful error message.
* Fixed an issue where the CAD model definition editor would not recognise a path was in the Calcam config even when it was.
Patch Release 2.8.3 (01 Apr 2022)
---------------------------------
* Fixed a bug in the 3D viewer tool which raised exceptions when enabling/disabling CAD model features with 1 or more calibrations loaded but un-checked.
Patch 2.8.2 (26 Mar 2022)
---------------------------------
* Fixed a bug in the image analysis tool which caused exceptions to be raised when toggling image save options in the "Position Analysis" tab.
Patch 2.8.1 (15 Feb 2022)
---------------------------------
* Fixed a bug when using the image movement tool to adjust points within the fitting calibration tool, when loading a new image. Points which moved outside the image area were not being updated, when in fact they should be removed.
Minor Release 2.8.0 (10 Feb 2022)
---------------------------------
New & Enhancements:
* Added ability to render un-folded image of tokamak interior on to a rectangular image (render.render_unfolded_wall() and available through 3D Viewer GUI)
* Added ability for ray-casting to calculate the CAD model surface normal vectors where sight-lines intersect the CAD model, these are now stored in RayData objects.
* Added option to show camera fields of view as shading of the CAD model in the 3D Viewer GUI
* When loading calibrations with multiple sub-views in to the 3D Viewer GUI, the appearance of the field of view for each sub-view can now be changed independently.
* Display of 3D coordinate data loaded in to the 3D viewer GUI can now be much more customised (showing as lines / points, line width & marker size adjustment, legend support)
* Layout of the movement correction GUI has been re-organised.
* Image analyser GUI can now show an image mapped on to the CAD model surface in its 3D view.
* Image analyser GUI can now apply colour-maps to loaded gresycale images.
* Image analyser GUI now supports applying movement correction to a loaded image for more accurate results.
* Layout of displayed position information in the image analyser GUI has been improved
* Image analyser GUI now supports saving images.
* When loading a new image in the fitting calibration tool, there is now a prompt to use the movement correction tool to quickly adjust all calibration points at once.
* In the fitting calibration tool, image enhancement options in the main window are now also applied in the sub-view definition editing dialog.
* CAD overlays in the fitting calibration tool are now always rendered at 1 megapixel or greater resolution, even for low resolution images being calibrated. (#74)
* Added additional options to customise display of the CAD overlay image in the fitting calibration tool (can be wireframe or solid CAD; adjustable opacity).
* Added "undo" function to fitting calibration tool which can undo up to the last 20 changes to the calibration point coordinates. (#75)
* When saving the current view in the 3D viewier tool, any legend displayed in the window is now included in the output image.
Compatibility Updates:
* Now compatible with PyQt6
* Changed dependency in setup.py from opencv-python to opencv-python-headless to reduce likelihood of problems with OpenCV vs PyQt version conflicts. (#72)
* Restricted versions of VTK installed by setup.py to avoid issues with newer versions of VTK (see #78)
Fixes:
* On Windows, stopped separate VTK error output window opening to show VTK warnings.
* Fixed bug in Image analyser which could cause exceptions when loading images in display orientation.
* Fixed bug where image enhancement was unexpectedly turned off (but the checkbox stayed checked) when editing sub-view definitions in the fitting calibration tool
* Fixed issue where the colour used for the CAD overlay did not correctly follow the colour picked by the user.
Minor Release 2.7.0 (17 Apr 2021)
---------------------------------
Compatibility Updates:
* Now compatible with VTK versions newer than 8.1 (tested up to 9.0.1) (Closes iussues #58 and #65)
* Should now be ready to work with Python 3.10 (removed dependency on deprecated standard library module "imp") (Closes issue #27)
* Due to the above changes, from this version on, Calcam will not work with versions of Python older than 3.5
New & Enhancements:
* Improved wording of buttons on GUI exception dialog box
* Improved rendering quality when using anti-aliasing
* Improved display of exceptions in user plugin code
* Uses an improved method for opening files outside Calcam wherever this is used
* Add photoshop files for logo graphics to repo.
Fixes:
* Fix bug in Calibration.set_detector_window() which raised exceptions for calibrations with multiple sub-views
* Fix a bug in Calibration.get_fov() which could raise exceptions when calling with fullchip=True, sometimes caused errors in fitting tool
* Fix a bug in the MovementCorrection class which caused inaccurate results when calculating coordinate transformations between moved images
* Fix exception raised when deleting the default view in CAD model editor (Issue #68)
* Fix various other bugs in CAD model editor, including one which could break some old CAD model definition files!
* Removed non-functional close button on GUI exception dialog box
* Fix various bugs which related to image metadata and detector windowing in analyser tool
* Fix a bug which caused minor inaccuracy in results of render_cam_view()
Patch 2.6.1 (08 Dec 2020)
-------------------------
Fixes:
* Fix exception raised by Calibration.set_detector_window() for some combinations of calibrated and set detector windows.
* Fix spurious update notifications when using development versions.
Minor Release 2.6.0 (05 Dec 2020)
---------------------------------
New & Enhancements:
* Allow setting of detector window using Calibration.set_detector_window() for multi sub-view calibrations if the requested window is not entirely overlapping with the original.
* Enable direct opening of .ccc files by passing the filename to the Calcam GUI executable.
* Change references to "perspective" lens model to "rectilinear"
Fixes:
* Roll back changes to render_cam_view() made in v2.5.0 because they break rendering for images with multiple sub-views.
* Fixed bug in version checking logic so the upgrade message is not shown when using the master branch version.
* Fix bug in coordtransformer() in image size checking logic which would cause erroneous errors about expected image size (possibly related to #56).
* Properly format docstrings in coordtransformer.py
* Enable rendering with oversampling and original coords (previously raised an exception saying not supported)
* Fix bug in CoordTransformer.original_to_display_shape() and display_to_original_shape() where the pixel aspect ratio was ignored.
* Fix a bug which raised an exception and prevented loading saved geometry matrices with newer versions of NumPy.
* Replace exception raised when saving an empty alignment calibration with a friendlier dialog box.
* Fix pop-up of VTK error window when closing Calcam GUI on Windows.
* Fix Calibration.subview_mask not being restored properly when resetting detector windowing using Calibration.set_detector_window(None) (Issue #60)
* Fix image cropping not working properly in Calibration.set_detector_window() if the requested window is bigger than the original calibration.
* Fix un-paired 3D cursors being added when importing point pairs from a calibration with a bigger readout window.
* Fix exception raised when loading a new image in to a calibration with multuple sub-views (by keeping subview mask when loading new image)
Minor Release 2.5.0 (22 Jul 2020)
---------------------------------
New & Enhancements:
* Improved brightness scaling of images with >8 bits per pixel to give better image display for high bit-depth images.
* Added new keyword arguments "exclusion_radius" and "intersecting_only" to raycast_sightlines() (#49) (see documentation for details)
* Add options for specifying original or display coordinates and ROI offset when loading image files.
* Improve setup script messages for more user-friendliness
* Improve introductory documentation, mainly installation guide / dependencies.
* Possibly slightly increased the speed of render_cam_view()
Fixes:
* Fix a bug which raised exceptions when loading calibration sight-lines in to the 3D viewer
* Fix exception raised by raycast_sightlines() if no CAD model features are loaded
* Fix bug where split field calibrations did not always load properly in the fitting tool
* Fix exceptions raised in the point fitting tool if changing split-field definition with point pairs already defined.
* Fix exceptions raised in image analyser when loading an image before a calibration
* Fix several bugs in the CAD model editor which raised exceptions and/or resulted in broken .ccm files.
* Image analyser now correctly updates wireframe overlays when selecting or deselecting CAD features or loading images with different detector windows
* Fix issue where cursor position information was not updated when creating a new point in the fitting calibration tool.
* Remove now unnecessary (I think) setting of matplotlib backend which could cause crashes on import if using matplotlib > 3.2.
* Change setup.py to avoid installing VTK > 8.2 (workaround for issue #58)
Patch 2.4.1 (08 Jan 2020)
-------------------------
Fixes:
* Fixed long-standing issue with corrupted CAD model rendering on some unix systems (#55). Requires QtOpenGL submodule of PyQt to be available (otherwise falls back to previous behaviour).
* Fixed issue where image enhancement made some images look much worse (#51).
* Fixed camera roll angle entry not working properly in CAD model editor (#54).
* Fixed bug where after turning on the axisymmetric wall contour display in the 3D viewer, it could not be turned off again (#52).
* Fixed bug where the detector window information was not loaded properly when loading calibrations in the fitting tool, which led to exceptions when loading point pairs from other calibrations, and possibly other errors.
New & Enhancements:
* Added display of QtOpenGL module availability to the system information in the Settings dialog box, for troubleshooting rendering issues.
Minor Release 2.4.0 (06 Nov 2019)
---------------------------------
New & Enhancements:
* Vastly improve treatment of detector sub-windowing: added Calibration.set_detector_window() and RayData.set_detector_window() methods
* Implement support for detector sub-windowing in image analyser
* Implement adjustment for different detector windowing when loading point pairs from existing calibrations in fitting tool
* Add optional arguments to enhance_image() to enable or disable enhanecement steps. This allows better image detail retention when enhancing low pixel count images.
* Image Analysis GUI now shows images in display coordinates immediately even if a calibration is not loaded.
Fixes:
* Fixed a bug in fitting calibration GUI where an exception could be raised when points were cleared.
* Fixed a bug in 3D viewer GUI which would raise an exception after editing the name of a 3D line not currently selected.
* Fix image transforms in CoordTransformer to work with arrays with non integer dtypes, provided the camera pixels are square.
* Fixed a bug when loading calibrations with no detector window offset stored (i.e. from older Calcam versions) which caused exceptions in set_detector_window().
Patch 2.3.1 (30 Jul 2019)
-------------------------
Fixes:
* Fix image_enhancement.enhance_image() not working properly with 16-bit images.
* Fix slightly broken layout of chessboard image dialog box.
* Fix various typos in docs (both standalone and docstrings).
* Tweaks to exception messages.
* Manual movement correction diaglog now auto-sizes based on screen resolution like other GUIs.
* Chessboard images loaded in virtual calibration editor now define the sensor size, instead of being checked for consistency with the pinhole model pixel dimensions.
* Remove surplus debug print statements.
Minor Release 2.3.0 (20 Jul 2019)
---------------------------------
New & Enhancements:
* Added calcam.movement module for camera movement correction
* New GUI tool for manual camera movement correction
* Add prompt to automatically detect image movement when loading a new image in the fitting calibration tool
* Added image_enhancement module for movement detection pre-processing and Improved image enhancement in GUI tools
* Added support for detector sub-windowing via "offset" parameter
Fixes since 2.2.3:
* 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
Calcam v2.0.0 (16 Dec 2018)
--------------------------------
New major version with many API, GUI and file format changes.
See full documentation pages for notes on upgrading from Calcam 1.x.
Bug fix release 1.9.4 (06 Nov 2018)
-----------------------------------
Fixes:
* Fixed bug causing unhandled exceptions when opening GUI with no CAD models set up (e.g. on first run)
Bug fix release 1.9.3 (11 Mar 2018)
-----------------------------------
Fixes:
* Fixed bug in loading legacy CSV format fit files under Python 3.6
* Fixed string formatting in exception handling under Python 3.6
* Fixed bug when checking if "Do Fit" button should be enabled which caused exceptions when loading some previously used images.
* Fixed image points disappearing when loading a different image of the same shape when they should be persistent.
Bug fix relase 1.9.2 (21 Feb 2018)
----------------------------------
Fixes:
* Fix inaccurate rendering in render_cam_view() for images with the centre of perspective not at the image centre (as far as I know this bug has existed since the very earliest versions of Calcam, but only now been noticed).
* Only enable "Do Fit" button in calibration tool when there are enough points that OpenCV won't raise an exception.
Update to 1.9.1 (18 Feb 2018)
-----------------------------
Fixes:
* Fixed exception raised when clicking "Apply" in the split field definition dialog.
* Fixed zoom not working properly in split field definition dialog.
* Fixed broken field mask behaviour when using 2-point split-field definition (and greatly simplify algorithm in the process).
* In point fitting calibration tool, fixed various GUI elements with text being cut-off due to being too narrow.
* Fixed a bug where performing some image geometrical transformations would cause the image to move off-centre in the window.
* Hard code version string in __init__.py; the way I did it before was stupid.
* Fixed bug where the numbers of paired and un-paired points was not being reported correctly.
* Fix off-by-1 issue when converting between VTK and image coordinates (effects point pair calibration and image analyser).
New & Enhancements:
* Make RayCaster class available in the root of the calcam package instead of only in calcam.raytrace.
* Switch to Sphinx for documentation. The documentation is not yet complete, but it's no less complete than it was before.
* Tweaks to launcher GUI including displaying calcam version in the window title
* Update GUI window titles
* Whether or not the 'Do Fit' button is enabled is now decided a bit more cleverly depending on how many fit parameters are enabled.
Removed:
* Removed unused exclude_feature_edges and include_feature_edges arguments in calcam.render.render_cam_view()
Release 1.9.0 (15 Feb 2018)
---------------------------
Fixes:
* Various fixes to mouse interaction (juddering, not recognising button-up etc)
* Many other bug fixes (see commit messages)
New:
* Add setup script
* First version with a proper release tag, and add __version__ attribute to package
* Actually start using Changelog somewhat properly