日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

医学影像重采样

發布時間:2023/12/13 综合教程 28 生活家
生活随笔 收集整理的這篇文章主要介紹了 医学影像重采样 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 重采樣

在醫學圖像預處理的過程中,常常需要對數據進行重采樣,采樣到我們需要的尺度。因為醫學圖像是和真實空間的物理尺寸相對應的。例如一個體素的大小是0.97mm 0.97mm 2.5mm,我們想將體素塊的大小采樣到1mm 1mm 1mm,這樣可以幫助我們進行下一步處理。利用 sitk 可以完成這一項工作。

2. 代碼

import SimpleITK as sitk
"""
resample
"""

def resampleVolume(outspacing,vol):
    """
    將體數據重采樣的指定的spacing大小

    paras:
    outpacing:指定的spacing,例如[1,1,1]
    vol:sitk讀取的image信息,這里是體數據

    return:重采樣后的數據
    """
    outsize = [0,0,0]
    inputspacing = 0
    inputsize = 0
    inputorigin = [0,0,0]
    inputdir = [0,0,0]

    #讀取文件的size和spacing信息
    
    inputsize = vol.GetSize()
    inputspacing = vol.GetSpacing()

    transform = sitk.Transform()
    transform.SetIdentity()
    #計算改變spacing后的size,用物理尺寸/體素的大小
    outsize[0] = int(inputsize[0]*inputspacing[0]/outspacing[0] + 0.5)
    outsize[1] = int(inputsize[1]*inputspacing[1]/outspacing[1] + 0.5)
    outsize[2] = int(inputsize[2]*inputspacing[2]/outspacing[2] + 0.5)

    #設定重采樣的一些參數
    resampler = sitk.ResampleImageFilter()
    resampler.SetTransform(transform)
    resampler.SetInterpolator(sitk.sitkLinear)
    resampler.SetOutputOrigin(vol.GetOrigin())
    resampler.SetOutputSpacing(outspacing)
    resampler.SetOutputDirection(vol.GetDirection())
    resampler.SetSize(outsize)
    newvol = resampler.Execute(vol)
    return newvol

    

def main():
    #讀文件
    vol = sitk.Image(sitk.ReadImage("input.mha"))

    #重采樣
    newvol = resampleVolume([1,1,1],vol)

    #寫文件
    wriiter = sitk.ImageFileWriter()
    wriiter.SetFileName("output.mha")
    wriiter.Execute(newvol)

總結

以上是生活随笔為你收集整理的医学影像重采样的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。