Source code for sksurgeryspherefittingtest2.ui.sksurgeryspherefittingtest2_demo

# coding=utf-8

"""Uses sphere fitting to fit to vtk model"""
import vtk
from sksurgeryvtk.models.vtk_surface_model import VTKSurfaceModel
from sksurgeryspherefittingtest2.algorithms import sphere_fitting

[docs]def run_demo(model_file_name, output=""): """ Run the application """ model = VTKSurfaceModel(model_file_name, [1., 0., 0.]) x_values = model.get_points_as_numpy()[:, 0] y_values = model.get_points_as_numpy()[:, 1] z_values = model.get_points_as_numpy()[:, 2] initial_parameters = [0.0, 0.0, 0.0, 0.0] result = sphere_fitting.fit_sphere_least_squares(x_values, y_values, z_values, initial_parameters) print(f"Result is {result}") if output != "": sphere = vtk.vtkSphereSource() #pylint:disable=no-member sphere.SetCenter(result[0][0], result[0][1], result[0][2]) sphere.SetRadius(result[0][3]) sphere.SetThetaResolution(60) sphere.SetPhiResolution(60) writer = vtk.vtkXMLPolyDataWriter() #pylint:disable=no-member writer.SetFileName(output) writer.SetInputData(sphere.GetOutput()) sphere.Update() writer.Write()