I don’t have the answer but the dense areas of the image you show here have more points. Also the voronoi node in Dynamo is not very stable. Something like what you show would be easier to create with Rhino-grasshopper3D.
But basically I think if you read the image brightness at each point in a the grid of pixels then if that brightness is greater than a cut off value you create a point at that location. This collection of points could be used to generate the voronoi but it would have a more regular appearance than the example you show.
Another way to go would be to create regions by brightness possible some sort off Boolean union operation on squares then creating random points inside these regions of different density for the different types of regions.
I don’t really want to offer to try because the voronoi node is so unreliable in dynamo. Does it have to be Dynamo?