Traceback (most recent call last):
File "E:\PyCharm 2021.3.3\plugins\python\helpers\pydev\pydevd.py", line 1483, in _exec
pydev_imports.execfile(file, globals, locals) # execute the script
File "E:\PyCharm 2021.3.3\plugins\python\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile
exec(compile(contents+"\n", file, 'exec'), glob, loc)
File "E:/deep_learn_code/myself_project/01Brain_seg/codev2.1.py", line 10, in <module>
train_image,train_label = brainset.__getitem__(40)
File "E:\deep_learn_code\myself_project\01Brain_seg\util\brain_dataset.py", line 26, in __getitem__
image = self.transform(image)
File "F:\other_ana\My_Pymic\lib\site-packages\torchvision\transforms\transforms.py", line 135, in __call__
return F.to_tensor(pic)
File "F:\other_ana\My_Pymic\lib\site-packages\torchvision\transforms\functional.py", line 137, in to_tensor
raise TypeError(f"pic should be PIL Image or ndarray. Got {type(pic)}")
TypeError: pic should be PIL Image or ndarray. Got <class 'SimpleITK.SimpleITK.Image'>
python-BaseException
Process finished with exit code 1
解决方法:
因为 sitk.ReadImage(filename)读取的对象是image对象,需要进行转换。
sitk.GetArrayFromImage(img_obj)可以获取数据,nii文件还有空间信息等可以image的 GetOrigin(),GetSpacing(),GetDirection()方法获取。
TypeError: can't convert np.ndarray of type numpy.uint16. The only supported types are: float64, float32, float16, complex64, complex128, int64, int32, int16, int8, uint8, and bool.
解决方法:最简单是办变量除以1.0,原来变量就会变成浮点数
现在image,label都是(768,26,768),目标形状为(26,768,768)
解决方法: