Код на Python
import numpy as np
from skimage import draw
height, width = 700, 1300
image = np.zeros((height, width), dtype=np.uint8)
# генерируем рандомные окружности
N = 250
np.random.seed(10)
xy = np.random.randint((0, 0), (height, width), (N, 2))
radii = np.random.randint(40, 60, N)
# закрашиваем окружности (цветом 1, фон 0)
for x, y, r in np.column_stack((xy, radii)):
rr, cc = draw.disk((x, y), r, shape=(height, width))
image[rr, cc] = 1
# подсчитываем количество ненулевых пикелей
# или просто суммируем, если единицы
# и получаем долю от всех пикселей
area_percent = np.count_nonzero(image)/(height * width)
print(f'площадь занимаемая окружностями {area_percent*100}%')
Вывод:
площадь занимаемая окружностями 88.35087912087913%
Можно увеличить разрешение изображения, отмасштабировав окружности и получить высокую точность площади