Ответы пользователя по тегу MATLAB
  • Как можно посчитать площадь сложной фигуры?

    hugga
    @hugga
    Код на 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%

    Можно увеличить разрешение изображения, отмасштабировав окружности и получить высокую точность площади

    perimeter.jpg?extra=M1Y1hNBKZUDrgIvmBLNUDQxrMue771W8rPZ7E9CuGAhCLOH46lxqTV5PWrEssBMxi6Q40IxaBK7w8vIc0OqyVE8PNlgkO51Ixc12kGLKscxRPPS3rKpV6RVn2icBbtqNQRr4mNYVDLHvKYba8v39Itc
    area.jpg?extra=Esxrkd7zGib63ZDJTIN6Bc_vG31ZSX9x5kSLuFJu8un3kPV0vZC1YK8WveCfqGHmugstHIcTsGGh0NpDjVpeRppfi5vGlinT_mh6JyJk1fBh529PvnWE8RDPPj7gepkJ7eKpGwOnyDYa5_srB6IHegM
    Ответ написан
    Комментировать