ELF>p@@:9 !"#$%&'(UH@dH%(HD$81HHt$HD$HFHD$$D$ t0H|$1HT$8dH+%(uhH@]@HT$H|$H5|$HtHt+HH5HPtHuH1Huff.fUSHHdH%(HD$81HHt$HD$HFHD$$D$ HD$t6H|$1HT$8dH+%(HH[]DHt$H|$tHl$H=HtHH=uHuHc@HH=tHH=tHH=tHff.ATUSH@fnFdH%(HD$81HHt$HD$HGfnȉD$(fbfD$ uYHD$Ho(Ht!\$ +\$$tJH|$1HT$8dH+%(H@[]A\HHuːHt$H|$tD$$Ld$u`HELH@H;H=tLH=u-HaHcVf.LLH=tLH=tLH=tLHЉfSH0fnFdH%(HD$(1HH4$HD$HGfnȉD$fbfD$u=HG(HtL$9L$t:H111HT$(dH+%(u?H0[fDHHuӐhfH~HufHnSH0fnFdH%(HD$(1HH4$HD$HGfnȉD$fbfD$u=HG(HtL$9L$t:H111HT$(dH+%(u?H0[fDHHuӐ`fH~HufHnSH0fnFdH%(HD$(1HH4$HD$HGfnȉD$fbfD$u=HG(HtL$9L$t:H111HT$(dH+%(u6H0[fDHHuӐHuHcSH0fnFdH%(HD$(1HH4$HD$HGfnȉD$fbfD$u=HG(HtL$9L$t:H111HT$(dH+%(u?H0[fDHHuӐfH~HufHnSH0fnFdH%(HD$(1HH4$HD$HGfnȉD$fbfD$u=HG(HtL$9L$t:H111HT$(dH+%(u?H0[fDHHuӐpfH~HufHnUH0fnFdH%(HD$(1HH4$HD$HGfnȉD$fbfD$u=HG(HtL$9L$t:H111HT$(dH+%(u7H0]fDHHuӐHxHuHUH0fnFdH%(HD$(1HH4$HD$HGfnȉD$fbfD$u=HG(HtL$9L$t:H111HT$(dH+%(u7H0]fDHHuӐHHuHUH0fnFdH%(HD$(1HH4$HD$HGfnȉD$fbfD$u=H(HtD$9D$t:H111HT$(dH+%(u8H0]fDHHuӐHHuHff.@SH0fnFdH%(HD$(1HH4$HD$HGfnȉD$fbfD$u=H(HtD$9D$t:H111HT$(dH+%(uUH0[fDHHuӐtXHu뵐HHH;tЉfSH0fnFdH%(HD$(1HH4$HD$HGfnȉD$fbfD$u=H(HtD$9D$t:H111HT$(dH+%(uUH0[fDHHuӐtHu뵐HHH;tЉfATUH8fnFdH%(HD$(1HH4$HD$HGfnȉD$fbfD$uCH(HtD$9D$tHH111HT$(dH+%(H8]A\fDHHufuHHH;uAHuA&H-LHHuLHsDHHYHuHHFHIff.ATUH8fnFdH%(HD$(1HH4$HD$HGfnȉD$fbfD$uCH(HtD$9D$tHH111HT$(dH+%(H8]A\fDHHufuHHH;uAHuAH-LHHuLHsDHHYHuHHFHIff.UH@fnFdH%(HD$81HHt$HD$HGfnȉD$(fbfD$ uLHo(D$Ht!D$ +D$$tAH|$1HT$8dH+%(H@]ÐHHuԐHt$H|$tD$$t$t8@8XtHE@XHHuHH@HEHH;u$@8Xt@XHfH@H8fnFdH%(HD$(1HH4$HD$HGfnȉD$fbfD$u>H(HtD$9D$t;H111HT$(dH+%(H8@HHuҐHtAHH;uIu ƇHuHH@HH;t@fUH@fnFdH%(HD$81HHt$HD$HGfnȉD$(fbfD$ uLHo(D$Ht!D$ +D$$tAH|$1HT$8dH+%(H@]ÐHHuԐHt$H|$tD$$t$t8@8tHE@HHuHH@HEHH;u$@8t@HfH@H8fnFdH%(HD$(1HH4$HD$HGfnȉD$fbfD$u>H(HtD$9D$t;H111HT$(dH+%(H8@HHuҐHtAHH;uIXt ƇXHuHH@HH;t@1DH8fnFdH%(HD$(1HH4$HD$HGfnȉD$fbfD$u>H(HtD$9D$t;H111HT$(dH+%(H8@HHuҐHtAHH;uIXu ƇXHuHH@HH;t@fH8fnFdH%(HD$(1HH4$HD$HGfnȉD$fbfD$u>H(HtD$9D$t;H111HT$(dH+%(H8@HHuҐHtAHH;uIt ƇHuHH@HH;t@1DATH0fnFdH%(HD$(1HH4$HD$HGfnȉD$fbfD$uDH(HtD$9D$tIH11E1HD$(dH+%(H0LA\@HHufHHRxH;IMtoI$H5LPtZHuLIHoHbL1HHP@L8fE1H"DIjfATL%H ,HH5LuLHLA\ATIUHHt HH5LHtHmtH]A\HH]A\UH@fnFdH%(HD$81HHt$HD$HGfnȉD$(fbfD$ uLHD$Ho(Ht!D$ +D$$t=H|$1HT$8dH+%(ukH@]ÐHHuؐHt$H|$tċD$$Ht$u(HEHHuHcDH.nii .nii.gz .img .img.gz .hdr .hdr.gzHNIfTIHX@8XtH@X@8tH@SafeDownCastvtkObjectBasevtkNIFTIImageReaderIsTypeOfIsAGetRescaleSlopeGetRescaleInterceptGetTimeDimensionGetTimeSpacingGetQFacGetQFormMatrixGetSFormMatrixGetNIFTIHeaderGetTimeAsVectorGetPlanarRGBGetFileExtensionsGetDescriptiveNameSetTimeAsVectorPlanarRGBOnSetPlanarRGBTimeAsVectorOffTimeAsVectorOnPlanarRGBOffNewInstanceCanReadFilevtkImageReader2vtkImageAlgorithmvtkAlgorithmvtkObjectUH=Hu]ÐHH=tHH=tHH=tHH=tH]HHH;u!XuƇXHHH;u!uƇHHH;u!tƇ1HHH;u!XtƇX1vtkNIFTIImageReader - Read NIfTI-1 and NIfTI-2 medical image files Superclass: vtkImageReader2 This class reads NIFTI files, either in .nii format or as separate .img and .hdr files. If two files are used, then they can be passed by using SetFileNames() instead of SetFileName(). Files ending in .gz are decompressed on-the-fly while they are being read. Files with complex numbers or vector dimensions will be read as multi-component images. If a NIFTI file has a time dimension, then by default only the first image in the time series will be read, but the TimeAsVector flag can be set to read the time steps as vector components. Files in Analyze 7.5 format are also supported by this reader.@par Thanks: This class was contributed to VTK by the Calgary Image Processing and Analysis Centre (CIPAC). @sa vtkNIFTIImageWriter, vtkNIFTIImageHeader vtkIOImagePython.vtkNIFTIImageReaderV.IsTypeOf(string) -> int C++: static vtkTypeBool IsTypeOf(const char *type) Static method for construction. V.IsA(string) -> int C++: vtkTypeBool IsA(const char *type) override; Static method for construction. V.SafeDownCast(vtkObjectBase) -> vtkNIFTIImageReader C++: static vtkNIFTIImageReader *SafeDownCast(vtkObjectBase *o) Static method for construction. V.NewInstance() -> vtkNIFTIImageReader C++: vtkNIFTIImageReader *NewInstance() Static method for construction. V.GetFileExtensions() -> string C++: const char *GetFileExtensions() override; Valid extensions for this file type. V.GetDescriptiveName() -> string C++: const char *GetDescriptiveName() override; Return a descriptive name that might be useful in a GUI. V.CanReadFile(string) -> int C++: int CanReadFile(const char *filename) override; Return true if this reader can read the given file. V.GetTimeAsVector() -> bool C++: virtual bool GetTimeAsVector() Read the time dimension as scalar components (default: Off). If this is on, then each time point will be stored as a component in the image data. If the file has both a time dimension and a vector dimension, then the number of components will be the product of these two dimensions, i.e. the components will store a sequence of vectors. V.SetTimeAsVector(bool) C++: virtual void SetTimeAsVector(bool _arg) Read the time dimension as scalar components (default: Off). If this is on, then each time point will be stored as a component in the image data. If the file has both a time dimension and a vector dimension, then the number of components will be the product of these two dimensions, i.e. the components will store a sequence of vectors. V.TimeAsVectorOn() C++: virtual void TimeAsVectorOn() Read the time dimension as scalar components (default: Off). If this is on, then each time point will be stored as a component in the image data. If the file has both a time dimension and a vector dimension, then the number of components will be the product of these two dimensions, i.e. the components will store a sequence of vectors. V.TimeAsVectorOff() C++: virtual void TimeAsVectorOff() Read the time dimension as scalar components (default: Off). If this is on, then each time point will be stored as a component in the image data. If the file has both a time dimension and a vector dimension, then the number of components will be the product of these two dimensions, i.e. the components will store a sequence of vectors. V.GetTimeDimension() -> int C++: int GetTimeDimension() Get the time dimension that was stored in the NIFTI header. V.GetTimeSpacing() -> float C++: double GetTimeSpacing() V.GetRescaleSlope() -> float C++: double GetRescaleSlope() Get the slope and intercept for rescaling the scalar values. These values allow calibration of the data to real values. Use the equation v = u*RescaleSlope + RescaleIntercept. This directly returns the values stored in the scl_slope and scl_inter fields in the NIFTI header. V.GetRescaleIntercept() -> float C++: double GetRescaleIntercept() V.GetPlanarRGB() -> bool C++: virtual bool GetPlanarRGB() Read planar RGB (separate R, G, and B planes), rather than packed RGB. The NIFTI format should always use packed RGB. The Analyze format, however, was used to store both planar RGB and packed RGB depending on the software, without any indication in the header about which convention was being used. Use this if you have a planar RGB file. V.SetPlanarRGB(bool) C++: virtual void SetPlanarRGB(bool _arg) Read planar RGB (separate R, G, and B planes), rather than packed RGB. The NIFTI format should always use packed RGB. The Analyze format, however, was used to store both planar RGB and packed RGB depending on the software, without any indication in the header about which convention was being used. Use this if you have a planar RGB file. V.PlanarRGBOn() C++: virtual void PlanarRGBOn() Read planar RGB (separate R, G, and B planes), rather than packed RGB. The NIFTI format should always use packed RGB. The Analyze format, however, was used to store both planar RGB and packed RGB depending on the software, without any indication in the header about which convention was being used. Use this if you have a planar RGB file. V.PlanarRGBOff() C++: virtual void PlanarRGBOff() Read planar RGB (separate R, G, and B planes), rather than packed RGB. The NIFTI format should always use packed RGB. The Analyze format, however, was used to store both planar RGB and packed RGB depending on the software, without any indication in the header about which convention was being used. Use this if you have a planar RGB file. V.GetQFac() -> float C++: double GetQFac() QFac gives the slice order in the NIFTI file versus the VTK image. If QFac is -1, then the VTK slice index J is related to the NIFTI slice index j by the equation J = (num_slices - j - 1). VTK requires the slices to be ordered so that the voxel indices (I,J,K) provide a right-handed coordinate system, whereas NIFTI does not. Instead, NIFTI stores a factor called "qfac" in the header to signal when the (i,j,k) indices form a left-handed coordinate system. QFac will only ever have values of +1 or -1. V.GetQFormMatrix() -> vtkMatrix4x4 C++: vtkMatrix4x4 *GetQFormMatrix() Get a matrix that gives the "qform" orientation and offset for the data. If no qform matrix was stored in the file, the return value is nullptr. This matrix will transform VTK data coordinates into the NIFTI oriented data coordinates, where +X points right, +Y points anterior (toward the front), and +Z points superior (toward the head). The qform matrix will always have a positive determinant. The offset that is stored in the matrix gives the position of the first pixel in the first slice of the VTK image data. Note that if QFac is -1, then the first slice in the VTK image data is the last slice in the NIFTI file, and the Z offset will automatically be adjusted to compensate for this. V.GetSFormMatrix() -> vtkMatrix4x4 C++: vtkMatrix4x4 *GetSFormMatrix() Get a matrix that gives the "sform" orientation and offset for the data. If no sform matrix was stored in the file, the return value is nullptr. Like the qform matrix, this matrix will transform VTK data coordinates into a NIFTI coordinate system. Unlike the qform matrix, the sform matrix can contain scaling information and can even (rarely) have a negative determinant, i.e. a flip. This matrix is modified slightly as compared to the sform matrix stored in the NIFTI header: the pixdim pixel spacing is factored out. Also, if QFac is -1, then the VTK slices are in reverse order as compared to the NIFTI slices, hence as compared to the sform matrix stored in the header, the third column of this matrix is multiplied by -1 and the Z offset is shifted to compensate for the fact that the last slice has become the first. V.GetNIFTIHeader() -> vtkNIFTIImageHeader C++: vtkNIFTIImageHeader *GetNIFTIHeader() Get the raw header information from the NIfTI file. HHHDGCC: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0GNUzRx  0 D X!l !  EDPa AE uEY B P??(<<<(P"EAD`n AAF 0|FAA D`  AABH ED@ AG ED@ AG ED@ AG ED@ AG @ED@ AG dED@ AG ED@ AG ED@ AG ED@ AG ED@ AG (BFADP ABG (DBFADP ABG pLEDP AB H@ E LEDP AB  H@ E H@ E   H@ E (gFD@ EE LMFF0hOFDD n ABA DDB  EDP AB   ' !#%'[ "   ( ``    1 @ g    B  BE pL|  L   0P @  Pg.0)**' ` .0Z_ di/nsx"}/8<L`q 0?LX )" >" m" "!" "!6" g"u3:Z"!?"#?"%<"'< 8 H }        # B T j ~  M     O   @ L _ p        _ZL31PyvtkNIFTIImageReader_StaticNewv_ZL34PyvtkNIFTIImageReader_SafeDownCastP7_objectS0__ZL30PyvtkNIFTIImageReader_IsTypeOfP7_objectS0__ZL25PyvtkNIFTIImageReader_IsAP7_objectS0__ZL37PyvtkNIFTIImageReader_GetRescaleSlopeP7_objectS0__ZL41PyvtkNIFTIImageReader_GetRescaleInterceptP7_objectS0__ZL38PyvtkNIFTIImageReader_GetTimeDimensionP7_objectS0__ZL36PyvtkNIFTIImageReader_GetTimeSpacingP7_objectS0__ZL29PyvtkNIFTIImageReader_GetQFacP7_objectS0__ZL36PyvtkNIFTIImageReader_GetQFormMatrixP7_objectS0__ZL36PyvtkNIFTIImageReader_GetSFormMatrixP7_objectS0__ZL36PyvtkNIFTIImageReader_GetNIFTIHeaderP7_objectS0__ZL37PyvtkNIFTIImageReader_GetTimeAsVectorP7_objectS0__ZL34PyvtkNIFTIImageReader_GetPlanarRGBP7_objectS0__ZL39PyvtkNIFTIImageReader_GetFileExtensionsP7_objectS0__ZL40PyvtkNIFTIImageReader_GetDescriptiveNameP7_objectS0__ZL37PyvtkNIFTIImageReader_SetTimeAsVectorP7_objectS0__ZL33PyvtkNIFTIImageReader_PlanarRGBOnP7_objectS0__ZL34PyvtkNIFTIImageReader_SetPlanarRGBP7_objectS0__ZL37PyvtkNIFTIImageReader_TimeAsVectorOffP7_objectS0__ZL36PyvtkNIFTIImageReader_TimeAsVectorOnP7_objectS0__ZL34PyvtkNIFTIImageReader_PlanarRGBOffP7_objectS0__ZL33PyvtkNIFTIImageReader_NewInstanceP7_objectS0__ZL26PyvtkNIFTIImageReader_Type_ZL29PyvtkNIFTIImageReader_Methods_GLOBAL__sub_I_vtkNIFTIImageReaderPython.cxx_ZL33PyvtkNIFTIImageReader_CanReadFileP7_objectS0_.LC2.LC3.LC4.LC9.LC5.LC6.LC7.LC8.LC10.LC11.LC12.LC13.LC14.LC15.LC16.LC17.LC18.LC19.LC20.LC21.LC0.LC22.LC1.LC23.LC24.LC25.LC26.LC27.LC28.LC29.LC31.LC30_ZN19vtkNIFTIImageReader17GetFileExtensionsEv_ZN19vtkNIFTIImageReader18GetDescriptiveNameEv_ZN19vtkNIFTIImageReader15GetTimeAsVectorEv_ZN19vtkNIFTIImageReader15SetTimeAsVectorEb_ZN19vtkNIFTIImageReader12GetPlanarRGBEv_ZN19vtkNIFTIImageReader12SetPlanarRGBEb_ZN19vtkNIFTIImageReader3NewEv_ZNK19vtkNIFTIImageReader19NewInstanceInternalEv_ZN13vtkPythonArgs13ArgCountErrorEii_ZN13vtkPythonArgs17GetArgAsVTKObjectEPKcRbPyErr_Occurred_ZN13vtkPythonUtil20GetObjectFromPointerEP13vtkObjectBase__stack_chk_fail_ZN19vtkNIFTIImageReader3IsAEPKcstrcmp_ZN13vtkObjectBase8IsTypeOfEPKc_ZN19vtkNIFTIImageReader14TimeAsVectorOnEv_GLOBAL_OFFSET_TABLE__ZN19vtkNIFTIImageReader11PlanarRGBOnEv_ZN19vtkNIFTIImageReader12PlanarRGBOffEv_ZN19vtkNIFTIImageReader15TimeAsVectorOffEv_ZN13vtkPythonArgs8GetValueERPcPyLong_FromLong_ZN13vtkPythonArgs19GetSelfFromFirstArgEP7_objectS1_PyFloat_FromDouble_ZN19vtkNIFTIImageReader14GetNIFTIHeaderEvPyBool_FromLongPyUnicode_FromStringAndSizePyErr_ClearPyBytes_FromStringAndSize_Py_NoneStructstrlen_ZN13vtkPythonArgs8GetValueERbPyVTKObject_CheckPyVTKObject_GetObjectPyVTKObject_SetFlagPyvtkNIFTIImageReader_ClassNewPyVTKClass_AddPyvtkImageReader2_ClassNewPyType_ReadyPyVTKAddFile_vtkNIFTIImageReaderPyDict_SetItemString_Py_Dealloc_ZN19vtkNIFTIImageReader11CanReadFileEPKcPyType_TypePyVTKObject_DeletePyVTKObject_ReprPyVTKObject_StringPyObject_GenericGetAttrPyObject_GenericSetAttrPyVTKObject_AsBufferPyVTKObject_TraversePyVTKObject_GetSetPyVTKObject_NewPyObject_GC_Del,/`W0X1YZY[ 2JW}d1]3]Ye4]5]6]^[D7Wfd*\1 ].33]<YMen4s]5]6]^[8.WQfnY}g[9W!f>YMgT[:WfYe[A;WfYg[<^WfYg[=.WQfhYuZ|[>W f( Y5 Z< [a ? W f h Y Z [1 @~ W f Y i *Q [ A^ W f Y i *S [ B@ Wi f *O Y C j k l Y *m [ nC D W f *P Y Ejkl.YC*mQ[YnFWf+o^Yj*m*R[G-WQfq*TY*m*a[HOWqfoY*m*T[@IWf*RY*m*c'[PJWf*RY *m"*_:[`KWf*TY*m2*bG[rLWf *VU(17YDZXphqrY[-1.t-u-vs.19xMWfd@YMe\ze[U[yCEU1]&3+]94>]L5Q]_6d]q^*R*T*T*RN-*{)`0|X}~8@ /)  8( 8)@ HX)`` LhPx)  )p  ) X`)x  ) p)  0(08)8 @ H X) ` `h`x)X  q )  <) L)`  ) )@  (8)@ ?H@X)`` hx) ) ) @ ) 4H\p  ,@T `  Dh@    H tp 0@,PPl*`.symtab.strtab.shstrtab.rela.text.data.bss.rodata._ZN19vtkNIFTIImageReader17GetFileExtensionsEv.str1.8.rela.text._ZN19vtkNIFTIImageReader17GetFileExtensionsEv.rodata._ZN19vtkNIFTIImageReader18GetDescriptiveNameEv.str1.1.rela.text._ZN19vtkNIFTIImageReader18GetDescriptiveNameEv.text._ZN19vtkNIFTIImageReader15GetTimeAsVectorEv.text._ZN19vtkNIFTIImageReader15SetTimeAsVectorEb.text._ZN19vtkNIFTIImageReader12GetPlanarRGBEv.text._ZN19vtkNIFTIImageReader12SetPlanarRGBEb.rela.text._ZNK19vtkNIFTIImageReader19NewInstanceInternalEv.rodata.str1.1.rodata._ZN19vtkNIFTIImageReader3IsAEPKc.str1.1.rela.text._ZN19vtkNIFTIImageReader3IsAEPKc.rela.text._ZN19vtkNIFTIImageReader14TimeAsVectorOnEv.rela.text._ZN19vtkNIFTIImageReader11PlanarRGBOnEv.rela.text._ZN19vtkNIFTIImageReader12PlanarRGBOffEv.rela.text._ZN19vtkNIFTIImageReader15TimeAsVectorOffEv.rodata.str1.8.rela.text.startup.rela.init_array.rela.data.rel.rela.data.rel.local.comment.note.GNU-stack.note.gnu.property.rela.eh_frame.group@ 7OL 7PX7Q`7Rh7Sp7Tx 7V 7\ 7_ 7a 7b 7c i@_@7 &),)120's` n@@s72l @Xs7 Q! ! @ps72d,2}9au\@s7@?@t7!?@t7#<@t7%*<%@t7'\2@+pp<k@t07*<~@ u7,< @8u 7.@> @Xvx700@A,lApA A@|75`F 8O R x