Identifying the boundary points of a shape based on the centroid
In general you would be looking at "Image Segmentation" techniques.

Since you do have the centroids, you can use them in "region growing".

In this technique, you start from a seed point and depending on the sort of pixel connectivity you are interested in you expand the identified region. For example, with 4 connectivity, you would start at the seed point, which is clearly part of the region. You would then examine the 4 immediate neighbours of the seed, each one having 2-3 neighbours (there will be overlaps). If those pixels belong to the region (e.g. they turn out to be white), you examine their neighbours and the neighbours neigbhours and so on.

The algorithm terminates when there are no more neighbours to consider for their connectivity.

You can write this from first principles, or you can use skimage's label(). In fact, that function applies pixel connectivity slightly differently, by building regions up as it reads the image, creating a new one if it finds a disconnected pixel, so, you would not even need the centroids in that case.

Hope this helps.