Shapeworks: Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ объСмов Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Π²Ρ‹Π»Π΅Ρ‚Π°Π΅Ρ‚ ΠΏΡ€ΠΈ использовании itkwidgets.view послС использования shapeworks Π² записной ΠΊΠ½ΠΈΠΆΠΊΠ΅

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 23 ΠΌΠ°Ρ€. 2021  Β·  22ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: SCIInstitute/ShapeWorks

РаньшС это Π±Ρ‹Π»ΠΈ «сбои Π² Ρ€Π°Π±ΠΎΡ‚Π΅ записной ΠΊΠ½ΠΈΠΆΠΊΠΈ для Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ с сСгмСнтациСй Π½Π° MacOSΒ», Π½ΠΎ многочислСнныС исслСдования выявили Ρ€Π΅Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΈΠ·-Π·Π° нСсовмСстимых ΠΎΠ±Ρ‰ΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ.

Чистая систСма, чистая ΠΊΠΎΠ½Π΄Π°.

Π­Ρ‚ΠΎ ячСйка, которая разбиваСтся:

shapeSeg = shapeSegList[10]
itkw.view( image          = sw2vtkImage(shapeSeg),
           slicing_planes = True,
           axes           = True,
           rotate         = True,
           interpolation  = True)
Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       KERN_INVALID_ADDRESS at 0x000000014b76fff3
Exception Note:        EXC_CORPSE_NOTIFY

Termination Signal:    Segmentation fault: 11
Termination Reason:    Namespace SIGNAL, Code 0xb
Terminating Process:   exc handler [0]

VM Regions Near 0x14b76fff3:
    MALLOC_LARGE           000000014b50a000-000000014b769000 [ 2428K] rw-/rwx SM=PRV  
--> 
    MALLOC_LARGE           000000014b770000-000000014d863000 [ 32.9M] rw-/rwx SM=PRV  

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   libsystem_platform.dylib        0x00007fff564c85e6 _platform_memmove$VARIANT$Nehalem + 486
1   libvnl.dylib                    0x000000010ae40e6b vnl_vector<double>::operator=(vnl_vector<double> const&) + 139
2   _ITKCommonPython.so             0x000000014ec0d18b vnl_vector<double>::operator=(vnl_vector<double>&&) + 65
3   _ITKCommonPython.so             0x000000014eadec9d 0x14de03000 + 13483165
4   _ITKCommonPython.so             0x000000014e869165 0x14de03000 + 10903909
5   _ITKCommonPython.so             0x000000014ec611a7 itk::ProcessObject::UpdateOutputInformation() + 339
6   _ITKCommonPython.so             0x000000014e47d8fe 0x14de03000 + 6793470
7   _ITKImageGridPython.so          0x00000001538b5619 itk::ProcessObject::UpdateOutputInformation() + 117
8   _ITKImageGridPython.so          0x00000001538b5ebc itk::ProcessObject::UpdateLargestPossibleRegion() + 18
9   _ITKCommonPython.so             0x000000014e10726b 0x14de03000 + 3162731
10  python                          0x00000001044c8843 _PyMethodDef_RawFastCallKeywords + 131
11  python                          0x00000001044c81d6 _PyObject_FastCallKeywords + 598
12  python                          0x0000000104600bb7 call_function + 455
...

ВсС 22 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Ага, я ΠΏΡ‹Ρ‚Π°ΡŽΡΡŒ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ сСйчас ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽ Ρ‚ΠΎΡ‚ ΠΆΠ΅ сбой, Π²ΠΎΡ‚ здСсь:
`` shapeSeg = shapeSegList [10]
itkw.view (ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ = sw2vtkImage (shapeSeg),
Sling_planes = Π’Π΅Ρ€Π½ΠΎ,
оси = Π˜ΡΡ‚ΠΈΠ½Π°,
rotate = True,
интСрполяция = Π˜ΡΡ‚ΠΈΠ½Π°)

Упростил ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, ΠΈ ΠΏΠΎΡ…ΠΎΠΆΠ΅, Ρ‡Ρ‚ΠΎ Π² этом Π²ΠΈΠ½ΠΎΠ²Π°Ρ‚ Image :: resample. ПослС ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ ellipsoid_05 Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ срСдство просмотра, Π° ellipsoid_00 Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ сбой ядра ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ itk.view ()

Screen Shot 2021-03-24 at 11 02 20 PM

Screen Shot 2021-03-24 at 11 01 06 PM

