Оптимальная дискретизация 2D области (сегментация) - PullRequest
0 голосов
/ 06 июля 2019

У меня есть много кривых конечной длины в области XY.Эти кривые представлены в виде наборов точек.

Мне нужно дискретизировать мою область с помощью прямоугольников (или треугольников), чтобы каждый прямоугольник (или треугольник) пересекался, например, более чем на 2 кривые и менее чем на 5 кривых.Даже если в любом прямоугольнике нет точки, но интерполированная кривая находится в этом прямоугольнике, эта кривая пересекает этот прямоугольник.Края соседних прямоугольников должны стоять близко друг к другу (касаться друг друга), и эти прямоугольники должны покрывать всю область, где существуют кривые.

В качестве вывода мне нужно получить координату XY каждого прямоугольника (треугольника).Я попытался объяснить мою проблему на картинке ниже.Так что, возможно, кто-то знает, как решить эту проблему, или проблема уже решена.Буду признателен за любую информацию!Я пытаюсь реализовать это в Matlab , и мне интересно, можно ли решить это с помощью функции linprog () в Matlab?

Спасибо!

Для построения кривых используйте:

clearvars -except Gpath
clc

nG = size(Gpath,1);
mG = size(Gpath,2);

figure;
for n = 1:nG*mG
if ~isempty(Gpath{n})
    plot(Gpath{n}(2,:),Gpath{n}(1,:));
    hold on;
end
end
grid on;

Изображение: 2D область с прямоугольниками

Файл с кривыми: .mat file

...