下城网站建设购物网站的建设的好处
2026/2/17 0:58:53 网站建设 项目流程
下城网站建设,购物网站的建设的好处,网站源码破解版,自己做的网站申请软著一#xff1a;主要的知识点 1、说明 本文只是教程内容的一小段#xff0c;因博客字数限制#xff0c;故进行拆分。主教程链接#xff1a;vtk教程——逐行解析官网所有Python示例-CSDN博客 2、知识点纪要 本段代码主要涉及的有①vtkImageAccumulate三维体素数据直方图统…一主要的知识点1、说明本文只是教程内容的一小段因博客字数限制故进行拆分。主教程链接vtk教程——逐行解析官网所有Python示例-CSDN博客2、知识点纪要本段代码主要涉及的有①vtkImageAccumulate三维体素数据直方图统计器②vtkMaskFields数据字段的过滤器二代码及注释import vtkmodules.vtkInteractionStyle import vtkmodules.vtkRenderingOpenGL2 from vtkmodules.vtkIOImage import vtkMetaImageReader from vtkmodules.vtkImagingStatistics import vtkImageAccumulate from vtkmodules.vtkFiltersGeneral import vtkDiscreteFlyingEdges3D from vtkmodules.vtkFiltersCore import vtkWindowedSincPolyDataFilter, vtkThreshold, vtkMaskFields from vtkmodules.vtkFiltersGeometry import vtkGeometryFilter from vtkmodules.vtkCommonDataModel import ( vtkDataObject, vtkDataSetAttributes ) from vtkmodules.vtkIOXML import vtkXMLPolyDataWriter import os import sys def main(): file_name Data/Frog/frogtissue.mhd start_label 1 end_label 29 reader vtkMetaImageReader() reader.SetFileName(file_name) reader.Update() file_prefix Label smoothing_iterations 15 pass_band 0.001 feature_angle 120.0 # 表面重建最后一个表示要重建多少个表面 discrete_cubes vtkDiscreteFlyingEdges3D() discrete_cubes.SetInputConnection(reader.GetOutputPort()) discrete_cubes.GenerateValues(end_label - start_label 1, start_label, end_label) vtkImageAccumulate 当于一个 3D 直方图histogram计算器 用于计算图像或体数据中像素 / 体素的统计信息包括直方图、平均值、最小值、最大值 计算所有离散标签的出现频率(即生成直方图) vtkImageAccumulate 的输出是一个特殊的 vtkImageData histogram vtkImageAccumulate() histogram.SetInputConnection(reader.GetOutputPort()) SetComponentExtent 定义了标签值的范围 0到end_label表示直方图覆盖从标签0到最大标签纸所有的数值 后面的0是将Y和Z维度设置为单一切片因为直方图本质上是一个一维的频率计数 histogram.SetComponentExtent(0, end_label, 0, 0, 0, 0) SetComponentOrigin设置直方图的起始值从 0 开始计数即从标签 0 开始 histogram.SetComponentOrigin(0, 0, 0) SetComponentSpacing 设置直方图的“体素”间隔为 1。 由于处理的是离散整数标签这个间隔为 1 确保了每个整数标签值都有一个对应的“箱子”bin histogram.SetComponentSpacing(1, 1, 1) histogram.Update() # mesh的平滑 smoother vtkWindowedSincPolyDataFilter() smoother.SetInputConnection(discrete_cubes.GetOutputPort()) smoother.BoundarySmoothingOff() smoother.FeatureEdgeSmoothingOff() SetFeatureAngle 定义大于该角度120.0 度的边为“特征边”。由于 FeatureEdgeSmoothingOff这些边在平滑时会得到保护 smoother.SetFeatureAngle(feature_angle) SetPassBand 它控制了哪些频率即几何上的细节会被保留或平滑。 pass_band 0.001 是一个非常低的值表示它会平滑掉大部分的高频细节即锯齿和噪声只保留低频整体形状 smoother.SetPassBand(pass_band) smoother.SetNumberOfIterations(smoothing_iterations) smoother.NonManifoldSmoothingOn() NormalizeCoordinatesOn 启用在平滑处理前对坐标进行归一化。这有助于确保平滑效果独立于模型的绝对 smoother.NormalizeCoordinatesOn() smoother.Update() selector vtkThreshold() selector.SetInputConnection(smoother.GetOutputPort()) selector.SetInputArrayToProcess(0, 0, 0, vtkDataObject.FIELD_ASSOCIATION_POINTS, vtkDataSetAttributes.SCALARS) vtkMaskFields 是一个 数据字段过滤器 主要作用是:控制数据集中哪些属性如标量、向量、法向量、纹理坐标等被保留或删除 VTK 的数据集中数据可能挂在两个层级上 PointData每个点上存的属性如温度、速度向量等 CellData每个单元网格单元上的属性如材料编号、区域 ID 等 CopyAttributeOff 表示丢弃某种属性数据 CopyAttributeOn 表示保留某种属性数据 scalars_off vtkMaskFields() scalars_off.SetInputConnection(selector.GetOutputPort()) scalars_off.CopyAttributeOff(vtkMaskFields().POINT_DATA, vtkDataSetAttributes().SCALARS) scalars_off.CopyAttributeOff(vtkMaskFields().CELL_DATA, vtkDataSetAttributes().SCALARS) geometry vtkGeometryFilter() geometry.SetInputConnection(scalars_off.GetOutputPort()) writer vtkXMLPolyDataWriter() for i in range(start_label, end_label 1): # see if the label exists, if not skip it frequency histogram.GetOutput().GetPointData().GetScalars().GetTuple1(i) if frequency 0.0: continue # select the cells for a given label selector.SetLowerThreshold(i) selector.SetUpperThreshold(i) writer.SetInputConnection(selector.GetOutputPort()) # output the polydata output_fn {:s}{:d}.vtp.format(file_prefix, i) print({:s} writing {:s}.format(os.path.basename(sys.argv[0]), output_fn)) writer.SetFileName(output_fn) writer.Write() if __name__ __main__: main()

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询