参数化计算机断层成像模拟器

tomograph的Python项目详细描述


断层摄影-参数化计算机断层摄影模拟器

Build Statuscodecov

tomograph是一个参数化的计算机断层成像模拟器,它可以作为 一个独立的脚本或作为模块包含在python程序中。它 实现radon和reverse radon转换。它目前有两种型号 光束投影类型:圆锥和平行。

依赖关系

当前tomograph需要:

  • 单击(click
  • tqdm(tqdm
  • numpy(numpy
  • 图像处理科学工具包(scikit-image

它们各自所需的版本可以在requirements.txt文件中看到。

安装

只需运行:

pip install tomograph

tomograph支持python 3.5、python3.6和python3.7。

用法

tomograph可以直接通过命令行界面使用,也可以作为python使用 模块:

命令行

使用命令行界面:

tomograph --model cone --detectors 256 --angle 150 --rotations 512 image.jpg

所有命令行参数都可以通过运行:

tomograph --help

模块

使用锥束模型进行radon变换的示例脚本:

from skimage.io import imsave
from tomograph.model import ConeTomograph

# variables
path = 'image.jpg'
detectors = 256
angle = 180
rotations = 512

# one scan per rotation
step = 360 / rotations

# perform Radon transform
tomograph = ConeTomograph(path, detectors, angle)
sinogram = []
for i in range(rotations):
    tomograph.rotate(step)  # rotate tomograph
    scan = tomograph.scan() # do the scan
    sinogram.append(scan)

imsave('radon.bmp', np.array(sinogram).T)

现场演示

Beam linesRadon transformreverse Radon transform
beam linesradon transformreverse radon transform

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
javafx在java中显示图像或形状的二维网格   java如何部署WAR文件而不是根文件。AWS Elastic Beanstalk中配置了Amazon AMI的war?   java如何在Eclipse中设置runnable jar的目标版本   Java 8流/收集器按地图分组   java ParseServer:不保存用户信息?   MySQL:java。sql。BatchUpdateException:键“PRIMARY”的重复条目“242243”   java Jersey测试框架为grizzly中的所有未知路径定义默认错误响应   java使用所有请求参数将请求从一个jsp转发到另一个jsp?   java为什么在JavaFX8中选择CheckboxTableCell时SelectedStateCallback不起作用?   期待EOF的java发现“异常”   java如何使用SeleniumWebDriver捕获弹出窗口的屏幕?   java无法从安卓手机向我的数据库发送截击post请求   java Selenium单击切换元素   java使用Spring api向服务器发送数据   继承和创建新类之间的java差异   数组io。内蒂。ByteBuf writeBytes(java.nio.ByteBuffer src)顶点化   java相对于多次选择和一次更新,删除和插入的代价有多高?   java单向一对多,父级具有复合密钥   Java Spring批处理多线程作业失败,原因是“致命:由于idleintransaction超时而终止连接”