Registering a pair of binary masks

I’m trying to register a pair of binary masks, not a pair of images. To explain further, I’m trying to build a model that automatically strips the brain from the head skull. For the better model accuracy, I already have labeled the brain area using ITK-SNAP. I just wonder if I can do the registration between the binary masks, not the images. Is there any tool for this purpose?

1 Like

Hello @goofyduck,

Registration of binary objects is harder than registering the original images, so recommend to either register the original images or distance maps of the binary segmentations, along the lines of:

distance_map1 = sitk.SignedMaurerDistanceMap(binary_image1, squaredDistance=False, useImageSpacing=True)
distance_map2 = sitk.SignedMaurerDistanceMap(binary_image2, squaredDistance=False, useImageSpacing=True)
tx = register(distance_map1, distance_map2)

If you do not want to write code, possibly look into using Slicer’s registration.