CamiTK Community Edition issueshttps://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/issues2024-02-13T23:09:12+01:00https://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/issues/158CamiTK File Format - metadata, scenes, processing scenarios...2024-02-13T23:09:12+01:00Manik BhattacharjeeCamiTK File Format - metadata, scenes, processing scenarios...| | |
|--|--|
| **As a** | CamiTK developer |
| **I would like to** | define a file format for CamiTK I/O |
| **So that** | CamiTK can load and save scenes, metadata associated with files, user preferences, scenarios for the state machin...| | |
|--|--|
| **As a** | CamiTK developer |
| **I would like to** | define a file format for CamiTK I/O |
| **So that** | CamiTK can load and save scenes, metadata associated with files, user preferences, scenarios for the state machine... |
| **Epic/Topics** | |
## Description / Overview
CamiTK needs to store multiple types of data. An extensible file format should be designed for the following use cases:
- Metadata files: storing LUT settings/color settings and geometrical transformations associated with a file, as well as CamiTK properties.
- Storing scenes (objects loaded, geometrical transformations, actions settings)
- Storing processing scenario such as used by the state machine to allow batch processing of data
- Storing user preferences
## Hints
- A human-readable format would be better (e.g. JSON)
- For scenes, CardioModel CEP and Meniscare CEP have scene formats to load multiple registered images together. but they should be made more generic
- The CamiTK state machine already has a XML-based format to define processing steps
## Acceptance tests
- [ ] Load a volume, register it to another image, set its LUT. Close CamiTK. When opening the image again, it should still be registered and keep its LUT settings.
- [ ] Any action should have its settings saved in the metadata of the file it was used on, and the settings should be loaded when opening the file again
- [ ] Loading a scene file reopens the scene as it was before closing it (all images, actions, viewers...)
- [ ] Opening a file, using multiple actions to get an output and saving it could be saved as a processing scenario, and applied to another input.
## Track
## Misc
- Automatic subscription of issue creator:
**If appropriate, do not forget to mark this issue as "confidential"** by checking the corresponding tick box belowManik BhattacharjeeManik Bhattacharjeehttps://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/issues/177Save All fails if a Component does not have a filename (e.g. newly reconstruc...2024-02-07T12:35:39+01:00Manik BhattacharjeeSave All fails if a Component does not have a filename (e.g. newly reconstructed mesh)## About you
CamiTK developer
## Overview
SaveAll implementation is wrong and fails in multiple ways when components to save do not have a filename. This can lead to data loss (thinking a file was saved even it was not) and segfault (w...## About you
CamiTK developer
## Overview
SaveAll implementation is wrong and fails in multiple ways when components to save do not have a filename. This can lead to data loss (thinking a file was saved even it was not) and segfault (when no component is selected).
## Steps to Reproduce
Open two masks (e.g. skull-binary.stl and head-binary from testdata).
Using action Reconstruction to create a mesh from each mask.
- Scenario 1
- Select both meshes
- Click on "Save All" from the File menu
- In the first Save As window, save as Mesh1.obj
- In the second window, save as Mesh2.obj
- Scenario 2
- Deselect all components
- Click on "Save All" from the File menu
## Actual VS Expected Result
- Scenario 1
- Expected: both meshes are saved in their own file, each now has a filename set to the one that was used to save them
- Actual: only one of the meshes was saved in both files. This mesh now has a filename set to the latest file saved. The other mesh is ignored and not saved
- Scenario 2
- Expected: both meshes are saved in their own file
- Actual result: CamiTK crashes, all work is lost
## Interpretation & Possible fixes
- `SaveAllAction::apply` calls `Application::save` on all top-level components.
- `Application::save` checks if the filename is empty. If it is, it calls
- `getAction("Save As")->apply()`.
The problem here is that the `SaveAsAction::apply` function does not know which component it must save, as this is not a parameter of `apply`.
It will try to save the last selected component, which is probably not the one we are trying to save.
`Component* comp = Application::getSelectedComponents().last();`
If there is no selected component (Scenario 2), this tries to get a Component from an empty list and crashes (qt_assert in debug mode).
If there is at least a selected component, SaveAll will save the last selected component over and over again.
**To fix this**
Modify action "Save As" so we can set a componentToSave parameter, apply it, then reset ComponentToSave to null_ptr. Apply would then check for this parameter, revert to the current behaviour if it is empty, and check if there are selectedComponents before getting the last element.
## CamiTK Version
CamiTK 5.2.0.158-camitk-file-format-metadata-scenes-processing-scenarios.c46342cd
---
**please do not remove anything below this line**Manik BhattacharjeeManik Bhattacharjeehttps://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/issues/176Triggering the Arbitrary Slice action crashes with 2D images2023-12-22T23:07:35+01:00Emmanuel PromayonTriggering the Arbitrary Slice action crashes with 2D images## About you
CamiTK developer
## Overview
When triggering the "Arbitrary Slice" on an image component that contains a 2D image, the application crashes.
## Steps to Reproduce
Save [this image](/uploads/43c877105d9b1b7d3fd67d85088016...## About you
CamiTK developer
## Overview
When triggering the "Arbitrary Slice" on an image component that contains a 2D image, the application crashes.
## Steps to Reproduce
Save [this image](/uploads/43c877105d9b1b7d3fd67d85088016b0/debian-logo.png) and open it with `camitk-imp`
Select the component, and select the `View` → `Arbitrary Slice`
→ `camitk-imp` crashes
## Actual VS Expected Result
No crash !
The arbitrary slice action should abort cleanly and a warning message should be displayed to explain why the action aborted.
## Interpretation & Possible fixes
The arbitrary slice's `SingleImageComponent` is only created if the image component has 3 dimensions (see ImageComponent.cpp:562 and line 571. When the arbitrary slice action is triggered it does not take into account the fact that an `ImageComponent` can have no arbitrary slice subcomponent.
Check the pointer value before accessing it (see AnglesAndTranslationAction::getWidget(), line 106).
## CamiTK Version
CamiTK 5.2.0.develop. 54c95fce
---
**please do not remove anything below this line**https://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/issues/174Generic user interface improvements2023-12-08T23:29:36+01:00Emmanuel PromayonGeneric user interface improvements## About you
CamiTK developer that listen to my users
## Overview
This issue covers all small UI improvements.## About you
CamiTK developer that listen to my users
## Overview
This issue covers all small UI improvements.https://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/issues/173In Action viewer's search panel, the Family combo box does not filter actions2023-11-29T14:58:33+01:00Manik BhattacharjeeIn Action viewer's search panel, the Family combo box does not filter actions## About you
CamiTK developer
## Overview
In the action viewer, the "Family" combo box does nothing.
## Steps to Reproduce
- from a newly built CamiTK, run camitk-imp
- open testdata/sinus-displaced.mha
- In the menu click on View/To...## About you
CamiTK developer
## Overview
In the action viewer, the "Family" combo box does nothing.
## Steps to Reproduce
- from a newly built CamiTK, run camitk-imp
- open testdata/sinus-displaced.mha
- In the menu click on View/Toggle Docked Viewers/Action Viewer to show the Action viewer panel
- Select the component
- Click on the Action combobox in the actions panel and see the list of available actions
- Select a Family e.g. Frame
- Click on the Action combobox, all actions are still there
## Actual VS Expected Result
All actions are visible, nor only the actions from the selected family.
## Interpretation & Possible fixes
This bug was introduced by commit 1bdd9a84 with a change to ImpMainWindow.cpp around line 111.
The line
`actionViewer->setSearchPanelVisible(true);`
was removed.
We could either restore this line (and the necessary dynamic_cast to ActionViewer) or call it from the ActionViewer constructor.
I am not certain why setSearchPanelVisible should disconnect the link from the combobox'signals to the relevant methods.
## CamiTK Version
CamiTK 5.2.0.157-reference-frames-and-transformations-management.a9f78af5
---
**please do not remove anything below this line**Manik BhattacharjeeManik Bhattacharjeehttps://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/issues/172On Windows, CamiTK applications may block or wait indefinitely2023-11-27T15:47:09+01:00Manik BhattacharjeeOn Windows, CamiTK applications may block or wait indefinitely## About you
CamiTK developer, reported by two windows users
## Overview
After a crash, and even after reinstalling CamiTK, camitk-imp does not open or takes a very long time (several minutes) before opening. camitk-config can display ...## About you
CamiTK developer, reported by two windows users
## Overview
After a crash, and even after reinstalling CamiTK, camitk-imp does not open or takes a very long time (several minutes) before opening. camitk-config can display paths, but will not return for a very long time, or display a locking timeout in a command window.
## Steps to Reproduce
Not obvious. It seems to involve .lock or .rmlock files in %username%/AppData/Roaming/CamiTK directory.
Removing the entire directory seems to fix it.
## Actual VS Expected Result
Expected: camitk-imp starts in a few seconds (not minutes), and camitk-config returns less than a second after displaying the info (not minutes).
## Relevant logs and/or screenshots
A Qt message is sometimes displayed in a loop in a terminal while camitk-config is waiting to exit (data already displayed, but the software is not exiting): "Got unexpected locking error 123"
## Interpretation & Possible fixes
Not obvious. It seems that in some circumstances, in the %username%/AppData/Roaming/CamiTK directory, some lock files are present and Qt tries to lock settings files but fails to do so. It might also come from a conflict between camitk-config and camitk-imp trying to access the file at the same time.
This stems from the Application class creating a QSettings object in Application.cpp (global static object):
`QSettings Application::settings(QSettings::IniFormat, QSettings::UserScope, "CamiTK", QString(Core::version).remove(QChar(' ')));`
From [Qt documentation](https://doc.qt.io/qt-6/qsettings.html#accessing-settings-from-multiple-threads-or-processes-simultaneously) IniFormat should work and manage locking correctly, but it seems that sometimes it fails to do so.
Turning the locking safety off might solve this problem as stated [in the documentation](https://doc.qt.io/qt-6/qsettings.html#setAtomicSyncRequired) but it might create other issues (if multiple camitk applications are running and overwrite each other's settings).
## CamiTK Version
Stable 5.0 windows version
---
**please do not remove anything below this line**https://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/issues/170Elastix registration using the elastix command2023-11-26T18:34:59+01:00Emmanuel PromayonElastix registration using the elastix command| | |
|--|--|
| **As a** | camitk-imp user... |
| **I would like to** | register image using the elastix software from CamiTK |
| **So that** | I can change the main parameter, call elastix and see the registration result in CamiTK witho...| | |
|--|--|
| **As a** | camitk-imp user... |
| **I would like to** | register image using the elastix software from CamiTK |
| **So that** | I can change the main parameter, call elastix and see the registration result in CamiTK without using the command line |
| **Epic/Topics** | medical image registration |
## Description / Overview
Select main registration parameters in an Action interface. Apply registration using "Apply" button
Basically this issue is to perform [MISR tutorial 3](https://promayoe.gricad-pages.univ-grenoble-alpes.fr/walnut/tutorials/misr/03/index.html) using camitk-imp instead of the command line.
## Hints
Call elastix/elastix.exe from the action
## TrackEmmanuel PromayonEmmanuel Promayonhttps://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/issues/171Crash when printing debug information (F2 key)2023-11-24T16:35:20+01:00Manik BhattacharjeeCrash when printing debug information (F2 key)## About you
CamiTK developer
## Overview
When a component is displayed in InteractiveViewer, pressing the F2 key should display debug information in the log.
Instead, CamiTK crashes (segfault).
## Steps to Reproduce
- Run camitk-imp...## About you
CamiTK developer
## Overview
When a component is displayed in InteractiveViewer, pressing the F2 key should display debug information in the log.
Instead, CamiTK crashes (segfault).
## Steps to Reproduce
- Run camitk-imp
- Open a mesh (.obj) or an image (.nii)
- Push F2 key
## Actual VS Expected Result
IMP crashes and does not display debug information
## Interpretation & Possible fixes
Crash happens in InteractiveViewer.cpp when creating a list of all props from a component:
`std::list<vtkSmartPointer <vtkProp> > allActors(actorMap.values(c).begin(), actorMap.values(c).end());`
## CamiTK Version
Current develop branch of camitk-5.2
---
**please do not remove anything below this line**Manik BhattacharjeeManik Bhattacharjeehttps://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/issues/168Fancy segfault2023-10-29T15:05:39+01:00Emmanuel PromayonFancy segfault## About you
CamiTK dev
## Overview
Application camitk-fancy crashed with segfault as soon as it starts.
## Steps to Reproduce
- build CamiTK with -DCEP_TUTORIAL=TRUE
- cd build
- bin/camitk-fancy
## Actual VS Expected Result
Crash...## About you
CamiTK dev
## Overview
Application camitk-fancy crashed with segfault as soon as it starts.
## Steps to Reproduce
- build CamiTK with -DCEP_TUTORIAL=TRUE
- cd build
- bin/camitk-fancy
## Actual VS Expected Result
Crash versus fancy main window opening
## Interpretation & Possible fixes
`comp` attribute is not set to nullptr
## CamiTK Version
CamiTK 5.2.0.develop.3480339c
Compiled using git Hash: 3480339c7626584d1ad62f045dbc5cf5b472345f, Date: Fri Jul 28 14:49:32 2023 +0200.Emmanuel PromayonEmmanuel Promayonhttps://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/issues/130Add anti-aliasing support to 3D display viewer2023-07-26T16:26:46+02:00Manik BhattacharjeeAdd anti-aliasing support to 3D display viewer## About you
New CamiTK developer
## Product
Mesh display in the 3D viewer shows aliased lines.
Adding anti-aliasing support as an option would improve rendering.
## Overview
When displaying lines or meshes, there is a jagged-edge e...## About you
New CamiTK developer
## Product
Mesh display in the 3D viewer shows aliased lines.
Adding anti-aliasing support as an option would improve rendering.
## Overview
When displaying lines or meshes, there is a jagged-edge effect (a straight line in diagonal shows sharp steps in pixels) due to the way lines are rendered. Anti-aliasing techniques can improve the look of images and are available in VTK. They should be added as options in the preferences of the 3D viewer.
## Relevant logs and/or screenshots
There is a discussion in VTK forum about different ways to activate anti-aliasing in vtk, with sample images.
https://discourse.vtk.org/t/how-to-anti-alias-in-vtkrenderwindow/4556/12
---
**please do not remove anything below this line**Manik BhattacharjeeManik Bhattacharjeehttps://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/issues/153DicomComponent ignores DICOM orientation2023-07-26T16:19:28+02:00Manik BhattacharjeeDicomComponent ignores DICOM orientation## About you
CamiTK developer
## Overview
When using DicomComponent to load a volume, the image transform from DICOM header is ignored.
## Steps to Reproduce
Load a Dicom volume (e.g. MRI) that was not acquired directly in the orient...## About you
CamiTK developer
## Overview
When using DicomComponent to load a volume, the image transform from DICOM header is ignored.
## Steps to Reproduce
Load a Dicom volume (e.g. MRI) that was not acquired directly in the orientation of the scanner.
Observe that the Frame transform to world coordinates is identity
## Actual VS Expected Result
The frame transform between the loaded DicomComponent and world coordinates should be the transform stored in the DICOM (Image Position and Orientation of Patient).
## Interpretation & Possible fixes
CardioModel CEP Dicom Component (from @lecesnee and @fouardc) implements reading the transform and setting it in the frame of the component. Importing the code into the current DicomComponent should solve this.
## CamiTK Version
CamiTK 5.1.dev.develop.c3d59664
---
**please do not remove anything below this line**Manik BhattacharjeeManik Bhattacharjeehttps://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/issues/136Mesh wireframe visualisation problem2023-04-29T13:30:27+02:00Emmanuel PromayonMesh wireframe visualisation problem## Overview
(this bug was initially reported by @bhattacm, thanks!)
There is a display problem when displaying mesh and surface rendering at the same time that disappears when surface rendering is switched off:
## Steps to Reproduce
...## Overview
(this bug was initially reported by @bhattacm, thanks!)
There is a display problem when displaying mesh and surface rendering at the same time that disappears when surface rendering is switched off:
## Steps to Reproduce
On Ubuntu 22.04 using `develop` branch, open `bassin.msh` testdata mesh and switch surface and wireframe rendering.
## Actual VS Expected Result
The wireframe should not have dangling and extra lines
## Relevant logs and/or screenshots
Rendering with both wireframe and surface:
![bugLinesWithSurface](/uploads/6be28fe65f793a1ae942bb4dcdb39c60/bugLinesWithSurface.png)
Rendering with wireframe only:
![bugLinesNoSurface](/uploads/eb5da7446a711fbb62ea3afe6f3a0e27/bugLinesNoSurface.png)
## Interpretation & Possible fixes
Probably due to OpenGL management stack in VTK7 and Qt5.
## CamiTK Version
This bug affects at least CamiTK 5.1.dev.develop.cb2bca7f (and probably earlier versions) on Ubuntu 22.04 using VTK7.
---
**please do not remove anything below this line**Emmanuel PromayonEmmanuel Promayonhttps://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/issues/135Cancel color picking displays warning2023-04-28T14:50:23+02:00Manik BhattacharjeeCancel color picking displays warning## About you
CamiTK developer
## Overview
When selecting a Mesh component and trying to set its color, if the user cancels the color picking, a CamiTK warning is displayed.
## Actual VS Expected Result
No message should be displayed i...## About you
CamiTK developer
## Overview
When selecting a Mesh component and trying to set its color, if the user cancels the color picking, a CamiTK warning is displayed.
## Actual VS Expected Result
No message should be displayed if the user cancels.
## Interpretation & Possible fixes
actions/mesh/basicmesh/ChangeColor.cpp contains a CAMITK_WARNING in the cancel case. Just removing this line should be enough.
## CamiTK Version
CamiTK 5.1.dev
---
**please do not remove anything below this line**Manik BhattacharjeeManik Bhattacharjeehttps://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/issues/124Action Viewer popup selector not working2021-03-03T21:05:34+01:00Emmanuel PromayonAction Viewer popup selector not working## Overview
Action Viewer presents action selectors and tag research on the top left of its GUI. When the user select a family and then an action (or just an action, or just type a keyword in the tag area) in the corresponding combo box...## Overview
Action Viewer presents action selectors and tag research on the top left of its GUI. When the user select a family and then an action (or just an action, or just type a keyword in the tag area) in the corresponding combo box, it should directly trigger the action and show the widget in the bottom area of the Action Viewer widget.
This is broken.
Apart from reducing the user experience, this might result in misunderstanding or wrong action from the user.
## Steps to Reproduce
Select a family and an action
- Open a component (e.g. cthead1.lsm)
- click on the Family combo box and select a family (e.g. File)
- click on the Action combo box and select an action (e.g. Close)
or select an action
- Open a component (e.g. cthead1.lsm)
- click on the Action combo box and select an action (e.g. Image Look Up Table)
or type a tag
- Open a component (e.g. cthead1.lsm)
- enter a keyword in the Tag text input (e.g. Change)
## Actual VS Expected Result
The action should be triggered (e.g. close the file)
but noting happen.
Moreover when an action is selected, the family and action combo box do not display the correct values:
- Open a component (e.g. cthead1.lsm)
- Right Click on the component in the explorer
- Click on View → Image Look Up Table
- Click on the Family combo box and select a family (e.g. File)
- The Action combo box is not updated correspondingly
## Interpretation & Possible fixes
`ActionViewer` is the culprit.
## CamiTK Version
CamiTK 5.0.dev.develop.65572eb5Emmanuel PromayonEmmanuel Promayonhttps://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/issues/118Replace Copyright text by a more discrete watermark.2021-01-19T06:51:09+01:00Emmanuel PromayonReplace Copyright text by a more discrete watermark.## About you
CamiTK developer/maintainer
## Product
CamiTK interactive viewers
## Overview
Since the update to support VTK 7, the copyright text disappeared from the right corner of the Interactive Viewer instances.
Although the copy...## About you
CamiTK developer/maintainer
## Product
CamiTK interactive viewers
## Overview
Since the update to support VTK 7, the copyright text disappeared from the right corner of the Interactive Viewer instances.
Although the copyright text was a bit 1980's it was nice to have something that was a bit like a watermark.
It was quite intrusive though (but it was possible to remove it by Right-Clicking on an interactive viewer).
The best would be to replace it by a more discrete watermark.
I suggest using a smallish CamiTK logo with some transparency in the very bottom very right corner of the viewer.
The advantage will be to encourage people to leave the logo (it is too small to be annoying in most of the case), and therefore be able to promote nice projects that use CamiTK.
→ May be have a little dialog to promote citing the article as well/instead of the logo, when the user decide to disable the logo?
---CamiTK 4.2 Sprint # 3Emmanuel PromayonEmmanuel Promayonhttps://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/issues/116More coherent MISR tutorial actions GUI2021-01-05T07:31:05+01:00Emmanuel PromayonMore coherent MISR tutorial actions GUI## About you
CamiTK developer
## Product
Mainly camitk-imp
## Overview
During the http://misr.free.fr tutorial, there are three different things that could be improved in order to make discovering medical image analysis easier and fac...## About you
CamiTK developer
## Product
Mainly camitk-imp
## Overview
During the http://misr.free.fr tutorial, there are three different things that could be improved in order to make discovering medical image analysis easier and facilitate knowledge acquisitions:
- (easy) the action menu are not coherent (the "Display" family has "Volume Rendering" but not "Lookup Table" action, Save, Close, Save As are in a menu called "Application", which is not the same as the menu name in the menu bar
- (time consuming) the Volume Rendering action is not really easy to use (complex to setup) and appears in a separate window (and is not managed like any other actions)
- (hard) the Lookup Table action has a lot of bugs and does not allow a proper visualization/interaction with the values in the images
## What can be done
- [x] Rename the "Application" menu to "File"
- [X] Rewrite "Volume Rendering" so that it can be used like any other actions
- [X] Debug Lookup Table and improve the GUI so that it has a true pedagogical usage
- [x] Rename "Display" to "View" and move "Lookup Table", "Arbitrary Slice" to this family.
- [x] Move "Visibility" to "View"
- [X] Computed output in Otsu and Connected component should be updated automatically, visible once the action is performed, and reset at each select and should also appear in the log
- [X] Visibility toggle should be visible for the View actions
- [X] Manual filter should take the voxel range value, not the type min/max (and therefore be updated at each select
- [X] Try to fix opening file with space/special character in path on windows
- [X] better handling of mha/mhd when type is not unsigned char
- [X] Frame editor manages precision (when value <1e-6, just display 0.0)
- [x] Separate frame editor in three actions: show/hide frame, set parent frame, show/edit frame
---
**please do not remove anything below this line**CamiTK 4.2 Sprint # 3Emmanuel PromayonEmmanuel Promayonhttps://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/issues/82Problem to save an mhd/raw image with voxel data type float2021-01-05T07:31:04+01:00Maxime CalkaProblem to save an mhd/raw image with voxel data type float## About you
CALKA Maxime, M2 trainee. I realize volumic image registration on CamiTK and I need to load/save MRI images.
## Overview
They are a problem when you save a mhd/raw image with a voxel type float. After saving the voxel type...## About you
CALKA Maxime, M2 trainee. I realize volumic image registration on CamiTK and I need to load/save MRI images.
## Overview
They are a problem when you save a mhd/raw image with a voxel type float. After saving the voxel type is change to unsigned char and the image is not workable.
## Steps to Reproduce
- Load in CamiTK an mhd/raw image with Voxel Data Type : float (ElementType = MET_FLOAT)
- Save the image with CamiTK in mhd/raw format (Save As)
- Load the new image
Normally, a entire grey image appear with the Voxel Data Type : unsigned char (ElementType = MET_UCHAR) (that is a problem)
## Actual VS Expected Result
I load the image : okay
I save the image : okay
I load the new image : no expected result (I am supposed found my original image but the voxel type has change and the image is totally grey)
## Relevant logs and/or screenshots
[bug](/uploads/6a74f9fe3e6a69ce429327af33dd9ceb/bug.png)
## Interpretation & Possible fixes
Sorry, I haven't idea.
## CamiTK Version
CamiTK Version:
- CamiTK version........................... CamiTK 4.1.2
- CamiTK Short Version..................... camitk-4.1
- CamiTK SO NAME........................... 4
- Operating System......................... WIN32
- Build type............................... DEBUG
- QT Version............................... 5.6.1
- VTK Version.............................. 6.3.0
- Global Installation Directory [G]........ C:/dev/CamiTK/install
- Local Installation Directory [L]......... C:/Users/calkam/AppData/Roaming/CamiTK
- Current Working Directory [W]............ C:/dev/CamiTK/install/bin
- Test Data Directory...................... C:/dev/CamiTK/install/share/camitk-4.1/testdata
- Component Extension Directories.......... C:/dev/CamiTK/install/lib/camitk-4.1/components
- Action Extension Directories............. C:/dev/CamiTK/install/lib/camitk-4.1/actions
- Number of Component Extensions........... 9 (locations: 9 global, 0 local, 0 in working directory, 0 manually installed by user)
- Number of File Extensions Supported...... 31
- Number of Action Extensions.............. 18 (locations: 18 global, 0 local, 0 in working directory, 0 manually installed by user)
- Number of Actions........................ 88
- Registered components:
- [G] Alias Wavefront OBJ Component...... obj
- [G] ItkImages Component................ hdr, spr, gipl, pic, lsm, nrrd, hdr.gz, nii, nii.gz, img, img.gz
- [G] Msh Component...................... msh
- [G] Off Component...................... off
- [G] STL Component...................... stl, STL
- [G] VRML 2 Component................... vrml, wrl
- [G] VTK Component...................... vtk
- [G] vtkImages Component................ jpg, png, tiff, tif, bmp, pbm, pgm, ppm, mhd, mha, raw
- [G] DICOM.............................. directory
- Registered actions:
- [G] Application Level Actions.......... 21 actions
- [G] Basic Mesh Extension............... 9 actions
- [G] Basic Topology..................... 2 actions
- [G] BoxVOIExtension.................... 1 actions
- [G] Frame Edition Extension............ 1 actions
- [G] ITK Filters........................ 14 actions
- [G] ITK Segmentation................... 3 actions
- [G] Image LUT.......................... 1 actions
- [G] ImageAcquisitionActionExtension.... 7 actions
- [G] Mesh Processing.................... 17 actions
- [G] MultiPickingExtension.............. 1 actions
- [G] Pixel Color Changer................ 1 actions
- [G] Reconstruction..................... 1 actions
- [G] Reorient Image Extension........... 1 actions
- [G] ResampleExtension.................. 1 actions
- [G] SegmentorExtension................. 1 actions
- [G] ShowIn3DExtension.................. 5 actions
- [G] VolumeRenderingExtension........... 1 actions
---
**please do not remove anything below this line**https://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/issues/83Remove console on windows version of all GUI CamiTK application (camitk-imp, ...2020-07-30T16:03:34+02:00Emmanuel PromayonRemove console on windows version of all GUI CamiTK application (camitk-imp, camitk-actionstatemachine, camitk-wizard)| | |
|--|--|
| **As a** | camitk-imp user and CamiTK developer |
| **I would like to** | optimize the application performance and not have a visible (1990's) dark console when I launch imp |
| **So that** | I am not disturbed by another...| | |
|--|--|
| **As a** | camitk-imp user and CamiTK developer |
| **I would like to** | optimize the application performance and not have a visible (1990's) dark console when I launch imp |
| **So that** | I am not disturbed by another window on the screen, and therefore I focus on the task I need to do in the main window of camitk-imp |
| **Epic/Topics** | ] |
## Description / Overview
By default, MSVC compile camitk-imp and all other GUI-based CamiTK programs as a console program.
As stated [here](https://blog.rubenwardy.com/2019/02/15/porting-cpp-to-windows-vcpkg/), this mode results in Windows allocating and showing a console for you when starting the program up (e.g. CamiTK-imp). This console will require a redraw on every std::cerr or std::cout print, resulting in massive performance issues.
The best would be have a specific option in the `camitk_application` macro to declare the application as a console application (by default, and considering the CAMI domain, I suppose it is better to say that an application has a GUI by default, only specific CamiTK application are console only).
E.g.:
```cmake
camitk_application(...
NO_GUI
...
)
```
## Hints
As stated [here](https://blog.rubenwardy.com/2019/02/15/porting-cpp-to-windows-vcpkg/):
> If you program shows a graphical window, then you should change it to a Windows program. There are three methods to do this.
> The first option is to set the executable type to WIN32 in CMake:
```cmake
if(WIN32)
add_executable(${EXECUTABLE_NAME} WIN32 ${SRC})
else()
add_executable(${EXECUTABLE_NAME} ${SRC})
endif()
```
This is confirmed to work in [this answer on stackoverflow](https://stackoverflow.com/a/36528717/9890401).
The [second proposed option](https://blog.rubenwardy.com/2019/02/15/porting-cpp-to-windows-vcpkg/) seems a bit to windowesque and rely on the MSVC compiler. The third proposed option should not be considered here as it won't be a nice way considering the CamiTK objectives (it make use of a `#pragma`)
See also the [CMake documentation for add_executable](https://cmake.org/cmake/help/latest/command/add_executable.html) and [WIN32_EXECUTABLE property/flag](https://cmake.org/cmake/help/latest/prop_tgt/WIN32_EXECUTABLE.html#prop_tgt:WIN32_EXECUTABLE)
## Acceptance tests
- [x] When run camitk-imp, camitk-actionstatemachine, and camitk-wizard do not show any console
- [x] All other CamiTK CE application seem to work as before (e.g. the config and cepgenerator test pass)
- [x] The `camitk_application` macro has a new option for console application
- [x] The `camitk_application` macro documents this new option (so that generated doxygen talks about it)
## Track
~"Track Prototyping Experience" CamiTK 4.2 Sprint # 3Jean-Loup HaberbuschJean-Loup Haberbuschhttps://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/issues/105Invisible VTK 3D widgets2020-07-09T21:29:06+02:00Emmanuel PromayonInvisible VTK 3D widgets## About you
CamiTK dev
## Overview
VTKWidgets not visible in 3D
## Steps to Reproduce
1. Open a mesh component file
2. Launch the Mesh Clipping action
3. Nothing vtk widget appears in 3D
## Actual VS Expected Result
There should...## About you
CamiTK dev
## Overview
VTKWidgets not visible in 3D
## Steps to Reproduce
1. Open a mesh component file
2. Launch the Mesh Clipping action
3. Nothing vtk widget appears in 3D
## Actual VS Expected Result
There should be a vtk widget to change the cutting plane
## Interpretation & Possible fixes
Check the action code, is the widget properly initialized
## CamiTK Version
CamiTK 4.2.dev.develop.04a1c024
---
**please do not remove anything below this line**CamiTK 4.2 Sprint # 2Emmanuel PromayonEmmanuel Promayon