Очистка изображения альфа-корпуса - PullRequest
0 голосов
/ 22 апреля 2020

Это результат применения функции ahull из пакета R alphahull к моему 2D-набору точек. Как мне удалить эти толстые черные точки с моего изображения? Спасибо!

Alphahull

1 Ответ

1 голос
/ 22 апреля 2020

Простое скрытие точек ваших данных кажется сомнительным, но это решение делает то, что вы описываете, получая координаты точек вне корпуса от объекта ahull и накладывает точки на невидимые. При этом вам не нужно изменять входные данные или объект ahull.

library(alphahull)

lim=5
mat <- matrix(data=rnorm(1000), ncol=2)

some_hull = ahull(mat, alpha=0.5)
plot(some_hull, xlim = c(-lim,lim), ylim = c(-lim,lim))

enter image description here

Ar c объект ahull$arcs содержит указатель в третьем столбце, точки которого находятся за пределами корпуса. Вы можете использовать эти координаты и просто наложить немного большие невидимые точки, чтобы скрыть исходные, без необходимости изменять входные данные или объект.

non_members <- some_hull$arcs[which(some_hull$arcs[, 3] == 0), 1:2]

plot(some_hull, xlim = c(-lim,lim), ylim = c(-lim,lim))
points(non_members, col="white", pch=19, cex=1.2)

enter image description here

...