ããã¯ä»¥åã¯ã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
...
ãããç§ã¯ä»ãããå®è¡ããããšããŠããŠãããã§åãã¯ã©ãã·ã¥ãæã£ãŠããŸãïŒ
`` `shapeSeg = shapeSegList [10]
itkw.viewïŒimage = sw2vtkImageïŒshapeSegïŒã
slicing_planes = Trueã
軞= Trueã
å転= Trueã
è£é= TrueïŒ
åé¡ãåçŽåãããšãImage :: resampleãåå ã®ããã«èŠããŸãã ãªãµã³ããªã³ã°åŸãellipsoid_05ã¯ãã¥ãŒã¢ãããŒãããellipsoid_00ã¯itk.viewïŒïŒã䜿çšããããšãããšã«ãŒãã«ãã¯ã©ãã·ã¥ãããŸã
ããã§ãã¹ãããåŸã Image :: resample wrtitkwidgets.viewã«åé¡ãããå¯èœæ§ããããŸãã
è©Šããç»åïŒellipsoid_1mode / segmentations /ellipsoid_00.nrrdããã³ellipsoid_1mode / segmentations / ellipsoid_05.nrrd
-> 00ã¯ããªãµã³ããªã³ã°åŸã«vtkç»åã§pyvistaã«ãã£ãŠã©ããããããšãã«ãããããããŸãã
-> 05ã¯æ£åžžã«åäœããŸã
=> pyvistaã§ãããããããš_both_ã¯æ£åžžã«æ©èœããŸã
Image :: resampleã«ãããã°ã¹ãã¥ãŒãæå
¥ããŸãããããããŸã§ã®ãšããç°åžžãªããšã¯äœãèŠãããŸããã§ããïŒã
å®éšãããå Žåã¯ããããç°¡åãªããŒãããã¯ã§ãã
wishy_washy_resample.ipynb.zip
...ãããŠãããããŒããããšãã«ç©ºã®ããã«èŠãããã®ïŒ
...ãããŠãããå®è¡ãããšã©ã®ããã«èŠãããã 05ã00ã«å€æŽããitkwãã¬ã³ããªã³ã°ããããšãããšãã«ã¯ã©ãã·ã¥ããããã«å床å®è¡ããŸãã
転眮ãŸãã¯...ã¬ã³ããªã³ã°ãããå¯èœæ§ã®ããé
å
æãåºããŠãã ãããitkwidgetsã¯numpyé
åãçŽæ¥ã¬ã³ããªã³ã°ã§ããŸãã ãã ãããã®é
åã¯ãæž¡ããããã®ã®è»¢çœ®ãšããŠè§£éãããŸããããã¯ãvtké
åã䜿çšãããŠããå Žåã«ã¯å®è¡ãããŸããã ãããã£ãŠãéåžžãç»åããååŸãããã®ãvtké
åã«ã©ããããåã«è»¢çœ®ããåçŽã«vtké
åãitkwidgetsãšãšãã«äœ¿çšããŸãã
ç§ã¯ä»æäž¡æ¹ãè©ŠããŸããããæ®å¿µãªããéãã¯ãããŸããã 転眮ãããŠãããã©ããã«ããããããnumpyãŸãã¯vtké åã§ãImage.resampleã®åŸã«itkwidgetsã䜿çšããŠã¬ã³ããªã³ã°ããããšãããšããã¹ãŠã¯ã©ãã·ã¥ããŸãã
ã³ããŒãŸãã¯...ç§ã¯èªåèªèº«ãç¹°ãè¿ããŠããŸããïŒ
ç»åããã®é
åãåé¡ã§ããå¯èœæ§ããããŸãã å€åããã¯ç¡å¹ãªã¡ã¢ãªãæããŠããŸãã ããã§ã¯ãã³ããŒãäœæããŸãããïŒ
é
åãã³ããŒããåŸïŒ order='C'
ãšorder='F'
äž¡æ¹ã§ïŒã転眮ãå€æŽãé¢æ°ã®äœæäžã«é ã®äžã«ç«ã£ãŠãé¡ããã°ãã¹ãŠãèããåŸã§ãã_æ¯åã¯ã©ãã·ã¥ããŸã_ã
ããã¯ãã¢ã¬ã€èªäœã®ãµã€ãºãåé¡ã«ãªãå¯èœæ§ãããããšã瀺åããŠããŸãã ããã確èªãã1ã€ã®æ¹æ³ã¯ãåãééïŒ [1,1,2]
ïŒã§ãªãµã³ãã«ãåŒã³åºãããšã§ãããããã¯æ£åžžã«æ©èœããŸããã å¥ã®æ¹æ³ã¯ãäžèšã®çããããµã€ãºã®åœã®ãŽããŽãããé
åãäœæããããšã§ããã ãããŠ...
ããŒã«ããŒã«ããŠãã ãã...
ãã¬ãŒã³ããŒã·ã§ã³...
åããŠ...ïŒGitHubã§ïŒ
_shapeworks-free_ reproïŒ
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)
ãããã®äŸã¯ãã¹ãŠãshapeworksãã€ã³ããŒããããŠããªããšãã«itkãã¥ãŒã¢ãã¬ã³ããªã³ã°ããŸãã
shapeworksãã€ã³ããŒããããšã¯ã©ãã·ã¥ããŸãã
ããŒããconda itk / vtkãšshapeworksitk / vtkã©ã€ãã©ãªã®çžäºäœçšãèµ·ãã£ãŠããŸããïŒ
itkwidgetsã¯å¥ã®ããŒãžã§ã³ã®itkã䜿çšããŠãããšæããŸã
ã€ã³ããŒãã®é åºã¯éèŠã§ã¯ãããŸãããã䜿çšã®é åºã¯éèŠã§ãã ã€ãŸãããã¹ãŠãã€ã³ããŒãããããshapeworksã®åã«itkwidgetsã䜿çšãããšãshapeworksã䜿çšãããšã¯ã©ãã·ã¥ãããã®éãåæ§ã§ãã
ïŒ1179ã®è§£æ±ºçã¯åã«ãitkã䜿çšããªããã§ãã£ãããããã®åé¡ãåãããã«è§£æ±ºããããšãææ¡ããŸãã çŸæç¹ã§ããè¯ããªãã·ã§ã³ããªãéããããŒãããã¯ããitkwidgetsãåé€ããŸãããã
ããã¯ä»ã®ãšããè¯ãèšç»ã®ããã«èãããŸãã ããŒãããã¯ããitkwidgetsãåé€ããããšã¯åççã§ããïŒ äœã«äœ¿ã£ãŠããã®ïŒ
ã»ã°ã¡ã³ããŒã·ã§ã³ã衚瀺ããããã«äœ¿çšããŠããŸãã 代ããã«pyvistaã䜿çšã§ãããšæããŸã
pyvistaïŒç§ãç¥ãéãïŒã¯ç»åã®ã¡ã¿æ å ±ïŒåç¹ããã¯ã»ã«ééã軞æ¹åïŒãå°éããŸããããitkwidgetã¯å°éããŸãã
pyvistaïŒç§ãç¥ãéãïŒã¯ç»åã®ã¡ã¿æ å ±ïŒåç¹ããã¯ã»ã«ééã軞æ¹åïŒãå°éããŸããããitkwidgetã¯å°éããŸãã
ããã«ã€ããŠè©³ãã説æããŸãããè€æ°ã®ããªã¥ãŒã ãç°ãªãå Žæã§åæã«ããããã§ãããããåç¹ãå°éããå¿ èŠããããŸãããã®ç»åã¯ãããããã«ééã䜿çšãããŠããããšã瀺ããŠããŸãã ç§ãã¡ã®sw2vtkImageé¢æ°ã¯åã«ãããä¿æããŠããŸããã§ããïŒç§ã¯ãããããã€ãå€æŽããããšãç¥ã£ãŠããŸããããããããããã¯æ°ããpybindãã©ã³ãã«ãããŸãïŒã
ä»ã«ãå€ãã®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éé= 2ïŒïŒ
{
dims: [93, 87, 94],
origin: [-24, -19, -21],
size: [93, 87, 188],
spacing: [1, 1, 2]
}
itkãã¥ãŒã¢ã¯ãã¹ã±ãŒãªã³ã°ãããŠããªãããŒãžã§ã³ã®ã¿ã衚瀺ã§ããŸãããã以å€ã®å Žåã¯ã¯ã©ãã·ã¥ããŸãã
ããã¯ãã¹ã±ãŒãªã³ã°ãããŠããªãæ¥åäœãšã¹ã±ãŒãªã³ã°ãããããŒãžã§ã³ã®äž¡æ¹ã瀺ãåäžã®pyvistaããªã¥ãŒã ã§ãã
itkãã¥ãŒã¢ãšæ¯èŒããŠãpyvistaãã¥ãŒã¢ãå¢çã衚瀺ããæ¹æ³ã¯ããŸã奜ãã§ã¯ãããŸããã
ãããããããã¯æ£ãããç©ççãªåº§æšã瀺ããŠããŸãã