ПослС тСстирования Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ _ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ Ρ‚Π°ΠΊ с Image :: resample wrt
ΠŸΡ€ΠΎΠ±Π½Ρ‹Π΅ изобраТСния: ellipsoid_1mode / segmentations / ellipsoid_00.nrrd ΠΈ ellipsoid_1mode / segmentations / ellipsoid_05.nrrd
-> 00 Π½Π΅ отобраТаСтся, ΠΊΠΎΠ³Π΄Π° pyvista ΠΎΠ±Π΅Ρ€Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ vtk послС ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ
-> 05 ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚
=> _both_ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈ построСнии с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ pyvista
Π― выплСснул ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ Π² Image :: resample ΠΈ ΠΏΠΎΠΊΠ° Π½Π΅ ΡƒΠ²ΠΈΠ΄Π΅Π» Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ).

Π’ΠΎΡ‚ простая записная ΠΊΠ½ΠΈΠΆΠΊΠ°, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.
wishy_washy_resample.ipynb.zip

... ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ выглядит пустым, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π΅Π³ΠΎ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚Π΅:
Screen Shot 2021-03-24 at 7 59 23 PM

... ΠΈ ΠΊΠ°ΠΊ это выглядит ΠΏΡ€ΠΈ запускС. Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ 05 Π½Π° 00 ΠΈ запуститС Π΅Π³ΠΎ снова, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Π²Ρ‹Π»Π΅Ρ‚Π΅Π», ΠΊΠΎΠ³Π΄Π° itkw пытаСтся Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³.
Screen Shot 2021-03-24 at 7 55 29 PM

Π’Ρ€Π°Π½ΡΠΏΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ... Массив, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ
Если Π²Ρ‹ ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, itkwidgets ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ массив numpy. Но ΠΎΠ½ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ этот массив ΠΊΠ°ΠΊ транспонированиС ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ, Ρ‡Π΅Π³ΠΎ ΠΎΠ½ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ массив vtk. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΡ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ транспонируСм Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΠΎΡ‚ изобраТСния, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΎΠ±Π΅Ρ€Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² массив vtk, ΠΈ просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ массив vtk с itkwidgets, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ.

Π― ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π» ΠΈ Ρ‚ΠΎ, ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ сСгодня ΡƒΡ‚Ρ€ΠΎΠΌ, ΠΈ, ΠΊ соТалСнию, это Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ значСния. ВранспонированныС ΠΈΠ»ΠΈ Π½Π΅Ρ‚, массивы numpy ΠΈΠ»ΠΈ vtk, всС это Π²Ρ‹Π»Π΅Ρ‚Π°Π΅Ρ‚ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° с использованиСм itkwidgets послС Image.resample.

Копия ΠΈΠ»ΠΈ ... Π― ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡΡŒ?
ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π² массивС, исходящСм ΠΎΡ‚ изобраТСния. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, это ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π½Π΅Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ. Π˜Ρ‚Π°ΠΊ, создадим копию!
ПослС копирования массива - ΠΊΠ°ΠΊ Π² order='C' ΠΈ Π² order='F' , ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ, стоя Π½Π° Π³ΠΎΠ»ΠΎΠ²Π΅ ΠΏΡ€ΠΈ составлСнии Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΠΆΠ΅Π»Π°ΡŽΡ‰Π΅ΠΌ обдумывая всС это, _ ΠΎΠ½ всС Ρ€Π°Π²Π½ΠΎ Π²Ρ‹Π»Π΅Ρ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·_.

Π­Ρ‚ΠΎ Π½Π°Π²ΠΎΠ΄ΠΈΠ»ΠΎ Π½Π° ΠΌΡ‹ΡΠ»ΡŒ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ самого массива ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ. Один ΠΈΠ· способов ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ это - Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΡƒΡŽ Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒ с Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠΌ ( [1,1,2] ), _ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π» Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ_. Π”Ρ€ΡƒΠ³ΠΎΠΉ способ - ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ массив ΡΠΎΠΌΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°. И...
Π‘Π°Ρ€Π°Π±Π°Π½, поТалуйста ...
прСдставляя ...
Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π² ΠΆΠΈΠ·Π½ΠΈ ... (Π² GitHub)
Π Π΅ΠΏΡ€ΠΎ Π±Π΅Π· _shapeworks_!

array = np.ndarray([109, 77, 204])
itkw.view(image = array)

Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅ это Π² свой Π±Π»ΠΎΠΊΠ½ΠΎΡ‚ ΠΈ Π²Ρ‹ΠΊΡƒΡ€ΠΈΡ‚Π΅ *.

