当前位置: 首页 > news >正文

河北 石家庄 网站建设图书馆网站结构怎么做

河北 石家庄 网站建设,图书馆网站结构怎么做,网站目录怎么做外链,郑州seo顾问外包目录VTK简介什么是体绘制?体绘制效果图流程CodeQ&AReferenceVTK简介 VTK(Visualization Toolkit)是一个用于3D计算机图形学、图像处理和可视化的开源软件包。它包括一组C类和工具,可以让用户创建和处理复杂的3D图形和数据可视…

目录

    • VTK简介
    • 什么是体绘制?
    • 体绘制效果图
    • 流程
    • Code
    • Q&A
    • Reference

VTK简介

VTK(Visualization Toolkit)是一个用于3D计算机图形学、图像处理和可视化的开源软件包。它包括一组C++类和工具,可以让用户创建和处理复杂的3D图形和数据可视化。VTK提供了多种算法,如体绘制、剪切、切片、等值面、等值线、流线、轮廓线、纹理映射等,可以处理各种类型的数据,包括体数据、网格数据、点云数据等。VTK也提供了Python、Java等多种编程语言的接口,方便用户在不同的环境中使用。
VTK的应用十分广泛,包括医学图像处理、工程和科学可视化、计算流体动力学、地球科学、物理模拟等领域。由于其开源和免费的特点,VTK被广泛应用于学术界和工业界,并得到了许多用户和贡献者的支持和发展。

什么是体绘制?

体绘制,也称为三维重建(区别于投影图像的三维重建),直接利用体数据来生成二维图像的绘制技术。与面绘制不同的是体绘制技术不需要提取体数据内部的等值面,它是一个对三维体数据进行采样和合成的过程。体绘制能够通过设置不透明度值来显示体数据内部的不同成分和细节。常用于人体CT图像通过设置不透明度来显示各种器官与组织。总的来说体绘制是包含体数据,而面绘制则是让整个模型由多种多边形构成模型表面,但内部是空的,想要看到模型各个切面的数据还是需要使用体绘制。

体绘制效果图

超声图像大小尺寸为 208 x 240,一共176张,往z轴延伸。
体绘制

流程

VTK体绘制渲染管线

1. 将多张图像转化为vtkImageData
2. 使用体绘制算法,本文用的是vtkGPUVolumeRayCastMapper
3. vtkVolume
4. vtkRenderer
5. vtkRenderWindow
vtkVolumeProperty设置颜色与不透明度
SetColor
SetScalarOpacity

Code

