CamiTK Community Edition issueshttps://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/issues2024-02-07T12:35:39+01:00https://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/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/154Opening multiple DICOM series from one directory can result in a segfault2023-07-28T14:58:49+02:00Manik BhattacharjeeOpening multiple DICOM series from one directory can result in a segfault## About you
CamiTK developer
## Overview
When opening a DICOM directory, selecting multiple series to open sometimes crashes the software (segfault)
## Steps to Reproduce
Unfortunately I cannot share (yet) the data used to test. In ...## About you
CamiTK developer
## Overview
When opening a DICOM directory, selecting multiple series to open sometimes crashes the software (segfault)
## Steps to Reproduce
Unfortunately I cannot share (yet) the data used to test. In this DICOM directories, multiple series have the exact same name.
After launching camitk-imp, opening the directory and selecting two series (for example Axial and Coronal T2 acquisitions) will result in a crash.
## Actual VS Expected Result
Multiple Components should be loaded without crashing.
## Relevant logs and/or screenshots
From the debugger:
```gdb
#4 0x00007fffe41f0f71 in DicomSeries::getStudyName() const () from /home/bhattacm/Datas/prog/CamiTK2/build/lib/camitk-5.1/components/libdicom.so.5.1.dev
#5 0x00007fffe41e7ca9 in DicomComponentExtension::open(QString const&) () from /home/bhattacm/Datas/prog/CamiTK2/build/lib/camitk-5.1/components/libdicom.so.5.1.dev
#6 0x00007ffff7d2c7fa in camitk::Application::openDirectory (dirName=..., pluginName=...)
```
## Interpretation & Possible fixes
There may be three problems with the following code in DicomComponentExtension.cpp
```cpp
// Open each selected Dicom as a component
if (!seriesDialogEntries.isEmpty()) {
foreach (DicomDialogEntry* entry, seriesDialogEntries) {
// Find the corresponding Dicom Series in the List
foreach (DicomSeries* series, seriesParsed) {
if ((series->getStudyName() == entry->getStudyName()) &&
(series->getSeriesName() == entry->getSeriesName())) {
lastOpenedComponent = new DicomComponent(series);
break;
}
else {
delete series;
}
}
}
}
```
- The selected study is identified by name, and not ID. If two series have the same name, the first one will be loaded (may not be the correct one)
- "delete series;" statement will delete series that do not match the chosen serie's name **until the chosen series is found**. The series following this one will not be deleted (memory leak)
- if multiple series are selected, the outer loop will execute the inner loop a second time. At that point, **some series are already deleted but the inner loop will call getStudyName and getSeriesName on them** if they happen to be before the selected series in the seriesParsed list. This causes the segfault.
Proposed solutions:
- delete all series **after** the loops, not some of them (except if the series object is still stored somewhere in the DicomComponent)
- Try to use the series ID to find out which image was selected to avoid relying on the name which might not be unique
## 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/66Load mha rotation/translation in the proper order2023-07-20T13:09:48+02:00Emmanuel PromayonLoad mha rotation/translation in the proper order## About you
This was a bug submitted to the old bugzilla by Guillaume Custillon on 2016-03-17
## Overview
> When loading an mhd/mha image that contains some transformation, the translation (offset) is not handled correctly.
> Indeed...## About you
This was a bug submitted to the old bugzilla by Guillaume Custillon on 2016-03-17
## Overview
> When loading an mhd/mha image that contains some transformation, the translation (offset) is not handled correctly.
> Indeed, the rotation matrix should be applied and then the translation in the world frame. However, on CamiTK the rotation is applied, and then the translation in the rotated frame.
## Steps to Reproduce
> - Open imp and load the attached mha test image:
>
> [test_frame_image.mha](/uploads/f3a59f67822c289391ac36321be032af/test_frame_image.mha)
>
> It is a 2D image with a rotation of 45° around z axis and a translation of 10 mm on the x axis.
> - Display the world frame.
## Actual VS Expected Result
> - Observe the location of the image: the translation is not made on the x axis of the world frame, but on the x axis of > the rotated image frame.
## Relevant logs and/or screenshots:
## Interpretation & Possible fixes:
This is the answer given by @jaffarda on 2016-03-22
> Following is based on the test image provided by Guillaume.
>
> ***** The Bug, reworded ******
> According to the data in file:
> TransformMatrix (which contains rotation matrix of frame) is
> 0.707 -0.707 0 0.707 0.707 0 0 0 1
> and
> Offset (which contains translation of frame) is
> 10 0 0
>
> Opening this image with camiTK:
> rotation is OK
> translation become 7.07 7.07 0
>
> in other words, the translation is applied in rotated frame, but we expect it to be applied in world frame
>
> ***** suggested fix *****
>
> based on tests on this image,
>
> in ImageComponent.cpp (line 290), the line
> ```cpp
vtkMatrix4x4::Multiply4x4(rotationMatrix, initialTranslation->GetMatrix(), initialFrameMatrix);
> ```
> should become :
> ```cpp
> vtkMatrix4x4::Multiply4x4(initialTranslation->GetMatrix(), rotationMatrix, initialFrameMatrix);
> ```
>
> ***** WARNING *****
> This change in a core file should only be commit after deep tests on every thing it may impact.
## CamiTK Version:
This was submitted for CamiTK 3.5.0.svn but is still present in CamiTK 4.1.develophttps://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/85Bug install qtpropertybrowser debian2021-03-18T16:45:30+01:00Clement BeitoneBug install qtpropertybrowser debianOn linux if the package manager is used to install camitk, the package qtpropertybrowser is installed by default in /usr/include. In case of a manual compile / installation this package is installed in ${CAMITK_INCLUDE_DIR}/libraries/
...On linux if the package manager is used to install camitk, the package qtpropertybrowser is installed by default in /usr/include. In case of a manual compile / installation this package is installed in ${CAMITK_INCLUDE_DIR}/libraries/
The CamiTKConfig.cmake is not aware of this system path.
To fix this issue the variable `QTPROPERTYBROWSER_ROOT_INCLUDE_DIR` should be used in CamiTKConfig.cmake and added in:
`set(CAMITK_INCLUDE_DIRECTORIES...)`CamiTK 5https://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/113action state machine log2020-10-20T00:24:16+02:00Emmanuel Promayonaction state machine log## Overview
The action state machine XML output log can not be open in a web browser anymore (external xsl are considered a security issue)
## Steps to Reproduce
1. run the action state machine with any valid SCXML
2. try to open the...## Overview
The action state machine XML output log can not be open in a web browser anymore (external xsl are considered a security issue)
## Steps to Reproduce
1. run the action state machine with any valid SCXML
2. try to open the resulting log.xml in a recent web browser (chrome or firefox tested)
## Actual VS Expected Result
File cannot be loaded or is only displaying the text of the XML element (no html presentation is produced through the given xsl stylesheet)
## Interpretation & Possible fixes
We need to embed the xsl stylesheet inside the XML, this way the web browser does not have to load a local file and it agrees to run the xslt to visualize the html instead of the XML
## CamiTK Version
CamiTK 4.2.dev.110-outdated-documentation.47480f53
---
**please do not remove anything below this line**Emmanuel PromayonEmmanuel Promayonhttps://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/issues/111Camitk-imp crash when "Application-Close" on a component.2020-08-28T18:24:28+02:00Sylvain GuyCamitk-imp crash when "Application-Close" on a component.## About you
Developer of a CEP
## Overview
Applying "Application-Close" on a camitk component results sometimes in a crash. It doesn't seem to be deterministic. It may crash on the load or close.
## Steps to Reproduce
File- Open - "...## About you
Developer of a CEP
## Overview
Applying "Application-Close" on a camitk component results sometimes in a crash. It doesn't seem to be deterministic. It may crash on the load or close.
## Steps to Reproduce
File- Open - "brain.mha". Right click on "brain" -Application - Close.
If it doesn't crash direclty, reload brain.mha and close again. It will end up crashing on the loading or the closing.
## Relevant logs and/or screenshots
**Crash on the loading (after 2 load close)**
```
*** Program received signal SIGSEGV (Segmentation fault) ***
#0 tcache_get (tc_idx=<optimized out>) at malloc.c:2937
#1 __GI___libc_malloc (bytes=24) at malloc.c:3051
#2 0x00007f63c3d21c29 in operator new(unsigned long) () at /lib/x86_64-linux-gnu/libstdc++.so.6
#3 0x00007f63c2c32604 in vtkTransformConcatenationStack::New() () at /tmp/dependencies/VTK-6.3.0/Common/Transforms/vtkAbstractTransform.h:402
#4 0x00007f63c2c3284f in vtkTransform::Push() (this=0x562eaca5c000) at /tmp/dependencies/VTK-6.3.0/Common/Transforms/vtkTransform.h:280
#5 0x00007f63c2d30923 in vtkAssemblyPath::AddNode(vtkAssemblyNode*) (this=0x562eacca10d0, n=0x562eadc89e90) at /tmp/dependencies/VTK-6.3.0/Rendering/Core/vtkAssemblyPath.cxx:55
#6 0x00007f63c2d308d5 in vtkAssemblyPath::AddNode(vtkProp*, vtkMatrix4x4*) (this=0x562eacca10d0, p=0x562eac88cc70, m=0x562eacca42f0) at /tmp/dependencies/VTK-6.3.0/Rendering/Core/vtkAssemblyPath.cxx:45
#7 0x00007f63c2ccb2d2 in vtkProp3D::InitPathTraversal() (this=0x562eac88cc70) at /tmp/dependencies/VTK-6.3.0/Rendering/Core/vtkProp3D.cxx:600
#8 0x00007f63c5d6e71d in camitk::RendererWidget::addProp(vtkSmartPointer<vtkProp>, bool) () at /home/guys/.config/CamiTK/lib/libcamitkcore.so.4
#9 0x00007f63c5d55202 in camitk::InteractiveViewer::addActor(camitk::Component*, vtkSmartPointer<vtkProp>) () at /home/guys/.config/CamiTK/lib/libcamitkcore.so.4
#10 0x00007f63c5d54913 in camitk::InteractiveViewer::refresh(camitk::Viewer*) () at /home/guys/.config/CamiTK/lib/libcamitkcore.so.4
#11 0x00007f63c5d685a8 in camitk::InteractiveViewerFrame::showEvent(QShowEvent*) () at /home/guys/.config/CamiTK/lib/libcamitkcore.so.4
#12 0x00007f63c56552b6 in QWidget::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#13 0x00007f63c5702d52 in QFrame::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#14 0x00007f63c5612a66 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#15 0x00007f63c561c0f0 in QApplication::notify(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#16 0x00007f63c5cd9428 in camitk::Application::notify(QObject*, QEvent*) () at /home/guys/.config/CamiTK/lib/libcamitkcore.so.4
#17 0x00007f63c4bfa93a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#18 0x00007f63c5651c17 in QWidgetPrivate::show_helper() () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#19 0x00007f63c5654d6b in QWidgetPrivate::setVisible(bool) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#20 0x00007f63c5d73ba9 in camitk::Viewer::setVisible(bool) () at /home/guys/.config/CamiTK/lib/libcamitkcore.so.4
#21 0x00007f63c5bb7793 in MedicalImageViewer::updateLayout() () at /home/guys/.config/CamiTK/lib/camitk-4.2/viewers/libmedicalimageviewer.so.4
#22 0x00007f63c5bb6043 in MedicalImageViewer::refresh(camitk::Viewer*) () at /home/guys/.config/CamiTK/lib/camitk-4.2/viewers/libmedicalimageviewer.so.4
#23 0x00007f63c5ceda2f in camitk::MainWindow::refresh() () at /home/guys/.config/CamiTK/lib/libcamitkcore.so.4
#24 0x0000562ea8d62f40 in ImpMainWindow::refresh() ()
#25 0x00007f63c5cd9c0b in camitk::Application::refresh() () at /home/guys/.config/CamiTK/lib/libcamitkcore.so.4
#26 0x00007f63c5cda83b in camitk::Application::open(QString const&) () at /home/guys/.config/CamiTK/lib/libcamitkcore.so.4
#27 0x00007f6373d0047f in OpenFile::apply() () at /home/guys/.config/CamiTK/lib/camitk-4.2/actions/libapplication.so.4.2.dev
#28 0x00007f63c5cd22b2 in camitk::Action::applyAndRegister() () at /home/guys/.config/CamiTK/lib/libcamitkcore.so.4
#29 0x0000562ea8d6700f in ImpMainWindow::openRecentDocuments() ()
#30 0x0000562ea8d61e98 in ImpMainWindow::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) ()
#31 0x00007f63c4c26300 in QMetaObject::activate(QObject*, int, int, void**) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#32 0x00007f63c560c3e6 in QAction::triggered(bool) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#33 0x00007f63c560eaa2 in QAction::activate(QAction::ActionEvent) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#34 0x00007f63c5794d12 in () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#35 0x00007f63c579c4ae in () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#36 0x00007f63c579d4d2 in QMenu::mouseReleaseEvent(QMouseEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#37 0x00007f63c56552b6 in QWidget::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#38 0x00007f63c579fadb in QMenu::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#39 0x00007f63c5612a66 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#40 0x00007f63c561c343 in QApplication::notify(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#41 0x00007f63c5cd9428 in camitk::Application::notify(QObject*, QEvent*) () at /home/guys/.config/CamiTK/lib/libcamitkcore.so.4
#42 0x00007f63c4bfa93a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#43 0x00007f63c561b457 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#44 0x00007f63c5671ce4 in () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#45 0x00007f63c56741ec in () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#46 0x00007f63c5612a66 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#47 0x00007f63c561c0f0 in QApplication::notify(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#48 0x00007f63c5cd9428 in camitk::Application::notify(QObject*, QEvent*) () at /home/guys/.config/CamiTK/lib/libcamitkcore.so.4
#49 0x00007f63c4bfa93a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#50 0x00007f63c4fe37d3 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () at /lib/x86_64-linux-gnu/libQt5Gui.so.5
#51 0x00007f63c4fe510b in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () at /lib/x86_64-linux-gnu/libQt5Gui.so.5
#52 0x00007f63c4fbf35b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Gui.so.5
#53 0x00007f63bcca432e in () at /lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#54 0x00007f63c0d80fbd in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#55 0x00007f63c0d81240 in () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#56 0x00007f63c0d812e3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#57 0x00007f63c4c52565 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#58 0x00007f63c4bf94db in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#59 0x00007f63c4c01246 in QCoreApplication::exec() () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#60 0x00007f63c5cd9bbe in camitk::Application::exec() () at /home/guys/.config/CamiTK/lib/libcamitkcore.so.4
#61 0x0000562ea8d6c6d4 in main ()
```
**Crash after closing (after 2 load close)**
```
malloc_consolidate(): invalid chunk size
*** Program received signal SIGABRT (Aborted) ***
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1 0x00007f7908e07859 in __GI_abort () at abort.c:79
#2 0x00007f7908e723ee in __libc_message (action=action@entry=do_abort, fmt=fmt@entry=0x7f7908f9c285 "%s\n") at ../sysdeps/posix/libc_fatal.c:155
#3 0x00007f7908e7a47c in malloc_printerr (str=str@entry=0x7f7908f9e278 "malloc_consolidate(): invalid chunk size") at malloc.c:5347
#4 0x00007f7908e7ac58 in malloc_consolidate (av=av@entry=0x7f78fc000020) at malloc.c:4477
#5 0x00007f7908e7c160 in _int_free (av=0x7f78fc000020, p=0x7f78fc01a460, have_lock=<optimized out>) at malloc.c:4400
#6 0x00007f7909fa8637 in QObject::~QObject() () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#7 0x00007f7909f2ff3d in QItemSelectionModel::~QItemSelectionModel() () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#8 0x00007f7909f9e01e in QObjectPrivate::deleteChildren() () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#9 0x00007f790a9cac29 in QWidget::~QWidget() () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#10 0x00007f790ac4735d in QTableView::~QTableView() () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#11 0x00007f790b098f0e in camitk::ImageComponent::~ImageComponent() () at /home/guys/.config/CamiTK/lib/libcamitkcore.so.4
#12 0x00007f78bb094048 in VtkImageComponent::~VtkImageComponent() () at /home/guys/.config/CamiTK/lib/camitk-4.2/components/libvtkimage.so.4
#13 0x00007f78bb09409c in VtkImageComponent::~VtkImageComponent() () at /home/guys/.config/CamiTK/lib/camitk-4.2/components/libvtkimage.so.4
#14 0x00007f790b055eb7 in camitk::Application::close(camitk::Component*) () at /home/guys/.config/CamiTK/lib/libcamitkcore.so.4
#15 0x00007f78b90721f8 in CloseAction::apply() () at /home/guys/.config/CamiTK/lib/camitk-4.2/actions/libapplication.so.4.2.dev
#16 0x00007f790b04c2b2 in camitk::Action::applyAndRegister() () at /home/guys/.config/CamiTK/lib/libcamitkcore.so.4
#17 0x00007f790b04c068 in camitk::Action::trigger(QWidget*) () at /home/guys/.config/CamiTK/lib/libcamitkcore.so.4
#18 0x00007f790b02eac3 in camitk::Action::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) () at /home/guys/.config/CamiTK/lib/libcamitkcore.so.4
#19 0x00007f7909fa0300 in QMetaObject::activate(QObject*, int, int, void**) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#20 0x00007f790a9863e6 in QAction::triggered(bool) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#21 0x00007f790a988aa2 in QAction::activate(QAction::ActionEvent) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#22 0x00007f790ab0ed12 in () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#23 0x00007f790ab164ae in () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#24 0x00007f790ab174d2 in QMenu::mouseReleaseEvent(QMouseEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#25 0x00007f790a9cf2b6 in QWidget::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#26 0x00007f790ab19adb in QMenu::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#27 0x00007f790a98ca66 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#28 0x00007f790a996343 in QApplication::notify(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#29 0x00007f790b053428 in camitk::Application::notify(QObject*, QEvent*) () at /home/guys/.config/CamiTK/lib/libcamitkcore.so.4
#30 0x00007f7909f7493a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#31 0x00007f790a995457 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#32 0x00007f790a9ebce4 in () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#33 0x00007f790a9ee1ec in () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#34 0x00007f790a98ca66 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#35 0x00007f790a9960f0 in QApplication::notify(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#36 0x00007f790b053428 in camitk::Application::notify(QObject*, QEvent*) () at /home/guys/.config/CamiTK/lib/libcamitkcore.so.4
#37 0x00007f7909f7493a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#38 0x00007f790a35d7d3 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () at /lib/x86_64-linux-gnu/libQt5Gui.so.5
#39 0x00007f790a35f10b in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () at /lib/x86_64-linux-gnu/libQt5Gui.so.5
#40 0x00007f790a33935b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Gui.so.5
#41 0x00007f790201e32e in () at /lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#42 0x00007f79060fafbd in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#43 0x00007f79060fb240 in () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#44 0x00007f79060fb2e3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#45 0x00007f7909fcc565 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#46 0x00007f7909f734db in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#47 0x00007f790ab140b1 in QMenu::exec(QPoint const&, QAction*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#48 0x00007f790af190bf in Explorer::rightButtonPressed(QPoint const&) () at /home/guys/.config/CamiTK/lib/camitk-4.2/viewers/libexplorer.so.4
#49 0x00007f790af169cc in Explorer::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) () at /home/guys/.config/CamiTK/lib/camitk-4.2/viewers/libexplorer.so.4
#50 0x00007f7909fa0300 in QMetaObject::activate(QObject*, int, int, void**) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#51 0x00007f790a9b52d9 in QWidget::customContextMenuRequested(QPoint const&) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#52 0x00007f790a9cff85 in QWidget::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#53 0x00007f790aa7cd52 in QFrame::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#54 0x00007f790ac01482 in QAbstractItemView::viewportEvent(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#55 0x00007f790ac6f62f in QTreeView::viewportEvent(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#56 0x00007f7909f7464b in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#57 0x00007f790a98ca55 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#58 0x00007f790a996b93 in QApplication::notify(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#59 0x00007f790b053428 in camitk::Application::notify(QObject*, QEvent*) () at /home/guys/.config/CamiTK/lib/libcamitkcore.so.4
#60 0x00007f7909f7493a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#61 0x00007f790a9eb94a in () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#62 0x00007f790a9ee1ec in () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#63 0x00007f790a98ca66 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#64 0x00007f790a9960f0 in QApplication::notify(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#65 0x00007f790b053428 in camitk::Application::notify(QObject*, QEvent*) () at /home/guys/.config/CamiTK/lib/libcamitkcore.so.4
#66 0x00007f7909f7493a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#67 0x00007f790a35d7d3 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () at /lib/x86_64-linux-gnu/libQt5Gui.so.5
#68 0x00007f790a35f10b in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () at /lib/x86_64-linux-gnu/libQt5Gui.so.5
#69 0x00007f790a33935b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Gui.so.5
#70 0x00007f790201e32e in () at /lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#71 0x00007f79060fafbd in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#72 0x00007f79060fb240 in () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#73 0x00007f79060fb2e3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#74 0x00007f7909fcc565 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#75 0x00007f7909f734db in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#76 0x00007f7909f7b246 in QCoreApplication::exec() () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#77 0x00007f790b053bbe in camitk::Application::exec() () at /home/guys/.config/CamiTK/lib/libcamitkcore.so.4
#78 0x000055ad5179f6d4 in main ()
```
## Interpretation & Possible fixes
At the beginning I thought it was the fault of the destructors of my component, but since the bug also appears with the basic component of CamiTK, I have no idea where the issue could come from.
## CamiTK Version
CamiTK 4.2.dev.develop.32c2e525
---
**please do not remove anything below this line**CamiTK 4.2 Sprint # 3Emmanuel PromayonEmmanuel Promayonhttps://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 Promayonhttps://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/issues/102INTERACTIVEVIEWER_API undefined in RenderWidget.h2020-06-26T08:52:48+02:00Theophile TiffetINTERACTIVEVIEWER_API undefined in RenderWidget.h## About you
PhD student
## Problem
'INTERACTIVEVIEWER_API' is not defined in 'sdk/libraries/core/viewer/RenderWidget.h line 102 and 105. A quick search through files showed that it is not defined anywhere.
## Possible solution
Should...## About you
PhD student
## Problem
'INTERACTIVEVIEWER_API' is not defined in 'sdk/libraries/core/viewer/RenderWidget.h line 102 and 105. A quick search through files showed that it is not defined anywhere.
## Possible solution
Should it be CAMITK_API ?
## CamiTK Version
As of 15/06/2020, last version in the develop branch.
---
**please do not remove anything below this line**CamiTK 4.2 Sprint # 1Jean-Loup HaberbuschJean-Loup Haberbuschhttps://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/issues/61Revive ArbitrarySlice2020-01-18T01:13:15+01:00Emmanuel PromayonRevive ArbitrarySlice## About you:
Submitted by Sonia-Yuki Selmi on Bugzilla, 2015-03-23
## Product:
imp and SDK
## Overview:
> With the new updated snv version of camitk (3.5.0svn), the arbitrary viewer does not work ...## About you:
Submitted by Sonia-Yuki Selmi on Bugzilla, 2015-03-23
## Product:
imp and SDK
## Overview:
> With the new updated snv version of camitk (3.5.0svn), the arbitrary viewer does not work ... I'm working on Windows. I
> tested the action with several images (for instance brain.mha from the share folder)
> It is probably due to the new concept of InterfaceFrame ...
>
> -- Sonia
Yes Sonia is right: this is due to the introduction of `InterfaceFrame` in CamiTK 3.4 and nobody found time or was very interested in fixing this problem.Emmanuel PromayonEmmanuel Promayonhttps://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/issues/88Problem Import DLL Windows2019-10-23T08:18:41+02:00Maxime CalkaProblem Import DLL Windows## About you
Developper on the Meniscare project.
## Overview
Problem to import functions of InteractiveViwerFrame, SliderSpinBoxWidget, SliderTextWidget.
## Steps to Reproduce
No step to reproduce
## Interpretation & Possible fixes...## About you
Developper on the Meniscare project.
## Overview
Problem to import functions of InteractiveViwerFrame, SliderSpinBoxWidget, SliderTextWidget.
## Steps to Reproduce
No step to reproduce
## Interpretation & Possible fixes
InteractiveViewerFrame.h
Actual:
class InteractiveViewerFrame : public QFrame {
public:
Expected:
class CAMITK_API InteractiveViewerFrame : public QFrame {
public:
SliderSpinBoxWidget.h
Actual:
class SliderSpinBoxWidget : public QWidget {
Q_OBJECT
Expected:
class CAMITK_API SliderSpinBoxWidget : public QWidget {
Q_OBJECT
SliderTextWidget.h
Actual:
class SliderTextWidget : public QWidget {
Q_OBJECT
Expected:
class CAMITK_API SliderTextWidget : public QWidget {
Q_OBJECT
## CamiTK Version
4.1
---
**please do not remove anything below this line**https://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/issues/84Bug in refreshInterfaceNode in Explorer.cpp2019-05-30T10:04:25+02:00Matthias TummersBug in refreshInterfaceNode in Explorer.cppI am a CamiTK developer working on the FOCUS CEP
When Working with multiple components with parent/child relationships, Explorer::refreshInterfaceNode() will fail to remove all the components from the maps but effectively delete de the ...I am a CamiTK developer working on the FOCUS CEP
When Working with multiple components with parent/child relationships, Explorer::refreshInterfaceNode() will fail to remove all the components from the maps but effectively delete de the components. This leaves the Explorer with invalid references to components in its maps and will eventually cause a crash.
## 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/tummersm/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........... 15 (locations: 15 global, 0 local, 0 in working directory, 0 manually installed by user)
- Number of File Extensions Supported...... 39
- Number of Action Extensions.............. 28 (locations: 28 global, 0 local, 0 in working directory, 0 manually installed by user)
- Number of Actions........................ 106
- Registered components:
- [G] Alias Wavefront OBJ Component...... obj
- [G] FocusImageComponentExtension....... fcs, fcs3
- [G] ItkImages Component................ hdr, spr, gipl, pic, lsm, nrrd, hdr.gz, nii, nii.gz, img, img.gz
- [G] MML Component...................... mml, scn
- [G] Msh Component...................... msh
- [G] Off Component...................... off
- [G] PML Component...................... pml
- [G] Pick Me Component.................. pickme
- [G] STL Component...................... stl, STL
- [G] Testing Abort Component............ abort
- [G] Testing Mixed Component............ mixed
- [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] AverageVoxelValuesExtension........ 1 actions
- [G] Basic Mesh Extension............... 9 actions
- [G] Basic Picking Tutorial............. 1 actions
- [G] Basic Topology..................... 2 actions
- [G] BoxVOIExtension.................... 1 actions
- [G] FocusActionExtension............... 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] MML................................ 2 actions
- [G] Mesh Point Data.................... 1 actions
- [G] Mesh Processing.................... 17 actions
- [G] Mesh Selection..................... 1 actions
- [G] MultiPickingExtension.............. 1 actions
- [G] PMLExploreExtension................ 2 actions
- [G] Pixel Color Changer................ 1 actions
- [G] PropertiesExtension................ 3 actions
- [G] Reconstruction..................... 1 actions
- [G] Reorient Image Extension........... 1 actions
- [G] ResampleExtension.................. 1 actions
- [G] Shaker Extension................... 3 actions
- [G] ShowIn3DExtension.................. 5 actions
- [G] Sleeping While Working............. 2 actions
- [G] VolumeRenderingExtension........... 1 actions
- [G] Vtk Widget Tutorial................ 2 actions
---
**please do not remove anything below this line**Matthias TummersMatthias Tummershttps://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/issues/62Manual threshold does not allow a threshold greater than 2552019-05-08T17:03:47+02:00Emmanuel PromayonManual threshold does not allow a threshold greater than 255## About you
This bug was submitted by @fouardc on bugzilla, on 2015-10-23
## Overview:
> While utilizing ITK Segmentation -> Manual Threshold Filter, it is not possible to choose a low threshold or a high threshold ...## About you
This bug was submitted by @fouardc on bugzilla, on 2015-10-23
## Overview:
> While utilizing ITK Segmentation -> Manual Threshold Filter, it is not possible to choose a low threshold or a high threshold higher than 255, or lower than 0.
> This raises no problem for medical images encoded on unsigned char, however, for other kind of images (for example CT Scanner generally encoded on signed short), higher threshold values or negative threshold value may come handy.
> -- C. Fouard
## Steps to Reproduce:
> Open an image not encode in unsigned char. For example:
> - open the sinus dicom in the examples data base
> - select this image in the explorer and choose to apply ITK Segmentation -> Manual Threshold Filter
> - try to set the lower threshold to -53 and the higher threshold to 455 (yes, why not, if my algorithm says so?)
> - it is not possible
## Actual VS Expected Result:
> The fact that it is not possible is ok for some images, but it would be nice for the user to be able to choose any lower and higher threshold within the range of the encoded type of the image.
## Relevant logs and/or screenshots:
[Paste any relevant logs - please use code blocks (```) to format console output, logs, and code as it's very hard to read otherwise.]
## Interpretation & Possible fixes:
>It may come from the lines 63 and 64 of ManualThreshold.cpp :
>```cpp
> lowThresholdProperty->setAttribute("minimum", 0);
> lowThresholdProperty->setAttribute("maximum", 255);
>```
>and the lines 69 and 70 of the same file:
>```cpp
> highThresholdProperty->setAttribute("minimum", 0);
> highThresholdProperty->setAttribute("maximum", 255);
>```
>
>These 2 values 0, and 255 may not be encoded hardwire but may be declared as variables updated when a new image is set as input (an override of the getWidget method implementation may be needed) with the minimum and maximum value of the encoding type of the input image.
## CamiTK Version:
This was submitted for CamiTK 3.5.0.2135
But the bug is still present in version 4.0.x and 4.1.0.develop
---
**please do not remove anything below this line**