如何解决使用sitk仿射变换正确翻转图像
我正在尝试使用仿射变换使用 SITK 翻转 3d 图像。从我所见,似乎像素被翻转了,但图像方向是相同的。另一方面,如果我使用 sitk::Flip,则会以正确的方向创建图像
import SimpleITK as sitk
image = sitk.Image(3,3,sitk.sitkInt16)
image.SetDirection([1.0,0.0,1.0,1.0])
image.SetPixel(0,5)
image.SetPixel(0,1,2,4)
image.SetPixel(1,5)
image.SetPixel(1,4)
image.SetPixel(2,5)
image.SetPixel(2,4)
image.SetPixel(0,6)
image.SetPixel(0,6)
image.SetPixel(1,6)
image.SetPixel(2,6)
image.SetPixel(0,10)
image.SetPixel(0,10)
image.SetPixel(1,10)
image.SetPixel(2,10)
image.Setorigin([0,0])
print("--------- 1 -------------")
print(image)
print(sitk.GetArrayFromImage(image))
print("--------- 2 -------------")
affineTrans = sitk.AffineTransform(3)
affineTrans.SetMatrix([1,-1])
affineTrans.SetCenter([1,1])
flipped = sitk.Resample(image,affineTrans)
#print(flipped)
print(sitk.GetArrayFromImage(flipped))
print(flipped)
导致翻转图像,方向为 [1,1],就像原始图像一样。 使用 sik.Flip(image,[False,False,True]) 而不是重新采样 + 变换会产生 [1,-1] 的正确方向。
这是否意味着如果我使用仿射变换,我有责任手动修复方向?
提前致谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。