首页 > 其他分享 >Scipy -- 科学计算库

Scipy -- 科学计算库

时间:2023-07-01 18:14:41浏览次数:26  
标签:constant -- 科学计算 scipy Scipy grid 数组 optional 输入

Scipy -- 科学计算库

目录:

  • 文件输入/输出: scipy.io
  • 特殊函数: scipy.special
  • 线性代数运算: scipy.linalg
  • 插值: scipy.interpolate
  • 优化和拟合: scipy.optimize
  • 统计和随机数: scipy.stats
  • 数值积分: scipy.integrate
  • 快速傅里叶变换: scipy.fftpack
  • 信号处理: scipy.signal
  • 图像处理: scipy.ndimage

图像处理:scipy.ndimage

scipy.ndimage 提供将 n 维数组作为图像进行操作。

图像的几何变换


rotate -- 旋转
scipy.ndimage.rotate(input, angle, axes=(1, 0), reshape=True, output=None, order=3, mode='constant', cval=0.0, prefilter=True)

input :array_like(数组)必要

angle :float(浮点型)必要 旋转角度,单位是度。

axes :tuple of 2 ints, optional(2个整数的元组,可选 ) 定义旋转平面的两个轴。默认是前两个轴。

reshape :bool, optional(布尔型,可选 ) 如果 reshape 为真,输出的形状会被调整,使输入的数组完全包含在输出中。默认为 True 。

output :array or dtype, optional(数组或者类型,可选 ) 用于放置输出的数组,或者返回数组的dtype。默认情况下,将创建一个与输入相同dtype的数组。

order :int, optional(整型,可选 ) ,插值,默认=3,在0-5之间

mode :{‘reflect’, ‘grid-mirror’, ‘constant’, ‘grid-constant’, ‘nearest’, ‘mirror’, ‘grid-wrap’, ‘wrap’}, optional 模式,可选 默认值 = ‘constant’

‘reflect’ (d c b a | a b c d | d c b a)

输入通过对最后一个像素的边缘进行反射来扩展。这种模式有时也被称为半取样对称模式。

‘grid-mirror’

这是 "反映 "的同义词。

‘constant’ (k k k k | a b c d | k k k k)

输入的扩展是通过用相同的常量值填充边缘以外的所有数值,由cval参数定义。在输入的边缘之外不进行插值。

‘grid-constant’ (k k k k | a b c d | k k k k)

输入的扩展是通过用相同的常量值填充边缘以外的所有数值,由cval参数定义。在输入范围之外的样本也会发生插值。

‘nearest’ (a a a a | a b c d | d d d d)

输入是通过复制最后一个像素来扩展的。

‘mirror’ (d c b | a b c d | c b a)

输入通过对最后一个像素的中心进行反射来扩展。这种模式有时也被称为全样本对称模式。

‘grid-wrap’ (a b c d | a b c d | a b c d)

输入通过环绕到相反的边缘来扩展。

‘wrap’ (d b c d | a b c d | b c a b)

输入通过环绕到对面的边缘来扩展,但其方式是使最后一个点和初始点完全重叠。在这种情况下,并不能很好地定义在重叠点上选择哪个样本。

cval :scalar, optional(标量,可选 ) 如果模式为 "constant",则对输入的边缘进行填充的数值。默认为 0.0 。

prefilter :bool, optional(布尔型,可选 ) 决定输入数组在插值前是否用 splitine_filter 进行预过滤。默认为 True,如果顺序 >1,将创建一个临时的 float64 数组的过滤值。如果设置为 False,如果顺序>1,输出将略微模糊,除非输入是预过滤的,即它是在原始输入上调用 splitine_filter 的结果。


shift -- 移位
scipy.ndimage.shift(input, shift, output=None, order=3, mode='constant', cval=0.0, prefilter=True)

input :array_like(数组)必要

shift :float or sequence(浮点型或序列)必要

output :array or dtype, optional(数组或者类型,可选 ) 用于放置输出的数组,或者返回数组的dtype。默认情况下,将创建一个与输入相同dtype的数组。

order :int, optional(整型,可选 ) ,插值,默认=3,在0-5之间