import vtk# 定义图片读取接口
# 读取PNG图片就换成PNG_Reader = vtk.vtkPNGReader()
Jpg_Reader = vtk.vtkJPEGReader()
Jpg_Reader.SetNumberOfScalarComponents(1)
Jpg_Reader.SetFileDimensionality(3)  # 说明图像是三维的
# 定义3D模型大小,图像大小尺寸为 208 x 240, 一共176张
# 定义范围从0开始
Jpg_Reader.SetDataExtent(0, 207, 0, 239, 0, 175)
# 设置图像的存放位置
Jpg_Reader.SetFilePrefix("./imgs/")
# 迭代文件中所有图像, 图像命名格式为: 000.jpg开始到175.jpg, 03d代表三位字符串, 不够三位则左侧补0
Jpg_Reader.SetFilePattern("%s%03d.jpg")
Jpg_Reader.Update()
# 二进制数据排序按小端(LittleEndian)规则
Jpg_Reader.SetDataByteOrderToLittleEndian()
# 图像处理结束# 创建一个vtkRenderer对象,用于显示渲染结果
renderer = vtk.vtkRenderer()# 创建一个vtkRenderWindow对象,用于显示vtkRenderer对象中的内容
render_window = vtk.vtkRenderWindow()
render_window.AddRenderer(renderer)# 创建一个vtkRenderWindowInteractor对象,用于处理交互事件
interactor = vtk.vtkRenderWindowInteractor()
interactor.SetRenderWindow(render_window)# 应用体绘制算法,生成三维模型
volume_mapper = vtk.vtkGPUVolumeRayCastMapper()
volume_mapper.SetInputData(Jpg_Reader.GetOutput())# 定义颜色映射
color_transfer_function = vtk.vtkColorTransferFunction()
# 越接近黑色0越暗, 越接近白色255越亮
color_transfer_function.AddRGBPoint(0, 0.0, 0.0, 0.0)
color_transfer_function.AddRGBPoint(255, 1.0, 1.0, 1.0)# 设置不透明度函数
opacity_transfer_function = vtk.vtkPiecewiseFunction()
# 把像素值低于15的设置为透明, 去除黑色0, 白色255则不透明
threshold = 15
for i in range(threshold):opacity_transfer_function.AddPoint(i, 0.0)
opacity_transfer_function.AddPoint(255, 1.0)# 设置vtkVolume参数
volume_property = vtk.vtkVolumeProperty()
volume_property.SetColor(color_transfer_function)
volume_property.SetScalarOpacity(opacity_transfer_function)
# 是否开启阴影
# volume_property.ShadeOn()
# 设置线性插值方式
volume_property.SetInterpolationTypeToLinear()# 将vtkVolumeMapper、vtkVolumeProperty和vtkVolume组合在一起
volume = vtk.vtkVolume()
volume.SetMapper(volume_mapper)
volume.SetProperty(volume_property)renderer.AddVolume(volume)
# 设置背景为白色
renderer.SetBackground(1.0, 1.0, 1.0)# 显示渲染结果
render_window.Render()
interactor.Start()

Q&A

  1. Q: 如何过滤VTK模型中的背景/黑色部分/空气部分?
    A: 给vtkVolume的Property通过SetScalarOpacity函数设置opacity_transfer_function,给不需要显示的组织的对应像素设置透明度为0即可过滤对应组织。

Reference

  1. 《VTK图形图像开发进阶》- 张晓东 罗火灵编著
http://www.yayakq.cn/news/580903/

相关文章:

  • 虐做视频网站沈阳市铁西区建设局网站
  • 济南手机网站制作嵌入式培训学校
  • 微信的网站怎么做网站首页的动态效果图怎么做
  • 公司网站建设的分类企业信用信息查询公示系统浙江
  • 网站开发数据库课程设计免费WordPress的产品展示
  • 织梦响应式茶叶网站布展设计公司
  • 大型网站建站公司torrentkitty磁力猫引擎
  • 网站开发的知识论文个人网站建设
  • 在线做ppt的网站有哪些问题wordpress+小米
  • 培训课程网站建设吉林省住房城乡建设网站
  • 荣耀官方网站手机商城百色优惠welcome
  • 成都网站建设全平台顺德做网站推广哪家好
  • 网站建设和seo是什么关系平面设计在哪里接单
  • 文件上传网站源码软件开发工具的发展趋势是
  • 本地拖拽网站建设建网站的大公司
  • erp二次开发好还是网站开发好浙江做网站套餐
  • 江苏省建设工程地方标准网站保定专业做网站的公司
  • 服务器怎么做看视频的网站门户网站有什么特点
  • 什么叫精品网站建设seo推广视频隐迅推专业
  • 网站开发职业技能简历自己的网站怎么推广
  • 企业外部网站建设描述网站建设的具体流程
  • 快速建站的公司公司网站建设怎么计费
  • 网站运营怎么学2022最火的新零售模式
  • 怎么把网站设置为主页面uniapp小程序开发教程
  • 网站用不用备案网站推广和宣传的方法
  • 佛山智唯网站建设北京网站建设报价明细
  • 网站建设开发电销话术辽阳专业网站建设品牌
  • 2019一个网站开发要多少钱上海猎头公司前十名
  • wordpress电影采集网站权重优化
  • 网络营销方案的范文石家庄抖音seo公司