Как рассчитать центральную линию или базовую линию многоугольникаPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как рассчитать центральную линию или базовую линию многоугольника

Сообщение Anonymous »

Я работаю над моделью сегментации исторических документов. В моем наборе данных текстовые линии представлены в виде многоугольников, но для удобного обучения модели мне также нужны центральные линии или базовые линии многоугольников.
В качестве примера это координаты линии в виде кортежи многоугольников:

Код: Выделить всё

603,1220 600,1288 687,1304 691,1304 694,1304 726,1291 762,1278 801,1291 843,1307 846,1307 850,1307 924,1294 976,1285 1009,1294 1054,1310 1057,1310 1061,1310 1158,1298 1203,1291 1223,1298 1262,1314 1265,1314 1268,1314 1272,1314 1320,1298 1366,1285 1388,1301 1405,1310 1408,1310 1411,1310 1745,1323 1749,1323 1752,1323 1788,1304 1810,1294 1891,1294 1963,1307 2057,1327 2060,1327 2161,1310 2222,1301 2317,1314 2359,1317 2362,1317 2388,1314 2440,1304 2459,1314 2495,1336 2498,1336 2502,1336 2505,1336 2602,1317 2651,1307 2738,1317 2878,1336 2881,1336 2884,1336 2943,1320 2972,1314 3248,1323 3258,1262 3254,1203 603,1151 603,1220
А это базовая линия приведенных выше координат:

Код: Выделить всё

603,1220 2138,1255 3258,1262
Я пытаюсь использовать shapely.centroid Python для расчета базовой линии, но без надежного результата.

Код: Выделить всё

from shapely import LineString, MultiPoint, Polygon, centroid

print(centroid(Polygon([(584, 1603), (580, 1654), (649, 1680), (652, 1680), (824, 1684), (827, 1684), (830, 1684), (918, 1661), (947, 1684), (950, 1684), (954, 1684), (957, 1684), (1061, 1671), (1106, 1687), (1109, 1687), (1113, 1687), (1116, 1687), (1187, 1664), (1343, 1690), (1346, 1690), (1732, 1671), (1758, 1671), (1797, 1671), (2158, 1693), (2161, 1693), (2164, 1693), (2193, 1677), (2196, 1677), (2239, 1700), (2242, 1700), (2245, 1700), (2248, 1700), (2320, 1680), (2323, 1680), (2404, 1703), (2407, 1703), (2411, 1703), (2667, 1687), (2712, 1684), (2719, 1687), (2771, 1710), (2774, 1710), (2777, 1710), (3261, 1693), (3267, 1638), (3264, 1570), (584, 1538), (584, 1603)])))
Результат:

Код: Выделить всё

POINT (1920.3383138928723 1620.2116469627338)
Изображение:
Изображение


Подробнее здесь: https://stackoverflow.com/questions/789 ... -a-polygon
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как рассчитать центральную линию или базовую линию многоугольника
    Anonymous » » в форуме Python
    0 Ответы
    48 Просмотры
    Последнее сообщение Anonymous
  • Как рассчитать центральную линию или базовую линию многоугольника
    Anonymous » » в форуме Python
    0 Ответы
    49 Просмотры
    Последнее сообщение Anonymous
  • Как рассчитать центральную линию или базовую линию многоугольника
    Anonymous » » в форуме Python
    0 Ответы
    34 Просмотры
    Последнее сообщение Anonymous
  • Как рассчитать центральную линию или базовую линию многоугольника
    Anonymous » » в форуме Python
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Как рассчитать центральную линию или базовую линию многоугольника
    Anonymous » » в форуме Python
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»