mode :{‘reflect’, ‘grid-mirror’, ‘constant’, ‘grid-constant’, ‘nearest’, ‘mirror’, ‘grid-wrap’, ‘wrap’}, optional 模式,可选 默认值 = ‘constant’

cval :scalar, optional(标量,可选 ) 如果模式为 "constant",则对输入的边缘进行填充的数值。默认为 0.0 。

prefilter :bool, optional(布尔型,可选 ) 决定输入数组在插值前是否用 splitine_filter 进行预过滤。默认为 True,如果顺序 >1,将创建一个临时的 float64 数组的过滤值。如果设置为 False,如果顺序>1,输出将略微模糊,除非输入是预过滤的,即它是在原始输入上调用 splitine_filter 的结果。


zoom -- 缩放
scipy.ndimage.zoom(input, zoom, output=None, order=3, mode='constant', cval=0.0, prefilter=True, *, grid_mode=False)

input :array_like(数组)必要

zoom :float or sequence(浮点型或序列)必要 沿着坐标轴的缩放系数。如果是一个浮点,那么缩放对每个轴都是一样的。如果是一个序列,缩放应该为每个轴包含一个值。

output :array or dtype, optional(数组或者类型,可选 ) 用于放置输出的数组,或者返回数组的dtype。默认情况下,将创建一个与输入相同dtype的数组。

order :int, optional(整型,可选 ) ,插值,默认=3,在0-5之间

mode :{‘reflect’, ‘grid-mirror’, ‘constant’, ‘grid-constant’, ‘nearest’, ‘mirror’, ‘grid-wrap’, ‘wrap’}, optional 模式,可选 默认值 = ‘constant’

cval :scalar, optional(标量,可选 ) 如果模式为 "constant",则对输入的边缘进行填充的数值。默认为 0.0 。

prefilter :bool, optional(布尔型,可选 ) 决定输入数组在插值前是否用 splitine_filter 进行预过滤。默认为 True,如果顺序 >1,将创建一个临时的 float64 数组的过滤值。如果设置为 False,如果顺序>1,输出将略微模糊,除非输入是预过滤的,即它是在原始输入上调用 splitine_filter 的结果。

grid_mode :bool, optional(布尔型,可选 ) 如果是 False ,那么从像素中心的距离就会被放大。否则,将使用包括整个像素范围在内的距离。例如,当 grid_mode 为 False 时,一个长度为 5 的 1d 信号被认为是长度为4,但当 grid_mode 为 True 时,长度为5。请看下面的视觉图示:

image-20230701172622011

上图中箭头的起点对应于每种模式下的坐标位置0。


Nifti1Image
class nibabel.nifti1.Nifti1Image(dataobj, affine, header=None, extra=None, file_map=None, dtype=None)

dataobj :object 包含图像数据的对象。它应该是一些从 np.asanyarray 返回数组的对象。它应该有一个形状属性或属性

affine :None or (4,4) array-like 赋予体素坐标和世界坐标之间关系的同质仿射。affine 也可以是None。在这种情况下,obj.affine 也会返回 None ,而写入磁盘的 affine 将取决于文件格式。

header :None or mapping or header instance, optional(无或映射或标题实例,可选 ) 该图像格式的元数据

extra :None or mapping, optional(无或映射,可选 ) 与图像相关的元数据,不能存储在该图像类型的元数据中。

file_map :mapping, optional(映射,可选 ) 提供该图像格式的文件信息的映射


import nibabel as nib
from scipy import ndimage

img = nib.load('路径')  # 载入数据,nii.gz 格式的图片
data = img.get_fdata()  # 可以转为 float 为 dtype 的 ndarray 类型的 object
affine = img.affine   # 图像进行仿射变换

# 将图像数据旋转
rotated_data = ndimage.rotate(data, angle=30, axes=(0, 1), reshape=False) # angle 是角度 °

# 将图像数据移位
shifted_data = ndimage.shift(data, (10, 10, 10)) # 三维数据,shift要保证与输入维度相同

# 将图像数据缩放
zoomed_data = ndimage.zoom(data, 0.5)  # 缩放倍数


# 创建旋转后的NIfTI图像对象
fin_img = nib.Nifti1Image(XXX_data, affine)