* Π΄Ρ‹ΠΌ, ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°ΡŽΡ‰ΠΈΠΉ Π°Π²Π°Ρ€ΠΈΡŽ, Π½Π΅ ΠΏΡ€ΠΎΠΏΠ°Π³Π°Π½Π΄ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ фактичСскоС Π²Π΄Ρ‹Ρ…Π°Π½ΠΈΠ΅ Ρ‡Π΅Π³ΠΎ-Π»ΠΈΠ±ΠΎ, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ это ΡƒΡ‡Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ для нСкурящих, Π½Π΅ дСйствуСт с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ прСдлоТСниями, ... Π² любом случаС, я надСюсь, Ρ‡Ρ‚ΠΎ ΠΊΡ‚ΠΎ-Ρ‚ΠΎ улыбаСтся, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ это Π½Π΅ наша ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°! ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ это Ρ‚Π°ΠΊ. 😞

array = np.ndarray([109, 77, 204])
itkw.view(image = array)
array = np.ndarray([109, 109, 204])
itkw.view(image = array)



md5-047f51858ff0a12b3bec85f300fc2efa



array = np.ndarray([109, 109, 109])
itkw.view(image = array)

ВсС эти ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ срСдство просмотра itk, ΠΊΠΎΠ³Π΄Π° shapeworks Π½Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹.
Он Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅ Ρ„ΠΈΠ³ΡƒΡ€.

Π₯ΠΌ, Ρƒ нас происходит ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ взаимодСйствиС ΠΌΠ΅ΠΆΠ΄Ρƒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ conda itk / vtk ΠΈ shapeworks itk / vtk?

Π― ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡŽ, Ρ‡Ρ‚ΠΎ itkwidgets ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ itk

ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° Π½Π΅ Π²Π°ΠΆΠ΅Π½, Π½ΠΎ порядок использования. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ссли Π²Ρ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ всС, Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ itkwidgets Π΄ΠΎ shapeworks, ΠΏΡ€ΠΈ использовании shapeworks происходит сбой, ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ # 1179 Π±Ρ‹Π»ΠΎ просто Β«Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ itkΒ», я ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Если Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅Ρ‚ Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°, Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΡƒΠ΄Π°Π»ΠΈΠΌ itkwidgets ΠΈΠ· Π½Π°ΡˆΠΈΡ… записных ΠΊΠ½ΠΈΠΆΠ΅ΠΊ.

На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ это Π·Π²ΡƒΡ‡ΠΈΡ‚ ΠΊΠ°ΠΊ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΏΠ»Π°Π½. Π Π°Π·ΡƒΠΌΠ½ΠΎ Π»ΠΈ ΡƒΠ±ΠΈΡ€Π°Ρ‚ΡŒ itkwidgets с Π½ΠΎΡƒΡ‚Π±ΡƒΠΊΠΎΠ²? Для Ρ‡Π΅Π³ΠΎ ΠΌΡ‹ это ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ?

ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π΅Π³ΠΎ для просмотра сСгмСнтов. Π― Π΄ΡƒΠΌΠ°ΡŽ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ pyvista вмСсто

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ pyvista (насколько ΠΌΠ½Π΅ извСстно) Π½Π΅ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚Π°ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ изобраТСния (происхоТдСниС, расстояниС ΠΌΠ΅ΠΆΠ΄Ρƒ воксСлями, Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ осСй), Π½ΠΎ itkwidget это Π΄Π΅Π»Π°Π΅Ρ‚.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ pyvista (насколько ΠΌΠ½Π΅ извСстно) Π½Π΅ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚Π°ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ изобраТСния (происхоТдСниС, расстояниС ΠΌΠ΅ΠΆΠ΄Ρƒ воксСлями, Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ осСй), Π½ΠΎ itkwidget это Π΄Π΅Π»Π°Π΅Ρ‚.

ΠœΡ‹ углубимся Π² это, Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΡƒΠ²Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠΆΠ΄Π΅Π½ΠΈΡŽ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ нСсколько объСмов ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ построСны Π² Ρ€Π°Π·Π½Ρ‹Ρ… мСстах, ΠΈ это ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ для построСния Π³Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π». Наши Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ sw2vtkImage просто Π½Π΅ сохранили Π΅Π³ΠΎ (я знаю, Ρ‡Ρ‚ΠΎ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… это ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ», Π½ΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΎΠ½ΠΈ находятся Π² Π½ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ pybind).

