Untitled

mail@pastecode.io avatar
unknown
python
11 days ago
1.6 kB
2
Indexable
Never
def show_interactive_3d(brain_array, mask_array):
    # Use marching cubes to obtain the surface mesh of the brain and the mask
    verts_brain, faces_brain, _, _ = measure.marching_cubes(brain_array, level=0.1)
    verts_mask, faces_mask, _, _ = measure.marching_cubes(mask_array, level=0.1)

    # Create the brain mesh
    x_brain, y_brain, z_brain = zip(*verts_brain)
    brain_mesh = go.Mesh3d(
        x=x_brain, y=y_brain, z=z_brain,
        i=faces_brain[:, 0], j=faces_brain[:, 1], k=faces_brain[:, 2],
        color='orange', opacity=0.5, name='Brain'
    )

    # Create the mask mesh
    x_mask, y_mask, z_mask = zip(*verts_mask)
    mask_mesh = go.Mesh3d(
        x=x_mask, y=y_mask, z=z_mask,
        i=faces_mask[:, 0], j=faces_mask[:, 1], k=faces_mask[:, 2],
        color='blue', opacity=0.5, name='Mask'
    )

    # Create the figure and add both meshes
    fig = go.Figure(data=[brain_mesh, mask_mesh])
    fig.update_layout(
        scene=dict(aspectmode='data'),
        title='3D Visualization of Brain with Mask',
        width=1000,  # Set the desired width here
        height=800  # Set the desired height here
    )
    fig.show()



def plot_original_brain_with_ground_truth(folder_path, idx):

    img_path = test_files[idx]+'/'+test_files[idx]+'_flair.nii'
    img = nib.load(folder_path+img_path)
    img_data = np.asarray(img.get_fdata())

    mask_path = test_files[idx]+'/'+test_files[idx]+'_seg.nii'
    mask = nib.load(folder_path+mask_path)
    mask_data = np.asarray(mask.get_fdata())

    show_interactive_3d(img_data, mask_data)
Leave a Comment