PyRadiomics๋ฅผ ์ฌ์ฉํ์ฌ ๋ฃจํ์ ๋ง์ ์ด๋ฏธ์ง์์ ํน์ง์ ์ถ์ถํ๋ ค๊ณ ํ ๋ ๋ฉ๋ชจ๋ฆฌ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค. ๊ฐ๋จํ ์คํฌ๋ฆฝํธ์ ํ๋์ ์ด๋ฏธ์ง์ ๋ง์คํฌ๋ก ๋ ๊ฐ์ง ์ ํ์ ๋ฉ๋ชจ๋ฆฌ ์ค๋ฅ๋ฅผ ์ฌํ ํ ์ ์์์ผ๋ฉฐ ๋์ผํ ์ด๋ฏธ์ง์์ ํน์ง ์ถ์ถ์ ๋ฐ๋ณต์ ์ผ๋ก ํธ์ถํ์ต๋๋ค.
์ฌ๊ธฐ ์ ์ค๋ฅ๋ฅผ ์ฌํํ๋ ์ฝ๋๋ฅผ ์์ ์ ๋ฃ์์ต๋๋ค.
์ฌ๊ธฐ์์ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๊ธฐ์ํ ํ
์คํธ ์ด๋ฏธ์ง ๋ฐ์ดํฐ (์คํฌ๋ฆฝํธ ํ์ผ ์์ฒด๋ ํฌํจ)๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.
๋ ๊ฐ์ง ๋ค๋ฅธ ์ค๋ฅ ์ฌ๋ก๊ฐ ์์ต๋๋ค.
์ฌ์ฉํ ๋ง์คํฌ๋ฅผ ์ ์ํ๋ ์ค์ ์ฃผ์์ ์ถ๊ฐ (ํด์ )ํ์ฌ ์ฌํ ํ ์ ์์ต๋๋ค (์คํฌ๋ฆฝํธ์ ์๋จ ์ค๋ช ์ฃผ์ ์ฐธ์กฐ).
์ฌ๋ก 1 ์ค๋ฅ ์ธ๋ถ ์ ๋ณด :
Traceback (most recent call last):
File "d:/Test/PyRadiomicsMemoryExceptionTest.py", line 26, in <module>
featureVector = extractor.execute(testImage, testMask, label = 1)
File "C:\Python36\lib\site-packages\pyradiomics-1.2.0.post25.dev0+g13274ff-py3.6-win32.egg\radiomics\featureextractor.py", line 354, in execute
shapeClass = self.featureClasses['shape'](croppedImage, croppedMask, **self.settings)
File "C:\Python36\lib\site-packages\pyradiomics-1.2.0.post25.dev0+g13274ff-py3.6-win32.egg\radiomics\shape.py", line 62, in __init__
physicalCoordinates -= numpy.mean(physicalCoordinates, axis=0) # Centered at 0
File "C:\Python36\lib\site-packages\numpy\core\fromnumeric.py", line 2909, in mean
out=out, **kwargs)
File "C:\Python36\lib\site-packages\numpy\core\_methods.py", line 54, in _mean
arr = asanyarray(a)
File "C:\Python36\lib\site-packages\numpy\core\numeric.py", line 583, in asanyarray
return array(a, dtype, copy=False, order=order, subok=True)
MemoryError
์ฌ๋ก 2 ์ค๋ฅ ์ธ๋ถ ์ ๋ณด :
Traceback (most recent call last):
File "d:/Test/PyRadiomicsMemoryExceptionTest.py", line 27, in <module>
featureVector = extractor.execute(testImage, testMask, label = 1)
File "C:\Python36\lib\site-packages\pyradiomics-1.2.0.post25.dev0+g13274ff-py3.6-win32.egg\radiomics\featureextractor.py", line 346, in execute
featureVector.update(self.getProvenance(imageFilepath, maskFilepath, mask))
File "C:\Python36\lib\site-packages\pyradiomics-1.2.0.post25.dev0+g13274ff-py3.6-win32.egg\radiomics\featureextractor.py", line 440, in getProvenance
for k, v in six.iteritems(generalinfoClass.execute()):
File "C:\Python36\lib\site-packages\pyradiomics-1.2.0.post25.dev0+g13274ff-py3.6-win32.egg\radiomics\generalinfo.py", line 56, in execute
generalInfo[el] = getattr(self, 'get%sValue' % el)()
File "C:\Python36\lib\site-packages\pyradiomics-1.2.0.post25.dev0+g13274ff-py3.6-win32.egg\radiomics\generalinfo.py", line 139, in getVolumeNumValue
ccif.Execute(labelMap)
File "C:\Python36\lib\site-packages\SimpleITK\SimpleITK.py", line 20584, in Execute
return _SimpleITK.ConnectedComponentImageFilter_Execute(self, *args)
RuntimeError: Exception thrown in SimpleITK ConnectedComponentImageFilter_Execute: c:\d\vs14-win32-pkg\simpleitk-build\itk-prefix\include\itk-4.11\itkImportImageContainer.hxx:199:
Failed to allocate memory for image.
@JoostJM ์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ์๊ณ ์๊ฑฐ๋ ์ถ๊ฐ ์กฐ์ฌ๊ฐ
@michaelschwier , ์ด๋ค ์ข
๋ฅ์ ํ๋์จ์ด๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๊น? ํนํ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ ๋ ์ฌ์ฉํ ์์๋ RAM์ ์์ ์ผ๋ง์
๋๊น?
๋ด ์ปดํจํฐ (Intel Xeon E3-1241, 16GB RAM)์์ ์คํฌ๋ฆฝํธ๋ฅผ ํ
์คํธํ์ผ๋ฉฐ ํฐ ๋ง์คํฌ์ ๋ฌธ์ ๊ฐ ์์์ต๋๋ค (11 ๋ฒ ๋ฐ๋ณต, ๋ฉ๋ชจ๋ฆฌ ๋ณ๋, ์ต๋ ์ฝ 2GB ํ์). ๋ํ ์์ ๋ง์คํฌ ์คํฌ๋ฆฝํธ (ํ์ฌ ์ต๋ 600 ํ ๋ฐ๋ณต, ์ฌ์ ํ ์ฝ 200MB์ RAM ๋ง ํ์)๋ฅผ ์คํํ๊ณ ์์ง๋ง ์ด๊ฒ๋ ์ ์คํ๋๋ ๊ฒ์ผ๋ก ๋ณด์
๋๋ค.
๋ฐ์ด์ฒด ํ์ ์คํํ๋ ๋ฐ ์ฌ์ฉํ ์์๋ RAM์ด ์ถฉ๋ถํ์ง ์์ ์ ์์ต๋๋ค. ๊ธฐ๋ฅ ์ถ์ถ ์ ์ ์ธ๋ถํ์ ๊ฒฝ๊ณ ์์์์ ์๋ฅด๊ธฐ์ ๊ฐ์ด ๊ธฐ๋ฅ์ ์ถ์ถ ํ ๋ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์ค์ด๊ธฐ์ํ ๊ฐ์ ์ฌํญ์ ์ด๋ฏธ ํตํฉํ์ต๋๋ค. ๊ทธ๋ฌ๋ ํนํ ํฐ ๋ง์คํฌ๋ฅผ ์ฌ์ฉํ ๋ ํ ์ค์ฒ ๋งคํธ๋ฆญ์ค๋ฅผ ์์ฑํ๋ ค๋ฉด ๋ง์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ์ํฉ๋๋ค. ์ถ๊ฐ ํ์ธ์ ์ํด ์คํฌ๋ฆฝํธ ์๊ฐ์ ๋ฐ๋ผ ๋ฉ๋ชจ๋ฆฌ ํ๋กํ์ผ ๋ง์ ์คํํฉ๋๋ค.
๋น์ ์ ์์ ๊ฐ๋ฉด์ ํฅ๋ฏธ๋ก์ด ๊ฒฝ์ฐ๊ฐ๋ฉ๋๋ค. ๋์ค์ RAM์ด ์ฒ์ ๋ช ๋ฒ์ ๋ฐ๋ณต์๋ ์ถฉ๋ถํ์ง๋ง ๊ฒฐ๊ณผ ๋ฒกํฐ๊ฐ ๋๋ฌด ์ปค์ง๋ฉด ์๋ชจ๋๊ธฐ ๋๋ฌธ์ ์ถฉ๋์ด ๋ฐ์ํ ์ ์์ต๋๋ค (์ด ๋ฒกํฐ๋ ๋ฐ์ด์ฒด ํ์ ์ ์ฒด ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ๋นํด ์๋์ ์ผ๋ก ์์ง๋ง).
์๋ฃจ์
์ ๊ดํด์. ์ฒซ ๋ฒ์งธ ์ฐ๊ฒฐ๋ ๊ตฌ์ฑ ์์ ์ด๋ฏธ์ง ํํฐ์์ ์ด๋ฏธ ์คํจํ ๊ฒฝ์ฐ (๋ํ ๋ง์คํฌ์ ๊ฒฝ์ฐ์ฒ๋ผ) ์ด๋ป๊ฒํด์ผํ ์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๋น์ ์ ์ถ๊ฐ ์ ๋ณด๋ฅผ ๋นํ์ฑํํ์ฌ ์ฝ๋์ ์ผ๋ถ๋ฅผ ์ ๊ฑฐ ํ ์ ์์ต๋๋ค (๋งค๊ฐ ๋ณ์ additionalInfo
๋ก ์ค์ False
),ํ์ง๋ง ๋ ๊ทธ๊ฒ์ ์ฝ๋์ ๋ค๋ฅธ ๋ถ๋ถ (์ง์ฝ์ ๊ฐ์ฅ ๋ง์ด ๋ฉ๋ชจ๋ฆฌ์ ์คํจ ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐ ํจ์๋ ํ
์ค์ฒ ๋งคํธ๋ฆญ์ค์ ์์ฑ์
๋๋ค).
์์ ๋ง์คํฌ ์ผ์ด์ค์ ๊ฒฝ์ฐ ์์ ์ ํฌํจ ๋ ๋ฐฐ์น ์คํฌ๋ฆฝํธ๋ฅผ ํ์ธํ์ญ์์ค. ์ด ์คํฌ๋ฆฝํธ๋ ๊ฐ ์ฌ๋ก์ ๊ฒฐ๊ณผ๋ฅผ ํ์ผ์ ์ถ๊ฐํ์ฌ ๊ธฐ๋กํ๋ฏ๋ก ๋์ฉ๋ ๋ฐฐ์น๋ฅผ ์ถ์ถ ํ ๋ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ์ฆ๊ฐํ๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค. ์ด๋ก ์ ์ผ๋ก ๋ฐฐ์น ์คํฌ๋ฆฝํธ๋ ํ๋์ ์ผ์ด์ค๊ฐ ์ถ์ถํ๊ธฐ์ ๋๋ฌด ํฐ ๊ฒฝ์ฐ์๋ง ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ์ผ๋ก ์ธํด ์คํจํด์ผํฉ๋๋ค (์ด์ ์ ์ถ์ถ ๋ ์ผ์ด์ค ์์ ๊ด๊ณ์์ด).
๋ค์์ ๋๊ท๋ชจ (~ 20 ํ ๋ฐ๋ณต) ๋ฐ ์๊ท๋ชจ (~ 200 ํ ๋ฐ๋ณต)์ ์๊ฐ ๊ฒฝ๊ณผ์ ๋ฐ๋ฅธ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ ๊ทธ๋ํ์ ๋๋ค. ๋ฉ๋ชจ๋ฆฌ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ง ์๊ณ ํ๋ก์ธ์ค๋ฅผ ์ค๋จํ์ต๋๋ค.
ํฐ ๋ง์คํฌ
์์ ๋ง์คํฌ
์ฌ์ ํ ๋ฉ๋ชจ๋ฆฌ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด ์ ์ฌํ ๊ทธ๋ํ๋ฅผ ๋ง๋ค ์ ์์ต๋๊น?
mprof
( pip install memory_profiler
)๋ผ๋ ๊ฐ๋จํ ํ์ด์ฌ ํจํค์ง๋ฅผ ์ฌ์ฉํ ๋ค์ python C:\Python27\scripts\mprof run PyRadiomicsMemoryExceptionTest.py
์ฌ์ฉํ์ฌ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ์ต๋๋ค. ์ด ์์
์ด ๋๋๋ฉด python C:\Python27\scripts\mprof plot
์คํํ์ฌ ๊ทธ๋ํ๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
@JoostJM ๊ทํ์ ๋ต๋ณ๊ณผ ์ปดํจํฐ ํ์ธ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
๋ด ์์คํ
์ 16GB RAM์ Win 10์
๋๋ค. ๋ชจ๋ ํ
์คํธ ์ค์ ํญ์ ์ต์ 7GB RAM์ ์ฌ์ฉํ ์์์์ต๋๋ค. ๋ถํํ๋ mprof ๋๊ตฌ๋ ๋๋ฅผ ์ํด ์๋ํ์ง ์์ต๋๋ค (Windows) ์์ค ์ฝ๋์ ์ก์ธ์ค ํ ์ ์๋ค๋ ์์ธ๊ฐ ๋ฐ์ํฉ๋๋ค!?
๊ทธ๋์ ์์ ๊ด๋ฆฌ์์์ ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ํ์ธํ์ฌ "์๋"๋ฉ๋ชจ๋ฆฌ ๊ด์ฐฐ์ ์ํํ์ต๋๋ค. ํฐ ๋ง์คํฌ๊ฐ์๋ ๊ฒฝ์ฐ ์ฝ 1.4GB์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ ๋ ํ๋ก์ธ์ค๊ฐ ์ถฉ๋ํฉ๋๋ค. ์์ ๋ง์คํฌ๊ฐ์๋ ๊ฒฝ์ฐ ํ๋ก์ธ์ค๋ 350MB ์ด์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ง ์์ต๋๋ค.
๊ทธ๋ฌ๋ ์ ๋ 32 ๋นํธ Python์ ์ฌ์ฉํ๊ณ ์์์ต๋๋ค. ๋ฐ๋ผ์ ๋ํ ๋ง์คํฌ์ ๊ฒฝ์ฐ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์คํํ๋ค๋ ๊ฒ์ ์ดํดํ ์ ์์ต๋๋ค (1.4์์ ์ฌ์ ํ ์ฝ๊ฐ์ ํค๋ ๋ฃธ์ด ์์ด์ผ ํจ). ์์ ๋ง์คํฌ ์ผ์ด์ค์ ๊ฒฝ์ฐ ๋ฌธ์ ๊ฐ๋์ง ์์์ผํฉ๋๋ค.
์ด์ 64 ๋นํธ Python๋ ๋ณ๋ ฌ๋ก ์ค์นํ์ผ๋ฉฐ ์ง๊ธ๊น์ง ์ค๋ฅ๋ฅผ ์ฌํ ํ ์ ์์ต๋๋ค (์์ ๋ง์คํฌ์์> 1200 ํ ๋ฐ๋ณต). ๊ทธ๋์ ๊ทธ๊ฒ์ ํด๊ฒฐ์ฑ ์ด ๋ ์ ์์ต๋๋ค. ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ 32 ๋นํธ์์ ์์ ๋ง์คํฌ์ ์ถฉ๋์ ์ฌ์ ํ โโ๋๋ฅผ ๋นํน์ค๋ฝ๊ฒํฉ๋๋ค ...
32 ๋นํธ ํ์ด์ฌ์ ๋ช ์ ์ ์ผ๋ก ์ง์ํ์ง ์๋ ๊ฒ์ ๋ํด ์๊ฐํด์ผํฉ๋๋ค. ๋ฉ๋ชจ๋ฆฌ ๊ด๋ จ ์ค๋ฅ๊ฐ ๋๋ฌด ๋ง๊ธฐ ๋๋ฌธ์ ์ฌ๋ผ์ด์์์ 32 ๋นํธ ํ๋ซํผ์ ๋ช ์ ์ ์ผ๋ก ์ง์ํ์ง ์์ต๋๋ค.
์ด ๋ฌธ์ ๋ฅผ 32 ๋นํธ๋ก ๋๋ฒ๊น ํ๋ ๋ฐ ์๊ฐ์ ๋ญ๋นํ์ง ๋ง๊ณ 64 ๋นํธ ํ์ด์ฌ์ ์ฌ์ฉํด์ผํ๋ค๋ ๋ฉ๋ชจ๋ฅผ ์ฌ์ฉ์ ๊ฐ์ด๋์ ์ถ๊ฐํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
32 ๋นํธ ํ์ด์ฌ์ ๊ฐ์ง ํ ๋ ๋ฐ์ด์ฒด ํ ์ค์น ์ค์ ๊ฒฝ๊ณ ๋ฅผ ์ถ๊ฐ ํ ์๋ ์์ต๋๋ค!?
32 ๋นํธ ํ์ด์ฌ์ ๊ฐ์ง ํ ๋ ๋ฐ์ด์ฒด ํ ์ค์น ์ค์ ๊ฒฝ๊ณ ๋ฅผ ์ถ๊ฐ ํ ์๋ ์์ต๋๋ค!?
ํ์คํ, ๋๋ ์ฌ์ง์ด ์คํจ.
์๋ ํ์ธ์,
radiomics๊ฐ ์๋ํ๋์ง ํ์ธํ๊ธฐ ์ํด test.py๋ฅผ ์คํํ๋ ค๊ณ ์๋ํ์ง๋ง radiomics์์ featureextractor๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๋ค๊ณ ๊ณ์ ๋งํฉ๋๋ค. ๊ฐ์ ๋ฌธ์ ๊ฐ์๋ ์ฌ๋์ด ์์ต๋๊น?
๋ฏธ๋ฆฌ ๊ฐ์ฌ๋๋ฆฝ๋๋ค
๋น์ทํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
๋ชจ๋ธ์ ์คํํ๋ ค๊ณ ํ ๋ ๋ฉ๋ชจ๋ฆฌ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ๊ฐ๊ฐ 7 ๊ฐ์ ์บก์
์ด ํฌํจ ๋ 6500 ๊ฐ์ ์ด๋ฏธ์ง๋ฅผ ํ๋ จ ์ฉ์ผ๋ก ๋ณด๋
๋๋ค.
Ubuntu๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
@ Yukti-09, ์ด๋ค ํน์ ๋ฒ์ ์ PyRadiomics๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๊น? ์ด๋ค ๋งค๊ฐ ๋ณ์? ์์คํ ์ ์ผ๋ง๋ ๋ง์ RAM์ด ์์ต๋๊น?
๋ฐ์ด์ฒด ํ์ ์ฌ์ฉํ์ง ์์
์๋ ํ์ธ์! ํน์ง ์ถ์ถ์ ์ํด 2D ์ด์ํ ์ด๋ฏธ์ง์ pyradiomics๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๊ฐ์์ ์ด์ํ ์ด๋ฏธ์ง์ ๊ฐ๋ฐฉํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค (์ฌ์ฉ ๊ฐ๋ฅ : thyroid http://cimalab.intec.co/applications/thyroid/). ๋ง์คํฌ์์ ํน์ง์ ์ถ์ถํ๊ธฐ ์ํด ๋ฐ์ด์ฒด ํ์ ์ฌ์ฉํ ๋ 16GB ์ด์์ RAM์ด ํ์ํฉ๋๋ค. ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์ ํํ๊ธฐ ์ํด ๋ฐ์ด์ฒด ํ์ ์ฒ๋ฆฌํ๋ ๋ฐ ํ์ํ ์ค์ ์ด ์์ต๋๊น? ์ ์ฒด ์ด๋ฏธ์ง์ ๋นํด ๋ง์คํฌ๊ฐ ์์ต๋๋ค. ๋ง์คํฌ์์ ํน์ง ์ถ์ถ์ด ์ด๋ ๊ฒ ๋ง์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฐจ์งํ๋ค๋ฉด ์ ์ฒด ์ด๋ฏธ์ง์ ๋ํด ๋์ผํ ์์ ์ ์ํํ๋ฉด ์ด๋ป๊ฒ ๋ ๊น์? ์น์ ํ๊ฒ ์๋ดํ์ญ์์ค.
@ReemaParekh ์ถ์ถ์ ์ํ ํ ๋ ์ด๋ค ์ข ๋ฅ์ ์ค์ ์ ์ฌ์ฉํ๊ณ ์์ต๋๊น?
360x560 ํฌ๊ธฐ์ USG ์ด๋ฏธ์ง๊ฐ ์๊ณ ์ ์ฒด ์ด๋ฏธ์ง์ ์ ์ฉ๋๋ ๋ณต์
๊ธฐ๋ฐ ๊ธฐ๋ฅ ์ถ์ถ์ ์ฌ์ฉํ๊ณ ๋ชจ๋ ๊ธฐ๋ฅ ํด๋์ค๊ฐ ์ผ์ ธ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ๊ฒฝ์ฐ์ ๋ฐ๋ผ 20GB์ ๋๋ฌํ์ต๋๋ค. ๋์ผํ ์ค์ ์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
featureVector = extractor.execute (image3D, mask, label = 1, voxelBased = True)
์ค์ = {}
์ค์ [ 'binWidth'] = 25
settings [ 'force2Ddimension'] = 0
settings [ 'maskedKernel'] = ์ฐธ
์ค์ [ 'initvalue'] = 5
settings [ 'kernelRadius'] = 10
settings [ 'resampledPixelSpacing'] = None # [3,3,3]์ ๋ฆฌ์ํ๋ง์ ์ ์ํ๋ ์์
๋๋ค (ํฌ๊ธฐ๊ฐ 3x3x3mm ์ธ ๋ณต์
).
settings [ 'interpolator'] = sitk.sitkBSpline
settings [ 'verbose'] = True
๋ํ force2D = true๋ผ๊ณ ์์ฑํ๋ฉด ์ฝ๋๊ฐ ์๋ํ์ง ์์ต๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์๋ํ์ง๋ง ์์ฒญ๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ์ํฉ๋๋ค. 2D ์ด๋ฏธ์ง๊ฐ ์์ง๋ง, pyradiomics ํ๋ก๊ทธ๋จ์์ ์ง์ 2D ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ ์ ์์ด์ 2D ์ด๋ฏธ์ง๋ฅผ 1x360x560์ผ๋ก ๋ณํํ์ฌ ์ฒ๋ฆฌํ์ต๋๋ค. image3D = sitk.JoinSeries (์ด๋ฏธ์ง)
๋ฉ๋ชจ๋ฆฌ ์๊ตฌ ์ฌํญ์ด ์ ํจํ ๊ฒ ๊ฐ์ต๋๋ค. ๋ณต์ ๊ธฐ๋ฐ ๋ผ๋์ค ๋ง์ดํฌ๋ ํนํ ์ ์ฒด ์ด๋ฏธ์ง๋ฅผ ์ถ์ถํ๊ณ ๋ชจ๋ ๊ธฐ๋ฅ์ ํ์ฑํ ํ ๋ ๋ฉ๋ชจ๋ฆฌ ์ง์ฝ์ ์ผ ์ ์์ต๋๋ค. ์ถ๋ ฅ์ ๊ฐ ๊ธฐ๋ฅ์ ๋ํ float64 ๋งต์ด๋ฉฐ, ๊ทํ์ ๊ฒฝ์ฐ ๊ธฐ๋ฅ ๋งต๋น 360x560x8 ๋ฐ์ดํธ๋ฅผ ์๋ฏธํฉ๋๋ค. ๋ํ ์ค๊ฐ ๊ธฐ๋ฅ ๋งต, ๋ง์คํฌ ๋ฑ์ ๋ํ ์ถ๊ฐ ๋ฉ๋ชจ๋ฆฌ ์๊ตฌ ์ฌํญ์ด ์์ต๋๋ค.
force2D์ ๊ด๋ จํ์ฌ "์๋ํ์ง ์์"์ด๋ ๋ฌด์์ ์๋ฏธํฉ๋๊น? PyRadiomics๋ force2D๋ฅผ ํ์ฑํ ํ ๋์ฒ๋ผ ์ง์ ํ 2D ์ ๋ ฅ์ ๋ชจ๋ ์ฒ๋ฆฌ ํ ์ โโ์์ด์ผํฉ๋๋ค. ์ฝ๋์์ ์๋ชป ๋ ์ ์๋ค๊ณ ์์ํ ์์๋ ์ ์ผํ ๊ฒ์ ์ด๋ฏธ์ง์ sitk ํฌ๊ธฐ๊ฐ 1x360x560์ด๋ฉด x๊ฐ force2D ์ฐจ์์์ ์๋ฏธํ๋ฉฐ force2Ddimension์ 2๋ก ์ค์ ํด์ผํ๋ค๋ ๊ฒ์ ๋๋ค (ํ๋ ฌ์ ์ด์ ๋ z, y๋ก ์ ๋ ฌ ๋จ). , x).