Screen Shot 2021-03-26 at 1 34 32 PM

Π― Ρ…ΠΎΡ‡Ρƒ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΈ пСрСнСсти это Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ выпуск, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² Π½Π΅ΠΌ Π΅ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ для Python ΠΈ Π½ΠΎΡƒΡ‚Π±ΡƒΠΊΠΎΠ², ΠΈ, ΠΏΠΎ сути, ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Ρ‹ ΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ. ΠœΠΎΠΆΠ΅Ρ‚, ΠΌΡ‹ просто ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠΌ ΠΈΠΌ ΡΠ»ΠΎΠΌΠ°Ρ‚ΡŒΡΡ. Π­Ρ‚ΠΎ извСстная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² общСдоступном Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, ΠΈ Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΎΠ±Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡƒΡ‚ΡŒ Π½Π° случай, Ссли с Π½Π΅ΠΉ столкнутся ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ.

(Нам всС Ρ€Π°Π²Π½ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π°ΠΏΠΈΡΠ½ΡƒΡŽ ΠΊΠ½ΠΈΠΆΠΊΡƒ «Начало Ρ€Π°Π±ΠΎΡ‚Ρ‹ с сСгмСнтациСй», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° Ρ€Π°Π±ΠΎΡ‚Π°Π»Π° Π±Π΅Π· сбоСв, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ просто Π²Ρ‹Π±ΠΎΡ€ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ изобраТСния для дСмонстрации Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π°.)

Π― согласСн. Π”Π°Π²Π°ΠΉΡ‚Π΅ пСрСнСсСм это Π² выпуск 6.1, ΠΈ я обновлю примСчания ΠΊ выпуску ΠΈ графичСскоС Ρ€Π΅Π·ΡŽΠΌΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π°ΠΊΡ†Π΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°Ρ… Python.

ПослС использования ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ изобраТСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ сбою срСдства просмотра, ΠΎΠ½ΠΎ всС Ρ€Π°Π²Π½ΠΎ Π΄Π°Π΅Ρ‚ сбой Π΅Ρ‰Π΅ Π² 3 мСстах, Π³Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ срСднСй Ρ„ΠΎΡ€ΠΌΡ‹.
@cchriste

ΠŸΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ этот Π½ΠΎΡƒΡ‚Π±ΡƒΠΊ ΠΈΠ· Ρ€Π΅Π»ΠΈΠ·Π° Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ для мСня. @sheryjoe ?

pyvista ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ логичСскиС ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹
https://sci.utah.edu/~shapeworks/doc-resources/mp4s/nb-groom-resample.mp4

ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с itkwidgets, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌΠΈ Ρ„ΠΈΠ·ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρƒ
https://sci.utah.edu/~shapeworks/doc-resources/mp4s/nb-groom-resample-iso.mp4

pyvista ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ логичСскиС ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹
ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с itkwidgets, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌΠΈ Ρ„ΠΈΠ·ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρƒ

Учитывая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ β„–900, Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ itk ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π» физичСскиС ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹.

Для этого изобраТСния (с z-spacing = 2):

{
    dims: [93, 87, 94],
    origin: [-24, -19, -21],
    size: [93, 87, 188],
    spacing: [1, 1, 2]
}

БрСдство просмотра itk ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ, ΠΈΠ½Π°Ρ‡Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ сбой.
Screen Shot 2021-03-30 at 3 57 34 PM

Π’ΠΎΡ‚ ΠΎΠ΄ΠΈΠ½ Ρ‚ΠΎΠΌ pyvista, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ ΠΊΠ°ΠΊ Π½Π΅ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ эллипсоид, Ρ‚Π°ΠΊ ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ.
Screen Shot 2021-03-30 at 3 56 20 PM

МнС Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ нравится, ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° просмотра pyvista ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ просмотра itk.
Но ΠΎΠ½ΠΈ Π²Π΅Ρ€Π½Ρ‹ ΠΈ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ физичСскиС ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹.

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ

Π‘ΠΌΠ΅ΠΆΠ½Ρ‹Π΅ вопросы

iyerkrithika21 picture iyerkrithika21  Β·  7ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

akenmorris picture akenmorris  Β·  32ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

jadie1 picture jadie1  Β·  8ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

iyerkrithika21 picture iyerkrithika21  Β·  12ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

akenmorris picture akenmorris  Β·  16ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