Skip to content

Jianningli/Autoimplant_II

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 

Repository files navigation

Towards the Automatization of Cranial Implant Design in Cranioplasty II 
└── MICCAI 2021 Challenge
└── Proceedings  
│   ├── Personalized Calvarial Reconstruction in Neurosurgery
│   ├── Qualitative Criteria for Feasible Cranial Implant Designs
│   ├── Segmentation of Defective Skulls from CT Data for Tissue Modelling
│   ├── Improving the Automatic Cranial Implant Design in Cranioplasty by Linking Different Datasets
│   ├── Learning to Rearrange Voxels in Binary Segmentation Masks for Smooth Manifold Triangulation
│   ├── A U-Net Based System for Cranial Implant Design with Pre-processing and Learned Implant Filtering
│   ├── Sparse Convolutional Neural Network for Skull Reconstruction
│   ├── Cranial Implant Prediction by Learning an Ensemble of Slice-Based Skull Completion Networks
│   ├── PCA-Skull: 3D Skull Shape Modelling Using Principal Component Analysis
│   ├── Cranial Implant Design Using V-Net Based Region of Interest Reconstruction
└── Codes
│   ├── https://github.com/MWod/AutoImplant_2021
│   ├── https://github.com/Jianningli/voxel_rearrangement
│   ├── https://github.com/akroviakov/SparseSkullCompletion
│   ├── https://github.com/1eiyu/ShapePrior
└── Summary Paper
│   ├── Towards clinical applicability and computational efficiency in automatic cranial implant design: An overview of the AutoImplant 2021 cranial implant design challenge

├── Proceedings: SpringerLink

  1. Personalized Calvarial Reconstruction in Neurosurgery.
  2. Qualitative Criteria for Feasible Cranial Implant Designs.
  3. Segmentation of Defective Skulls from CT Data for Tissue Modelling.
  4. Improving the Automatic Cranial Implant Design in Cranioplasty by Linking Different Datasets. [code].
  5. Learning to Rearrange Voxels in Binary Segmentation Masks for Smooth Manifold Triangulation. [code]
  6. A U-Net Based System for Cranial Implant Design with Pre-processing and Learned Implant Filtering.
  7. Sparse Convolutional Neural Network for Skull Reconstruction. [code]
  8. Cranial Implant Prediction by Learning an Ensemble of Slice-Based Skull Completion Networks. [code]
  9. PCA-Skull: 3D Skull Shape Modelling Using Principal Component Analysis. [code]
  10. Cranial Implant Design Using V-Net Based Region of Interest Reconstruction.

├── code snippets for implant post-processing (thinning & border adjustment)

import nrrd
import pyvista as pv
import numpy as np
import vtk
import trimesh

# original mesh
mesh = pv.PolyData('original.stl')
# extract the interior surface of an implant
mesh.compute_normals(cell_normals=True, point_normals=False, inplace=True)
ids = np.arange(mesh.n_cells)[mesh['Normals'][:,2] < 0.0 ]
top = mesh.extract_cells(ids)


ind= []
newList1=[]
newList2=[]
# convert pyvista datatype to list for fast processing of points

for i  in range(len(top.points)):
	newList1.append([top.points[i][0],top.points[i][1],top.points[i][2]])


for i  in range(len(mesh.points)):
	newList2.append([mesh.points[i][0],mesh.points[i][1],mesh.points[i][2]])

for i  in range(len(top.points)):
	idx=newList2.index(newList1[i])
	ind.append(idx)

# rescale x,y,z

for  i in range(len(ind)):
	mesh.points[ind[i]][2]=mesh.points[ind[i]][2]*1.05
	mesh.points[ind[i]][1]=mesh.points[ind[i]][1]*0.95
	mesh.points[ind[i]][0]=mesh.points[ind[i]][0]*1.00


mesh.plot()
mesh=mesh.extract_surface().triangulate()
mesh.save('result.stl')

# after generating the processed mesh. Intersection can be done using MeshLab:
# MeshLab - Loading result.stl and original.stl - Filters - Remeshing, Simplification, Reconstruction 
# - Mesh Boolean: Intersection