Matlab: файл формы в векторе (X,Y) в растровую матрицу
У меня проблема с преобразованием файла формы, который является границей Германии с их координатами X,Y, в растровый матричный формат той же формы. Я просто не знаю, какой метод использовать для этого случая. Я был бы благодарен, если бы кто-нибудь помог мне найти правильный способ мышления для этого приложения.
1 ответ
Это может быть очень легко получено в MATLAB. Вам нужно использовать функцию inpolygon. Эта функция дает вам индексы точек, лежащих внутри, и откладывает заданный полигон. Как только вы знаете индексы, вы можете получить то, что вы хотите. Вы можете проверить приведенную ниже демонстрацию:
x = [1 2 3 4 3 2]';
y = [4 5 5 4 3 3]';
k = boundary(x,y);
x0 = min(x) ; x1 = max(x) ;
y0 = min(y) ; y1 = max(y) ;
[X,Y] = meshgrid(linspace(x0,x1),linspace(y0,y1)) ;
idx = inpolygon(X(:),Y(:),x(k),y(k)) ;
X(~idx) = NaN ;
Y(~idx) = NaN ;
plot(x,y,'.r')
hold on
patch(x(k),y(k),'k') ;
plot(X(idx),Y(idx),'.r')
Просто замените (x,y) выше вашими координатами файла формы, и вы получите то, что хотите.