本文整理汇总了Python中msct_image.Image.absolutepath方法的典型用法代码示例。如果您正苦于以下问题:Python Image.absolutepath方法的具体用法?Python Image.absolutepath怎么用?Python Image.absolutepath使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类msct_image.Image
的用法示例。
在下文中一共展示了Image.absolutepath方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: resample
# 需要导入模块: from msct_image import Image [as 别名]
# 或者: from msct_image.Image import absolutepath [as 别名]
def resample():
# extract resampling factor
sct.printv('\nParse resampling factor...', param.verbose)
factor_split = param.factor.split('x')
factor = [float(factor_split[i]) for i in range(len(factor_split))]
# check if it has three values
if not len(factor) == 3:
sct.printv('\nERROR: factor should have three dimensions. E.g., 2x2x1.\n', 1, 'error')
else:
fx, fy, fz = [float(factor_split[i]) for i in range(len(factor_split))]
# Extract path/file/extension
path_data, file_data, ext_data = sct.extract_fname(param.fname_data)
path_out, file_out, ext_out = path_data, file_data, ext_data
if param.fname_out != '':
file_out = sct.extract_fname(param.fname_out)[1]
else:
file_out.append(param.file_suffix)
input_im = Image(param.fname_data)
# Get dimensions of data
sct.printv('\nGet dimensions of data...', param.verbose)
nx, ny, nz, nt, px, py, pz, pt = input_im.dim
sct.printv(' ' + str(nx) + ' x ' + str(ny) + ' x ' + str(nz)+ ' x ' + str(nt), param.verbose)
dim = 4 # by default, will be adjusted later
if nt == 1:
dim = 3
if nz == 1:
dim = 2
#TODO : adapt for 2D too or change description
sct.run('ERROR (sct_resample): Dimension of input data is different from 3 or 4. Exit program', param.verbose, 'error')
# Calculate new dimensions
sct.printv('\nCalculate new dimensions...', param.verbose)
nx_new = int(round(nx*fx))
ny_new = int(round(ny*fy))
nz_new = int(round(nz*fz))
px_new = px/fx
py_new = py/fy
pz_new = pz/fz
sct.printv(' ' + str(nx_new) + ' x ' + str(ny_new) + ' x ' + str(nz_new)+ ' x ' + str(nt), param.verbose)
zooms = input_im.hdr.get_zooms()[:3]
affine = input_im.hdr.get_base_affine()
new_zooms = (px_new, py_new, pz_new)
if type(param.interpolation) == int:
order = param.interpolation
elif type(param.interpolation) == str and param.interpolation in param.x_to_order.keys():
order = param.x_to_order[param.interpolation]
else:
order = 1
sct.printv('WARNING: wrong input for the interpolation. Using default value = trilinear', param.verbose, 'warning')
new_data, new_affine = dp_iso.reslice(input_im.data, affine, zooms, new_zooms, mode=param.mode, order=order)
new_im = Image(param=new_data)
new_im.absolutepath = path_out+file_out+ext_out
new_im.path = path_out
new_im.file_name = file_out
new_im.ext = ext_out
zooms_to_set = list(new_zooms)
if dim == 4:
zooms_to_set.append(nt)
new_im.hdr = input_im.hdr
new_im.hdr.set_zooms(zooms_to_set)
new_im.save()
# to view results
sct.printv('\nDone! To view results, type:', param.verbose)
sct.printv('fslview '+param.fname_out+' &', param.verbose, 'info')
print
示例2: resample
# 需要导入模块: from msct_image import Image [as 别名]
# 或者: from msct_image.Image import absolutepath [as 别名]
def resample():
# extract resampling factor
sct.printv('\nParse resampling factor...', param.verbose)
new_size_split = param.new_size.split('x')
new_size = [float(new_size_split[i]) for i in range(len(new_size_split))]
# check if it has three values
if not len(new_size) == 3:
sct.printv('\nERROR: new size should have three dimensions. E.g., 2x2x1.\n', 1, 'error')
else:
ns_x, ns_y, ns_z = new_size
# Extract path/file/extension
path_data, file_data, ext_data = sct.extract_fname(param.fname_data)
path_out, file_out, ext_out = '', file_data, ext_data
if param.fname_out != '':
path_out, file_out, ext_out = sct.extract_fname(param.fname_out)
else:
file_out += param.file_suffix
param.fname_out = path_out+file_out+ext_out
input_im = Image(param.fname_data)
# Get dimensions of data
sct.printv('\nGet dimensions of data...', param.verbose)
nx, ny, nz, nt, px, py, pz, pt = input_im.dim
sct.printv(' ' + str(px) + ' x ' + str(py) + ' x ' + str(pz)+ ' x ' + str(pt)+'mm', param.verbose)
dim = 4 # by default, will be adjusted later
if nt == 1:
dim = 3
if nz == 1:
dim = 2
sct.run('ERROR (sct_resample): Dimension of input data is different from 3 or 4. Exit program', param.verbose, 'error')
# Calculate new dimensions
sct.printv('\nCalculate new dimensions...', param.verbose)
if param.new_size_type == 'factor':
px_new = px/ns_x
py_new = py/ns_y
pz_new = pz/ns_z
elif param.new_size_type == 'vox':
px_new = px*nx/ns_x
py_new = py*ny/ns_y
pz_new = pz*nz/ns_z
else:
px_new = ns_x
py_new = ns_y
pz_new = ns_z
sct.printv(' ' + str(px_new) + ' x ' + str(py_new) + ' x ' + str(pz_new)+ ' x ' + str(pt)+'mm', param.verbose)
zooms = (px, py, pz) # input_im.hdr.get_zooms()[:3]
affine = input_im.hdr.get_qform() # get_base_affine()
new_zooms = (px_new, py_new, pz_new)
if type(param.interpolation) == int:
order = param.interpolation
elif type(param.interpolation) == str and param.interpolation in param.x_to_order.keys():
order = param.x_to_order[param.interpolation]
else:
order = 1
sct.printv('WARNING: wrong input for the interpolation. Using default value = linear', param.verbose, 'warning')
new_data, new_affine = dp_iso.reslice(input_im.data, affine, zooms, new_zooms, mode=param.mode, order=order)
new_im = Image(param=new_data)
new_im.absolutepath = param.fname_out
new_im.path = path_out
new_im.file_name = file_out
new_im.ext = ext_out
zooms_to_set = list(new_zooms)
if dim == 4:
zooms_to_set.append(nt)
new_im.hdr = input_im.hdr
new_im.hdr.set_zooms(zooms_to_set)
# Set the new sform and qform:
new_im.hdr.set_sform(new_affine)
new_im.hdr.set_qform(new_affine)
new_im.save()
# to view results
sct.printv('\nDone! To view results, type:', param.verbose)
sct.printv('fslview '+param.fname_out+' &', param.verbose, 'info')