7p通话声音对方听不清很浑浊,听不清,怎么解决

Python vtk.vtkTransform Examples
Python vtk.vtkTransform Examples
The following are 19
code examples for showing how to use
vtk.vtkTransform. They are
extracted from open source Python projects.
You can click
vote up the examples you like, or click
to vote down the exmaples you don't like.
Your votes will be used in our system to extract more high-quality examples.
You may also check out all available functions/classes of the module
From project ParaView-beforekitwareswtichedtogit,
under directory VTK/Examples/Tutorial/Step6/Python,
in source file Cone6.py.
def myCallback(widget, event_string):
t = vtk.vtkTransform()
boxWidget.GetTransform(t)
boxWidget.GetProp3D().SetUserTransform(t)
# Now for every interaction event that is generated by the boxWidget,
# call our callback function.
From project pbrain,
under directory loc3djr,
in source file plane_widgets_observer.py.
def scroll_axis1(self, step):
#rotate around axis 1
axis1 = [0,0,0]
self.pw.GetVector1(axis1)
transform = vtk.vtkTransform()
axis2 = [0,0,0]
self.pw.GetVector2(axis2)
transform = vtk.vtkTransform()
transform.RotateWXYZ(step,
(axis1[0] + 0.5*axis2[0],
axis1[1] + 0.5*axis2[2],
axis1[2] + 0.5*axis2[2]))
o, p1, p2 = self.get_plane_points()
o = transform.TransformPoint(o)
p1 = transform.TransformPoint(p1)
p2 = transform.TransformPoint(p2)
self.set_plane_points((o, p1, p2))
self.update_plane()
From project pbrain,
under directory loc3djr,
in source file plane_widgets_xyz.py.
def move_pw_to_point(pw, xyz):
n = pw.GetNormal()
o = pw.GetOrigin()
pxyz = [0,0,0]
vtk.vtkPlane.ProjectPoint(xyz, o, n, pxyz)
transform = vtk.vtkTransform()
transform.Translate(xyz[0]-pxyz[0], xyz[1]-pxyz[1], xyz[2]-pxyz[2])
p1 = transform.TransformPoint(pw.GetPoint1())
p2 = transform.TransformPoint(pw.GetPoint2())
o = transform.TransformPoint(o)
pw.SetOrigin(o)
pw.SetPoint1(p1)
pw.SetPoint2(p2)
pw.UpdatePlacement()
From project pbrain,
under directory loc3djr,
in source file plane_widgets_observer_toolbar.py.
def move_pw_to_point(pw, xyz):
n = pw.GetNormal()
o = pw.GetOrigin()
pxyz = [0,0,0]
vtk.vtkPlane.ProjectPoint(xyz, o, n, pxyz)
transform = vtk.vtkTransform()
transform.Translate(xyz[0]-pxyz[0], xyz[1]-pxyz[1], xyz[2]-pxyz[2])
p1 = transform.TransformPoint(pw.GetPoint1())
p2 = transform.TransformPoint(pw.GetPoint2())
o = transform.TransformPoint(o)
pw.SetOrigin(o)
pw.SetPoint1(p1)
pw.SetPoint2(p2)
pw.UpdatePlacement()
From project vmtk,
under directory vmtkScripts,
in source file vmtkmeshtransform.py.
def Execute(self):
if (self.Mesh == None):
self.PrintError('Error: no Mesh.')
if not self.Matrix4x4:
self.Matrix4x4 = vtk.vtkMatrix4x4()
if self.MatrixCoefficients != []:
self.PrintLog('Setting up transform matrix using specified coefficients')
self.Matrix4x4.DeepCopy(self.MatrixCoefficients)
elif self.Translation != [0.0,0.0,0.0] or self.Rotation != [0.0,0.0,0.0] or self.Scaling != [1.0,1.0,1.0]:
self.PrintLog('Setting up transform matrix using specified translation, rotation and/or scaling')
transform = vtk.vtkTransform()
transform.RotateX(self.Rotation[0])
transform.RotateY(self.Rotation[1])
transform.RotateZ(self.Rotation[2])
transform.Translate(self.Translation[0], self.Translation[1], self.Translation[2])
transform.Scale(self.Scaling[0], self.Scaling[1], self.Scaling[2])
self.Matrix4x4.DeepCopy(transform.GetMatrix())
if self.InvertMatrix:
self.Matrix4x4.Invert()
transform = vtk.vtkMatrixToLinearTransform()
transform.SetInput(self.Matrix4x4)
transformFilter = vtk.vtkTransformFilter()
transformFilter.SetInput(self.Mesh)
transformFilter.SetTransform(transform)
transformFilter.Update()
self.Mesh = transformFilter.GetOutput()
if self.Mesh.GetSource():
self.Mesh.GetSource().UnRegisterAllOutputs()
From project vmtk,
under directory vmtkScripts,
in source file vmtkimagelinetracer.py.
def GetLineFromWidget(self,obj,event):
if self.Type == 'freehand':
path = vtk.vtkPolyData()
obj.GetPath(path)
elif self.Type == 'contour':
path = self.ImageTracerWidget.GetRepresentation().GetContourRepresentationAsPolyData()
spacing = self.Image.GetSpacing()
translation = [0.0,0.0,0.0]
translation[self.Axis] = self.SliceVOI[self.Axis*2]*spacing[self.Axis]
transform = vtk.vtkTransform()
transform.Translate(translation)
pathTransform = vtk.vtkTransformPolyDataFilter()
pathTransform.SetInput(path)
pathTransform.SetTransform(transform)
pathTransform.Update()
self.Line = pathTransform.GetOutput()
if self.Line.GetSource():
self.Line.GetSource().UnRegisterAllOutputs()
From project fluidity,
under directory python/fluidity/diagnostics,
in source file vtutools.py.
def CylinderVtuCut(inputVtu, radius, origin = (0.0, 0.0, 0.0), axis = (0.0, 0.0, 1.0)):
Perform a 3D cylinder cut of a vtu
assert(len(origin) == 3)
assert(len(axis) == 3)
# An implicit function with which to cut
cylinder = vtk.vtkCylinder()
cylinder.SetRadius(radius)
cylinder.SetCenter((0.0, 0.0, 0.0))
# Generate the transform
transform = vtk.vtkTransform()
transform.Identity()
if not calc.AlmostEquals(axis[0], 0.0) or not calc.AlmostEquals(axis[1], 1.0) or not calc.AlmostEquals(axis[2], 0.0):
# Find the rotation axis
# (0, 1, 0) x axis
rotationAxis = [-axis[2], 0.0, -axis[0]]
# Normalise
rotationAxisMagnitude = calc.L2Norm(rotationAxis)
rotationAxis = [val / rotationAxisMagnitude for val in rotationAxis]
# Find the rotation angle
angle = calc.Rad2Deg(math.acos(axis[1] / calc.L2Norm(axis)))
# Rotation
transform.RotateWXYZ(angle, rotationAxis[0], rotationAxis[1], rotationAxis[2])
# Translation
transform.Translate(origin[0], origin[1], origin[2])
# Set the transform
cylinder.SetTransform(transform)
return ImplicitFunctionVtuCut(inputVtu, cylinder)
From project fluidity,
under directory python/fluidity/diagnostics,
in source file structured_fields.py.
def ToVtu(self, axis = (0.0, 1.0, 0.0), quadMesh = False):
assert(not self._shape is None)
vtu = self.Mesh(quadMesh = quadMesh).ToVtu()
name = self.GetName()
if name is None:
name = &UnknownField&
for i in range(self.YCoordsCount()):
for j in range(self.XCoordsCount()):
data.append(self.GetVal(j, i))
data = numpy.array(data)
data.shape = (self.XCoordsCount() * self.YCoordsCount(), self._DataLen())
vtu.AddField(name, data)
if not calc.AlmostEquals(axis[0], 0.0) or not calc.AlmostEquals(axis[1], 1.0) or not calc.AlmostEquals(axis[2], 0.0):
transform = vtk.vtkTransform()
transform.Identity()
# Find the rotation axis
# (0, 1, 0) x axis
rotationAxis = [-axis[2], 0.0, -axis[0]]
# Normalise
rotationAxisMagnitude = calc.L2Norm(rotationAxis)
rotationAxis = [val / rotationAxisMagnitude for val in rotationAxis]
# Find the rotation angle
angle = calc.Rad2Deg(math.acos(axis[1] / calc.L2Norm(axis)))
# Rotation
transform.RotateWXYZ(angle, rotationAxis[0], rotationAxis[1], rotationAxis[2])
transform.Update()
newPoints = vtk.vtkPoints()
transform.TransformPoints(vtu.ugrid.GetPoints(), newPoints)
vtu.ugrid.SetPoints(newPoints)
return vtu
From project fluidity,
under directory python/fluidity/diagnostics,
in source file calc.py.
def RotatedVector(vector, angle, axis = None):
Rotate a vector
if len(vector) in [0, 1]:
raise Exception(&Vector rotation doesn't make sense for 0-1 dimensions&)
elif len(vector) == 2:
assert(axis is None)
r = L2Norm(vector)
angle += math.atan2(vector[1], vector[0])
return [r * math.cos(angle), r * math.sin(angle)]
elif len(vector) == 3:
assert(not axis is None)
assert(len(axis) == 3)
if hasattr(RotatedVector, &_angle&) and RotatedVector._angle == angle and RotatedVector._axis == list(axis):
# If we have cached this rotation matrix, use the cache
matrix = RotatedVector._matrix
# Otherwise, generate a new transform and cache the rotation matrix
transform = vtk.vtkTransform()
transform.Identity()
transform.RotateWXYZ(Rad2Deg(angle), axis[0], axis[1], axis[2])
matrix = transform.GetMatrix()
RotatedVector._angle = angle
RotatedVector._axis = list(axis)
RotatedVector._matrix = matrix
return matrix.MultiplyPoint(list(vector) + [0.0])[:-1]
raise Exception(&Vector rotation not implemented for & + str(len(vector)) + & dimensions&)
Example 10
From project VTK,
under directory Common/Core/Testing/Python,
in source file TestOverloads.py.
def testMethods(self):
&&&Test overloaded methods&&&
# single-argument method vtkTransform::SetMatrix()
t = vtk.vtkTransform()
m = vtk.vtkMatrix4x4()
m.SetElement(0, 0, 2)
t.SetMatrix(m)
self.assertEqual(t.GetMatrix().GetElement(0, 0), 2)
t.SetMatrix([0,1,0,0, 1,0,0,0, 0,0,-1,0, 0,0,0,1])
self.assertEqual(t.GetMatrix().GetElement(0, 0), 0)
# mixed number of arguments
w = vtk.vtkRenderWindow()
w.SetTileScale(2)
self.assertEqual(w.GetTileScale(), (2,2))
w.SetTileScale(3,4)
self.assertEqual(w.GetTileScale(), (3,4))
Example 11
From project gradworks,
under directory MeshCodes,
in source file meshInit.py.
def transform(p, T):
t = vtk.vtkTransform()
t.SetMatrix(vtkTransformMatrix(T))
tx = vtk.vtkTransformPolyDataFilter()
tx.SetTransform(t)
tx.SetInput(p)
tx.Update()
return tx.GetOutput()
Example 12
From project gradworks,
under directory pycodes,
in source file transformPolydata.py.
def main(opts, args):
inputTransform = np.array(opts.transform.split(&,&), dtype='double').reshape((4,4))
transformMatrix = vtk.vtkMatrix4x4()
for i in range(0,4):
for j in range(0,4):
transformMatrix.SetElement(i,j,inputTransform[i,j])
print &InputTransform\n&, inputTransform, &vtkMatrix\n&, transformMatrix
transform = vtk.vtkTransform()
transform.SetMatrix(transformMatrix)
transformFilter = vtk.vtkTransformPolyDataFilter()
transformFilter.SetTransform(transform)
for (inputId, input) in enumerate(args):
obj = nu.readVTK(input)
transformFilter.SetInput(obj)
transformFilter.Update()
objOut = transformFilter.GetOutput()
if (opts.output.find(&%&) & 0):
nu.writeVTK(opts.output % (inputId), objOut)
nu.writeVTK(opts.output, objOut)
Example 13
From project fos-legacy,
under directory scratch/very_scratch/vtk,
in source file fos.py.
def ellipsoid(R=np.array([[2, 0, 0],[0, 1, 0],[0, 0, 1] ]),position=(0,0,0),thetares=20,phires=20,color=(0,0,1),opacity=1,tessel=0):
''' Create a ellipsoid actor.
Stretch a unit sphere to make it an ellipsoid under a 3x3 translation matrix R
R=sp.array([[2, 0, 0],
[0, 1, 0],
[0, 0, 1] ])
Mat=sp.identity(4)
Mat[0:3,0:3]=R
Mat=sp.array([[2, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
mat=vtk.vtkMatrix4x4()
for i in sp.ndindex(4,4):
mat.SetElement(i[0],i[1],Mat[i])
sphere = vtk.vtkSphereSource()
sphere.SetRadius(radius)
sphere.SetLatLongTessellation(tessel)
sphere.SetThetaResolution(thetares)
sphere.SetPhiResolution(phires)
trans=vtk.vtkTransform()
trans.Identity()
#trans.Scale(0.3,0.9,0.2)
trans.SetMatrix(mat)
trans.Update()
transf=vtk.vtkTransformPolyDataFilter()
transf.SetTransform(trans)
transf.SetInput(sphere.GetOutput())
transf.Update()
spherem = vtk.vtkPolyDataMapper()
spherem.SetInput(transf.GetOutput())
spherea = vtk.vtkActor()
spherea.SetMapper(spherem)
spherea.SetPosition(position)
spherea.GetProperty().SetColor(color)
spherea.GetProperty().SetOpacity(opacity)
#spherea.GetProperty().SetRepresentationToWireframe()
return spherea
Example 14
From project pbrain,
under directory loc3djr,
in source file vtksurface.py.
def __init__(self, filename, renderer):
self.renderer = renderer
reader = vtk.vtkStructuredPointsReader()
#reader.SetFileName('/home/mcc/src/devel/extract_mri_slices/braintest2.vtk')
reader.SetFileName(filename)
# we want to move this from its (.87 .92 .43) esque position to something more like 'the center'
# how to do this?!?
# ALTERNATIVELY: we want to use vtkInteractorStyleTrackballActor
# somewhere instead of the interactor controlling the main window and 3 planes
imagedata = reader.GetOutput()
#reader.SetFileName(filename)
cf = vtk.vtkContourFilter()
cf.SetInput(imagedata)
cf.SetValue(0, 1)
deci = vtk.vtkDecimatePro()
deci.SetInput(cf.GetOutput())
deci.SetTargetReduction(.1)
deci.PreserveTopologyOn()
smoother = vtk.vtkSmoothPolyDataFilter()
smoother.SetInput(deci.GetOutput())
smoother.SetNumberOfIterations(100)
# XXX try to call SetScale directly on actor..
#self.scaleTransform = vtk.vtkTransform()
#self.scaleTransform.Identity()
#self.scaleTransform.Scale(.1, .1, .1)
#transformFilter = vtk.vtkTransformPolyDataFilter()
#transformFilter.SetTransform(self.scaleTransform)
#transformFilter.SetInput(smoother.GetOutput())
#cf.SetValue(1, 2)
#cf.SetValue(2, 3)
#cf.GenerateValues(0, -1.0, 1.0)
#deci = vtk.vtkDecimatePro()
#deci.SetInput(cf.GetOutput())
#deci.SetTargetReduction(0.8) # decimate_value
normals = vtk.vtkPolyDataNormals()
#normals.SetInput(transformFilter.GetOutput())
normals.SetInput(smoother.GetOutput())
normals.FlipNormalsOn()
tags = vtk.vtkFloatArray()
tags.InsertNextValue(1.0)
tags.InsertNextValue(0.5)
tags.InsertNextValue(0.7)
tags.SetName(&tag&)
lut = vtk.vtkLookupTable()
lut.SetHueRange(0, 0)
lut.SetSaturationRange(0, 0)
lut.SetValueRange(0.2, 0.55)
contourMapper = vtk.vtkPolyDataMapper()
contourMapper.SetInput(normals.GetOutput())
contourMapper.SetLookupTable(lut)
###contourMapper.SetColorModeToMapScalars()
###contourMapper.SelectColorArray(&tag&)
self.contours = vtk.vtkActor()
self.contours.SetMapper(contourMapper)
#if (do_wireframe):
#self.contours.GetProperty().SetRepresentationToWireframe()
#elif (do_surface):
self.contours.GetProperty().SetRepresentationToSurface()
self.contours.GetProperty().SetInterpolationToGouraud()
self.contours.GetProperty().SetOpacity(1.0)
self.contours.GetProperty().SetAmbient(0.1)
self.contours.GetProperty().SetDiffuse(0.1)
self.contours.GetProperty().SetSpecular(0.1)
self.contours.GetProperty().SetSpecularPower(0.1)
# XXX arbitrarily setting scale to this
#self.contours.SetScale(.1, .1,.1)
renderer.AddActor(self.contours)
# XXX: mcc will this work?!?
print &PlaneWidgetsXYZ.set_image_data: setting EventHandler.set_vtkactor(self.contours)!&
EventHandler().set_vtkactor(self.contours)
#writer = vtk.vtkSTLWriter()
#writer.SetFileTypeToBinary()
#writer.SetFileName('/home/mcc/src/devel/extract_mri_slices/braintest2.stl')
#writer.SetInput(normals.GetOutput())
#writer.Write()
######################################################################
######################################################################
######################################################################
Example 15
From project vmtk,
under directory vmtkScripts,
in source file vmtktetringenerator.py.
def Execute(self):
if (self.OutputFileName == ''):
self.PrintError('Error: no OutputFileName.')
if self.TimeStepsOnly:
self.GenerateTimeStepsFile()
if self.Mesh == None:
self.PrintError('Error: no Mesh.')
self.NormalizationTransform = vtk.vtkTransform()
if self.UseCellDefinedEntities == 1:
entityIds = []
entityNames = []
if self.NormalizationEntityId != -1:
entityIds.append(self.NormalizationEntityId)
entityNames.append('NormalizationEntity')
self.NormalizationEntity = 'NormalizationEntity'
for inletEntityId in self.InletEntityIds:
entityIds.append(inletEntityId)
entityNames.append('InletEntity'+str(inletEntityId))
self.InletEntities.append('InletEntity'+str(inletEntityId))
for reverseInletEntityId in self.ReverseInlets:
self.ReverseInletEntities.append('InletEntity'+str(reverseInletEntityId))
if self.OutletEntityId != -1:
entityIds.append(self.OutletEntityId)
entityNames.append('OutletEntity')
self.OutletEntity = 'OutletEntity'
if self.WallEntityId != -1:
entityIds.append(self.WallEntityId)
entityNames.append('WallEntity')
self.WallEntity = 'WallEntity'
if self.HistoryEntityId != -1:
entityIds.append(self.HistoryEntityId)
entityNames.append('HistoryEntity')
self.HistoryEntity = 'HistoryEntity'
for i in range(len(entityIds)):
entityId = entityIds[i]
entityName = entityNames[i]
pointEntityArray = vtk.vtkIntArray()
pointEntityArray.SetName(entityName)
self.BuildPointEntityArray(entityId,pointEntityArray)
self.Mesh.GetPointData().AddArray(pointEntityArray)
self.GenerateTetrInFile()
Example 16
From project vmtk,
under directory vmtkScripts,
in source file vmtksurfacereferencesystemtransform.py.
def Execute(self):
if self.Surface == None:
self.PrintError('Error: No Surface.')
if self.ReferenceSystems == None:
self.PrintError('Error: No ReferenceSystems.')
referenceSystemsNormal1Array = self.ReferenceSystems.GetPointData().GetArray(self.ReferenceSystemsNormal1ArrayName)
referenceSystemsNormal2Array = self.ReferenceSystems.GetPointData().GetArray(self.ReferenceSystemsNormal2ArrayName)
referenceSystemPointId = 0
if self.ReferenceSystemId != -1:
referenceSystemsIdArray = self.ReferenceSystems.GetPointData().GetArray(self.ReferenceSystemsIdArrayName)
for i in range(self.ReferenceSystems.GetNumberOfPoints()):
referenceSystemId = int(referenceSystemsIdArray.GetTuple1(i))
if referenceSystemId == self.ReferenceSystemId:
referenceSystemPointId = i
currentOrigin = self.ReferenceSystems.GetPoint(referenceSystemPointId)
currentNormal1 = referenceSystemsNormal1Array.GetTuple3(referenceSystemPointId)
currentNormal2 = referenceSystemsNormal2Array.GetTuple3(referenceSystemPointId)
transform = vtk.vtkTransform()
transform.PostMultiply()
translation = [0.0, 0.0, 0.0]
translation[0] = self.ReferenceOrigin[0] - currentOrigin[0]
translation[1] = self.ReferenceOrigin[1] - currentOrigin[1]
translation[2] = self.ReferenceOrigin[2] - currentOrigin[2]
transform.Translate(translation)
cross = [0.0,0.0,0.0]
vtk.vtkMath.Cross(currentNormal1,self.ReferenceNormal1,cross)
vtk.vtkMath.Normalize(cross)
angle = puteAngle(currentNormal1,self.ReferenceNormal1)
angle = angle / (2.0*vtk.vtkMath.Pi()) * 360.0;
transform.RotateWXYZ(angle,cross)
transformedNormal2 = transform.TransformNormal(currentNormal2)
vtk.vtkMath.Cross(transformedNormal2,self.ReferenceNormal2,cross)
vtk.vtkMath.Normalize(cross)
angle = puteAngle(transformedNormal2,self.ReferenceNormal2)
angle = angle / (2.0*vtk.vtkMath.Pi()) * 360.0;
transform.RotateWXYZ(angle,cross)
transformFilter = vtk.vtkTransformPolyDataFilter()
transformFilter.SetInput(self.Surface)
transformFilter.SetTransform(transform)
transformFilter.Update()
self.Surface = transformFilter.GetOutput()
if self.Surface.GetSource():
self.Surface.GetSource().UnRegisterAllOutputs()
Example 17
From project vmtk,
under directory vmtkScripts,
in source file vmtksurfacetransforminteractive.py.
def Execute(self):
if (self.Surface == None):
self.PrintError('Error: no Surface.')
#if (self.ReferenceSurface == None):
self.PrintError('Error: no Reference Surface.')
if not self.vmtkRenderer:
self.vmtkRenderer = vmtkrenderer.vmtkRenderer()
self.vmtkRenderer.Initialize()
self.OwnRenderer = 1
self.vmtkRenderer.RegisterScript(self)
if self.Transform == None:
self.Transform = vtk.vtkTransform()
if self.TransformFilter == None:
self.TransformFilter= vtk.vtkTransformPolyDataFilter()
self.TransformFilter.SetInput(self.Surface)
self.TransformFilter.SetTransform(self.Transform)
self.TransformFilter.Update()
self.TransformFilter.GetOutput().Update()
self.TransformedSurface.ShallowCopy(self.TransformFilter.GetOutput())
self.TransformedSurface.Update()
mapper = vtk.vtkPolyDataMapper()
mapper.SetInput(self.TransformedSurface)
mapper.ScalarVisibilityOff()
self.Actor = vtk.vtkActor()
self.Actor.SetMapper(mapper)
self.Actor.GetProperty().SetColor(1.0, 0.1, 0.1)
#self.Actor.GetProperty().SetOpacity(0.5)
self.vmtkRenderer.Renderer.AddActor(self.Actor)
if self.ReferenceSurface:
mapper2 = vtk.vtkPolyDataMapper()
mapper2.SetInput(self.ReferenceSurface)
mapper2.ScalarVisibilityOff()
self.Actor2 = vtk.vtkActor()
self.Actor2.SetMapper(mapper2)
self.Actor2.GetProperty().SetColor(1.0, 1.0, 1.0)
self.Actor2.GetProperty().SetOpacity(0.5)
self.vmtkRenderer.Renderer.AddActor(self.Actor2)
self.BoxWidget = vtk.vtkBoxWidget()
self.BoxWidget.SetPlaceFactor(1.0)
self.BoxWidget.SetInteractor(self.vmtkRenderer.RenderWindowInteractor)
self.BoxWidget.GetFaceProperty().SetColor(0.6,0.6,0.2)
self.BoxWidget.GetFaceProperty().SetOpacity(0.25)
self.BoxWidget.ScalingEnabledOff()
self.BoxWidget.HandlesOff()
if self.Scaling:
self.BoxWidget.ScalingEnabledOn()
self.BoxWidget.HandlesOn()
self.vmtkRenderer.RegisterScript(self)
self.InputInfo('Use the left-mousebutton to rotate the box \nUse the middle-mouse-button to move the box \nPress space to move the surface to its new postion')
#self.OutputText('Press \'i\' to activate the box widget interactor \n')
#self.OutputText('Use the left-mousebutton to rotate the box \n')
#self.OutputText('Use the middle-mouse-button to move the box \n')
#self.OutputText('Press space to move the surface to its new postion \n')
#self.OutputText('Press \'q\' to quit and apply the transform \n')
self.vmtkRenderer.AddKeyBinding('space','Move the surface.',self.MoveCallback)
self.vmtkRenderer.AddKeyBinding('i','Interact.',self.InteractCallback)
self.Display()
self.Surface = self.TransformedSurface
self.Matrix4x4 = self.Transform.GetMatrix()
matrix = self.Matrix4x4
self.MatrixCoefficients = [
matrix.GetElement(0,0), matrix.GetElement(0,1), matrix.GetElement(0,2), matrix.GetElement(0,3),
matrix.GetElement(1,0), matrix.GetElement(1,1), matrix.GetElement(1,2), matrix.GetElement(1,3),
matrix.GetElement(2,0), matrix.GetElement(2,1), matrix.GetElement(2,2), matrix.GetElement(2,3),
matrix.GetElement(3,0), matrix.GetElement(3,1), matrix.GetElement(3,2), matrix.GetElement(3,3)]
if self.OwnRenderer:
self.vmtkRenderer.Deallocate()
Example 18
From project VTK,
under directory Rendering/Volume/Testing/Python,
in source file VolumePicker.py.
def testVolumePicker(self):
# volume render a medical data set
# renderer and interactor
ren = vtk.vtkRenderer()
renWin = vtk.vtkRenderWindow()
renWin.AddRenderer(ren)
iRen = vtk.vtkRenderWindowInteractor()
iRen.SetRenderWindow(renWin)
# read the volume
v16 = vtk.vtkVolume16Reader()
v16.SetDataDimensions(64, 64)
v16.SetImageRange(1, 93)
v16.SetDataByteOrderToLittleEndian()
v16.SetFilePrefix(VTK_DATA_ROOT + &/Data/headsq/quarter&)
v16.SetDataSpacing(3.2, 3.2, 1.5)
#---------------------------------------------------------
# set up the volume rendering
rayCastFunction = vtk.vtkVolumeRayCastCompositeFunction()
volumeMapper = vtk.vtkVolumeRayCastMapper()
volumeMapper.SetInputConnection(v16.GetOutputPort())
volumeMapper.SetVolumeRayCastFunction(rayCastFunction)
volumeColor = vtk.vtkColorTransferFunction()
volumeColor.AddRGBPoint(0, 0.0, 0.0, 0.0)
volumeColor.AddRGBPoint(180, 0.3, 0.1, 0.2)
volumeColor.AddRGBPoint(, 0.7, 0.6)
volumeColor.AddRGBPoint(, 1.0, 0.9)
volumeScalarOpacity = vtk.vtkPiecewiseFunction()
volumeScalarOpacity.AddPoint(0, 0.0)
volumeScalarOpacity.AddPoint(180, 0.0)
volumeScalarOpacity.AddPoint()
volumeScalarOpacity.AddPoint()
volumeGradientOpacity = vtk.vtkPiecewiseFunction()
volumeGradientOpacity.AddPoint(0, 0.0)
volumeGradientOpacity.AddPoint(90, 0.5)
volumeGradientOpacity.AddPoint(100, 1.0)
volumeProperty = vtk.vtkVolumeProperty()
volumeProperty.SetColor(volumeColor)
volumeProperty.SetScalarOpacity(volumeScalarOpacity)
volumeProperty.SetGradientOpacity(volumeGradientOpacity)
volumeProperty.SetInterpolationTypeToLinear()
volumeProperty.ShadeOn()
volumeProperty.SetAmbient(0.6)
volumeProperty.SetDiffuse(0.6)
volumeProperty.SetSpecular(0.1)
volume = vtk.vtkVolume()
volume.SetMapper(volumeMapper)
volume.SetProperty(volumeProperty)
#---------------------------------------------------------
# Do the surface rendering
boneExtractor = vtk.vtkMarchingCubes()
boneExtractor.SetInputConnection(v16.GetOutputPort())
boneExtractor.SetValue(0, 1150)
boneNormals = vtk.vtkPolyDataNormals()
boneNormals.SetInputConnection(boneExtractor.GetOutputPort())
boneNormals.SetFeatureAngle(60.0)
boneStripper = vtk.vtkStripper()
boneStripper.SetInputConnection(boneNormals.GetOutputPort())
boneMapper = vtk.vtkPolyDataMapper()
boneMapper.SetInputConnection(boneStripper.GetOutputPort())
boneMapper.ScalarVisibilityOff()
boneProperty = vtk.vtkProperty()
boneProperty.SetColor(1.0, 1.0, 0.9)
bone = vtk.vtkActor()
bone.SetMapper(boneMapper)
bone.SetProperty(boneProperty)
#---------------------------------------------------------
# Create an image actor
table = vtk.vtkLookupTable()
table.SetRange(0, 2000)
table.SetRampToLinear()
table.SetValueRange(0, 1)
table.SetHueRange(0, 0)
table.SetSaturationRange(0, 0)
mapToColors = vtk.vtkImageMapToColors()
mapToColors.SetInputConnection(v16.GetOutputPort())
mapToColors.SetLookupTable(table)
imageActor = vtk.vtkImageActor()
imageActor.GetMapper().SetInputConnection(mapToColors.GetOutputPort())
imageActor.SetDisplayExtent(32, 32, 0, 63, 0, 92)
#---------------------------------------------------------
# make a transform and some clipping planes
transform = vtk.vtkTransform()
transform.RotateWXYZ(-20, 0.0, -0.7, 0.7)
volume.SetUserTransform(transform)
bone.SetUserTransform(transform)
imageActor.SetUserTransform(transform)
c = volume.GetCenter()
volumeClip = vtk.vtkPlane()
volumeClip.SetNormal(0, 1, 0)
volumeClip.SetOrigin(c)
boneClip = vtk.vtkPlane()
boneClip.SetNormal(0, 0, 1)
boneClip.SetOrigin(c)
volumeMapper.AddClippingPlane(volumeClip)
boneMapper.AddClippingPlane(boneClip)
#---------------------------------------------------------
ren.AddViewProp(volume)
ren.AddViewProp(bone)
ren.AddViewProp(imageActor)
camera = ren.GetActiveCamera()
camera.SetFocalPoint(c)
camera.SetPosition(c[0] + 500, c[1] - 100, c[2] - 100)
camera.SetViewUp(0, 0, -1)
ren.ResetCameraClippingRange()
renWin.Render()
#---------------------------------------------------------
# the cone should point along the Z axis
coneSource = vtk.vtkConeSource()
coneSource.CappingOn()
coneSource.SetHeight(12)
coneSource.SetRadius(5)
coneSource.SetResolution(31)
coneSource.SetCenter(6, 0, 0)
coneSource.SetDirection(-1, 0, 0)
#---------------------------------------------------------
picker = vtk.vtkVolumePicker()
picker.SetTolerance(1.0e-6)
picker.SetVolumeOpacityIsovalue(0.01)
# This should usually be left alone, but is used here to increase coverage
picker.UseVolumeGradientOpacityOn()
# A function to point an actor along a vector
def PointCone(actor, n):
if n[0] & 0.0:
actor.RotateWXYZ(180, 0, 1, 0)
actor.RotateWXYZ(180, (n[0] - 1.0) * 0.5, n[1] * 0.5, n[2] * 0.5)
actor.RotateWXYZ(180, (n[0] + 1.0) * 0.5, n[1] * 0.5, n[2] * 0.5)
# Pick the actor
picker.Pick(192, 103, 0, ren)
#print picker
p = picker.GetPickPosition()
n = picker.GetPickNormal()
coneActor1 = vtk.vtkActor()
coneActor1.PickableOff()
coneMapper1 = vtk.vtkDataSetMapper()
coneMapper1.SetInputConnection(coneSource.GetOutputPort())
coneActor1.SetMapper(coneMapper1)
coneActor1.GetProperty().SetColor(1, 0, 0)
coneActor1.SetPosition(p)
PointCone(coneActor1, n)
ren.AddViewProp(coneActor1)
# Pick the volume
picker.Pick(90, 180, 0, ren)
p = picker.GetPickPosition()
n = picker.GetPickNormal()
coneActor2 = vtk.vtkActor()
coneActor2.PickableOff()
coneMapper2 = vtk.vtkDataSetMapper()
coneMapper2.SetInputConnection(coneSource.GetOutputPort())
coneActor2.SetMapper(coneMapper2)
coneActor2.GetProperty().SetColor(1, 0, 0)
coneActor2.SetPosition(p)
PointCone(coneActor2, n)
ren.AddViewProp(coneActor2)
# Pick the image
picker.Pick(200, 200, 0, ren)
p = picker.GetPickPosition()
n = picker.GetPickNormal()
coneActor3 = vtk.vtkActor()
coneActor3.PickableOff()
coneMapper3 = vtk.vtkDataSetMapper()
coneMapper3.SetInputConnection(coneSource.GetOutputPort())
coneActor3.SetMapper(coneMapper3)
coneActor3.GetProperty().SetColor(1, 0, 0)
coneActor3.SetPosition(p)
PointCone(coneActor3, n)
ren.AddViewProp(coneActor3)
# Pick a clipping plane
picker.PickClippingPlanesOn()
picker.Pick(145, 160, 0, ren)
p = picker.GetPickPosition()
n = picker.GetPickNormal()
coneActor4 = vtk.vtkActor()
coneActor4.PickableOff()
coneMapper4 = vtk.vtkDataSetMapper()
coneMapper4.SetInputConnection(coneSource.GetOutputPort())
coneActor4.SetMapper(coneMapper4)
coneActor4.GetProperty().SetColor(1, 0, 0)
coneActor4.SetPosition(p)
PointCone(coneActor4, n)
ren.AddViewProp(coneActor4)
ren.ResetCameraClippingRange()
# render and interact with data
renWin.Render()
img_file = &VolumePicker.png&
vtk.pareImage(iRen.GetRenderWindow(), vtk.test.Testing.getAbsImagePath(img_file), threshold=25)
vtk.test.Testing.interact()
Example 19
From project FEMRI,
under directory femriScripts,
in source file femrisymbolicmeshkspace.py.
def Execute(self):
if self.Mesh == None:
self.PrintError('Error: no Mesh.')
if (self.FOVNormal != [0.0, 0.0, 1.0]):
translation = [-self.FOVCenter[0], -self.FOVCenter[1], -self.FOVCenter[2]]
referenceNormal = [0.0, 0.0, 1.0]
rotationAxis = [0.0, 0.0, 0.0]
vtk.vtkMath.Normalize(self.FOVNormal)
vtk.vtkMath.Cross(self.FOVNormal,referenceNormal,rotationAxis)
angle = self.AngleBetweenNormals(referenceNormal,self.FOVNormal) / vtk.vtkMath.Pi() * 180.0
transform = vtk.vtkTransform()
transform.PostMultiply()
transform.Translate(translation)
transform.RotateWXYZ(angle,rotationAxis)
transform.Translate(self.FOVCenter)
transformFilter = vtk.vtkTransformFilter()
transformFilter.SetInput(self.Mesh)
transformFilter.SetTransform(transform)
transformFilter.Update()
acquiredMesh = transformFilter.GetOutput()
if (self.KSpaceDimensionality == 3) or not self.SliceModel:
origin = [self.FOVCenter[0] - self.FOV[0]/2.0,
self.FOVCenter[1] - self.FOV[1]/2.0,
self.FOVCenter[2] - self.FOV[2]/2.0]
spacing = [self.FOV[0] / self.MatrixSize[0],
self.FOV[1] / self.MatrixSize[1],
self.FOV[2] / self.MatrixSize[2]]
self.KSpace = self.AcquireKSpace(self.Mesh,origin,spacing)
elif self.KSpaceDimensionality == 2:
kSpaceAppend = vtk.vtkImageAppend()
kSpaceAppend.SetAppendAxis(2)
sliceLocations = []
sliceLocation = self.FOVCenter[2] - self.FOV[2]/2.0
while (sliceLocation & self.FOVCenter[2] + self.FOV[2]/2.0):
sliceLocations.append(sliceLocation)
sliceLocation += self.SliceSpacing
spacing = [self.FOV[0] / self.MatrixSize[0],
self.FOV[1] / self.MatrixSize[1],
self.FOV[2] / self.MatrixSize[2]]
bounds = self.Mesh.GetBounds()
for sliceLocation in sliceLocations:
self.PrintLog(&Processing slice at& + float(sliceLocation))
origin = [self.FOVCenter[0] - self.FOV[0]/2.0,
self.FOVCenter[1] - self.FOV[1]/2.0,
sliceLocation]
clipper1 = vtk.vtkClipDataSet()
clipper1.SetInput(self.Mesh)
clipper1.InsideOutOff()
plane1 = vtk.vtkPlane()
plane1.SetNormal(0.0,0.0,1.0)
plane1.SetOrigin(0.0,0.0,sliceLocation - self.SliceThickness / 2.0)
clipper1.SetClipFunction(plane1)
clipper1.Update()
clipper2 = vtk.vtkClipDataSet()
clipper2.SetInput(clipper1.GetOutput())
clipper2.InsideOutOn()
plane2 = vtk.vtkPlane()
plane2.SetNormal(0.0,0.0,1.0)
plane2.SetOrigin(0.0,0.0,sliceLocation + self.SliceThickness / 2.0)
clipper2.SetClipFunction(plane2)
clipper2.Update()
clipper2Bounds = clipper2.GetOutput().GetBounds()
cleaner = vtk.vtkExtractUnstructuredGrid()
cleaner.SetInput(clipper2.GetOutput())
cleaner.ExtentClippingOn()
cleaner.SetExtent(clipper2Bounds[0],clipper2Bounds[1],
clipper2Bounds[2],clipper2Bounds[3],
sliceLocation-self.SliceThickness/2.0,sliceLocation+self.SliceThickness/2.0)
cleaner.Update()
tetraFilter = vtk.vtkDataSetTriangleFilter()
tetraFilter.SetInput(cleaner.GetOutput())
tetraFilter.Update()
sliceMesh = tetraFilter.GetOutput()
self.PrintLog(&Number of integration elements:& + int(sliceMesh.GetNumberOfCells()))
sliceKSpace = self.AcquireKSpace(sliceMesh,origin,spacing)
kSpaceAppend.AddInput(sliceKSpace)
kSpaceAppend.Update()
self.KSpace = puteKSpaceOperation(kSpaceAppend.GetOutput())
Please enable JavaScript to view the

我要回帖

更多关于 7p通话声音对方听不清 的文章

 

随机推荐