# 保存旋转后的图像
output_path = '路径/fin_img.nii.gz'  # 指定保存的文件路径和名称
os.makedirs(os.path.dirname(output_path), exist_ok=True)  # 创建保存路径的目录(如果不存在)
# 保存旋转后的图像到新的NIfTI文件
nib.save(fin_img, output_path)

标签:constant,--,科学计算,scipy,Scipy,grid,数组,optional,输入
From: https://www.cnblogs.com/Ray-Z/p/17519657.html

相关文章

  • 平台上的小球
    #include<iostream>usingnamespacestd;intmain(intargc,char**argv){intN;cin>>N;intH[1001];intL[1001];intR[1001];for(inti=1;i<=N;i++){cin>>H[i]>>L[i]>>R[i];}for(......
  • Thinkphp6 连接达梦数据库
    Thinkphp6连接达梦数据库这里使用IDEAphpEnv PHP7.3Thinkphp6 桌面操作系统:Windows11虚拟机:VMware服务器操作系统:银河麒麟在虚拟机操作与windows无异参考资料参考资料第一步配置php环境在达梦数据库安装目录下找到pdo73nts_dm.dllphp73nts_dm.dll两个文件......
  • JS中数组的22种常用API
    一、引言前端开发中,数组是一种常见且重要的数据结构。数组提供了许多便捷方便的方法来操作和处理其中的数据。本文将简单介绍前端开发中数组的常用API。二、22种常用方法2.1、push()和pop()push()方法用于向数组末尾增加一个元素,并返回数组最新的长度。constfruits=['......
  • 平台上的小球
      #include<iostream>usingnamespacestd;intmain(){intN;cin>>N;intH[1001],L[1001],R[1001];for(inti=1;i<=N;i++){cin>>H[i]>>L[i]>>R[i];}for(inti=1;i<=N;......
  • antdPro proTable的一系列问题及解决方案
    一 使用editableProTable表头筛选,无法重置解决思路:1.使用ref.current.reloadAndRest(),去重置整个表单,不起作用!!!2.通过查看antdtable文档发现可以通过table的onchange事件去获取filters的值,并在colums中配置filteredValue。示例:https://ant.design/components/table-cn#compo......
  • Python潮流周刊#9:如何在本地部署开源大语言模型?
    你好,我是猫哥。这里每周分享优质的Python及通用技术内容,部分为英文,已在小标题注明。(标题取自其中一则分享,不代表全部内容都是该主题,特此声明。)首发于我的博客:https://pythoncat.top/posts/2023-07-01-weekly周刊的投稿通道已开放,请在Github项目中提交issue:https://github.c......
  • 第一周
    6.26日:一、安装了Java的开发环境了解了JDK、JRE、JAM的作用以及关系JDK:JavaDevelopmentKit,Java开发工具包JRE:JavaRuntimeEnvironment,Java运行环境JVM:JavaVirtualMachine,Java虚拟机JDK包含JRE,JRE包含JVMJava代码的编译运行流程:将Java源码编译成Java字节码。使用JVM将......
  • 云服务器 搭建NFS 文件系统 用于解决负载均衡session 文件共享等
    解决的问题:如果多台服务器负载均衡用户没有根据TCP设置分配在一台服务器那么session无法共享文件无法共享一台服务器创建了文件另外一台也会同步创建1.搭建NFSServe注意:共享系统的服务端和客户端不能安装在同一台服务器上例如你做负载均衡的2台服务器内网ip 12.20.10......
  • Nacos
    Nacos是SpringCloudAlibaba的组件,而SpringCloudAlibaba也遵循SpringCloud中定义的服务注册、服务发现规范。因此使用Nacos和使用Eureka对于微服务来说,并没有太大区别。主要差异在于:依赖不同服务地址不同配置方式在父工程引入依赖<artifactId>spring-cloud-alibabadepe......
  • JMeter性能测试-01
    一、使用JMeter工具发送get请求(1)不带参数的get请求 (2)路径上带参数的get请求 (3)带参数的get请求二、使用JMeter工具发送post请求(1)不带参数的post请求 (2)表单数据类型的post请求 (3)form数据类型的post请求,要添加http信息管理头,申明是json数据格式三、JMeter设......