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

怎样在阿里巴巴上做网站/交换链接平台

怎样在阿里巴巴上做网站,交换链接平台,重庆金融网站建设,建筑学院官网本文将介绍使用VTK的Python版本完成面绘制已经模型的切割 会使用的模块介绍 1、读取二维图片序列完成面绘制 详情见读取二维序列显示 2、vtk.vtkOutlineFilter()介绍 这个空间就相当于生成渲染模型的轮廓线,比如三维图像大小为(256x256x200)&…

本文将介绍使用VTK的Python版本完成面绘制已经模型的切割

会使用的模块介绍

1、读取二维图片序列完成面绘制

详情见读取二维序列显示

2、vtk.vtkOutlineFilter()介绍

这个空间就相当于生成渲染模型的轮廓线,比如三维图像大小为(256x256x200),那么这个控件就会生成一个长宽高分别为256想x256x200的一个长方体框架

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ppa3VpZG9uZ2tlNTQ2MQ==,size_16,color_FFFFFF,t_70#pic_center

详细介绍:VTK官方文档

3、隐函数平面模块vtk.vtkImplicitPlaneWidget()

使用该模块可以灵活的调整需要选取的平面

vtkImplicitPlaneWidget官方文档

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ppa3VpZG9uZ2tlNTQ2MQ==,size_16,color_FFFFFF,t_70#pic_center

4、vtk.vtkClipPolyData()

vtkclippolydata的剪切结果,根据切平面法线分为上下两部分,接口中有相应的输出接口

切割效果展示

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ppa3VpZG9uZ2tlNTQ2MQ==,size_16,color_FFFFFF,t_70#pic_center

代码如下:

import vtk

def main():

arender = vtk.vtkRenderer()

arender.SetViewport(0, 0.0, 0.5, 1.0)

renWin = vtk.vtkRenderWindow()

renWin.AddRenderer(arender)

iren = vtk.vtkRenderWindowInteractor()

iren.SetRenderWindow(renWin)

# Reader = vtk.vtkMetaImageReader()

# Reader.SetFileName("bbb.mhd")

# Reader.Update()

#读取图片、面绘制

Reader = vtk.vtkPNGReader()

Reader.SetNumberOfScalarComponents(1)

Reader.GetOutput().GetOrigin()

Reader.SetDataByteOrderToLittleEndian()

Reader.SetFileDimensionality(3)

Reader.SetDataExtent(0, 512, 0, 512,0, 226)

Reader.SetFilePrefix("E:/qct_data/in_out_data/in_data/inner/label/22/")

#Reader.SetFilePrefix("C:/Users/deng5/Desktop/2/48/")

Reader.SetFilePattern("%s%d.png")

Reader.SetDataSpacing(1, 1, 1) # Volume Pixel

Reader.Update()

#面绘制代码,详情见使用python-vtk完成面绘制文章

skinExtractor = vtk.vtkContourFilter()

skinExtractor.SetInputConnection(Reader.GetOutputPort())

skinExtractor.SetValue(0, 1)

skinExtractor.ComputeGradientsOn();

skinExtractor.ComputeScalarsOn();

smooth = vtk.vtkSmoothPolyDataFilter()

smooth.SetInputConnection(skinExtractor.GetOutputPort())

smooth.SetNumberOfIterations(100)

skinNormals = vtk.vtkPolyDataNormals()

skinNormals.SetInputConnection(smooth.GetOutputPort())

skinNormals.SetFeatureAngle(50)

skinStripper = vtk.vtkStripper()

skinStripper.SetInputConnection(skinNormals.GetOutputPort())

skinMapper = vtk.vtkPolyDataMapper()

skinMapper.SetInputConnection(skinStripper.GetOutputPort())

skinMapper.ScalarVisibilityOff()

skin = vtk.vtkActor()

skin.SetMapper(skinMapper)

#定义一个图像边界控件

outlineData = vtk.vtkOutlineFilter()

outlineData.SetInputConnection(Reader.GetOutputPort())

mapOutline = vtk.vtkPolyDataMapper()

mapOutline.SetInputConnection(outlineData.GetOutputPort())

outline = vtk.vtkActor()

outline.SetMapper(mapOutline)

outline.GetProperty().SetColor(0, 0, 0)

aCamera = vtk.vtkCamera()

aCamera.SetViewUp(0, 0, -1)

aCamera.SetPosition(0, 1, 0)

aCamera.ComputeViewPlaneNormal()

aCamera.Azimuth(30.0)

aCamera.Elevation(30.0)

aCamera.Dolly(1.5)

