View Issue Details

IDProjectCategoryView StatusLast Update
0003825Slicer4Core: Base Codepublic2018-03-02 11:06
Reporterpieper Assigned Tojcfr  
PrioritylowSeveritycrashReproducibilityalways
Status closedResolutionfixed 
Product Version 
Target VersionSlicer 4.5.0-1Fixed in VersionSlicer 4.5.0-1 
Summary0003825: Large tiff files not supported
Description

Gib Bogle <g.bogle@auckland.ac.nz>
Sep 1 2014:

to slicer-devel
Hi,
It seems that Slicer (the Windows version, anyway) does not handle BigTIFFs. Is there a plan to add this capability?
Thanks
Gib

Steps To Reproduce

Download this file and try to open it: http://slicer.kitware.com/midas3/download/item/157382/big1650c.tif

is is a 1650^3 volume (only 90 MB compressed)

Additional Information

http://massmail.spl.harvard.edu/public-archives/slicer-devel/2014/016147.html

TagsNo tags attached.

Relationships

parent of 0003829 closedjcfr Ensure Extensions are not using ITKV3 Compatibility header 
parent of 0003830 closedjcfr Ensure Extensions are not using ITKDeprecated header 

Activities

pieper

pieper

2014-09-03 07:15

administrator   ~0012456

Here is the stack trace:

ITKIOTIFF-4.6.dll!itk::TIFFImageIO::EvaluateImageAt(void * out=0x0000000025ab7000, void * in=0x0000000012b7661a)  Line 878 + 0xd bytes  C++
ITKIOTIFF-4.6.dll!itk::TIFFImageIO::ReadGenericImage(void * out=0x00000000259a0790, unsigned int width=1650, unsigned int height=1650)  Line 531 + 0x22 bytes   C++

