【问题标题】:How to get coordinates of a path from svg file into R如何从svg文件获取路径坐标到R
【发布时间】:2012-04-25 13:11:22
【问题描述】:

这可能是一个愚蠢的问题,但我在这方面没有太多经验。我需要从多边形中获取坐标以在 R 中创建轮廓。它是一个大约 1000 个点的复杂多边形,因此手动输入坐标是疯狂的。我还需要提取轮廓内某些对象的 xy 位置。 我尝试使用 Illustrator 和 Inkscape 创建一个包含所有信息的 svg 文件。考虑到 svg 文件包含所有信息,这看起来是一个不错的选择。有没有办法从路径或多边形节点中提取坐标?或者还有其他更简单的方法来完成这个过程吗? 我将非常感谢任何帮助,因为我必须为大约 30 张图像执行此操作。 干杯

【问题讨论】:

  • 指向示例文件的链接或重新创建文件的方法将使这个问题更容易回答。 stackoverflow.com/questions/5963269/…
  • 好的抱歉没有给出svg文件,我复制了一部分:
  • 我不知道怎么附加文件它有很多点。这只是一个例子,我需要从多边形中获取坐标,然后从文本中获取坐标。我希望这是有道理的
  • 你可以查看 grImport 包,它导入矢量图像并将它们转换为 R 可以解释的路径。

标签: r svg inkscape


【解决方案1】:

您可以使用XML 包来提取坐标。

# Sample data
library(RCurl)
url <- "http://upload.wikimedia.org/wikibooks/en/a/a8/XML_example_polygon.svg"
svg <- getURL(url)

# Parse the file
library(XML)
doc <- htmlParse(svg)

# Extract the coordinates, as strings
p <- xpathSApply(doc, "//polygon", xmlGetAttr, "points")

# Convert them to numbers
p <- lapply( strsplit(p, " "), function(u) 
  matrix(as.numeric(unlist(strsplit(u, ","))),ncol=2,byrow=TRUE) )
p

但是,这会忽略要应用于多边形的任何变换。

【讨论】:

  • 谢谢它很好用,我尝试使用 XML 包但我没有使用 htmlParse 所以我认为这是问题所在。
猜你喜欢
  • 2012-08-20
  • 2020-04-22
  • 1970-01-01
  • 2017-08-19
  • 2011-09-25
  • 2022-01-13
  • 2014-05-03
  • 2015-05-05
  • 1970-01-01
相关资源
最近更新 更多