arender.AddActor(outline)

arender.AddActor(skin)

#splineActor.GetProperty().SetLineWidth(5)

#arender.AddActor(splineActor)

#arender.AddActor(pointActor)

arender.SetActiveCamera(aCamera)

arender.ResetCamera()

arender.SetBackground(.2, .3, .4)

arender.ResetCameraClippingRange()

renWin.SetSize(1000, 1000)

style = vtk.vtkInteractorStyleTrackballCamera()

iren.SetInteractorStyle(style);

#定义切割器

global cliper

cliper = vtk.vtkClipPolyData()

cliper.SetInputData(skinStripper.GetOutput())

#定义平面隐函数

implicitPlaneWidget = vtk.vtkImplicitPlaneWidget()

implicitPlaneWidget.SetInteractor(iren)

implicitPlaneWidget.SetPlaceFactor(1.25)

implicitPlaneWidget.SetInputData(skinStripper.GetOutput())

implicitPlaneWidget.PlaceWidget()

global coneSkinActor

coneSkinActor = vtk.vtkActor()

coneSkinActor.SetMapper(skinMapper)

rRenderer = vtk.vtkRenderer()

rRenderer.SetBackground(0.2, 0.3, 0.5)

rRenderer.SetViewport(0.5, 0.0, 1.0, 1.0)

coneSkinActor.RotateZ(90)

rRenderer.AddActor(coneSkinActor)

renWin.AddRenderer(rRenderer)

#关联CallBack函数

implicitPlaneWidget.AddObserver("EndInteractionEvent", my_call_back)

implicitPlaneWidget.On()

renWin.Render()

iren.Initialize()

iren.Start()

#CallBack函数

def my_call_back(pWidget,ev):

#表示当pWidget控件改变时,触发函数

if (pWidget):

print(pWidget.GetClassName(), "Event Id:", ev)

planeNew = vtk.vtkPlane()

#获得pWidget中的平面,将平面值赋值planeNew

pWidget.GetPlane(planeNew)

#cliper将裁剪器cliper的平面设置为planeNew

cliper.SetClipFunction(planeNew)

planeNew.GetNormal()

cliper.Update();

#将裁减后的模型传递给另一个窗口

clipedData = vtk.vtkPolyData()

clipedData.DeepCopy(cliper.GetOutput())

coneMapper = vtk.vtkPolyDataMapper()

coneMapper.SetInputData(clipedData)

coneMapper.ScalarVisibilityOff()

coneSkinActor.SetMapper(coneMapper)

print("Plane Normal = "+str(planeNew.GetNormal()))

print("Plane Origin = "+str(planeNew.GetOrigin()))

main()

http://www.jmfq.cn/news/5263489.html

相关文章:

  • 织梦末班和dw建设网站哪个方便优化/百度推广登录页面
  • 建立个人网站要钱吗/手机网站怎么优化关键词
  • 聊城建设网站/品牌推广运营策划方案
  • 网站被挂马做js跳转/挖掘爱站网
  • 门户网站设计技巧/2023年7 8月十大新闻
  • 360网站卖东西怎么做的/怎么找当地的地推团队
  • 微信商城app/免费发布网站seo外链
  • 自己做微网站制作教程/爱站网官网
  • 搜狗搜索网站提交入口/游戏广告投放平台
  • 网站开发 文件上传慢/地推拉新app推广接单平台
  • flash建网站教程/推广引流工具
  • 给女朋友做的生日网站/宁波网站制作优化服务公司
  • 做网站js还是jq/网络营销公司招聘
  • 做企业网站代码那种好/搜外滴滴友链
  • 河北企业网站设计/品牌营销策划ppt
  • 怎么让网站能被百度到/惠州seo排名收费
  • 常熟建设局网站首页/企业网络营销青岛
  • 沈阳专门做网站/国内最新十大新闻
  • 西安优秀的集团门户网站建设企业/农产品网络营销
  • 外贸网站做多少钱的/市场调研报告1000字
  • 全国建设地产网站/seo优化网络推广
  • 濮阳网站开发/今天济南刚刚发生的新闻
  • 有域名如何做网站/上海广告公司
  • 网站制作要素/兰州快速seo整站优化招商
  • 美团广告投放平台/淄博网站优化
  • 网站弹窗客服代码/百度识图在线识别
  • 长春做商业平台网站/免费个人主页网站
  • 企业建设网站没有服务器/百度爱采购优化
  • 3g网站设计/南宁seo外包服务商
  • 商业网站建设常识/搜索引擎的四个组成部分及作用