ITKIOTIFF-4.6.dll!itk::TIFFImageIO::ReadVolume(void buffer=0x0000000019eb0070) Line 1321 C++
ITKIOTIFF-4.6.dll!itk::TIFFImageIO::Read(void
buffer=0x0000000019eb0070) Line 1381 C++
vtkITK.dll!itk::ImageFileReader<itk::Image<unsigned char,3>,itk::DefaultConvertPixelTraits<unsigned char> >::GenerateData() Line 446 + 0x4d bytes C++
ITKCommon-4.6.dll!itk::ProcessObject::UpdateOutputData(itk::DataObject __formal=0x0000000012ba7d80) Line 1733 + 0x19 bytes C++
ITKCommon-4.6.dll!itk::DataObject::UpdateOutputData() Line 419 C++
vtkITK.dll!itk::ImageBase<3>::UpdateOutputData() Line 289 C++
ITKCommon-4.6.dll!itk::DataObject::Update() Line 342 C++
ITKCommon-4.6.dll!itk::ProcessObject::UpdateLargestPossibleRegion() Line 1860 C++
vtkITK.dll!vtkITKArchetypeImageSeriesScalarReader::RequestData(vtkInformation
formal=0x0000000012b3c980, vtkInformation * formal=0x0000000012b3c980, vtkInformationVector outputVector=0x0000000012bbc8a0) Line 188 + 0x200 bytes C++
vtkFiltering.dll!vtkImageAlgorithm::ProcessRequest(vtkInformation
request=0x0000000012b3c980, vtkInformationVector inputVector=0x0000000000000000, vtkInformationVector outputVector=0x0000000012bbc8a0) Line 102 + 0x22 bytes C++
vtkFiltering.dll!vtkExecutive::CallAlgorithm(vtkInformation
request=0x0000000012b3c980, int direction=1, vtkInformationVector inInfo=0x0000000000000000, vtkInformationVector outInfo=0x0000000012bbc8a0) Line 747 + 0x39 bytes C++
vtkFiltering.dll!vtkDemandDrivenPipeline::ExecuteData(vtkInformation
request=0x0000000012b3c980, vtkInformationVector inInfo=0x0000000000000000, vtkInformationVector outInfo=0x0000000012bbc8a0) Line 507 + 0x2e bytes C++
vtkFiltering.dll!vtkDemandDrivenPipeline::ProcessRequest(vtkInformation
request=0x0000000012b3c980, vtkInformationVector inInfoVec=0x0000000000000000, vtkInformationVector outInfoVec=0x0000000012bbc8a0) Line 279 + 0x22 bytes C++
vtkFiltering.dll!vtkStreamingDemandDrivenPipeline::ProcessRequest(vtkInformation
request=0x0000000012b3c980, vtkInformationVector inInfoVec=0x0000000000000000, vtkInformationVector outInfoVec=0x0000000012bbc8a0) Line 276 + 0x25 bytes C++
vtkFiltering.dll!vtkDemandDrivenPipeline::UpdateData(int outputPort=0) Line 450 C++
vtkFiltering.dll!vtkStreamingDemandDrivenPipeline::Update(int port=0) Line 326 + 0x1e bytes C++
vtkFiltering.dll!vtkExecutive::Update() Line 315 + 0x15 bytes C++
vtkFiltering.dll!vtkDemandDrivenPipeline::Update() Line 313 C++
vtkFiltering.dll!vtkStreamingDemandDrivenPipeline::Update() Line 307 C++
vtkFiltering.dll!vtkAlgorithm::Update() Line 1287 C++
MRMLCore.dll!vtkMRMLVolumeArchetypeStorageNode::ReadDataInternal(vtkMRMLNode
refNode=0x0000000012afb610) Line 350 + 0x3e bytes C++
MRMLCore.dll!vtkMRMLStorageNode::ReadData(vtkMRMLNode refNode=0x0000000012afb610, bool temporary=false) Line 1067 + 0x21 bytes C++
vtkSlicerVolumesModuleLogic.dll!vtkSlicerVolumesLogic::AddArchetypeVolume(const std::list<ArchetypeVolumeNodeSet (__cdecl
)(std::basic_string<char,std::char_traits<char>,std::allocator<char> > &,vtkMRMLScene ,int),std::allocator<ArchetypeVolumeNodeSet (__cdecl)(std::basic_string<char,std::char_traits<char>,std::allocator<char> > &,vtkMRMLScene ,int)> > & volumeRegistry=[7](0x000007fea5f216bd `anonymous namespace'::MultiVolumeNodeSetFactory(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > & ptr64,class vtkMRMLScene ptr64,int),0x000007fea7b5108c anonymous namespace'::DiffusionWeightedVolumeNodeSetFactory(class std::basic_string&lt;char,struct std::char_traits&lt;char>,class std::allocator&lt;char> > & ptr64,class vtkMRMLScene * ptr,...), const char * filename=0x0000000012626c78, const char * volname=0x0000000010c66f18, int loadingOptions=4, vtkStringArray * fileList=0x0000000000000000) Line 546 + 0x41 bytes C++ vtkSlicerVolumesModuleLogic.dll!vtkSlicerVolumesLogic::AddArchetypeVolume(const char * filename=0x0000000012626c78, const char * volname=0x0000000010c66f18, int loadingOptions=4, vtkStringArray * fileList=0x0000000000000000) Line 482 C++ qSlicerVolumesModule.dll!qSlicerVolumesReader::load(const QMap&lt;QString,QVariant> & properties={...}) Line 157 + 0xab bytes C++ qSlicerBaseQTCore.dll!qSlicerCoreIOManager::loadNodes(const QString & fileType={...}, const QMap&lt;QString,QVariant> & parameters={...}, vtkCollection * loadedNodes=0x0000000000000000) Line 404 + 0x1e bytes C++ qSlicerBaseQTGUI.dll!qSlicerIOManager::loadNodes(const QString & fileType={...}, const QMap&lt;QString,QVariant> & parameters={...}, vtkCollection * loadedNodes=0x0000000000000000) Line 421 + 0x26 bytes C++ qSlicerBaseQTCore.dll!qSlicerCoreIOManager::loadNodes(const QString & fileType={...}, const QMap&lt;QString,QVariant> & parameters={...}, vtkCollection * loadedNodes=0x0000000000000000) Line 382 + 0x33 bytes C++ qSlicerBaseQTGUI.dll!qSlicerIOManager::loadNodes(const QString & fileType={...}, const QMap&lt;QString,QVariant> & parameters={...}, vtkCollection * loadedNodes=0x0000000000000000) Line 421 + 0x26 bytes C++ qSlicerBaseQTGUI.dll!qSlicerIOManager::loadNodes(const QList&lt;QMap&lt;QString,QVariant> > & files={...}, vtkCollection * loadedNodes=0x0000000000000000) Line 443 + 0xa4 bytes C++ qSlicerBaseQTGUI.dll!qSlicerDataDialog::exec(const QMap&lt;QString,QVariant> & readerProperties={...}) Line 497 + 0x38 bytes C++ qSlicerBaseQTGUI.dll!qSlicerIOManager::openDialog(QString * fileType=0x0000000000259b50, qSlicerFileDialog::IOAction action=Read, QMap&lt;QString,QVariant> * properties=0x0000000000259b40, vtkCollection * loadedNodes=0x0000000000000000) Line 253 + 0x18 bytes C++ qSlicerBaseQTGUI.dll!qSlicerIOManager::openAddDataDialog() Line 130 C++ qSlicerApp.dll!qSlicerAppMainWindow::on_FileLoadDataAction_triggered() Line 736 C++ qSlicerApp.dll!qSlicerAppMainWindow::qt_static_metacall(QObject * _o=0x00000000102ddfb0, QMetaObject::Call _c=InvokeMetaMethod, int _id=3, void * * _a=0x0000000000259e70) Line 152 + 0x13 bytes C++ qSlicerApp.dll!qSlicerAppMainWindow::qt_metacall(QMetaObject::Call _c=InvokeMetaMethod, int _id=3, void * * _a=0x0000000000259e70) Line 242 C++ QtCored4.dll!QMetaObject::metacall(QObject * object=0x00000000102ddfb0, QMetaObject::Call cl=InvokeMetaMethod, int idx=34, void * * argv=0x0000000000259e70) Line 246 C++ QtCored4.dll!QMetaObject::activate(QObject * sender=0x00000000105a3d50, const QMetaObject * m=0x0000000065ccb608, int local_signal_index=1, void * * argv=0x0000000000259e70) Line 3577 + 0x49 bytes C++ QtGuid4.dll!QAction::triggered(bool _t1=false) Line 277 C++ QtGuid4.dll!QAction::activate(QAction::ActionEvent event=Trigger) Line 1259 C++ QtGuid4.dll!QAction::trigger() Line 218 + 0x15 bytes C++ QtGuid4.dll!QToolButton::nextCheckState() Line 1148 C++ QtGuid4.dll!QAbstractButtonPrivate::click() Line 531 C++ QtGuid4.dll!QAbstractButton::mouseReleaseEvent(QMouseEvent * e=0x000000000025b168) Line 1124 C++ QtGuid4.dll!QToolButton::mouseReleaseEvent(QMouseEvent * e=0x000000000025b168) Line 719 C++ QtGuid4.dll!QWidget::event(QEvent * event=0x000000000025b168) Line 8377 C++ QtGuid4.dll!QAbstractButton::event(QEvent * e=0x000000000025b168) Line 1083 C++ QtGuid4.dll!QToolButton::event(QEvent * event=0x000000000025b168) Line 1164 C++ QtGuid4.dll!QApplicationPrivate::notify_helper(QObject * receiver=0x0000000010718f30, QEvent * e=0x000000000025b168) Line 4562 + 0x15 bytes C++ QtGuid4.dll!QApplication::notify(QObject * receiver=0x0000000010718f30, QEvent * e=0x000000000025b168) Line 4105 + 0x51 bytes C++ qSlicerBaseQTGUI.dll!qSlicerApplication::notify(QObject * receiver=0x0000000010718f30, QEvent * event=0x000000000025b168) Line 330 + 0x1e bytes C++ QtCored4.dll!QCoreApplication::notifyInternal(QObject * receiver=0x0000000010718f30, QEvent * event=0x000000000025b168) Line 949 + 0x26 bytes C++ QtCored4.dll!QCoreApplication::sendSpontaneousEvent(QObject * receiver=0x0000000010718f30, QEvent * event=0x000000000025b168) Line 234 + 0x4c bytes C++ QtGuid4.dll!QApplicationPrivate::sendMouseEvent(QWidget * receiver=0x0000000010718f30, QMouseEvent * event=0x000000000025b168, QWidget * alienWidget=0x0000000010718f30, QWidget * nativeWidget=0x00000000106df640, QWidget * * buttonDown=0x0000000065ccd340, QPointer&lt;QWidget> & lastMouseReceiver={...}, bool spontaneous=true) Line 3171 + 0x16 bytes C++ QtGuid4.dll!QETWidget::translateMouseEvent(const tagMSG & msg={...}) Line 3382 + 0x3f bytes C++ QtGuid4.dll!QtWndProc(HWND__ * hwnd=0x00000000004405fe, unsigned int message=514, unsigned __int64 wParam=0, __int64 lParam=1310747) Line 1709 + 0x15 bytes C++ user32.dll!0000000076fa9bd1() [Frames below may be incorrect and/or missing, no symbols loaded for user32.dll] user32.dll!0000000076fa98da() QtCored4.dll!QEventDispatcherWin32::processEvents(QFlags&lt;enum QEventLoop::ProcessEventsFlag> * flags=0x000000000025f430) Line 814 C++ QtGuid4.dll!QGuiEventDispatcherWin32::processEvents(QFlags&lt;enum QEventLoop::ProcessEventsFlag> * flags=0x000000000025f47c) Line 1212 + 0x27 bytes C++ QtCored4.dll!QEventLoop::processEvents(QFlags&lt;enum QEventLoop::ProcessEventsFlag> * flags=0x000000000025f4f8) Line 150 C++ QtCored4.dll!QEventLoop::exec(QFlags&lt;enum QEventLoop::ProcessEventsFlag> * flags=0x000000000025f580) Line 204 + 0x59 bytes C++ QtCored4.dll!QCoreApplication::exec() Line 1221 + 0x23 bytes C++ QtGuid4.dll!QApplication::exec() Line 3824 C++ SlicerApp-real.exe!anonymous namespace'::SlicerAppMain(int argc=1, char argv=0x0000000003e3a9b0) Line 209 + 0x6 bytes C++
SlicerApp-real.exe!WinMain(HINSTANCE * hInstance=0x000000013f4e0000, HINSTANCE hPrevInstance=0x0000000000000000, char lpCmdLine=0x0000000000297e3b, int nShowCmd=1) Line 228 + 0xe bytes C++
SlicerApp-real.exe!__tmainCRTStartup() Line 578 + 0x42 bytes C
SlicerApp-real.exe!WinMainCRTStartup() Line 403 C
kernel32.dll!00000000770a59ed()
ntdll.dll!00000000771dc541()

jcfr

jcfr

2014-09-09 13:50

administrator   ~0012486

Last edited: 2014-09-09 14:44

From http://slicer-devel.65872.n3.nabble.com/BigTIFF-tp4032353p4032379.html

Brad: To turn on the 64-bit IDs for windows 64 (ITK_USE_64BITS_IDS), ITKV3_COMPATIBILITY needs to be disabled, and then the ITKDeprecated module can no longer be used. I have brought these issue up before and offered assistance but no one wanted to champion changing these configuration flags.

Since BRAINSTools and extensions are depending on both ITKDeprecated and ITKV3Compatibility, it is currently not possible to disable these option for Slicer build.

For reference:

ITKV3Compatibility:
Extensions: 0003829
BRAINSTools: https://github.com/BRAINSia/BRAINSTools/issues/145

ITKDeprecated
Extensions: 0003830
BRAINSTools: https://github.com/BRAINSia/BRAINSTools/issues/146

jcfr

jcfr

2014-09-25 12:13

administrator   ~0012587

For reference, there is now (r23730) a top-level option named "Slicer_ITKV3_COMPATIBILITY" enabled by default.

See http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&amp;revision=23730

jcfr

jcfr

2015-05-11 20:27

administrator   ~0013042

Thanks to Bradley Lowekamp, this has been fixed in r23960 [1]

[1] http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&amp;revision=23960

Issue History

Date Modified Username Field Change
2014-09-03 07:12 pieper New Issue
2014-09-03 07:12 pieper Status new => assigned
2014-09-03 07:12 pieper Assigned To => jcfr
2014-09-03 07:15 pieper Note Added: 0012456
2014-09-09 13:43 jcfr Target Version => Slicer 4.5.0-1
2014-09-09 13:50 jcfr Note Added: 0012486
2014-09-09 13:51 jcfr Note Edited: 0012486
2014-09-09 14:11 jcfr Relationship added parent of 0003829
2014-09-09 14:17 jcfr Relationship added parent of 0003830
2014-09-09 14:35 jcfr Note Edited: 0012486
2014-09-09 14:44 jcfr Note Edited: 0012486
2014-09-25 12:13 jcfr Note Added: 0012587
2015-05-11 20:27 jcfr Note Added: 0013042
2015-05-11 20:27 jcfr Status assigned => resolved
2015-05-11 20:27 jcfr Fixed in Version => Slicer 4.5.0-1
2015-05-11 20:27 jcfr Resolution open => fixed
2018-03-02 11:06 jcfr Status resolved => closed